[PATCH] D28955: [analyzer] Enable support for symbolic extension/truncation
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 17 06:40:07 PST 2020
NoQ added a subscriber: mikhail.ramalho.
NoQ added a comment.
Herald added subscribers: Charusso, dkrupp, donat.nagy, Szelethus, a.sidorin, rnkovacs, szepet, baloghadamsoftware.
@mikhail.ramalho brought this up in pr41809 <https://bugs.llvm.org/show_bug.cgi?id=41809#c16> so let's revisit this.
Like, the patch looks great, the idea looks great, but i'd like to make super duper sure that the behavior without Z3 remains the same, because we are in no position to give up on the no-Z3 mode yet.
================
Comment at: test/Analysis/PR3991.m:63
+#else
+ BOOL doGetDir = self.directoryPathComponents != 0 && self.currentPathComponentIndex < [self.directoryPathComponents count]; // expected-warning{{Assignment of a non-Boolean value}}
+#endif
----------------
This looks like a regression to me. Even though `BoolAssignment` is an alpha checker, it's definitely one of the good ones, which i want to enable by default sooner rather than later, so can we try not to regress it too much?
================
Comment at: test/Analysis/std-c-library-functions.c:149
if (isgraph(y))
- clang_analyzer_eval(isprint(x)); // expected-warning{{TRUE}}
+ clang_analyzer_eval(isprint(y)); // expected-warning{{TRUE}}
}
----------------
Why did this //have// to change? I don't remember all the details of how these functions work, but as far as i remember the only character that is printable but not graphical is the space character (32) which converts between `int` and `char` just fine.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D28955/new/
https://reviews.llvm.org/D28955
More information about the cfe-commits
mailing list