diff options
Diffstat (limited to 'clang/test/CodeGenCXX/default-destructor-synthesis.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/default-destructor-synthesis.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/default-destructor-synthesis.cpp b/clang/test/CodeGenCXX/default-destructor-synthesis.cpp new file mode 100644 index 0000000..fac5cc0 --- /dev/null +++ b/clang/test/CodeGenCXX/default-destructor-synthesis.cpp @@ -0,0 +1,36 @@ +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -O2 -o - | FileCheck %s +static int count = 0; + +struct S { + S() { count++; } + ~S() { count--; } +}; + +struct P { + P() { count++; } + ~P() { count--; } +}; + +struct Q { + Q() { count++; } + ~Q() { count--; } +}; + +struct M : Q, P { + S s; + Q q; + P p; + P p_arr[3]; + Q q_arr[2][3]; +}; + +// CHECK: define i32 @_Z1fv() nounwind +int f() { + { + count = 1; + M a; + } + + // CHECK: ret i32 1 + return count; +} |