pragma_unknown.c revision 4d8aac3778b40c161bed9964125948ee01c08821
1af7cdf45da4925f788e87a4c318ee67404646088Chris Lattner// RUN: clang-cc -E %s | grep '#pragma foo bar' &&
2f545be5552b6fd40a4c766fbf82dab0ab5305790Chris Lattner// RUN: clang-cc -fsyntax-only -Wunknown-pragmas -verify %s
35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// GCC doesn't expand macro args for unrecognized pragmas.
55f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#define bar xX
6af7cdf45da4925f788e87a4c318ee67404646088Chris Lattner#pragma foo bar   // expected-warning {{unknown pragma ignored}}
75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
8062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FP_CONTRACT ON
9062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FP_CONTRACT OFF
10062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FP_CONTRACT DEFAULT
116c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC FP_CONTRACT IN_BETWEEN  // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
12062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
134d8aac3778b40c161bed9964125948ee01c08821Chris Lattner#pragma STDC FENV_ACCESS ON          // expected-warning {{pragma STDC FENV_ACCESS ON is not supported, ignoring pragma}}
14062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FENV_ACCESS OFF
15062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FENV_ACCESS DEFAULT
166c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC FENV_ACCESS IN_BETWEEN   // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
17062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
18062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC CX_LIMITED_RANGE ON
19062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC CX_LIMITED_RANGE OFF
20062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC CX_LIMITED_RANGE DEFAULT
216c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC CX_LIMITED_RANGE IN_BETWEEN   // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
226c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner
236c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC CX_LIMITED_RANGE    // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
246c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC CX_LIMITED_RANGE ON FULL POWER  // expected-warning {{expected end of macro in STDC pragma}}
25062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
26f545be5552b6fd40a4c766fbf82dab0ab5305790Chris Lattner#pragma STDC SO_GREAT  // expected-warning {{unknown pragma in STDC namespace}}
27f545be5552b6fd40a4c766fbf82dab0ab5305790Chris Lattner#pragma STDC   // expected-warning {{unknown pragma in STDC namespace}}
28062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
29