Jules Villard
902de9d6e3
[sil] make return value and type mandatory
...
Summary:
This simplifies the frontends and backends in most cases. Before this diff,
returning `void` could be modelled either with a `None` return, or a dummy
return variable with type `Tvoid`. Now it's always the latter.
Reviewed By: sblackshear, dulmarod
Differential Revision: D7832938
fbshipit-source-id: 0a403d1
7 years ago
Mehdi Bouaziz
1deaf7bfd6
Cost: instantiate symbolic cost after call
...
Reviewed By: ddino
Differential Revision: D7397208
fbshipit-source-id: a9647dc
7 years ago
Sam Blackshear
bb2ff197b3
[absint] fix handling of exceptions
...
Summary:
The abstract interpreter tried to handle exceptional control-flow by propagating the *pre* of a block that threw an exception rather than the *post*.
This was a half-measure that isn't correct when an exception-throwing instruction isn't in the middle of a block.
The handling of exceptions wasn't actually used anywhere and was leading to further hacks in `ProcCfg`, so let's get rid of it.
Reviewed By: mbouaziz, jvillard
Differential Revision: D7843872
fbshipit-source-id: 2a4a815
7 years ago
Dino Distefano
dbc8f29835
Added array test where we get TOP
...
Reviewed By: mbouaziz
Differential Revision: D7843528
fbshipit-source-id: 46e23c3
7 years ago
Mehdi Bouaziz
9c14e9d384
[Cost] Fix multiplication by 1
...
Reviewed By: ddino
Differential Revision: D7782184
fbshipit-source-id: dd3c4f1
7 years ago
Dulma Churchill
077d9a534b
[objc frontend] Do not assume that the fast enumeration in ObjC always includes a declaration of the loop variable
...
Reviewed By: sblackshear
Differential Revision: D7831531
fbshipit-source-id: 7d0c816
7 years ago
Jules Villard
0bbdf63957
[clang] do not attempt to translate pointer to member constructs
...
Summary:
C++...
seemsalittlecrazy
Reviewed By: sblackshear
Differential Revision: D7815648
fbshipit-source-id: f36ac4f
7 years ago
Dino Distefano
d4337abcb4
Added predicate for C++ copy constructors
...
Reviewed By: dulmarod
Differential Revision: D7829738
fbshipit-source-id: 73be42f
7 years ago
Dulma Churchill
038c0b92d4
[objc frontend] Raise SelfClassException only inside ObjCMethodCallExpr nodes
...
Reviewed By: jvillard
Differential Revision: D7816329
fbshipit-source-id: 3b46ef5
7 years ago
Sam Blackshear
d718275402
[quandary] fix test expected output
...
Reviewed By: da319, dulmarod
Differential Revision: D7830213
fbshipit-source-id: b754f4b
7 years ago
Sam Blackshear
6b8900746b
[quandary] only treat overrides of service methods as endpoints
...
Reviewed By: jeremydubreil
Differential Revision: D7813903
fbshipit-source-id: 7d77f6a
7 years ago
Jules Villard
4b4517e8ec
[clang] call a skip function in case of unimplemented feature
...
Summary: Returning the list of sub-expressions is not right and can cause assertion failures elsewhere in the frontend.
Reviewed By: dulmarod
Differential Revision: D7813493
fbshipit-source-id: 33ac9c1
7 years ago
Nikos Gorogiannis
dab8e2f17d
[starvation] Catch indirect blocks to the UI thread
...
Reviewed By: jeremydubreil
Differential Revision: D7774011
fbshipit-source-id: fe014b6
7 years ago
Jules Villard
d92e82b379
[clang] fix translation of `UserDefinedLiteral`
...
Summary: User-defined literals are really just function calls.
Reviewed By: sblackshear
Differential Revision: D7813464
fbshipit-source-id: c9302b9
7 years ago
Nikos Gorogiannis
e0a61c0a4a
[starvation] Move to a cluster checker phase for reporting
...
Reviewed By: jeremydubreil
Differential Revision: D7757783
fbshipit-source-id: 341de51
7 years ago
Sam Blackshear
30d7239aff
[quandary] SQL sinks for java
...
Reviewed By: jeremydubreil
Differential Revision: D7799801
fbshipit-source-id: 002079d
7 years ago
Sam Blackshear
ffba5de70c
[quandary] distinguish between SQL reads and writes
...
Reviewed By: mbouaziz
Differential Revision: D7781377
fbshipit-source-id: 9c76e4d
7 years ago
Dino Distefano
c80a2b0940
Test Determinator for MobileLab
...
Reviewed By: martinoluca
Differential Revision: D7709133
fbshipit-source-id: ffb2db2
7 years ago
Dulma Churchill
69392d4192
[biabduction] Log reasons for skipping also in non Java context
...
Reviewed By: mbouaziz, da319
Differential Revision: D7788663
fbshipit-source-id: 466faed
7 years ago
Mehdi Bouaziz
094eb9dcc7
[Cost] Use OneInstrPerNode CFG
...
Summary:
We want instr-granular invariant maps so let's use the OneInstrPerNode CFG in the AI analyzers.
This requires specializing the TransferFunctions.
Keep using the normal CFG where we only need node-granular informations.
Depends on D7587241
Depends on D7608526
Reviewed By: sblackshear
Differential Revision: D7618320
fbshipit-source-id: 73918f0
7 years ago
Jules Villard
73a47d594c
[debug] print procedures in alphabetical order in cfgs
...
Summary:
When looking at large CFGs, at least in `xdot`, it's often difficult to find
the procedure you're looking for. Sorting the proc names puts them in
alphabetical order, which makes searching one procedure easier.
Reviewed By: mbouaziz
Differential Revision: D7758521
fbshipit-source-id: 8e9997f
7 years ago
Nikos Gorogiannis
63aafd3381
[starvation] catch calls to View.getVisibleDisplayFrame
...
Reviewed By: jeremydubreil
Differential Revision: D7758016
fbshipit-source-id: f3ff474
7 years ago
Dulma Churchill
28200b87d7
[objc blocks] Specialize store instructions with current closure in methods specialized with blocks as arguments
...
Reviewed By: mbouaziz, jvillard
Differential Revision: D7744403
fbshipit-source-id: 42ad5f8
7 years ago
Nikos Gorogiannis
e5265ea85b
[starvation] surface caller of blocking calls in reports
...
Reviewed By: jeremydubreil
Differential Revision: D7727380
fbshipit-source-id: 02822ea
7 years ago
Ezgi Çiçek
8f0701a01c
Refine dependency analysis to remove vars at prune exit nodes
...
Reviewed By: ddino
Differential Revision: D7670952
fbshipit-source-id: 832a639
7 years ago
Nikos Gorogiannis
a4a1a9c55e
[starvation] Catch java IO blocking calls on UI thread
...
Reviewed By: sblackshear
Differential Revision: D7685918
fbshipit-source-id: 0ec46f2
7 years ago
Nikos Gorogiannis
7a9009e467
[starvation] Catch CountDownLatch.await calls on main thread
...
Reviewed By: ddino
Differential Revision: D7671323
fbshipit-source-id: 88fca56
7 years ago
Nikos Gorogiannis
b6c8766b11
[starvation] report binder calls on ui thread
...
Reviewed By: sblackshear
Differential Revision: D7670674
fbshipit-source-id: 15b858c
7 years ago
Ezgi Çiçek
523c2f539b
change clang translation to track if_kind (i.e. the type of prune node)
...
Reviewed By: ddino
Differential Revision: D7653684
fbshipit-source-id: d731ccf
7 years ago
Nikos Gorogiannis
196c0e5544
[starvation] harmonize java formatting in tests
...
Reviewed By: ddino
Differential Revision: D7667305
fbshipit-source-id: efee0f8
7 years ago
Sam Blackshear
670ae4a673
[quandary] `WebResourceRequest.getUrl` as source
...
Reviewed By: the-st0rm
Differential Revision: D7336116
fbshipit-source-id: 5d458e5
7 years ago
Sam Blackshear
8084c8fec7
[racerd] treat `@InjectProp` formals as owned
...
Reviewed By: ngorogiannis
Differential Revision: D7641152
fbshipit-source-id: 2dac8df
7 years ago
Sam Blackshear
ce8f958522
[racerd] don't report INTERFACE_NOT_THREAD_SAFE if the receiver of the interface call is marked `ThreadConfined`
...
Summary: We already suppress race reports if the field is marked in this way; makes sense to do the same thing for these reports.
Reviewed By: ngorogiannis
Differential Revision: D7589275
fbshipit-source-id: 8f0aeab
7 years ago
Nikos Gorogiannis
0130c09dfc
[starvation] add infrastructure for blocking events other than lock acquisition
...
Reviewed By: ddino
Differential Revision: D7428995
fbshipit-source-id: 5e1185d
7 years ago
Nikos Gorogiannis
269a1a9b93
[starvation] treat locks in (and accessed from) inner classes properly
...
Reviewed By: sblackshear
Differential Revision: D7427659
fbshipit-source-id: 9abf1ad
7 years ago
Daiva Naudziuniene
94aae8713e
[biabduction] Fix lookup of abduced expression
...
Summary: Currently when we look for already abduced expression and find an assertion [exp|->strexp:typexp], we use typexp rather than strexp.
Reviewed By: sblackshear
Differential Revision: D7617193
fbshipit-source-id: c089720
7 years ago
Ezgi Çiçek
76300d55c7
Tracks variables that affect control flow for a more precise cost analysis
...
Reviewed By: mbouaziz
Differential Revision: D7586777
fbshipit-source-id: 8752679
7 years ago
Ezgi Çiçek
af5265f75d
"Report infinity as error per function"
...
Reviewed By: mbouaziz
Differential Revision: D7600383
fbshipit-source-id: d6387ca
7 years ago
Jules Villard
dee7414aa9
[inferbo] do not include location information in the bug description
...
Summary:
This information is already available in the trace, and can contain absolute
paths to system includes (or infer's own clang runtime), which confuses the
diff analysis.
Reviewed By: mbouaziz
Differential Revision: D7534609
fbshipit-source-id: 5bd8f8b
7 years ago
Dulma Churchill
aa578ea586
[retain cycles] Treat missing fields also angelically when it still happens in rare cases
...
Reviewed By: mbouaziz
Differential Revision: D7550900
fbshipit-source-id: 11703ab
7 years ago
Jeremy Dubreil
2f1d486aab
[eradicate] model com.google.common.base.Strings.isNullOrEmpty(...)
...
Reviewed By: sblackshear
Differential Revision: D7526376
fbshipit-source-id: da60808
7 years ago
Dino Distefano
3b608695af
Improving treatment of default constructor
...
Reviewed By: sblackshear
Differential Revision: D7509019
fbshipit-source-id: 69d99a9
7 years ago
Dulma Churchill
74e16bdb58
[retain cycles] Define custom compare function that is more suited to dedup cycles
...
Reviewed By: mbouaziz
Differential Revision: D7517385
fbshipit-source-id: 00e0433
7 years ago
Mehdi Bouaziz
e9a3913fdb
[Inferbo] Do not propagate all safety conditions
...
Reviewed By: skcho
Differential Revision: D7289292
fbshipit-source-id: 999b14a
7 years ago
Sungkeun Cho
4234288c93
[inferbo] Add a pointer arithmetic test
...
Reviewed By: mbouaziz
Differential Revision: D7484490
fbshipit-source-id: 8d64016
7 years ago
Sungkeun Cho
e12a4a1071
[inferbo] Add traces in lift functions
...
Reviewed By: mbouaziz
Differential Revision: D7484003
fbshipit-source-id: 4411337
7 years ago
Sungkeun Cho
1f6feef448
[inferbo] Revise eval_locs for array blocks
...
Summary:
It renames `eval_locs` to `eval_arr` and we use it for getting array block values the given input expressions are pointing to. For example, when given a program variable `x` as an input, `eval_arr` returns array blocks that `x` is pointing to, on the other hand, `eval` returns an abstract location of `x`.
Depends on D7471891
Reviewed By: mbouaziz
Differential Revision: D7471915
fbshipit-source-id: b994944
7 years ago
Sam Blackshear
94c2cd1d3b
[ownership] tests for pointer arithmetic
...
Reviewed By: jeremydubreil
Differential Revision: D7495530
fbshipit-source-id: 0685772
7 years ago
Sam Blackshear
9180ff56c1
[ownership] handle new kinds of access expressions
...
Reviewed By: jeremydubreil
Differential Revision: D7482554
fbshipit-source-id: c511bda
7 years ago
Sungkeun Cho
a353d69a6e
[inferbo] Fix test code
...
Reviewed By: mbouaziz
Differential Revision: D7483906
fbshipit-source-id: 128ad17
7 years ago