diff options
author | Chris Lattner <sabre@nondot.org> | 2009-05-12 18:21:11 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-05-12 18:21:11 +0000 |
commit | b61448d4902f28d286e0b2fcb5ff72aea1b3404b (patch) | |
tree | 3f7ea703282a3fee043b50f9d503b1178e34ba39 | |
parent | 0f44d81a4cc8d6238ae9165ad566b564a76715e3 (diff) | |
download | bcm5719-llvm-b61448d4902f28d286e0b2fcb5ff72aea1b3404b.tar.gz bcm5719-llvm-b61448d4902f28d286e0b2fcb5ff72aea1b3404b.zip |
accept "#pragma clang foo" where we accept "#pragma GCC foo".
llvm-svn: 71572
-rw-r--r-- | clang/lib/Lex/Pragma.cpp | 13 | ||||
-rw-r--r-- | clang/test/Lexer/constants.c | 4 |
2 files changed, 14 insertions, 3 deletions
diff --git a/clang/lib/Lex/Pragma.cpp b/clang/lib/Lex/Pragma.cpp index bde3fbc0e87..ce5934134f4 100644 --- a/clang/lib/Lex/Pragma.cpp +++ b/clang/lib/Lex/Pragma.cpp @@ -666,6 +666,8 @@ struct PragmaSTDC_UnknownHandler : public PragmaHandler { void Preprocessor::RegisterBuiltinPragmas() { AddPragmaHandler(0, new PragmaOnceHandler(getIdentifierInfo("once"))); AddPragmaHandler(0, new PragmaMarkHandler(getIdentifierInfo("mark"))); + + // #pragma GCC ... AddPragmaHandler("GCC", new PragmaPoisonHandler(getIdentifierInfo("poison"))); AddPragmaHandler("GCC", new PragmaSystemHeaderHandler( getIdentifierInfo("system_header"))); @@ -673,7 +675,16 @@ void Preprocessor::RegisterBuiltinPragmas() { getIdentifierInfo("dependency"))); AddPragmaHandler("GCC", new PragmaDiagnosticHandler( getIdentifierInfo("diagnostic"))); - + // #pragma clang ... + AddPragmaHandler("clang", new PragmaPoisonHandler( + getIdentifierInfo("poison"))); + AddPragmaHandler("clang", new PragmaSystemHeaderHandler( + getIdentifierInfo("system_header"))); + AddPragmaHandler("clang", new PragmaDependencyHandler( + getIdentifierInfo("dependency"))); + AddPragmaHandler("clang", new PragmaDiagnosticHandler( + getIdentifierInfo("diagnostic"))); + AddPragmaHandler("STDC", new PragmaSTDC_FP_CONTRACTHandler( getIdentifierInfo("FP_CONTRACT"))); AddPragmaHandler("STDC", new PragmaSTDC_FENV_ACCESSHandler( diff --git a/clang/test/Lexer/constants.c b/clang/test/Lexer/constants.c index c0355314b26..fcb6de95451 100644 --- a/clang/test/Lexer/constants.c +++ b/clang/test/Lexer/constants.c @@ -25,11 +25,11 @@ t', }; -#pragma GCC diagnostic ignored "-Wmultichar" +#pragma clang diagnostic ignored "-Wmultichar" char d = 'df'; // no warning. char e = 'abcd'; // still warn: expected-warning {{multi-character character constant}} -#pragma GCC diagnostic ignored "-Wfour-char-constants" +#pragma clang diagnostic ignored "-Wfour-char-constants" char f = 'abcd'; // ignored. |