Lines Matching defs:GD

61 llvm::Constant *CodeGenModule::GetAddrOfThunk(GlobalDecl GD, 
63 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
69 getCXXABI().getMangleContext().mangleCXXDtorThunk(DD, GD.getDtorType(),
75 llvm::Type *Ty = getTypes().GetFunctionTypeForVTable(GD);
76 return GetOrCreateLLVMFunction(Name, Ty, GD, /*ForVTable=*/true);
239 GlobalDecl GD, const ThunkInfo &Thunk) {
240 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
247 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
305 GlobalDecl GD, const ThunkInfo &Thunk) {
306 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
317 CurGD = GD;
354 CGM.getTypes().GetFunctionType(CGM.getTypes().arrangeGlobalDeclaration(GD));
355 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
402 void CodeGenVTables::EmitThunk(GlobalDecl GD, const ThunkInfo &Thunk,
405 const CGFunctionInfo &FnInfo = CGM.getTypes().arrangeGlobalDeclaration(GD);
408 llvm::Constant *Entry = CGM.GetAddrOfThunk(GD, Thunk);
419 CGM.getTypes().GetFunctionTypeForVTable(GD)) {
428 Entry = CGM.GetAddrOfThunk(GD, Thunk);
454 CGM.setFunctionLinkage(cast<CXXMethodDecl>(GD.getDecl()), ThunkFn);
465 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
468 CodeGenFunction(CGM).GenerateThunk(ThunkFn, FnInfo, GD, Thunk);
475 void CodeGenVTables::MaybeEmitThunkAvailableExternally(GlobalDecl GD,
482 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
487 EmitThunk(GD, Thunk, /*UseAvailableExternallyLinkage=*/true);
490 void CodeGenVTables::EmitThunks(GlobalDecl GD)
493 cast<CXXMethodDecl>(GD.getDecl())->getCanonicalDecl();
496 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
505 EmitThunk(GD, (*ThunkInfoVector)[I],
556 GlobalDecl GD;
563 GD = Component.getFunctionDecl();
566 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Complete);
569 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Deleting);
573 if (cast<CXXMethodDecl>(GD.getDecl())->isPure()) {
590 MaybeEmitThunkAvailableExternally(GD, Thunk);
591 Init = CGM.GetAddrOfThunk(GD, Thunk);
595 llvm::Type *Ty = CGM.getTypes().GetFunctionTypeForVTable(GD);
597 Init = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);