]> granicus.if.org Git - clang/commitdiff
fix folding of '*doubleArray'
authorNuno Lopes <nunoplopes@sapo.pt>
Wed, 19 Nov 2008 17:44:31 +0000 (17:44 +0000)
committerNuno Lopes <nunoplopes@sapo.pt>
Wed, 19 Nov 2008 17:44:31 +0000 (17:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59647 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/ExprConstant.cpp
test/CodeGen/exprs.c

index ef8e2d4c1305362d3a7f7348f7b0d2afafe53f48..6b71d1100438ba0262afd017254fb8e0ead7d230 100644 (file)
@@ -972,6 +972,9 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) {
 }
 
 bool FloatExprEvaluator::VisitUnaryOperator(const UnaryOperator *E) {
+  if (E->getOpcode() == UnaryOperator::Deref)
+    return false;
+
   if (!EvaluateFloat(E->getSubExpr(), Result, Info))
     return false;
 
index 275c988ab9bdda694b126131bf5dda577183c64e..07a9158744bc7c6c37c96446bfdf606c8afed896 100644 (file)
@@ -45,3 +45,10 @@ int ola() {
   if ((0, (int)a) & 2) { return 1; }
   return 2;
 }
+
+// this one shouldn't fold as well
+void eMaisUma() {
+       double t[1];
+       if (*t)
+               return;
+}