// RUN: clang -fsyntax-only -verify -std=c90 %s void foo (void) { struct b; struct b* x = 0; struct b* y = &*x; } void foo2 (void) { typedef int (*arrayptr)[]; arrayptr x = 0; arrayptr y = &*x; } void foo3 (void) { void* x = 0; void* y = &*x; // expected-error{{address expression must be an lvalue or a function designator}} } extern const void cv1; const void *foo4 (void) { return &cv1; } extern void cv2; void *foo5 (void) { return &cv2; // expected-error{{address expression must be an lvalue or a function designator}} } typedef const void CVT; extern CVT cv3; const void *foo6 (void) { return &cv3; }