/* RUN: %clang_cc1 -fsyntax-only -std=c89 -Wimplicit-int %s -verify -Wno-strict-prototypes
   RUN: %clang_cc1 -fsyntax-only -std=c99 %s -verify=ext -Wno-strict-prototypes
   RUN: %clang_cc1 -fsyntax-only -std=c2x %s -verify=unsupported
*/

foo(void) { /* expected-warning {{type specifier missing, defaults to 'int'}} \
               ext-error {{type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int}} \
               unsupported-error {{a type specifier is required for all declarations}} */
  return 0;
}

y;  /* expected-warning {{type specifier missing, defaults to 'int'}} \
       ext-error {{type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int}} \
       unsupported-error {{a type specifier is required for all declarations}} */

/* rdar://6131634 */
void f((x));  /* expected-warning {{type specifier missing, defaults to 'int'}} \
                 ext-error {{type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int}} \
                 unsupported-error {{a type specifier is required for all declarations}} */

/* PR3702 */
#define PAD(ms10) { \
    register i;     \
}

#define ILPAD() PAD((NROW - tt.tt_row) * 10) /* 1 ms per char */

void
h19_insline(n)  /* ext-error {{parameter 'n' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int}} \
                   unsupported-error {{unknown type name 'n'}} */
{
  ILPAD();  /* expected-warning {{type specifier missing, defaults to 'int'}} \
               ext-error {{type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int}} \
               unsupported-error {{a type specifier is required for all declarations}} */

}

struct foo {
 __extension__ __attribute__((packed)) x : 4; /* expected-warning {{type specifier missing, defaults to 'int'}} \
                                                 ext-error {{type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int}} \
                                                 unsupported-error {{unknown type name 'x'}} */

};
