[llvm-commits] [dragonegg] r132838 - /dragonegg/trunk/src/Convert.cpp

Duncan Sands baldrick at free.fr
Fri Jun 10 01:13:09 PDT 2011


Author: baldrick
Date: Fri Jun 10 03:13:09 2011
New Revision: 132838

URL: http://llvm.org/viewvc/llvm-project?rev=132838&view=rev
Log:
In gcc-4.5 the base pointer can have type sizetype.

Modified:
    dragonegg/trunk/src/Convert.cpp

Modified: dragonegg/trunk/src/Convert.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Convert.cpp?rev=132838&r1=132837&r2=132838&view=diff
==============================================================================
--- dragonegg/trunk/src/Convert.cpp (original)
+++ dragonegg/trunk/src/Convert.cpp Fri Jun 10 03:13:09 2011
@@ -5985,7 +5985,12 @@
       Delta = EmitRegister(addr.base);
   } else {
     assert(addr.base && "TARGET_MEM_REF has neither base nor symbol!");
-    Ref = LValue(EmitRegister(addr.base), 1);
+    Value *Base = EmitRegister(addr.base);
+    // The type of BASE is sizetype or a pointer type.  Convert sizetype to i8*.
+    // TODO: In mainline BASE always has pointer type.
+    if (!isa<PointerType>(Base->getType()))
+      Base = Builder.CreateIntToPtr(Base, GetUnitPointerType(Context));
+    Ref = LValue(Base, 1);
   }
 
   if (addr.index) {





More information about the llvm-commits mailing list