================
@@ -1026,3 +1026,12 @@ void unsigned_concrete_int_no_crash(void) {
   clang_analyzer_express(y); // expected-warning {{$y}}
   clang_analyzer_express(x == y); // expected-warning {{$x + 1U == $y + 1U}}
 }
+
+void add_shifted_same_symbol(void) {
+  int x = f();
+  clang_analyzer_denote(x, "$x");
+  clang_analyzer_express((x + 1) + (x + 2)); // expected-warning{{$x + $x + 3}}
+  clang_analyzer_express((x + 1) + x); // expected-warning{{$x + $x + 1}}
----------------
NagyDonat wrote:

Yes, in this particular example dump/regex would also work, because we only 
have one conjured symbol. However, practically all other tests in this file 
_need_ express to distinguish several conjured symbols, so I prefer express for 
the sake of consistency.

> Maybe later we should improve it to print parentheses, but it would break the 
> tests that rely on it (roughly 500 calls in 8 test files).

I'll probably either implement this or ask an intern to implement this in the 
foreseeable future, and then express will become a stable and elegant tool.

https://github.com/llvm/llvm-project/pull/237160
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to