| // RUN: %clang_cc1 -fsyntax-only -Wunknown-pragmas -verify %s |
| // RUN: %clang_cc1 -E %s 2>&1 | FileCheck --strict-whitespace %s |
| |
| // GCC doesn't expand macro args for unrecognized pragmas. |
| #define bar xX |
| #pragma foo bar // expected-warning {{unknown pragma ignored}} |
| // CHECK-NOT: unknown pragma in STDC namespace |
| // CHECK: {{^}}#pragma foo bar{{$}} |
| |
| #pragma STDC FP_CONTRACT ON |
| #pragma STDC FP_CONTRACT OFF |
| #pragma STDC FP_CONTRACT DEFAULT |
| #pragma STDC FP_CONTRACT IN_BETWEEN // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}} |
| // CHECK: {{^}}#pragma STDC FP_CONTRACT ON{{$}} |
| // CHECK: {{^}}#pragma STDC FP_CONTRACT OFF{{$}} |
| // CHECK: {{^}}#pragma STDC FP_CONTRACT DEFAULT{{$}} |
| // CHECK: {{^}}#pragma STDC FP_CONTRACT IN_BETWEEN{{$}} |
| |
| #pragma STDC CX_LIMITED_RANGE ON |
| #pragma STDC CX_LIMITED_RANGE OFF |
| #pragma STDC CX_LIMITED_RANGE DEFAULT |
| #pragma STDC CX_LIMITED_RANGE IN_BETWEEN // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}} |
| // CHECK: {{^}}#pragma STDC CX_LIMITED_RANGE ON{{$}} |
| // CHECK: {{^}}#pragma STDC CX_LIMITED_RANGE OFF{{$}} |
| // CHECK: {{^}}#pragma STDC CX_LIMITED_RANGE DEFAULT{{$}} |
| // CHECK: {{^}}#pragma STDC CX_LIMITED_RANGE IN_BETWEEN{{$}} |
| |
| #pragma STDC CX_LIMITED_RANGE // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}} |
| #pragma STDC CX_LIMITED_RANGE ON FULL POWER // expected-warning {{expected end of directive in pragma}} |
| // CHECK: {{^}}#pragma STDC CX_LIMITED_RANGE{{$}} |
| // CHECK: {{^}}#pragma STDC CX_LIMITED_RANGE ON FULL POWER{{$}} |
| |
| #pragma STDC SO_GREAT // expected-warning {{unknown pragma in STDC namespace}} |
| #pragma STDC // expected-warning {{unknown pragma in STDC namespace}} |
| // CHECK: {{^}}#pragma STDC SO_GREAT{{$}} |
| // CHECK: {{^}}#pragma STDC{{$}} |