1 /* RUN: %clang_cc1 -fsyntax-only -verify -std=c90 -pedantic %s 2 */ 3 void 4 foo (void) 5 { 6 struct b; 7 struct b* x = 0; 8 struct b* y = &*x; 9 } 10 11 void foo2 (void) 12 { 13 typedef int (*arrayptr)[]; 14 arrayptr x = 0; 15 arrayptr y = &*x; 16 } 17 18 void foo3 (void) 19 { 20 void* x = 0; 21 void* y = &*x; /* expected-warning{{address of an expression of type 'void'}} */ 22 } 23 24 extern const void cv1; 25 26 const void *foo4 (void) 27 { 28 return &cv1; 29 } 30 31 extern void cv2; 32 void *foo5 (void) 33 { 34 return &cv2; /* expected-warning{{address of an expression of type 'void'}} */ 35 } 36 37 typedef const void CVT; 38 extern CVT cv3; 39 40 const void *foo6 (void) 41 { 42 return &cv3; 43 } 44 45