1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -Wunknown-pragmas -verify %s
2559b7facde0aaa3d752fde2bc7ed6d764b3da501Dmitri Gribenko// RUN: %clang_cc1 -E %s | FileCheck --strict-whitespace %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}}
7559b7facde0aaa3d752fde2bc7ed6d764b3da501Dmitri Gribenko// CHECK: {{^}}#pragma foo bar{{$}}
85f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
9062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FP_CONTRACT ON
10062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FP_CONTRACT OFF
11062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FP_CONTRACT DEFAULT
126c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC FP_CONTRACT IN_BETWEEN  // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
13062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
144d8aac3778b40c161bed9964125948ee01c08821Chris Lattner#pragma STDC FENV_ACCESS ON          // expected-warning {{pragma STDC FENV_ACCESS ON is not supported, ignoring pragma}}
15062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FENV_ACCESS OFF
16062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC FENV_ACCESS DEFAULT
176c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC FENV_ACCESS IN_BETWEEN   // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
18062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
19062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC CX_LIMITED_RANGE ON
20062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC CX_LIMITED_RANGE OFF
21062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner#pragma STDC CX_LIMITED_RANGE DEFAULT
226c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC CX_LIMITED_RANGE IN_BETWEEN   // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
236c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner
246c5cf4a2e234923ab66127de0874a71cb6bfdd83Chris Lattner#pragma STDC CX_LIMITED_RANGE    // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}}
2584021556baceb76eedf7d44be8ba71d9b8cfaccePeter Collingbourne#pragma STDC CX_LIMITED_RANGE ON FULL POWER  // expected-warning {{expected end of directive in pragma}}
26062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
27f545be5552b6fd40a4c766fbf82dab0ab5305790Chris Lattner#pragma STDC SO_GREAT  // expected-warning {{unknown pragma in STDC namespace}}
28f545be5552b6fd40a4c766fbf82dab0ab5305790Chris Lattner#pragma STDC   // expected-warning {{unknown pragma in STDC namespace}}
29062f23246510393c19b537b68ec88b6a08ee8996Chris Lattner
30