blob: e4389a4eeec83f06f2c00118b15189b364d8dab0 [file] [log] [blame]
Fariborz Jahanian564360b2010-06-24 00:08:06 +00001// RUN: %clang_cc1 %s -fblocks -triple x86_64-apple-darwin -emit-llvm -o - | FileCheck %s
2
3typedef void (^dispatch_block_t)(void);
4
5void dispatch_once(dispatch_block_t);
6
7class Zone {
8public:
9 Zone();
10 ~Zone();
11};
12
13Zone::Zone() {
14 dispatch_once(^{});
15 dispatch_once(^{});
16}
17
18Zone::~Zone() {
19 dispatch_once(^{});
20 dispatch_once(^{});
21}
22
23class X : public virtual Zone {
24 X();
25 ~X();
26};
27
28X::X() {
29 dispatch_once(^{});
30 dispatch_once(^{});
31};
32
33X::~X() {
34 dispatch_once(^{});
35 dispatch_once(^{});
36};
37
38
39// CHECK: define internal void @___ZN4ZoneC2Ev_block_invoke_
40// CHECK: define internal void @___ZN4ZoneC2Ev_block_invoke_
41// CHECK: define internal void @___ZN4ZoneD2Ev_block_invoke_
42// CHECK: define internal void @___ZN4ZoneD2Ev_block_invoke_
43// CHECK: define internal void @___ZN1XC1Ev_block_invoke_
44// CHECK: define internal void @___ZN1XC1Ev_block_invoke_
45// CHECK: define internal void @___ZN1XC2Ev_block_invoke_
46// CHECK: define internal void @___ZN1XC2Ev_block_invoke_
47// CHECK: define internal void @___ZN1XD2Ev_block_invoke_
48// CHECK: define internal void @___ZN1XD2Ev_block_invoke_