1// RUN: %clang_cc1 -fsyntax-only -Wunknown-pragmas -verify %s
2// RUN: %clang_cc1 -E %s | FileCheck --strict-whitespace %s
3
4// GCC doesn't expand macro args for unrecognized pragmas.
5#define bar xX
6#pragma foo bar   // expected-warning {{unknown pragma ignored}}
7// CHECK: {{^}}#pragma foo bar{{$}}
8
9#pragma STDC FP_CONTRACT ON
10#pragma STDC FP_CONTRACT OFF
11#pragma STDC FP_CONTRACT DEFAULT
12#pragma STDC FP_CONTRACT IN_BETWEEN  // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
13
14#pragma STDC FENV_ACCESS ON          // expected-warning {{pragma STDC FENV_ACCESS ON is not supported, ignoring pragma}}
15#pragma STDC FENV_ACCESS OFF
16#pragma STDC FENV_ACCESS DEFAULT
17#pragma STDC FENV_ACCESS IN_BETWEEN   // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
18
19#pragma STDC CX_LIMITED_RANGE ON
20#pragma STDC CX_LIMITED_RANGE OFF
21#pragma STDC CX_LIMITED_RANGE DEFAULT
22#pragma STDC CX_LIMITED_RANGE IN_BETWEEN   // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
23
24#pragma STDC CX_LIMITED_RANGE    // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
25#pragma STDC CX_LIMITED_RANGE ON FULL POWER  // expected-warning {{expected end of directive in pragma}}
26
27#pragma STDC SO_GREAT  // expected-warning {{unknown pragma in STDC namespace}}
28#pragma STDC   // expected-warning {{unknown pragma in STDC namespace}}
29
30