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.

llvm-svn: 179771
This commit is contained in:
Andy Gibbs 2013-04-18 16:49:37 +00:00
parent 65ff01bccb
commit 96d93907eb
3 changed files with 23 additions and 6 deletions

View File

@ -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();
}

View File

@ -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]"

View File

@ -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;