reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
579 CGBuilderTy &Builder = CGF.Builder; 591 llvm::BasicBlock *FnVirtual = CGF.createBasicBlock("memptr.virtual"); 592 llvm::BasicBlock *FnNonVirtual = CGF.createBasicBlock("memptr.nonvirtual"); 593 llvm::BasicBlock *FnEnd = CGF.createBasicBlock("memptr.end"); 627 CGF.EmitBlock(FnVirtual); 632 CGF.CGM.getDynamicOffsetAlignment(ThisAddr.getAlignment(), RD, 633 CGF.getPointerAlign()); 635 CGF.GetVTablePtr(Address(This, VTablePtrAlign), VTableTy, RD); 644 VTableOffset = Builder.CreateTrunc(VTableOffset, CGF.Int32Ty); 652 bool ShouldEmitCFICheck = CGF.SanOpts.has(SanitizerKind::CFIMFCall) && 659 CodeGenFunction::SanitizerScope SanScope(&CGF); 667 TypeId = llvm::MetadataAsValue::get(CGF.getLLVMContext(), MD); 691 {Builder.CreateBitCast(VFPAddr, CGF.Int8PtrTy), TypeId}); 695 VirtualFn = Builder.CreateAlignedLoad(VFPAddr, CGF.getPointerAlign(), 704 CheckSourceLocation = CGF.EmitCheckSourceLocation(E->getBeginLoc()); 705 CheckTypeDesc = CGF.EmitCheckTypeDescriptor(QualType(MPT, 0)); 707 llvm::ConstantInt::get(CGF.Int8Ty, CodeGenFunction::CFITCK_VMFCall), 713 CGF.EmitTrapCheck(CheckResult); 720 CGF.EmitCheck(std::make_pair(CheckResult, SanitizerKind::CFIMFCall), 729 CGF.EmitBranch(FnEnd); 733 CGF.EmitBlock(FnNonVirtual); 741 CodeGenFunction::SanitizerScope SanScope(&CGF); 744 llvm::ConstantInt::get(CGF.Int8Ty, CodeGenFunction::CFITCK_NVMFCall), 751 Builder.CreateBitCast(NonVirtualFn, CGF.Int8PtrTy); 758 llvm::MetadataAsValue::get(CGF.getLLVMContext(), MD); 766 CGF.EmitCheck(std::make_pair(Bit, SanitizerKind::CFIMFCall), 768 {CastedNonVirtualFn, llvm::UndefValue::get(CGF.IntPtrTy)}); 775 CGF.EmitBlock(FnEnd);