[clang] [Clang][analyzer] replace Stmt* with ConstCFGElementRef in SymbolConjured (PR #128251)

Fangyi Zhou via cfe-commits cfe-commits at lists.llvm.org
Sat Feb 22 17:15:55 PST 2025


================
@@ -111,8 +111,13 @@ class SValExplainer : public FullSValVisitor<SValExplainer, std::string> {
   }
 
   std::string VisitSymbolConjured(const SymbolConjured *S) {
-    return "symbol of type '" + S->getType().getAsString() +
-           "' conjured at statement '" + printStmt(S->getStmt()) + "'";
+    std::string Str;
+    llvm::raw_string_ostream OS(Str);
+    OS << "symbol of type '" + S->getType().getAsString() +
+              "' conjured at statement '";
+    S->getCFGElementRef()->dumpToStream(OS);
----------------
fangyi-zhou wrote:

`printStmt()` delegates to `Stmt::printPretty()`, but I don't immediately see any equivalent for `CFGElementRef`. The slightly annoying thing about `dumpToStream` for `CFGElementRef` is that it has an newline character in the end...

https://github.com/llvm/llvm-project/pull/128251


More information about the cfe-commits mailing list