steakhal added a comment. I think since it changes how taint spreads, this patch deserves a test. Could you please demonstrate the correctness of this patch?
================ Comment at: clang/lib/StaticAnalyzer/Core/BugReporter.cpp:2267 + for (SymbolRef SubSym : SubSyms) { + if (SymbolData::classof(SubSym)) + insertToInterestingnessMap(InterestingSymbols, SubSym, TKind); ---------------- ================ Comment at: clang/lib/StaticAnalyzer/Core/BugReporter.cpp:2361-2366 + auto SubSyms = llvm::make_range(sym->symbol_begin(), sym->symbol_end()); + for (SymbolRef SubSym : SubSyms) { + if (SymbolData::classof(SubSym)) { + if (auto MaybeTK = TryToLookupTrackingKind(SubSym)) + return MaybeTK; + } ---------------- The comment of `symbol_iterator` suggests that for `SymbolData` this will be always the symbol data itself; thus it would iterate only once. Is this the case? If so, can we replace the loop with just the `isa<SymbolData>(sym)` check? ``` /// Iterator over symbols that the current symbol depends on. /// /// For SymbolData, it's the symbol itself; for expressions, it's the /// expression symbol and all the operands in it. Note, SymbolDerived is /// treated as SymbolData - the iterator will NOT visit the parent region. class symbol_iterator {... ``` ================ Comment at: clang/lib/StaticAnalyzer/Core/BugReporter.cpp:2363 + for (SymbolRef SubSym : SubSyms) { + if (SymbolData::classof(SubSym)) { + if (auto MaybeTK = TryToLookupTrackingKind(SubSym)) ---------------- Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125362/new/ https://reviews.llvm.org/D125362 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits