A few corrections to the expr constant work. Not enabled at the 
moment.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59435 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp
index bfe43c3..4ae7d90 100644
--- a/lib/CodeGen/CGExprConstant.cpp
+++ b/lib/CodeGen/CGExprConstant.cpp
@@ -859,7 +859,7 @@
 
         const llvm::Type *Type = 
           llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
-        const llvm::Type *DestType = C->getType();
+        const llvm::Type *DestType = getTypes().ConvertTypeForMem(E->getType());
         
         // FIXME: It's a little ugly that we need to cast to a pointer,
         // apply the GEP and then cast back.
@@ -872,7 +872,7 @@
       return llvm::ConstantExpr::getIntToPtr(Offset, 
                                              getTypes().ConvertType(type));
     }
-    case APValue::Int:
+    case APValue::Int: {
       llvm::Constant *C = llvm::ConstantInt::get(V.getInt());
       
       if (C->getType() == llvm::Type::Int1Ty) {
@@ -880,6 +880,7 @@
         C = llvm::ConstantExpr::getZExt(C, BoolTy);
       }
       return C;
+    }
     case APValue::Float:
       return llvm::ConstantFP::get(V.getFloat());
     case APValue::ComplexFloat: {