llvm-project

Форк
0
/
c11-noreturn.c 
29 строк · 1.4 Кб
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
3

4
_Noreturn int f(void);
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}}
8

9
_Noreturn char c1; // expected-error {{'_Noreturn' can only appear on functions}}
10
char _Noreturn c2; // expected-error {{'_Noreturn' can only appear on functions}}
11

12
typedef _Noreturn int g(void); // expected-error {{'_Noreturn' can only appear on functions}}
13

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}}
17

18
struct GH56800 {
19
  _Noreturn int f1; // expected-error {{type name does not allow function specifier to be specified}}
20
};
21

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}}
25
    ;
26
}
27

28

29
// CHECK-EXT: '_Noreturn' is a C11 extension
30

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.