brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 0ec9db1 Raw
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