diff options
author | Carlos Alberto Enciso <carlos.alberto.enciso@gmail.com> | 2018-03-26 13:48:03 +0000 |
---|---|---|
committer | Carlos Alberto Enciso <carlos.alberto.enciso@gmail.com> | 2018-03-26 13:48:03 +0000 |
commit | dc9200c2fe44e16d04d44f3a3012a8c921daade4 (patch) | |
tree | 97d1530816bfd30d29e7590f1dba13b735e2f0a6 /test/CodeGenCXX/optnone-pragma-optimize-off.cpp | |
parent | 60cec38f68d4f4a3edd8d403c034b5d62a20ebaa (diff) |
[SemaCXX] _Pragma("clang optimize off") not affecting lambda.
Declaring "_Pragma("clang optimize off")" before the body of a
function with a lambda leads to the lambda functions in the body
not being affected.
Differential Revision: https://reviews.llvm.org/D43821
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328494 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/optnone-pragma-optimize-off.cpp')
-rw-r--r-- | test/CodeGenCXX/optnone-pragma-optimize-off.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGenCXX/optnone-pragma-optimize-off.cpp b/test/CodeGenCXX/optnone-pragma-optimize-off.cpp new file mode 100644 index 0000000000..d750c4c284 --- /dev/null +++ b/test/CodeGenCXX/optnone-pragma-optimize-off.cpp @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 %s -triple %itanium_abi_triple -O1 -disable-llvm-passes -emit-llvm -o - | FileCheck %s + +// Test the attributes for the lambda function contains 'optnone' as result of +// the _Pragma("clang optimize off"). + +_Pragma("clang optimize off") + +void foo(int p) { + auto lambda = [&p]() { ++p; }; + lambda(); + // CHECK: define {{.*}} @"_ZZ3fooiENK3$_0clEv"({{.*}}) #[[LAMBDA_ATR:[0-9]+]] +} + +_Pragma("clang optimize on") + +// CHECK: attributes #[[LAMBDA_ATR]] = { {{.*}} optnone {{.*}} }
\ No newline at end of file |