From 688f2a1fc1ac38e8b7b602ab8afc69cdfa7492bf Mon Sep 17 00:00:00 2001 From: Andy Gibbs Date: Thu, 18 Apr 2013 16:49:37 +0000 Subject: [PATCH] Dropped the parentheses for #pragma message and its kin in the -E output generator. This was a suggestion by Jordan Rose since the documented format for these pragmas is without the parentheses. At the same time, I've increased test coverage too for the preprocessed output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179771 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/PrintPreprocessedOutput.cpp | 8 +++----- test/Lexer/pragma-message2.c | 19 +++++++++++++++++++ test/Lexer/pragma-operators.cpp | 2 +- 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 test/Lexer/pragma-message2.c diff --git a/lib/Frontend/PrintPreprocessedOutput.cpp b/lib/Frontend/PrintPreprocessedOutput.cpp index 61f2b9e288..6d7a1db737 100644 --- a/lib/Frontend/PrintPreprocessedOutput.cpp +++ b/lib/Frontend/PrintPreprocessedOutput.cpp @@ -419,13 +419,13 @@ void PrintPPOutputPPCallbacks::PragmaMessage(SourceLocation Loc, OS << Namespace << ' '; switch (Kind) { case PMK_Message: - OS << "message(\""; + OS << "message \""; break; case PMK_Warning: - OS << "warning(\""; + OS << "warning \""; break; case PMK_Error: - OS << "error(\""; + OS << "error \""; break; } @@ -440,8 +440,6 @@ void PrintPPOutputPPCallbacks::PragmaMessage(SourceLocation Loc, << (char)('0'+ ((Char >> 0) & 7)); } OS << '"'; - - OS << ')'; setEmittedDirectiveOnThisLine(); } diff --git a/test/Lexer/pragma-message2.c b/test/Lexer/pragma-message2.c new file mode 100644 index 0000000000..4b4078243b --- /dev/null +++ b/test/Lexer/pragma-message2.c @@ -0,0 +1,19 @@ +// RUN: %clang_cc1 -E -Werror -verify %s 2>&1 | FileCheck %s + +#pragma message "\\test" // expected-warning {{\test}} +// CHECK: #pragma message "\134test" + +#pragma message("\\test") // expected-warning {{\test}} +// CHECK: #pragma message "\134test" + +#pragma GCC warning "\"" "te" "st" "\"" // expected-warning {{"test"}} +// CHECK: #pragma GCC warning "\042test\042" + +#pragma GCC warning("\"" "te" "st" "\"") // expected-warning {{"test"}} +// CHECK: #pragma GCC warning "\042test\042" + +#pragma GCC error "" "[ ]" "" // expected-error {{[ ]}} +// CHECK: #pragma GCC error "[\011]" + +#pragma GCC error("" "[ ]" "") // expected-error {{[ ]}} +// CHECK: #pragma GCC error "[\011]" diff --git a/test/Lexer/pragma-operators.cpp b/test/Lexer/pragma-operators.cpp index 6a5a498a15..7402f9f8c4 100644 --- a/test/Lexer/pragma-operators.cpp +++ b/test/Lexer/pragma-operators.cpp @@ -32,6 +32,6 @@ B(foo) // CHECK: #pragma comment(lib, "libfoo") // CHECK: #pragma clang diagnostic ignored "-Wunused" // CHECK: #pragma clang diagnostic error "-Wunused" -// CHECK: #pragma message("\042Hello\042, world!") +// CHECK: #pragma message "\042Hello\042, world!" // CHECK: 0; int n = pragma_L pragma_u8 pragma_u pragma_U pragma_R pragma_UR pragma_hello 0; -- 2.40.0