[cfe-commits] r55082 - in /cfe/trunk: lib/Parse/ParseExpr.cpp test/Parser/recovery-3.c

Eli Friedman eli.friedman at gmail.com
Wed Aug 20 15:07:38 PDT 2008


Author: efriedma
Date: Wed Aug 20 17:07:34 2008
New Revision: 55082

URL: http://llvm.org/viewvc/llvm-project?rev=55082&view=rev
Log:
Fix a minor crash-on-invalid.


Added:
    cfe/trunk/test/Parser/recovery-3.c
Modified:
    cfe/trunk/lib/Parse/ParseExpr.cpp

Modified: cfe/trunk/lib/Parse/ParseExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExpr.cpp?rev=55082&r1=55081&r2=55082&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/ParseExpr.cpp (original)
+++ cfe/trunk/lib/Parse/ParseExpr.cpp Wed Aug 20 17:07:34 2008
@@ -742,7 +742,7 @@
     ExprResult Expr = ParseAssignmentExpression();
     if (Expr.isInvalid) {
       SkipUntil(tok::r_paren);
-      return Res;
+      return ExprResult(true);
     }
 
     if (ExpectAndConsume(tok::comma, diag::err_expected_comma, "",tok::r_paren))

Added: cfe/trunk/test/Parser/recovery-3.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/recovery-3.c?rev=55082&view=auto

==============================================================================
--- cfe/trunk/test/Parser/recovery-3.c (added)
+++ cfe/trunk/test/Parser/recovery-3.c Wed Aug 20 17:07:34 2008
@@ -0,0 +1,9 @@
+// RUN: clang -fsyntax-only -verify -pedantic %s
+
+// Testcase derived from PR2692
+static char *f (char * (*g) (char **, int), char **p, ...) {
+    char *s;
+    va_list v;                              // expected-error {{identifier}}
+    s = g (p, __builtin_va_arg(v, int));    // expected-error {{identifier}} expected-warning {{extension}}
+}
+





More information about the cfe-commits mailing list