From 8f56f22b84b52238dca066cc431c6e82f5380fe4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 24 Jan 2019 14:01:17 -0500 Subject: cmListCommand: Avoid std::function move constructor on aarch64 Since commit 5a0784ddea (clang-tidy: Pass by value, 2019-01-21), some of the `RunCMake.{list,PositionIndependentCode}` cases have crashed on an aarch64 build with GCC 6. Avoiding use of the `std::function` move constructor avoids the crash. Use a strict preprocessor condition to use this workaround only where needed. --- Source/cmListCommand.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx index 05b22cf..b24c5ba 100644 --- a/Source/cmListCommand.cxx +++ b/Source/cmListCommand.cxx @@ -666,7 +666,12 @@ bool cmListCommand::HandleTransformCommand( ActionDescriptor(std::string name, int arity, transform_type transform) : Name(std::move(name)) , Arity(arity) +#if defined(__GNUC__) && __GNUC__ == 6 && defined(__aarch64__) + // std::function move constructor miscompiles on this architecture + , Transform(transform) +#else , Transform(std::move(transform)) +#endif { } -- cgit v0.12