47 lines · cpp
1// RUN: %clang_cc1 %s -fblocks -triple x86_64-apple-darwin -emit-llvm -o - | FileCheck %s2 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-LABEL: define internal void @___ZN4ZoneC2Ev_block_invoke40// CHECK-LABEL: define internal void @___ZN4ZoneC2Ev_block_invoke_41// CHECK-LABEL: define internal void @___ZN4ZoneD2Ev_block_invoke42// CHECK-LABEL: define internal void @___ZN4ZoneD2Ev_block_invoke_43// CHECK-LABEL: define internal void @___ZN1XC2Ev_block_invoke44// CHECK-LABEL: define internal void @___ZN1XC2Ev_block_invoke_45// CHECK-LABEL: define internal void @___ZN1XD2Ev_block_invoke46// CHECK-LABEL: define internal void @___ZN1XD2Ev_block_invoke_47