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);
398 void CodeGenVTables::EmitThunk(GlobalDecl GD, const ThunkInfo &Thunk,
401 const CGFunctionInfo &FnInfo = CGM.getTypes().arrangeGlobalDeclaration(GD);
404 llvm::Constant *Entry = CGM.GetAddrOfThunk(GD, Thunk);
415 CGM.getTypes().GetFunctionTypeForVTable(GD)) {
424 Entry = CGM.GetAddrOfThunk(GD, Thunk);
450 CGM.setFunctionLinkage(cast<CXXMethodDecl>(GD.getDecl()), ThunkFn);
461 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
464 CodeGenFunction(CGM).GenerateThunk(ThunkFn, FnInfo, GD, Thunk);
471 void CodeGenVTables::MaybeEmitThunkAvailableExternally(GlobalDecl GD,
478 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
483 EmitThunk(GD, Thunk, /*UseAvailableExternallyLinkage=*/true);
486 void CodeGenVTables::EmitThunks(GlobalDecl GD)
489 cast<CXXMethodDecl>(GD.getDecl())->getCanonicalDecl();
492 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
501 EmitThunk(GD, (*ThunkInfoVector)[I],
552 GlobalDecl GD;
559 GD = Component.getFunctionDecl();
562 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Complete);
565 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Deleting);
569 if (cast<CXXMethodDecl>(GD.getDecl())->isPure()) {
587 MaybeEmitThunkAvailableExternally(GD, Thunk);
588 Init = CGM.GetAddrOfThunk(GD, Thunk);
592 llvm::Type *Ty = CGM.getTypes().GetFunctionTypeForVTable(GD);
594 Init = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);