/* Test cases of structures with volatile fields declared register:
   should be allowed unless register name given but explicitly taking
   the address forbidden.  */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */

/* { dg-do compile } */

struct S { volatile int field; };

void
f (void)
{
  register struct S a;
  register struct S b[2];
  register struct S c __asm__("nosuchreg"); /* { dg-error "object with volatile field" "explicit reg name" } */
  &a; /* { dg-error "address of register" "explicit address" } */
  b; /* { dg-error "address of register" "implicit address" } */
}
