@@ -5351,7 +5351,7 @@ KernelCallExpr::ArgInfo::ArgInfo(const ParmVarDecl *PVD, KernelCallExpr *Kernel)
53515351 IsRedeclareRequired = false ;
53525352}
53535353KernelCallExpr::ArgInfo::ArgInfo (std::shared_ptr<TextureObjectInfo> Obj,
5354- KernelCallExpr *BASE)
5354+ KernelCallExpr *BASE, std::string ArgStr )
53555355 : IsUsedAsLvalueAfterMalloc(false ), Texture(Obj) {
53565356 IsPointer = false ;
53575357 IsRedeclareRequired = false ;
@@ -5360,7 +5360,7 @@ KernelCallExpr::ArgInfo::ArgInfo(std::shared_ptr<TextureObjectInfo> Obj,
53605360 if (auto S = std::dynamic_pointer_cast<StructureTextureObjectInfo>(Obj)) {
53615361 IsDoublePointer = S->containsVirtualPointer ();
53625362 }
5363- ArgString = Obj-> getName () ;
5363+ ArgString = ArgStr ;
53645364 IdString = ArgString + " _" ;
53655365 ArgSize = MapNames::KernelArgTypeSizeMap.at (KernelArgType::KAT_Texture);
53665366}
@@ -5869,14 +5869,16 @@ void KernelCallExpr::buildArgsInfo(const CallExpr *CE) {
58695869 getTheLastCompleteImmediateRange (CE->getBeginLoc (), CE->getEndLoc ());
58705870 Analysis.setCallSpelling (KCallSpellingRange.first , KCallSpellingRange.second );
58715871 auto &TexList = getTextureObjectList ();
5872-
58735872 const auto *FD = CE->getDirectCallee ();
58745873 const auto *FTD = FD ? FD->getPrimaryTemplate () : nullptr ;
58755874 for (unsigned Idx = 0 ; Idx < CE->getNumArgs (); ++Idx) {
5875+ auto Arg = CE->getArg (Idx);
5876+ auto CallDefRange = getDefinitionRange (CE->getBeginLoc (), CE->getEndLoc ());
5877+ auto ArgString = getStringInRange (
5878+ Arg->getSourceRange (), CallDefRange.getBegin (), CallDefRange.getEnd ());
58765879 if (auto Obj = TexList[Idx]) {
5877- ArgsInfo.emplace_back (Obj, this );
5880+ ArgsInfo.emplace_back (Obj, this , ArgString );
58785881 } else {
5879- auto Arg = CE->getArg (Idx);
58805882 bool Used = true ;
58815883 if (auto *ArgDRE = dyn_cast<DeclRefExpr>(Arg->IgnoreImpCasts ()))
58825884 Used = isArgUsedAsLvalueUntil (ArgDRE, CE);
0 commit comments