/* RUN: %clang_cc1 -fsyntax-only -verify -std=c90 -pedantic %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-warning{{address of an expression of type 'void'}} */
}

extern const void cv1;

const void *foo4 (void)
{
  return &cv1;
}

extern void cv2;
void *foo5 (void)
{
  return &cv2; /* expected-warning{{address of an expression of type 'void'}} */
}

typedef const void CVT;
extern CVT cv3;

const void *foo6 (void)
{
  return &cv3;
}

