Index: tools/clang/lib/CodeGen/CGExprCXX.cpp =================================================================== --- tools/clang/lib/CodeGen/CGExprCXX.cpp (revision 166609) +++ tools/clang/lib/CodeGen/CGExprCXX.cpp (working copy) @@ -1238,8 +1238,7 @@ llvm::BasicBlock *contBB = 0; llvm::Value *allocation = RV.getScalarVal(); - unsigned AS = - cast(allocation->getType())->getAddressSpace(); + unsigned AS = allocation->getType()->getPointerAddressSpace(); // The null-check means that the initializer is conditionally // evaluated. Index: tools/clang/lib/CodeGen/ItaniumCXXABI.cpp =================================================================== --- tools/clang/lib/CodeGen/ItaniumCXXABI.cpp (revision 166609) +++ tools/clang/lib/CodeGen/ItaniumCXXABI.cpp (working copy) @@ -304,7 +304,7 @@ CGBuilderTy &Builder = CGF.Builder; - unsigned AS = cast(Base->getType())->getAddressSpace(); + unsigned AS = Base->getType()->getPointerAddressSpace(); // Cast to char*. Base = Builder.CreateBitCast(Base, Builder.getInt8Ty()->getPointerTo(AS)); @@ -834,7 +835,7 @@ QualType ElementType) { assert(requiresArrayCookie(expr)); - unsigned AS = cast(NewPtr->getType())->getAddressSpace(); + unsigned AS = NewPtr->getType()->getPointerAddressSpace(); ASTContext &Ctx = getContext(); QualType SizeTy = Ctx.getSizeType(); @@ -876,7 +877,7 @@ CGF.Builder.CreateConstInBoundsGEP1_64(numElementsPtr, numElementsOffset.getQuantity()); - unsigned AS = cast(allocPtr->getType())->getAddressSpace(); + unsigned AS = allocPtr->getType()->getPointerAddressSpace(); numElementsPtr = CGF.Builder.CreateBitCast(numElementsPtr, CGF.SizeTy->getPointerTo(AS)); return CGF.Builder.CreateLoad(numElementsPtr); @@ -902,7 +903,7 @@ // NewPtr is a char*. - unsigned AS = cast(NewPtr->getType())->getAddressSpace(); + unsigned AS = NewPtr->getType()->getPointerAddressSpace(); ASTContext &Ctx = getContext(); CharUnits SizeSize = Ctx.getTypeSizeInChars(Ctx.getSizeType()); @@ -937,7 +938,7 @@ llvm::Value *numElementsPtr = CGF.Builder.CreateConstInBoundsGEP1_64(allocPtr, CGF.SizeSizeInBytes); - unsigned AS = cast(allocPtr->getType())->getAddressSpace(); + unsigned AS = allocPtr->getType()->getPointerAddressSpace(); numElementsPtr = CGF.Builder.CreateBitCast(numElementsPtr, CGF.SizeTy->getPointerTo(AS)); return CGF.Builder.CreateLoad(numElementsPtr); Index: tools/clang/lib/CodeGen/CodeGenFunction.cpp =================================================================== --- tools/clang/lib/CodeGen/CodeGenFunction.cpp (revision 166609) +++ tools/clang/lib/CodeGen/CodeGenFunction.cpp (working copy) @@ -1001,8 +1001,7 @@ arrayType = getContext().getAsArrayType(eltType); } - unsigned AddressSpace = - cast(addr->getType())->getAddressSpace(); + unsigned AddressSpace = addr->getType()->getPointerAddressSpace(); llvm::Type *BaseType = ConvertType(eltType)->getPointerTo(AddressSpace); addr = Builder.CreateBitCast(addr, BaseType, "array.begin"); } else { Index: tools/clang/lib/CodeGen/CGBuiltin.cpp =================================================================== --- tools/clang/lib/CodeGen/CGBuiltin.cpp (revision 166609) +++ tools/clang/lib/CodeGen/CGBuiltin.cpp (working copy) @@ -86,8 +86,7 @@ assert(CGF.getContext().hasSameUnqualifiedType(T, E->getArg(1)->getType())); llvm::Value *DestPtr = CGF.EmitScalarExpr(E->getArg(0)); - unsigned AddrSpace = - cast(DestPtr->getType())->getAddressSpace(); + unsigned AddrSpace = DestPtr->getType()->getPointerAddressSpace(); llvm::IntegerType *IntType = llvm::IntegerType::get(CGF.getLLVMContext(), @@ -121,8 +120,7 @@ assert(CGF.getContext().hasSameUnqualifiedType(T, E->getArg(1)->getType())); llvm::Value *DestPtr = CGF.EmitScalarExpr(E->getArg(0)); - unsigned AddrSpace = - cast(DestPtr->getType())->getAddressSpace(); + unsigned AddrSpace = DestPtr->getType()->getPointerAddressSpace(); llvm::IntegerType *IntType = llvm::IntegerType::get(CGF.getLLVMContext(), @@ -918,8 +916,7 @@ case Builtin::BI__sync_val_compare_and_swap_16: { QualType T = E->getType(); llvm::Value *DestPtr = EmitScalarExpr(E->getArg(0)); - unsigned AddrSpace = - cast(DestPtr->getType())->getAddressSpace(); + unsigned AddrSpace = DestPtr->getType()->getPointerAddressSpace(); llvm::IntegerType *IntType = llvm::IntegerType::get(getLLVMContext(), @@ -946,8 +943,7 @@ case Builtin::BI__sync_bool_compare_and_swap_16: { QualType T = E->getArg(1)->getType(); llvm::Value *DestPtr = EmitScalarExpr(E->getArg(0)); - unsigned AddrSpace = - cast(DestPtr->getType())->getAddressSpace(); + unsigned AddrSpace = DestPtr->getType()->getPointerAddressSpace(); llvm::IntegerType *IntType = llvm::IntegerType::get(getLLVMContext(), @@ -1044,8 +1040,7 @@ PtrTy->castAs()->getPointeeType().isVolatileQualified(); Value *Ptr = EmitScalarExpr(E->getArg(0)); - unsigned AddrSpace = - cast(Ptr->getType())->getAddressSpace(); + unsigned AddrSpace = Ptr->getType()->getPointerAddressSpace(); Ptr = Builder.CreateBitCast(Ptr, Int8Ty->getPointerTo(AddrSpace)); Value *NewVal = Builder.getInt8(1); Value *Order = EmitScalarExpr(E->getArg(1)); @@ -1131,8 +1126,7 @@ PtrTy->castAs()->getPointeeType().isVolatileQualified(); Value *Ptr = EmitScalarExpr(E->getArg(0)); - unsigned AddrSpace = - cast(Ptr->getType())->getAddressSpace(); + unsigned AddrSpace = Ptr->getType()->getPointerAddressSpace(); Ptr = Builder.CreateBitCast(Ptr, Int8Ty->getPointerTo(AddrSpace)); Value *NewVal = Builder.getInt8(0); Value *Order = EmitScalarExpr(E->getArg(1)); Index: tools/clang/lib/CodeGen/CGCXXABI.cpp =================================================================== --- tools/clang/lib/CodeGen/CGCXXABI.cpp (revision 166609) +++ tools/clang/lib/CodeGen/CGCXXABI.cpp (working copy) @@ -189,7 +190,7 @@ llvm::Value *&numElements, llvm::Value *&allocPtr, CharUnits &cookieSize) { // Derive a char* in the same address space as the pointer. - unsigned AS = cast(ptr->getType())->getAddressSpace(); + unsigned AS = ptr->getType()->getPointerAddressSpace(); llvm::Type *charPtrTy = CGF.Int8Ty->getPointerTo(AS); ptr = CGF.Builder.CreateBitCast(ptr, charPtrTy); Index: tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp =================================================================== --- tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp (revision 166609) +++ tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp (working copy) @@ -164,7 +164,7 @@ llvm::Value *MicrosoftCXXABI::readArrayCookieImpl(CodeGenFunction &CGF, llvm::Value *allocPtr, CharUnits cookieSize) { - unsigned AS = cast(allocPtr->getType())->getAddressSpace(); + unsigned AS = allocPtr->getType()->getPointerAddressSpace(); llvm::Value *numElementsPtr = CGF.Builder.CreateBitCast(allocPtr, CGF.SizeTy->getPointerTo(AS)); return CGF.Builder.CreateLoad(numElementsPtr); @@ -184,7 +184,7 @@ llvm::Value *cookiePtr = newPtr; // Write the number of elements into the appropriate slot. - unsigned AS = cast(newPtr->getType())->getAddressSpace(); + unsigned AS = newPtr->getType()->getPointerAddressSpace(); llvm::Value *numElementsPtr = CGF.Builder.CreateBitCast(cookiePtr, CGF.SizeTy->getPointerTo(AS)); CGF.Builder.CreateStore(numElements, numElementsPtr); Index: tools/dragonegg/src/Convert.cpp =================================================================== --- tools/dragonegg/src/Convert.cpp (revision 166609) +++ tools/dragonegg/src/Convert.cpp (working copy) @@ -164,7 +164,7 @@ MemRef DisplaceLocationByUnits(MemRef Loc, int32_t Offset, LLVMBuilder &Builder) { // Convert to a byte pointer and displace by the offset. - unsigned AddrSpace = cast(Loc.Ptr->getType())->getAddressSpace(); + unsigned AddrSpace = Loc.Ptr->getType()->getPointerAddressSpace(); Type *UnitPtrTy = GetUnitPointerType(Context, AddrSpace); Value *Ptr = Builder.CreateBitCast(Loc.Ptr, UnitPtrTy); Ptr = Builder.CreateConstInBoundsGEP1_32(Ptr, Offset, @@ -177,7 +177,7 @@ /// LoadFromLocation - Load a value of the given type from a memory location. static LoadInst *LoadFromLocation(MemRef Loc, Type *Ty, MDNode *AliasTag, LLVMBuilder &Builder) { - unsigned AddrSpace = cast(Loc.Ptr->getType())->getAddressSpace(); + unsigned AddrSpace = Loc.Ptr->getType()->getPointerAddressSpace(); Value *Ptr = Builder.CreateBitCast(Loc.Ptr, Ty->getPointerTo(AddrSpace)); LoadInst *LI = Builder.CreateAlignedLoad(Ptr, Loc.getAlignment(), Loc.Volatile); @@ -190,7 +190,7 @@ static StoreInst *StoreToLocation(Value *V, MemRef Loc, MDNode *AliasTag, LLVMBuilder &Builder) { Type *Ty = V->getType(); - unsigned AddrSpace = cast(Loc.Ptr->getType())->getAddressSpace(); + unsigned AddrSpace = Loc.Ptr->getType()->getPointerAddressSpace(); Value *Ptr = Builder.CreateBitCast(Loc.Ptr, Ty->getPointerTo(AddrSpace)); StoreInst *SI = Builder.CreateAlignedStore(V, Ptr, Loc.getAlignment(), Loc.Volatile);