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

Reply via email to