[cfe-commits] r149930 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/Sema/vla.c

Eli Friedman eli.friedman at gmail.com
Mon Feb 6 15:29:57 PST 2012


Author: efriedma
Date: Mon Feb  6 17:29:57 2012
New Revision: 149930

URL: http://llvm.org/viewvc/llvm-project?rev=149930&view=rev
Log:
Fix a minor regression from my potentially-evaluated expression changes.


Modified:
    cfe/trunk/lib/Sema/SemaExpr.cpp
    cfe/trunk/test/Sema/vla.c

Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=149930&r1=149929&r2=149930&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Mon Feb  6 17:29:57 2012
@@ -9239,6 +9239,14 @@
     // Make sure we redo semantic analysis
     bool AlwaysRebuild() { return true; }
 
+    // Make sure we handle LabelStmts correctly.
+    // FIXME: This does the right thing, but maybe we need a more general
+    // fix to TreeTransform?
+    StmtResult TransformLabelStmt(LabelStmt *S) {
+      S->getDecl()->setStmt(0);
+      return BaseTransform::TransformLabelStmt(S);
+    }
+
     // We need to special-case DeclRefExprs referring to FieldDecls which
     // are not part of a member pointer formation; normal TreeTransforming
     // doesn't catch this case because of the way we represent them in the AST.

Modified: cfe/trunk/test/Sema/vla.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/vla.c?rev=149930&r1=149929&r2=149930&view=diff
==============================================================================
--- cfe/trunk/test/Sema/vla.c (original)
+++ cfe/trunk/test/Sema/vla.c Mon Feb  6 17:29:57 2012
@@ -60,3 +60,8 @@
 void pr5185(int a[*]) // expected-error {{variable length array must be bound in function definition}}
 {
 }
+
+// Make sure this isn't treated as an error
+int TransformBug(int a) {
+ return sizeof(*(int(*)[({ goto v; v: a;})]) 0); // expected-warning {{use of GNU statement expression extension}}
+}





More information about the cfe-commits mailing list