@@ -2986,7 +2986,6 @@ MicrosoftCXXABI::EmitMemberFunctionPointer(const CXXMethodDecl *MD) {
29862986 NonVirtualBaseAdjustment -= getContext ().getOffsetOfBaseWithVBPtr (RD);
29872987
29882988 // The rest of the fields are common with data member pointers.
2989- FirstField = llvm::ConstantExpr::getBitCast (FirstField, CGM.VoidPtrTy );
29902989 return EmitFullMemberPointer (FirstField, /* IsMemberFunction=*/ true , RD,
29912990 NonVirtualBaseAdjustment, VBTableIndex);
29922991}
@@ -3981,7 +3980,7 @@ llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) {
39813980
39823981 // Check to see if we've already declared this TypeDescriptor.
39833982 if (llvm::GlobalVariable *GV = CGM.getModule ().getNamedGlobal (MangledName))
3984- return llvm::ConstantExpr::getBitCast (GV, CGM. Int8PtrTy ) ;
3983+ return GV ;
39853984
39863985 // Note for the future: If we would ever like to do deferred emission of
39873986 // RTTI, check if emitting vtables opportunistically need any adjustment.
@@ -4007,7 +4006,7 @@ llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) {
40074006 MangledName);
40084007 if (Var->isWeakForLinker ())
40094008 Var->setComdat (CGM.getModule ().getOrInsertComdat (Var->getName ()));
4010- return llvm::ConstantExpr::getBitCast ( Var, CGM. Int8PtrTy ) ;
4009+ return Var;
40114010}
40124011
40134012// / Gets or a creates a Microsoft CompleteObjectLocator.
@@ -4200,8 +4199,6 @@ llvm::Constant *MicrosoftCXXABI::getCatchableType(QualType T,
42004199 CopyCtor = getAddrOfCXXCtorClosure (CD, Ctor_CopyingClosure);
42014200 else
42024201 CopyCtor = CGM.getAddrOfCXXStructor (GlobalDecl (CD, Ctor_Complete));
4203-
4204- CopyCtor = llvm::ConstantExpr::getBitCast (CopyCtor, CGM.Int8PtrTy );
42054202 } else {
42064203 CopyCtor = llvm::Constant::getNullValue (CGM.Int8PtrTy );
42074204 }
@@ -4411,14 +4408,11 @@ llvm::GlobalVariable *MicrosoftCXXABI::getThrowInfo(QualType T) {
44114408 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl ())
44124409 if (CXXDestructorDecl *DtorD = RD->getDestructor ())
44134410 if (!DtorD->isTrivial ())
4414- CleanupFn = llvm::ConstantExpr::getBitCast (
4415- CGM.getAddrOfCXXStructor (GlobalDecl (DtorD, Dtor_Complete)),
4416- CGM.Int8PtrTy );
4411+ CleanupFn = CGM.getAddrOfCXXStructor (GlobalDecl (DtorD, Dtor_Complete));
44174412 // This is unused as far as we can tell, initialize it to null.
44184413 llvm::Constant *ForwardCompat =
44194414 getImageRelativeConstant (llvm::Constant::getNullValue (CGM.Int8PtrTy ));
4420- llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant (
4421- llvm::ConstantExpr::getBitCast (CTA, CGM.Int8PtrTy ));
4415+ llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant (CTA);
44224416 llvm::StructType *TIType = getThrowInfoType ();
44234417 llvm::Constant *Fields[] = {
44244418 llvm::ConstantInt::get (CGM.IntTy , Flags), // Flags
0 commit comments