OldTy = OldTy->getScalarType();
NewTy = NewTy->getScalarType();
if (NewTy->isPointerTy() || OldTy->isPointerTy()) {
- if (NewTy->isPointerTy() && OldTy->isPointerTy()) {
- return cast<PointerType>(NewTy)->getPointerAddressSpace() ==
- cast<PointerType>(OldTy)->getPointerAddressSpace();
- }
+ if (NewTy->isPointerTy() && OldTy->isPointerTy())
+ return true;
if (NewTy->isIntegerTy() || OldTy->isIntegerTy())
return true;
return false;
%struct.struct_test_27.0.13 = type { i32, float, i64, i8, [4 x i32] }
-; Function Attrs: nounwind
+; Function Attrs: nounwind
define void @copy_struct([5 x i64] %in.coerce) {
; CHECK-LABEL: @copy_struct(
; CHECK-NOT: memcpy
ret void
}
-%union.anon = type { i32* }
-
-@g = common global i32 0, align 4
-@l = common addrspace(3) global i32 0, align 4
-
-; Make sure an illegal bitcast isn't introduced
-define void @pr27557() {
-; CHECK-LABEL: @pr27557(
-; CHECK: %[[CAST:.*]] = bitcast i32** {{.*}} to i32 addrspace(3)**
-; CHECK: store i32 addrspace(3)* @l, i32 addrspace(3)** %[[CAST]]
- %1 = alloca %union.anon, align 8
- %2 = bitcast %union.anon* %1 to i32**
- store i32* @g, i32** %2, align 8
- %3 = bitcast %union.anon* %1 to i32 addrspace(3)**
- store i32 addrspace(3)* @l, i32 addrspace(3)** %3, align 8
- ret void
-}