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 Chisnallint main (void) { 175221a947SDavid Chisnall __block Test t; 185221a947SDavid Chisnall useBlock(^(void) { t.use(); }); 195221a947SDavid Chisnall } 205221a947SDavid Chisnall 21