vsavchenko added a comment. Looking great, thanks! I have a couple of notes below.
================ Comment at: clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp:1155-1156 - // TODO: Support SymbolCast. Support IntSymExpr when/if we actually - // start producing them. ---------------- Do we actually produce them? ================ Comment at: clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp:1170-1172 + SVal LHS = getConst(S->getLHS()); + if (LHS.isUndef()) + LHS = Visit(S->getLHS()); ---------------- It seems like a very common pattern now: ``` SVal Const = getConst(Expr); if (Const.isUndef()) return Visit(Expr); return Const; ``` At least we can make a function out of this, so we don't repeat this pattern over and over. But I was thinking more radically to actually replace `Visit` with this, what do you think? ================ Comment at: clang/test/Analysis/simplify-complex-constraints.cpp:25-27 + if (x + (y + z) != 0) + return 0; + if (y + z != 0) ---------------- Since it's not really specific to addition, maybe we can have tests for other operators? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103317/new/ https://reviews.llvm.org/D103317 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits