@@ -11835,9 +11835,12 @@ Sema::BuildCallToMemberFunction(Scope *S, Expr *MemExprE,
1183511835 Qualifier = UnresExpr->getQualifier();
1183611836
1183711837 QualType ObjectType = UnresExpr->getBaseType();
11838- Expr::Classification ObjectClassification
11839- = UnresExpr->isArrow()? Expr::Classification::makeSimpleLValue()
11840- : UnresExpr->getBase()->Classify(Context);
11838+ // HLSL Change Begin - This is a reference
11839+ Expr::Classification ObjectClassification =
11840+ (getLangOpts().HLSL || UnresExpr->isArrow())
11841+ ? Expr::Classification::makeSimpleLValue()
11842+ : UnresExpr->getBase()->Classify(Context);
11843+ // HLSL Change End - This is a reference
1184111844
1184211845 // Add overload candidates
1184311846 OverloadCandidateSet CandidateSet(UnresExpr->getMemberLoc(),
@@ -12691,9 +12694,14 @@ Expr *Sema::FixOverloadedFunctionReference(Expr *E, DeclAccessPair Found,
1269112694 if (MemExpr->getQualifier())
1269212695 Loc = MemExpr->getQualifierLoc().getBeginLoc();
1269312696 CheckCXXThisCapture(Loc);
12694- Base = new (Context) CXXThisExpr(Loc,
12695- MemExpr->getBaseType(),
12696- /*isImplicit=*/true);
12697+ // HLSL Change Begin - This is a reference
12698+ if (getLangOpts().HLSL)
12699+ Base = genereateHLSLThis(Loc, MemExpr->getBaseType(),
12700+ /*isImplicit=*/true);
12701+ else
12702+ Base = new (Context) CXXThisExpr(Loc, MemExpr->getBaseType(),
12703+ /*isImplicit=*/true);
12704+ // HLSL Change End - This is a reference
1269712705 }
1269812706 } else
1269912707 Base = MemExpr->getBase();
0 commit comments