Nikos Gorogiannis
58f37cb9d8
[starvation] do not report deadlocks when both traces on UI thread
...
Reviewed By: jeremydubreil
Differential Revision: D7894623
fbshipit-source-id: 135e5ff
7 years ago
Nikos Gorogiannis
538bcd9135
[starvation] store issues to issue-logs like linters do
...
Reviewed By: jeremydubreil
Differential Revision: D7876329
fbshipit-source-id: 6572f3a
7 years ago
Brandon Kieft
275f4c3a8c
Add predicates to check for protocols
...
Reviewed By: dulmarod
Differential Revision: D7867975
fbshipit-source-id: 20d599d
7 years ago
Brandon Kieft
439839a9fa
Add is_in_(interface/implementation) predicates
...
Reviewed By: dulmarod
Differential Revision: D7863886
fbshipit-source-id: d8268d9
7 years ago
Brandon Kieft
7d4bd403df
Add is_objc_method_exposed predicate
...
Reviewed By: dulmarod
Differential Revision: D7862233
fbshipit-source-id: da2ee1b
7 years ago
Brandon Kieft
01ee635902
Add is_objc_method_overriding predicate
...
Reviewed By: dulmarod
Differential Revision: D7859827
fbshipit-source-id: 14c58d2
7 years ago
Nikos Gorogiannis
14ec16da12
[starvation] catch calls to AcccountManager.setUserData
...
Summary: Calls to AccountManager.setUserData are associated with ANRs.
Reviewed By: sblackshear
Differential Revision: D7859585
fbshipit-source-id: 215a522
7 years ago
Nikos Gorogiannis
bf501e5a7d
[starvation] treat Future.get as potentially blocking
...
Summary: Calling Future.get from UI thread, or under a lock the UI thread may try to take has been associated with ANRs.
Reviewed By: ddino
Differential Revision: D7859296
fbshipit-source-id: b87bd94
7 years ago
Nikos Gorogiannis
bef38bbf1a
[racerd] recognise std::lock calls
...
Summary: std::lock allows for locking multiple lockable objects, while avoiding deadlock. This will fix some FPs in C++.
Reviewed By: da319
Differential Revision: D7844198
fbshipit-source-id: 2b7140a
7 years ago
Dino Distefano
f2fa8cf0e0
Adding more examples where we get Top as cost
...
Reviewed By: mbouaziz
Differential Revision: D7859180
fbshipit-source-id: e3ff89b
7 years ago
Mehdi Bouaziz
5fe28785bc
Cost: fix min
...
Summary: We were wrongly using the underapproximation of `min` rather than the overapproximation
Reviewed By: ddino
Differential Revision: D7844267
fbshipit-source-id: c9d9247
7 years ago
Brandon Kieft
d7cf002461
Add new ObjC predicates, mostly related to categories
...
Reviewed By: dulmarod
Differential Revision: D7809653
fbshipit-source-id: c21f721
7 years ago
Sam Blackshear
78521419a9
[racerd] make deep ownership work with OwnedIf
...
Reviewed By: ngorogiannis
Differential Revision: D7844585
fbshipit-source-id: 96aedca
7 years ago
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