Author: lattner Date: Sat Jul 9 22:38:35 2011 New Revision: 134860 URL: http://llvm.org/viewvc/llvm-project?rev=134860&view=rev Log: when emitting pointer load from an lvalue or storing to an lvalue, do an explicit bitcast to whatever ConvertType produces. This will go with the next patch.
Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=134860&r1=134859&r2=134860&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGExpr.cpp (original) +++ cfe/trunk/lib/CodeGen/CGExpr.cpp Sat Jul 9 22:38:35 2011 @@ -756,6 +756,10 @@ return Builder.CreateTrunc(Value, Builder.getInt1Ty(), "tobool"); } + // If this is a pointer r-value, make sure that it has the right scalar type. + if (isa<llvm::PointerType>(Value->getType())) + return Builder.CreateBitCast(Value, ConvertType(Ty)); + return Value; } @@ -764,6 +768,14 @@ QualType Ty, llvm::MDNode *TBAAInfo) { Value = EmitToMemory(Value, Ty); + + if (isa<llvm::PointerType>(Value->getType())) { + llvm::Type *EltTy = + cast<llvm::PointerType>(Addr->getType())->getElementType(); + if (EltTy != Value->getType()) + Value = Builder.CreateBitCast(Value, EltTy); + } + llvm::StoreInst *Store = Builder.CreateStore(Value, Addr, Volatile); if (Alignment) Store->setAlignment(Alignment); _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits