diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2010-02-16 09:31:36 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2010-02-16 09:31:36 +0000 |
commit | fd035e6496665b1f1197868e21cb0a4594e8db6e (patch) | |
tree | 53010172e19c77ea447bcd89e117cda052ab52e0 /test/CodeGenCXX/default-destructor-synthesis.cpp | |
parent | 2fce988e86bc01829142e4362d4eff1af0925147 (diff) | |
download | FreeBSD-src-fd035e6496665b1f1197868e21cb0a4594e8db6e.zip FreeBSD-src-fd035e6496665b1f1197868e21cb0a4594e8db6e.tar.gz |
Update clang to r96341.
Diffstat (limited to 'test/CodeGenCXX/default-destructor-synthesis.cpp')
-rw-r--r-- | test/CodeGenCXX/default-destructor-synthesis.cpp | 72 |
1 files changed, 25 insertions, 47 deletions
diff --git a/test/CodeGenCXX/default-destructor-synthesis.cpp b/test/CodeGenCXX/default-destructor-synthesis.cpp index 71167a2..fac5cc0 100644 --- a/test/CodeGenCXX/default-destructor-synthesis.cpp +++ b/test/CodeGenCXX/default-destructor-synthesis.cpp @@ -1,58 +1,36 @@ -// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++0x -O0 -S %s -o %t-64.s -// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s -// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++0x -O0 -S %s -o %t-32.s -// RUN: FileCheck -check-prefix LP32 -input-file=%t-32.s %s - -extern "C" int printf(...); - -int count = 1; +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -O2 -o - | FileCheck %s +static int count = 0; struct S { - S() : iS(count++), fS(1.23) {}; - ~S(){printf("S::~S(%d, %f)\n", iS, fS); }; - int iS; - float fS; + S() { count++; } + ~S() { count--; } }; -struct Q { - Q() : iQ(count++), dQ(2.34) {}; - ~Q(){printf("Q::~Q(%d, %f)\n", iQ, dQ); }; - int iQ; - double dQ; +struct P { + P() { count++; } + ~P() { count--; } }; -struct P { - P() : fP(3.45) , iP(count++) {}; - ~P(){printf("P::~P(%d, %f)\n", iP, fP); }; - float fP; - int iP; +struct Q { + Q() { count++; } + ~Q() { count--; } }; -struct M : Q, P { +struct M : Q, P { S s; - Q q; - - P p; - - P p_arr[3]; - - Q q_arr[2][3]; - + P p; + P p_arr[3]; + Q q_arr[2][3]; }; - -M gm; - -int main() {M m1;} - -// CHECK-LP64: .globl __ZN1MD1Ev -// CHECK-LP64-NEXT: .weak_definition __ZN1MD1Ev -// CHECK-LP64-NEXT: __ZN1MD1Ev: -// CHECK-LP64: callq __ZN1MC1Ev -// CHECK-LP64: callq __ZN1MD1Ev - -// CHECK-LP32: .globl __ZN1MD1Ev -// CHECK-LP32-NEXT: .weak_definition __ZN1MD1Ev -// CHECK-LP32-NEXT:__ZN1MD1Ev: -// CHECK-LP32: call L__ZN1MC1Ev -// CHECK-LP32: call L__ZN1MD1Ev + +// CHECK: define i32 @_Z1fv() nounwind +int f() { + { + count = 1; + M a; + } + + // CHECK: ret i32 1 + return count; +} |