From: Argyrios Kyrtzidis Date: Thu, 21 Apr 2011 17:11:44 +0000 (+0000) Subject: Have #pragma message not turn into error by -Werror, by default. Fixes rdar://9308989. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13d7dc04f3ae095c195446376df54fb2c8d4aead;p=clang Have #pragma message not turn into error by -Werror, by default. Fixes rdar://9308989. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129916 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Diagnostic.td b/include/clang/Basic/Diagnostic.td index 5ff132e130..688f8fa39e 100644 --- a/include/clang/Basic/Diagnostic.td +++ b/include/clang/Basic/Diagnostic.td @@ -18,6 +18,7 @@ def MAP_IGNORE : DiagMapping; def MAP_WARNING : DiagMapping; def MAP_ERROR : DiagMapping; def MAP_FATAL : DiagMapping; +def MAP_WARNING_NO_WERROR : DiagMapping; // Define the diagnostic classes. class DiagClass; @@ -75,6 +76,7 @@ class DefaultIgnore { DiagMapping DefaultMapping = MAP_IGNORE; } class DefaultWarn { DiagMapping DefaultMapping = MAP_WARNING; } class DefaultError { DiagMapping DefaultMapping = MAP_ERROR; } class DefaultFatal { DiagMapping DefaultMapping = MAP_FATAL; } +class DefaultWarnNoWerror { DiagMapping DefaultMapping = MAP_WARNING_NO_WERROR; } class NoSFINAE { bit SFINAE = 0; } class AccessControl { bit AccessControl = 1; } diff --git a/include/clang/Basic/DiagnosticLexKinds.td b/include/clang/Basic/DiagnosticLexKinds.td index d1a530948b..b30606c3e3 100644 --- a/include/clang/Basic/DiagnosticLexKinds.td +++ b/include/clang/Basic/DiagnosticLexKinds.td @@ -239,7 +239,8 @@ def err_pragma_push_pop_macro_malformed : Error< "pragma %0 requires a parenthesized string">; def warn_pragma_pop_macro_no_push : Warning< "pragma pop_macro could not pop '%0', no matching push_macro">; -def warn_pragma_message : Warning<"%0">, InGroup; +def warn_pragma_message : Warning<"%0">, + InGroup, DefaultWarnNoWerror; def warn_pragma_ignored : Warning<"unknown pragma ignored">, InGroup, DefaultIgnore; def ext_stdc_pragma_ignored : ExtWarn<"unknown pragma in STDC namespace">, diff --git a/test/Lexer/pragma-message.c b/test/Lexer/pragma-message.c index 710568cc2d..807edda66a 100644 --- a/test/Lexer/pragma-message.c +++ b/test/Lexer/pragma-message.c @@ -7,7 +7,7 @@ // OR // #pragma message messagestring // -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify -Werror %s #define STRING2(x) #x #define STRING(x) STRING2(x) #pragma message(":O I'm a message! " STRING(__LINE__)) // expected-warning {{:O I'm a message! 13}}