diff options
Diffstat (limited to 'clang/test/CodeGenCXX/cxx1y-init-captures.cpp')
| -rw-r--r-- | clang/test/CodeGenCXX/cxx1y-init-captures.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/cxx1y-init-captures.cpp b/clang/test/CodeGenCXX/cxx1y-init-captures.cpp index dcfe4d47292..c76180c5bf4 100644 --- a/clang/test/CodeGenCXX/cxx1y-init-captures.cpp +++ b/clang/test/CodeGenCXX/cxx1y-init-captures.cpp @@ -38,6 +38,19 @@ void g() { // CHECK: add nsw i32 +// CHECK-LABEL: define void @_Z18init_capture_dtorsv +void init_capture_dtors() { + // Ensure that init-captures are not treated as separate full-expressions. + struct HasDtor { ~HasDtor() {} }; + void some_function_call(); + void other_function_call(); + // CHECK: call {{.*}}some_function_call + // CHECK: call {{.*}}HasDtorD + ([x = (HasDtor(), 0)]{}, some_function_call()); + // CHECK: call {{.*}}other_function_call + other_function_call(); +} + int h(int a) { // CHECK-LABEL: define i32 @_Z1hi( // CHECK: %[[A_ADDR:.*]] = alloca i32, |

