[cfe-commits] r125616 - in /cfe/trunk: include/clang/Basic/DiagnosticLexKinds.td lib/Lex/Lexer.cpp test/Lexer/rdar-8914293.c

Argyrios Kyrtzidis akyrtzi at gmail.com
Tue Feb 15 15:45:31 PST 2011


Author: akirtzidis
Date: Tue Feb 15 17:45:31 2011
New Revision: 125616

URL: http://llvm.org/viewvc/llvm-project?rev=125616&view=rev
Log:
Warn for missing terminating " or ' instead of error for gcc compatibility. Fixed rdar://8914293.

Added:
    cfe/trunk/test/Lexer/rdar-8914293.c
Modified:
    cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
    cfe/trunk/lib/Lex/Lexer.cpp

Modified: cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td?rev=125616&r1=125615&r2=125616&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td Tue Feb 15 17:45:31 2011
@@ -45,8 +45,8 @@
 
 def ext_token_used : Extension<"extension used">;
 
-def err_unterminated_string : Error<"missing terminating '\"' character">;
-def err_unterminated_char : Error<"missing terminating ' character">;
+def warn_unterminated_string : Warning<"missing terminating '\"' character">;
+def warn_unterminated_char : Warning<"missing terminating ' character">;
 def err_empty_character : Error<"empty character constant">;
 def err_unterminated_block_comment : Error<"unterminated /* comment">;
 def err_invalid_character_to_charify : Error<

Modified: cfe/trunk/lib/Lex/Lexer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Lexer.cpp?rev=125616&r1=125615&r2=125616&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/Lexer.cpp (original)
+++ cfe/trunk/lib/Lex/Lexer.cpp Tue Feb 15 17:45:31 2011
@@ -1162,7 +1162,7 @@
       if (C == 0 && PP && PP->isCodeCompletionFile(FileLoc))
         PP->CodeCompleteNaturalLanguage();
       else if (!isLexingRawMode() && !Features.AsmPreprocessor)
-        Diag(BufferPtr, diag::err_unterminated_string);
+        Diag(BufferPtr, diag::warn_unterminated_string);
       FormTokenWithChars(Result, CurPtr-1, tok::unknown);
       return;
     }
@@ -1241,7 +1241,7 @@
       if (C == 0 && PP && PP->isCodeCompletionFile(FileLoc))
         PP->CodeCompleteNaturalLanguage();
       else if (!isLexingRawMode() && !Features.AsmPreprocessor)
-        Diag(BufferPtr, diag::err_unterminated_char);
+        Diag(BufferPtr, diag::warn_unterminated_char);
       FormTokenWithChars(Result, CurPtr-1, tok::unknown);
       return;
     } else if (C == 0) {

Added: cfe/trunk/test/Lexer/rdar-8914293.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/rdar-8914293.c?rev=125616&view=auto
==============================================================================
--- cfe/trunk/test/Lexer/rdar-8914293.c (added)
+++ cfe/trunk/test/Lexer/rdar-8914293.c Tue Feb 15 17:45:31 2011
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+// rdar://8914293
+// We want be compatible with gcc and warn, not error.
+
+/* expected-warning {{missing terminating}} */ #define FOO "foo
+/* expected-warning {{missing terminating}} */ #define KOO 'k





More information about the cfe-commits mailing list