NoQ accepted this revision. NoQ added a comment. This revision is now accepted and ready to land.
What i was trying to say with my last comment is that i guess i'd rather go for option (1) because with that `getRange()` remains the single source of truth, which is comfy. I agree this shouldn't really be blocking the patch - sorry for stalling! - i'm hopefully slowly getting better at not stalling. Generally i would have went for saving some memory and expensive ImmutableMap lookups by canonicalizing the key as much as possible. Do we want to add the opposite test void effective_range_2(int m, int n) { assert(m - n <= 0); assert(n - m <= 0); clang_analyzer_eval(m - n == 0); // expected-warning{{TRUE}} expected-warning{{FALSE}} clang_analyzer_eval(n - m == 0); // expected-warning{{TRUE}} expected-warning{{FALSE}} } ...where the `FALSE` case corresponds to `m - n == INT_MIN`? ================ Comment at: lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:483 + + // If we have range set sotred for both A - B and B - A then calculate the + // effective range set by intersecting the range set for A - B and the ---------------- `sotred` -> `stored` :) Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55007/new/ https://reviews.llvm.org/D55007 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits