// 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 FENV_ACCESS ON // expected-warning {{pragma STDC FENV_ACCESS ON is not supported, ignoring pragma}} #pragma STDC FENV_ACCESS OFF #pragma STDC FENV_ACCESS DEFAULT #pragma STDC FENV_ACCESS IN_BETWEEN // expected-warning {{expected 'ON' or 'OFF' or 'DEFAULT' in pragma}} // CHECK: {{^}}#pragma STDC FENV_ACCESS ON{{$}} // CHECK: {{^}}#pragma STDC FENV_ACCESS OFF{{$}} // CHECK: {{^}}#pragma STDC FENV_ACCESS DEFAULT{{$}} // CHECK: {{^}}#pragma STDC FENV_ACCESS 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{{$}} |