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