1de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith// RUN: %clang_cc1 -std=c11 -fsyntax-only -verify %s
2de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith// RUN: not %clang_cc1 -pedantic -fsyntax-only %s 2>&1 | FileCheck -check-prefix=CHECK-EXT %s
3de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith
4de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith_Noreturn int f();
5de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smithint _Noreturn f(); // expected-note {{previous}}
6de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smithint f _Noreturn(); // expected-error {{expected ';'}} expected-error 2{{}}
7c7f811638f8603fa373d2be724e8b1c8ba51ad75Richard Smithint f() _Noreturn; // expected-error {{expected ';'}} expected-warning {{does not declare anything}} expected-error {{'_Noreturn' can only appear on functions}}
8de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith
9de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith_Noreturn char c1; // expected-error {{'_Noreturn' can only appear on functions}}
10de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smithchar _Noreturn c2; // expected-error {{'_Noreturn' can only appear on functions}}
11de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith
12de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smithtypedef _Noreturn int g(); // expected-error {{'_Noreturn' can only appear on functions}}
13de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith
14c7f811638f8603fa373d2be724e8b1c8ba51ad75Richard Smith_Noreturn int; // expected-error {{'_Noreturn' can only appear on functions}} expected-warning {{does not declare anything}}
15c7f811638f8603fa373d2be724e8b1c8ba51ad75Richard Smith_Noreturn struct S; // expected-error {{'_Noreturn' can only appear on functions}}
16c7f811638f8603fa373d2be724e8b1c8ba51ad75Richard Smith_Noreturn enum E { e }; // expected-error {{'_Noreturn' can only appear on functions}}
17c7f811638f8603fa373d2be724e8b1c8ba51ad75Richard Smith
18de03c15ad92b44a4be11507ca2501bb9dd014dceRichard Smith// CHECK-EXT: _Noreturn functions are a C11-specific feature
19