Nikos Gorogiannis
101283f9d0
[starvation] fix trace description strings for taking locks
...
Reviewed By: mbouaziz
Differential Revision: D13416738
fbshipit-source-id: 02ebb6178
6 years ago
Ezgi Çiçek
61b51b09db
[hoisting] Rename hoisting message
...
Reviewed By: ngorogiannis
Differential Revision: D13415995
fbshipit-source-id: bbf1ee855
6 years ago
Ezgi Çiçek
88850d5119
[cost] Show simplified procname for Callsite paths
...
Reviewed By: mbouaziz
Differential Revision: D13399921
fbshipit-source-id: 8496e6ecf
6 years ago
Nikos Gorogiannis
f8fc40cea9
[starvation] improve debugging output
...
Reviewed By: ezgicicek
Differential Revision: D13399324
fbshipit-source-id: 5f2eb124a
6 years ago
Jeremy Dubreil
1baf723e3e
[infer][nullsafe] make the error message more explicit about the typing nature of the analysis
...
Reviewed By: ngorogiannis
Differential Revision: D13388567
fbshipit-source-id: 0dc4c2b47
6 years ago
Ezgi Çiçek
dde9723926
[inferbo] Add tests for Java collections
...
Reviewed By: mbouaziz
Differential Revision: D13377810
fbshipit-source-id: d57aa740a
6 years ago
Sungkeun Cho
f9161b164f
[inferbo] On-demand heap symbol using path
...
Summary:
It materializes symbolic values of function parameters on-demand. The on-demand materialization is triggered when finding a value from an abstract memory and joining/widening abstract memories.
Depends on D13294630
Main idea:
* Symbolic values are on-demand-ly generated by a symbol path and its type
* In order to avoid infinite generation of symbolic values, symbol paths are canonicalized by structure types and field names (which means they are abstracted to the same value). For example, in a linked list, a symbolic value `x->next->next` is canonicalized to `x->next` when the structures (`*x` and `*x->next`) have the same structure type and the same field name (`next`).
Changes from the previous code:
* `Symbol.t` does not include `id` and `pname` for distinguishing symbols. Now, all symbols are compared by `path:SymbolPath.partial` and `bound_end`.
* `SymbolTable` is no longer used, which was used for generating symbolic values with new `id`s.
Reviewed By: mbouaziz
Differential Revision: D13294635
fbshipit-source-id: fa422f084
6 years ago
Jeremy Dubreil
69af58506d
[infer][nullsafe] rename the option to run the Nullsafe checker
...
Reviewed By: ngorogiannis
Differential Revision: D13352004
fbshipit-source-id: 4be2e361c
6 years ago
Ezgi Çiçek
80de133482
[inferbo,cost] Add symbols for unknown function calls
...
Reviewed By: mbouaziz, skcho
Differential Revision: D13239712
fbshipit-source-id: 1bf24e394
6 years ago
Sungkeun Cho
4b2c65f2e2
Revert "[inferbo] Instantiate symbolic locations in function parameters"
...
Reviewed By: ngorogiannis
Differential Revision: D13301231
fbshipit-source-id: c763a158b
6 years ago
Sungkeun Cho
62d45f9c01
[inferbo] Copy callee's values that are reachable from parameters
...
Summary:
At function calls, it copies callee's values that are reachable from parameters.
Depends on D13231291
Reviewed By: mbouaziz
Differential Revision: D13231711
fbshipit-source-id: 1e8aed1c4
6 years ago
Ezgi Çiçek
305b2a74b8
[hoisting] Add new issue type for only invariant-modeled calls
...
Reviewed By: ngorogiannis
Differential Revision: D13194812
fbshipit-source-id: 0c020789d
6 years ago
Mehdi Bouaziz
e505fd2dba
[inferbo] Pointer comparison
...
Reviewed By: skcho
Differential Revision: D13066771
fbshipit-source-id: 134b27db8
6 years ago
Mehdi Bouaziz
5f60ffaa8f
[inferbo] Trace refactoring
...
Reviewed By: skcho
Differential Revision: D13116116
fbshipit-source-id: 0b885dcfb
6 years ago
Nikos Gorogiannis
2c6a705116
[racerd] kill stability
...
Reviewed By: jvillard
Differential Revision: D13180369
fbshipit-source-id: 5684ed318
6 years ago
Sungkeun Cho
edc090544a
[inferbo] Improve pp of Inferbo in traceview
...
Reviewed By: mbouaziz
Differential Revision: D13113991
fbshipit-source-id: 149652eff
6 years ago
Ezgi Çiçek
613c4a2848
[purity] Fix wrong invalidation of all params
...
Reviewed By: ddino
Differential Revision: D13119156
fbshipit-source-id: a766c16be
6 years ago
Mehdi Bouaziz
8fcbfcb741
[inferbo] Pretty-print more abstract locations
...
Reviewed By: ezgicicek
Differential Revision: D13114228
fbshipit-source-id: 9f4b16817
6 years ago
Sungkeun Cho
aa3fa55f05
[inferbo] Fix check of access condition
...
Reviewed By: mbouaziz
Differential Revision: D13114160
fbshipit-source-id: 9e46cf814
6 years ago
Sungkeun Cho
e912bf2aa5
[inferbo] Prune more for "(x + e1) < e2" cases
...
Reviewed By: mbouaziz
Differential Revision: D13095472
fbshipit-source-id: 21aef560a
6 years ago
Sungkeun Cho
e190325b82
[inferbo] Distinguish collection add against array access in pp
...
Reviewed By: mbouaziz
Differential Revision: D13096380
fbshipit-source-id: d8878749f
6 years ago
Nikos Gorogiannis
68a08a8a09
[starvation] stop reporting on AccountManager.setUserData
...
Reviewed By: da319
Differential Revision: D13097076
fbshipit-source-id: 748acbe2b
6 years ago
Mehdi Bouaziz
fac9932168
[inferbo] Add traces to Conditions always true/false and Unreachable code
...
Reviewed By: ezgicicek
Differential Revision: D13082665
fbshipit-source-id: bb0e4cbf3
6 years ago
Ezgi Çiçek
6683c71f8b
[purity, hoisting] Add more purity models for fblite and instagram
...
Reviewed By: mbouaziz
Differential Revision: D13082201
fbshipit-source-id: e2b3f3e18
6 years ago
Nikos Gorogiannis
f3194e00c9
[starvation] silence some strict mode models
...
Reviewed By: mbouaziz
Differential Revision: D13082383
fbshipit-source-id: 7f16b94c5
6 years ago
Nikos Gorogiannis
a3df8f9f99
[starvation] simplify report format
...
Reviewed By: mbouaziz
Differential Revision: D13065391
fbshipit-source-id: 6e302cf85
6 years ago
Mehdi Bouaziz
0ba4c2c892
[cost] Pretty-printing exponents
...
Reviewed By: ezgicicek
Differential Revision: D13050241
fbshipit-source-id: dbac027b7
6 years ago
Mehdi Bouaziz
5ed59b1655
[Inferbo/cost] Improve pretty-printing
...
Reviewed By: skcho
Differential Revision: D13045247
fbshipit-source-id: 5485b58c8
6 years ago
Ezgi Çiçek
dde0067eec
[purity] Don't report pure functions if hoisting mode is turned-on
...
Reviewed By: ddino
Differential Revision: D13025725
fbshipit-source-id: 44d138418
6 years ago
Ezgi Çiçek
f3d82a0230
[hoisting] Don't report functions modeled as VariantForHoisting but consider them invariant
...
Reviewed By: ddino
Differential Revision: D13025250
fbshipit-source-id: ba1e39591
6 years ago
Ezgi Çiçek
2f06fd768f
[purity, hoisting] Keep track of modified args
...
Reviewed By: mbouaziz
Differential Revision: D12921871
fbshipit-source-id: 17ba48895
6 years ago
Ezgi Çiçek
d5a2198010
[hoisting] Make invalidation stop at already explored (var,node) pairs
...
Reviewed By: mbouaziz
Differential Revision: D12957025
fbshipit-source-id: b51f81966
6 years ago
Ezgi Çiçek
ff722f975d
[hoisting] Stop invalidation at loop head
...
Reviewed By: mbouaziz
Differential Revision: D12925391
fbshipit-source-id: f74ef935e
6 years ago
Ezgi Çiçek
3fb1053b75
[hoisting] Invalidate arguments of type structs
...
Reviewed By: mbouaziz
Differential Revision: D12924850
fbshipit-source-id: b442d37be
6 years ago
Mehdi Bouaziz
9a4416f7d4
[quandary] String concatenation sanitizes class loading
...
Reviewed By: jeremydubreil
Differential Revision: D12943175
fbshipit-source-id: 9e1c92d46
6 years ago
Mehdi Bouaziz
174bdcd22b
[quandary] Add class-loading sinks
...
Reviewed By: jeremydubreil
Differential Revision: D12942819
fbshipit-source-id: c294b4238
6 years ago
Sungkeun Cho
2401f6f6eb
[inferbo] Give a widening threshold of zero
...
Reviewed By: mbouaziz
Differential Revision: D12898540
fbshipit-source-id: 95bdaf4f0
6 years ago
Sungkeun Cho
b2189c1c17
[inferbo] Loosen similar bounds condition
...
Summary:
For more deduplications of issues, this diff loosens the condition of
similar bounds. The previous condition of similar bounds was too
strict, so [0,0] and [0,+oo] were not similar.
Depends on D10851762
Reviewed By: mbouaziz
Differential Revision: D10866127
fbshipit-source-id: 4ba912a88
6 years ago
Sungkeun Cho
bf29bd9772
[inferbo] Fix xcompare of Itv
...
Reviewed By: mbouaziz
Differential Revision: D10851762
fbshipit-source-id: 20e26cc30
6 years ago
Ezgi Çiçek
39335bb095
[hoisting] Invalidate all dependencies of invalidated parameters
...
Reviewed By: mbouaziz
Differential Revision: D10356056
fbshipit-source-id: a5d3b4bbe
6 years ago
Ezgi Çiçek
8a51a70162
[Hoisting] Add FP test for indirect modification in loop
...
Reviewed By: mbouaziz
Differential Revision: D10288095
fbshipit-source-id: 55cd2870a
6 years ago
Ezgi Çiçek
affe3d1d60
[hoisting] Invalidate args of impure function calls
...
Reviewed By: mbouaziz
Differential Revision: D10236724
fbshipit-source-id: f39d4574d
6 years ago
Sungkeun Cho
120c8785eb
[inferbo] Update pp of buffer overflow condition
...
Reviewed By: mbouaziz
Differential Revision: D10851743
fbshipit-source-id: 1f06e3b64
6 years ago
Sungkeun Cho
3f71cf327b
[inferbo] Separate offset and index in condition
...
Summary:
This diff preserves values of offset and index separately, rather than
one value of their addition, because premature addition results in
imprecise FPs by the limited expressiveness of the domain.
Reviewed By: mbouaziz
Differential Revision: D10851393
fbshipit-source-id: 1685ead36
6 years ago
Mehdi Bouaziz
3ee96263a7
[inferbo] Simplify and improve Itv.prune_comp
...
Reviewed By: skcho
Differential Revision: D10386789
fbshipit-source-id: f9c7e33ef
6 years ago
Mehdi Bouaziz
ce34dcb695
Format everything
...
Reviewed By: jeremydubreil
Differential Revision: D10844347
fbshipit-source-id: 5a374da82
6 years ago
Sungkeun Cho
fd3f298156
[inferbo] Add narrowing
...
Reviewed By: jvillard
Differential Revision: D10334140
fbshipit-source-id: afb247866
6 years ago
Mehdi Bouaziz
3dd97cc40f
[inferbo] Use WTO abstract interpreter
...
Reviewed By: jvillard
Differential Revision: D10072723
fbshipit-source-id: aabf3605e
6 years ago
Nikos Gorogiannis
ea7b185b6b
[classloads] add option for specifying root methods and add tests
...
Summary: Reports will now be issued for the class loads of the methods specified by the option `--class-loads-roots`.
Reviewed By: jvillard
Differential Revision: D10466492
fbshipit-source-id: 91456d723
6 years ago
Sungkeun Cho
3f969414fe
[inferbo] Check integer overflow when really need
...
Summary:
It avoids checking integer overflow when it definitely cannot happen.
For example, it does not check integer overflow of addition when one
of parameters is a negative number, or underflow of subtraction when
its first parameter is a positive number.
Reviewed By: mbouaziz
Differential Revision: D10446161
fbshipit-source-id: b8c86e1b2
6 years ago