Lines Matching refs:GD
52 bool HasThisReturn(GlobalDecl GD) const override;
53 bool hasMostDerivedReturn(GlobalDecl GD) const override;
61 bool isThisCompleteObject(GlobalDecl GD) const override {
64 if (isa<CXXDestructorDecl>(GD.getDecl())) {
65 switch (GD.getDtorType()) {
215 buildStructorSignature(GlobalDecl GD,
252 adjustThisArgumentForVirtualFunctionCall(CodeGenFunction &CGF, GlobalDecl GD,
308 CGCallee getVirtualFunctionPointer(CodeGenFunction &CGF, GlobalDecl GD,
317 void adjustCallArgsForDestructorThunk(CodeGenFunction &CGF, GlobalDecl GD,
319 assert(GD.getDtorType() == Dtor_Deleting &&
378 GlobalDecl GD, bool ReturnAdjustment) override {
380 getContext().GetGVALinkageForFunction(cast<FunctionDecl>(GD.getDecl()));
578 CharUnits getVirtualFunctionPrologueThisAdjustment(GlobalDecl GD) override;
695 void emitCXXStructor(GlobalDecl GD) override;
1069 bool MicrosoftCXXABI::HasThisReturn(GlobalDecl GD) const {
1070 return isa<CXXConstructorDecl>(GD.getDecl());
1073 static bool isDeletingDtor(GlobalDecl GD) {
1074 return isa<CXXDestructorDecl>(GD.getDecl()) &&
1075 GD.getDtorType() == Dtor_Deleting;
1078 bool MicrosoftCXXABI::hasMostDerivedReturn(GlobalDecl GD) const {
1079 return isDeletingDtor(GD);
1294 MicrosoftCXXABI::buildStructorSignature(GlobalDecl GD,
1298 if (isa<CXXDestructorDecl>(GD.getDecl()) &&
1299 GD.getDtorType() == Dtor_Deleting) {
1304 auto *CD = dyn_cast<CXXConstructorDecl>(GD.getDecl());
1386 MicrosoftCXXABI::getVirtualFunctionPrologueThisAdjustment(GlobalDecl GD) {
1387 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
1392 if (GD.getDtorType() == Dtor_Complete)
1397 GD = GlobalDecl(DD, Dtor_Deleting);
1401 CGM.getMicrosoftVTableContext().getMethodVFTableLocation(GD);
1421 CodeGenFunction &CGF, GlobalDecl GD, Address This,
1426 CharUnits Adjustment = getVirtualFunctionPrologueThisAdjustment(GD);
1435 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
1437 GlobalDecl LookupGD = GD;
1441 if (GD.getDtorType() == Dtor_Complete)
1456 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
1625 GlobalDecl GD(DD, Type);
1626 CGCallee Callee = CGCallee::forDirect(CGM.getAddrOfCXXStructor(GD), GD);
1643 CGF.EmitCXXDestructorCall(GD, Callee, This.getPointer(), ThisTy,
1915 GlobalDecl GD,
1923 adjustThisArgumentForVirtualFunctionCall(CGF, GD, This, true);
1925 auto *MethodDecl = cast<CXXMethodDecl>(GD.getDecl());
1930 MethodVFTableLocation ML = VFTContext.getMethodVFTableLocation(GD);
1958 CGCallee Callee(GD, VFunc);
1973 GlobalDecl GD(Dtor, Dtor_Deleting);
1975 &CGM.getTypes().arrangeCXXStructorDeclaration(GD);
1977 CGCallee Callee = CGCallee::forVirtual(CE, GD, This, Ty);
1991 This = adjustThisArgumentForVirtualFunctionCall(CGF, GD, This, true);
1992 RValue RV = CGF.EmitCXXDestructorCall(GD, Callee, This.getPointer(), ThisTy,
3930 void MicrosoftCXXABI::emitCXXStructor(GlobalDecl GD) {
3931 if (auto *ctor = dyn_cast<CXXConstructorDecl>(GD.getDecl())) {
3934 CGM.codegenCXXStructor(GD.getWithCtorType(Ctor_Complete));
3939 auto *dtor = cast<CXXDestructorDecl>(GD.getDecl());
3944 if (GD.getDtorType() == Dtor_Complete &&
3946 GD = GD.getWithDtorType(Dtor_Base);
3952 if (GD.getDtorType() == Dtor_Base && !CGM.TryEmitBaseDestructorAsAlias(dtor))
3955 llvm::Function *Fn = CGM.codegenCXXStructor(GD);