1 // RUN: %clang_cc1 -std=c11 -fsyntax-only -verify %s
2 // RUN: not %clang_cc1 -std=c99 -pedantic -fsyntax-only %s 2>&1 | FileCheck -check-prefix=CHECK-EXT %s
5 int _Noreturn
f(void); // expected-note {{previous}}
6 int f
_Noreturn(); // expected-error {{expected ';'}} expected-error 2{{}}
7 int f(void) _Noreturn
; // expected-error {{'_Noreturn' keyword must precede function declarator}}
9 _Noreturn
char c1
; // expected-error {{'_Noreturn' can only appear on functions}}
10 char _Noreturn c2
; // expected-error {{'_Noreturn' can only appear on functions}}
12 typedef _Noreturn
int g(void); // expected-error {{'_Noreturn' can only appear on functions}}
14 _Noreturn
int; // expected-error {{'_Noreturn' can only appear on functions}} expected-warning {{does not declare anything}}
15 _Noreturn
struct S
; // expected-error {{'_Noreturn' can only appear on functions}}
16 _Noreturn
enum E
{ e
}; // expected-error {{'_Noreturn' can only appear on functions}}
19 _Noreturn
int f1
; // expected-error {{type name does not allow function specifier to be specified}}
22 _Noreturn
int AlsoBad
; // expected-error {{'_Noreturn' can only appear on functions}}
23 void func(_Noreturn
int ThisToo
) { // expected-error {{'_Noreturn' can only appear on functions}}
24 for (_Noreturn
int i
= 0; i
< 10; ++i
) // expected-error {{'_Noreturn' can only appear on functions}}
29 // CHECK-EXT: '_Noreturn' is a C11 extension