[llvm-branch-commits] [cfe-branch] r113273 - in /cfe/branches/Apple/williamson: lib/CodeGen/CGExprScalar.cpp test/CodeGen/_Bool-conversion.c

Daniel Dunbar daniel at zuster.org
Tue Sep 7 13:35:23 PDT 2010


Author: ddunbar
Date: Tue Sep  7 15:35:23 2010
New Revision: 113273

URL: http://llvm.org/viewvc/llvm-project?rev=113273&view=rev
Log:
Merge r112943:
--
Author: Daniel Dunbar <daniel at zuster.org>
Date:   Fri Sep 3 02:07:00 2010 +0000

    IRgen: Fix silly thinko in r112021, which was generating code for the same expr
    twice. This showed up as an assert on the odd test case because we generated the
    decl map entry twice.

Modified:
    cfe/branches/Apple/williamson/lib/CodeGen/CGExprScalar.cpp
    cfe/branches/Apple/williamson/test/CodeGen/_Bool-conversion.c

Modified: cfe/branches/Apple/williamson/lib/CodeGen/CGExprScalar.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/Apple/williamson/lib/CodeGen/CGExprScalar.cpp?rev=113273&r1=113272&r2=113273&view=diff
==============================================================================
--- cfe/branches/Apple/williamson/lib/CodeGen/CGExprScalar.cpp (original)
+++ cfe/branches/Apple/williamson/lib/CodeGen/CGExprScalar.cpp Tue Sep  7 15:35:23 2010
@@ -1042,7 +1042,7 @@
 
     // Handle conversion to bool correctly.
     if (DestTy->isBooleanType())
-      return EmitScalarConversion(Visit(E), E->getType(), DestTy);
+      return EmitScalarConversion(Src, E->getType(), DestTy);
 
     return Builder.CreatePtrToInt(Src, ConvertType(DestTy));
   }

Modified: cfe/branches/Apple/williamson/test/CodeGen/_Bool-conversion.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/Apple/williamson/test/CodeGen/_Bool-conversion.c?rev=113273&r1=113272&r2=113273&view=diff
==============================================================================
--- cfe/branches/Apple/williamson/test/CodeGen/_Bool-conversion.c (original)
+++ cfe/branches/Apple/williamson/test/CodeGen/_Bool-conversion.c Tue Sep  7 15:35:23 2010
@@ -6,3 +6,7 @@
 
 static _Bool f0_0(void *a0) { return (_Bool) a0; }
 int f0() { return f0_0((void*) 0x2); }
+
+_Bool f1(void) {
+  return (_Bool) ({ void (*x)(); x = 0; });
+}





More information about the llvm-branch-commits mailing list