blob: f9e13eb526cd2349d794266195059bfe71abd1a4 [file] [log] [blame]
Anders Carlsson29f899d2010-01-27 03:03:08 +00001// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -O2 -o - | FileCheck %s
2static int count = 0;
Fariborz Jahanian9c0d0542009-08-20 23:33:31 +00003
Fariborz Jahaniand172e912009-08-17 19:04:50 +00004struct S {
Anders Carlsson29f899d2010-01-27 03:03:08 +00005 S() { count++; }
6 ~S() { count--; }
Fariborz Jahaniand172e912009-08-17 19:04:50 +00007};
8
9struct P {
Anders Carlsson29f899d2010-01-27 03:03:08 +000010 P() { count++; }
11 ~P() { count--; }
Fariborz Jahaniand172e912009-08-17 19:04:50 +000012};
13
Anders Carlsson29f899d2010-01-27 03:03:08 +000014struct Q {
15 Q() { count++; }
16 ~Q() { count--; }
17};
18
19struct M : Q, P {
Fariborz Jahaniand172e912009-08-17 19:04:50 +000020 S s;
Fariborz Jahaniand172e912009-08-17 19:04:50 +000021 Q q;
Anders Carlsson29f899d2010-01-27 03:03:08 +000022 P p;
23 P p_arr[3];
24 Q q_arr[2][3];
Fariborz Jahaniand172e912009-08-17 19:04:50 +000025};
Anders Carlsson29f899d2010-01-27 03:03:08 +000026
Anna Zaks0f424b02013-02-25 19:51:03 +000027// CHECK: define i32 @_Z1fv() #0
Anders Carlsson29f899d2010-01-27 03:03:08 +000028int f() {
29 {
30 count = 1;
31 M a;
32 }
Fariborz Jahaniand172e912009-08-17 19:04:50 +000033
Anders Carlsson29f899d2010-01-27 03:03:08 +000034 // CHECK: ret i32 1
35 return count;
36}
Bill Wendlingc33fc4c2013-02-20 07:22:19 +000037
Bill Wendling2386bb12013-02-27 00:06:04 +000038// CHECK: attributes #0 = { nounwind{{.*}} }