@@ -552,18 +552,26 @@ void ExprAnalysis::analyzeExpr(const DeclRefExpr *DRE) {
552552 RefString = DRE ->getNameInfo ().getAsString ();
553553 }
554554 if (auto TemplateDecl = dyn_cast<NonTypeTemplateParmDecl>(DRE ->getDecl ()))
555- addReplacement (DRE , TemplateDecl->getIndex ());
555+ if (FFFFF )
556+ addReplacement (" ThreadsPerBlock" , TemplateDecl->getIndex ());
557+ else
558+ addReplacement (DRE , TemplateDecl->getIndex ());
556559 else if (const auto *VD = dyn_cast<VarDecl>(DRE ->getDecl ());
557560 VD && VD ->isConstexpr () &&
558561 IsAnalyzingCtTypeInfo /* && IsDependent*/ ) {
559562 if (VD ->getInit () && VD ->getInit ()->getBeginLoc ().isValid ()) {
560563 ExprAnalysis EA (VD ->getInit ());
561564 std::string VDInitStr = EA .getReplacedString ();
562565 std::string VDStr = VD ->getNameAsString ();
563- // This offset is relative to the original str
564- addReplacement (0 , VDStr.size (), VDInitStr);
565- //
566- addReplacement (" ThreadsPerBlock" , 0 );
566+
567+ auto Loc = ReplSet.getSourceStr ().find (VDStr);
568+ // TODO: more than 1 substrings matched
569+ if (Loc != std::string::npos) {
570+ addReplacement (Loc, VDStr.size (), VDInitStr);
571+ FFFFF = true ;
572+ dispatch (VD ->getInit ());
573+ FFFFF = false ;
574+ }
567575 }
568576 } else if (auto ECD = dyn_cast<EnumConstantDecl>(DRE ->getDecl ())) {
569577 std::unordered_set<std::string> targetStr = {
0 commit comments