Mikhail R. Gadelha
e254b0f8c7
[analyzer] Fix constraint being dropped when analyzing a program without taint tracking enabled
...
Summary:
This patch removes the constraint dropping when taint tracking is disabled.
It also voids the crash reported in D28953 by treating a SymSymExpr with non pointer symbols as an opaque expression.
Updated the regressions and verifying the big projects now; I'll update here when they're done.
Based on the discussion on the mailing list and the patches by @ddcc .
Reviewers: george.karpenkov, NoQ, ddcc, baloghadamsoftware
Reviewed By: george.karpenkov
Subscribers: delcypher, llvm-commits, rnkovacs, xazax.hun, szepet, a.sidorin, ddcc
Differential Revision: https://reviews.llvm.org/D48650
llvm-svn: 337167
2018-07-16 13:14:46 +00:00
Gabor Horvath
596fcb1b0f
[analyzer] Model and check unrepresentable left shifts
...
Patch by: Reka Nikolett Kovacs
Differential Revision: https://reviews.llvm.org/D41816
llvm-svn: 323115
2018-01-22 13:32:10 +00:00
Gabor Horvath
4581f7497b
[analyzer] Left shifting a negative value is undefined
...
The analyzer did not return an UndefVal in case a negative value was left
shifted. I also altered the UndefResultChecker to emit a clear warning in this
case.
Differential Revision: https://reviews.llvm.org/D39423
llvm-svn: 316924
2017-10-30 17:06:42 +00:00
Daniel Marjamaki
d3d83681bc
[Analyzer] Clarify error messages for undefined result
...
Differential Revision: https://reviews.llvm.org/D30295
llvm-svn: 315462
2017-10-11 14:49:35 +00:00
Dominic Chen
c0402c6916
Revert "[analyzer] Support generating and reasoning over more symbolic constraint types"
...
Assertion `Loc::isLocType(SSE->getLHS()->getType())' failed in Analysis/PR3991.m
This reverts commit e469ff2759275e67f9072b3d67fac90f647c0fe6.
llvm-svn: 307853
2017-07-12 21:43:42 +00:00
Dominic Chen
35610d21b2
[analyzer] Support generating and reasoning over more symbolic constraint types
...
Summary: Generate more IntSymExpr constraints, perform SVal simplification for IntSymExpr and SymbolCast constraints, and create fully symbolic SymExprs
Reviewers: zaks.anna, dcoughlin, NoQ, xazax.hun
Subscribers: mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D28953
llvm-svn: 307833
2017-07-12 19:37:57 +00:00
Dominic Chen
184c6242fa
Reland 4: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296895
2017-03-03 18:02:02 +00:00
Dominic Chen
09d66f7528
Revert "Reland 3: [analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit ea36f1406e1f36bf456c3f3929839b024128e468.
llvm-svn: 296841
2017-03-02 23:30:53 +00:00
Dominic Chen
feaf9ff5ee
Reland 3: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296837
2017-03-02 23:05:45 +00:00
Dominic Chen
4a90bf8c3f
Revert "Reland 2: [analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit f93343c099fff646a2314cc7f4925833708298b1.
llvm-svn: 296836
2017-03-02 22:58:06 +00:00
Dominic Chen
1cb0256a3c
Reland 2: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296835
2017-03-02 22:45:24 +00:00
Dominic Chen
00355a51d0
Revert "Reland: [analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit 1b28d0b10e1c8feccb971abb6ef7a18bee589830.
llvm-svn: 296422
2017-02-28 01:50:23 +00:00
Dominic Chen
59cd893320
Reland: [analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296414
2017-02-28 00:02:36 +00:00
Dominic Chen
8589e10c30
Revert "[analyzer] NFC: Update test infrastructure to support multiple constraint managers"
...
This reverts commit 8e7780b9e59ddaad1800baf533058d2c064d4787.
llvm-svn: 296317
2017-02-27 03:29:25 +00:00
Dominic Chen
02064a3076
[analyzer] NFC: Update test infrastructure to support multiple constraint managers
...
Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952.
Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin
Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits
Differential Revision: https://reviews.llvm.org/D30373
llvm-svn: 296312
2017-02-27 02:36:15 +00:00
Jordan Rose
2be02a7848
[analyzer] Shitfing a constant value by its bit width is undefined.
...
Citation: C++11 [expr.shift]p1 (and the equivalent text in C11).
This fixes PR18073, but the right thing to do (as noted in the FIXME) is to
have a real checker for too-large shifts.
llvm-svn: 199405
2014-01-16 18:02:23 +00:00
Jordan Rose
902f02db72
[analyzer] Add tests for symbolic expression liveness.
...
There are very few tests here because SValBuilder is fairly aggressive
about not building SymExprs that we can't evaluate, which saves memory
and CPU but also makes it very much tied to the current constraint
manager. We should probably scale back here and let things decay to
UnknownVal later on.
bitwise-ops.c tests that for the SymExprs we do create, we persist our
assumptions about them. traversal-path-unification.c tests that we do
clean out constraints on arbitrary SymExprs once they have actually died.
llvm-svn: 164623
2012-09-25 19:03:09 +00:00