1// 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_ 49