diff options
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGExprScalar.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenTypes.cpp | 8 |
2 files changed, 4 insertions, 8 deletions
diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index 9497ece6fb..cc7d8e97e4 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/lib/CodeGen/CGExprScalar.cpp @@ -213,7 +213,7 @@ public: return EmitSizeAlignOf(E->getSubExpr()->getType(), E->getType(), false); } Value *EmitSizeAlignOf(QualType TypeToSize, QualType RetType, - bool isSizeOf); + bool isSizeOf); Value *VisitUnaryReal (const UnaryOperator *E); Value *VisitUnaryImag (const UnaryOperator *E); Value *VisitUnaryExtension(const UnaryOperator *E) { @@ -537,7 +537,7 @@ Value *ScalarExprEmitter::VisitImplicitCastExpr(const ImplicitCastExpr *E) { } else if (E->getType()->isReferenceType()) { assert(cast<ReferenceType>(E->getType().getCanonicalType())-> - getReferenceeType() == + getPointeeType() == Op->getType().getCanonicalType() && "Incompatible types!"); return EmitLValue(Op).getAddress(); diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp index a16543eebe..4e8d46c7dd 100644 --- a/lib/CodeGen/CodeGenTypes.cpp +++ b/lib/CodeGen/CodeGenTypes.cpp @@ -206,15 +206,11 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) { ConvertType(cast<ComplexType>(Ty).getElementType()); return llvm::StructType::get(EltTy, EltTy, NULL); } + case Type::Reference: case Type::Pointer: { - const PointerType &P = cast<PointerType>(Ty); - QualType ETy = P.getPointeeType(); + QualType ETy = cast<PointerLikeType>(Ty).getPointeeType(); return llvm::PointerType::get(ConvertType(ETy), ETy.getAddressSpace()); } - case Type::Reference: { - const ReferenceType &R = cast<ReferenceType>(Ty); - return llvm::PointerType::getUnqual(ConvertType(R.getReferenceeType())); - } case Type::VariableArray: { const VariableArrayType &A = cast<VariableArrayType>(Ty); |