1*c9bd88e6SHans Wennborg // RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - -fblocks
2*c9bd88e6SHans Wennborg // RUN: %clang_cc1 %s -triple %ms_abi_triple -fno-rtti -emit-llvm -o - -fblocks
35221a947SDavid Chisnall // Just test that this doesn't crash the compiler...
45221a947SDavid Chisnall 
55221a947SDavid Chisnall void func(void*);
65221a947SDavid Chisnall 
75221a947SDavid Chisnall struct Test
85221a947SDavid Chisnall {
useTest95221a947SDavid Chisnall   virtual void use() { func((void*)this); }
TestTest105221a947SDavid Chisnall   Test(Test&c) { func((void*)this); }
TestTest115221a947SDavid Chisnall   Test() { func((void*)this); }
125221a947SDavid Chisnall };
135221a947SDavid Chisnall 
145221a947SDavid Chisnall void useBlock(void (^)(void));
155221a947SDavid Chisnall 
main(void)165221a947SDavid Chisnall int main (void) {
175221a947SDavid Chisnall   __block Test t;
185221a947SDavid Chisnall   useBlock(^(void) { t.use(); });
195221a947SDavid Chisnall }
205221a947SDavid Chisnall 
21