1*5221a947SDavid Chisnall // RUN: %clang_cc1 %s -emit-llvm -o - -fblocks 2*5221a947SDavid Chisnall // Just test that this doesn't crash the compiler... 3*5221a947SDavid Chisnall 4*5221a947SDavid Chisnall void func(void*); 5*5221a947SDavid Chisnall 6*5221a947SDavid Chisnall struct Test 7*5221a947SDavid Chisnall { 8*5221a947SDavid Chisnall virtual void use() { func((void*)this); } 9*5221a947SDavid Chisnall Test(Test&c) { func((void*)this); } 10*5221a947SDavid Chisnall Test() { func((void*)this); } 11*5221a947SDavid Chisnall }; 12*5221a947SDavid Chisnall 13*5221a947SDavid Chisnall void useBlock(void (^)(void)); 14*5221a947SDavid Chisnall 15*5221a947SDavid Chisnall int main (void) { 16*5221a947SDavid Chisnall __block Test t; 17*5221a947SDavid Chisnall useBlock(^(void) { t.use(); }); 18*5221a947SDavid Chisnall } 19*5221a947SDavid Chisnall 20