1332 Commits (c1d4e57561838a793a1e04f2db8a29ed41e8a733)

Author SHA1 Message Date
Sungkeun Cho a50fcaf2dd [infer] Use inline record for Sil.Load and Sil.Store
6 years ago
Mitya Lyubarskiy 46cf107411 [nullsafe] Remove functionality for @Present annotations
6 years ago
Sungkeun Cho 4351ba9bd1 [cost] Add version to BasicCost.t
6 years ago
Mitya Lyubarskiy 356ec9afe5 [easy] make method with side-effects looks like it has side-effects
6 years ago
Jules Villard 9e5115a9e0 [annotreach] support for new `"symbol_regexps"` matcher
6 years ago
Jules Villard 0af754f3d7 [annot reachability] apply sanitizers in more cases
6 years ago
Jules Villard 00cbc9c1e4 [annot reachability] add debug logging and light refactor
6 years ago
Ezgi Çiçek 9c5b704ddd [cost] Record bigO in error trace description
6 years ago
Jules Villard 73179f7182 [specs] put specs files operations in their own module
6 years ago
Ezgi Çiçek 0682ccc1e9 [cost][inferbo] Add models for indexOf
6 years ago
Nikos Gorogiannis 4f46567fa7 [annotreach] kill custom path sensitivity
6 years ago
Nikos Gorogiannis ffdc9193dc [annot-reach] complete the set of android thread annotations
6 years ago
Phoebe Nichols 2f6510395e Remove redundant fields from proc_callback_args
6 years ago
Phoebe Nichols a3eed439f6 Supply caller summary to Ondemand.analyze_proc_desc and Ondemand.analyze_proc_name
6 years ago
Phoebe Nichols d9535f42d5 Introduce method SummaryPayload.read_toplevel_procedure
6 years ago
Ezgi Çiçek 4114f7fbdf [inefficientKeysetIterator] Chase predecessors 4 more nodes to check the pattern
6 years ago
Ezgi Çiçek 102018734f [inefficientKeysetIterator] Add missing type checks
6 years ago
Phoebe Nichols fa1bcbe12d Change ProcData to have a summary instead of a proc_desc
6 years ago
Phoebe Nichols 13c2c84897 Remove proc_desc from proc_callback_args
6 years ago
Jules Villard c89a8d3e63 delete ownership checker
6 years ago
Jules Villard ae3089c2b2 [uninit] look at complex HIL expressions too
6 years ago
Ezgi Çiçek 898dd104c8 [cost] Invoke Cost issues only once
6 years ago
Ezgi Çiçek 0f43930f40 [cost] Refactor cost issue types and enable detecting allocation complexity increase on cold start
6 years ago
Ezgi Çiçek be85296759 [frontend] Move Preanalysis to frontend so that it is run always
6 years ago
Josh Berdine cfc1c8be36 [copyright] Remove years
6 years ago
Ezgi Çiçek d2eb3c8cc6 [inefficient-keyset-iterator] New checker for finding inefficient keySet iterator
6 years ago
Ezgi Çiçek 99bc7363bf [cost] Suppress reports on Java access methods
6 years ago
Ezgi Çiçek 19eac53f0e [cost] Add models for Collections.max/min
6 years ago
Ezgi Çiçek 0ef038332d [purity] More models for Java Map
6 years ago
Ezgi Çiçek bb9f44dee2 [cost] Fix and refactor cost models
6 years ago
Ezgi Çiçek 5b2a36409c [inferbo] Add models for org.json.JSONArray
6 years ago
Ezgi Çiçek 98ecc13a5e [inferbo,cost] Add models for java.util.Arrays and java.util.List
6 years ago
Ezgi Çiçek 2c15245260 [loop-invariance] Take purity models into account
6 years ago
Ezgi Çiçek a01a4a3658 [purity] Enhance purity models with invalidated arguments
6 years ago
Ezgi Çiçek a092c4f3f9 [cost] Generalize Java's sort model
6 years ago
Ezgi Çiçek bc082da199 [cost] Make unmodeled functions pure by default
6 years ago
Ezgi Çiçek b455baae5d [loop-invariance] Invalidate args to T function calls
6 years ago
Ezgi Çiçek d033e72196 [purity] Add tests for locality
6 years ago
Andrew Adams-Moran 0ad15356c2 Add @Cleanup annotation
6 years ago
Mehdi Bouaziz 0a5810c579 [NodePrinter] Force usage of with_session
6 years ago
David Lively 94c0cffd56 [checkers] Fiddling w/annotation-reachability-cxx trace format
6 years ago
David Lively e0ce8c4392 Add --annotation-reachability-cxx-sources override option
6 years ago
Ezgi Çiçek c85563d606 [inferbo,cost] Add cost models for java.util.Collections
6 years ago
Nikos Gorogiannis cbf0d00d09 [cost] reduce noise
6 years ago
Mehdi Bouaziz 9d2e9102ad Simplify payloads with ppx_fields_conv
6 years ago
Jeremy Dubreil 86d4c5a55f [infer] make the Fragment Retains View checker support the androidx Fragment class name
6 years ago
Mehdi Bouaziz 21b5eb72e6 [Hoisting] Simplify fetching callee cost
6 years ago
Ezgi Çiçek 478e278ba0 [control] Don't fail hard on undefined control variables
6 years ago
Ezgi Çiçek 7e16aafdba [loop-hoisting] Incorporate cost trace into EXPENSIVE_LOOP_INVARIANT_CALL issues
6 years ago
Ezgi Çiçek 6d25b0990d [cost,purity] Model java's Map as Collections
6 years ago
Ezgi Çiçek 4eec73c2f2 [loop-hoisting] Add complexity to EXPENSIVE_LOOP_INVARIANT_CALL issue message
6 years ago
Ezgi Çiçek a2140c3ae4 [hoisting] Rename LOOP_INVARIANT_CALL to EXPENSIVE_LOOP_INVARIANT_CALL and remove VariantForHoisting
6 years ago
David Lively 67cd0e1cd7 More tweaking of annotation-reachability-cxx output
6 years ago
Jules Villard 686231ec6e [SIL] change `variable_initialization()` builtin to a new auxiliary instruction
6 years ago
Ezgi Çiçek b802620bc8 [cost] Add cost models for loop invariant functions
6 years ago
David Lively 2682cdb463 Tweak formatting of CxxAnnotationSpecs output
6 years ago
David Lively 996f7c4f02 Allow Cxx annotation-reachability src/sink/override w/paths AND symbols
6 years ago
Jules Villard ebe5028ca1 [SIL] add `Skip` metadata instruction
6 years ago
Jules Villard b665e1c575 [SIL][HIL] distinguish auxiliary instructions as `Metadata`
6 years ago
David Lively f12bbacbdd [annotation-reachability] stop merging sanitized nodes' callees
6 years ago
David Lively 87391f6f2f [annotation-reachability] make CxxAnnotationSpecs.report more user-friendly
6 years ago
Nikos Gorogiannis cf6ced0580 [racerd] on-annotations
6 years ago
Dino Distefano b500b5ffa0 Reporting Performance Variation on Cold Start
6 years ago
David Lively 20b21698f6 [checkers] enable config-driven annotation reachability for Cxx
6 years ago
Josh Berdine 4acad5ca90 [ocamlformat] upgrade ocamlformat to 0.9
6 years ago
Jules Villard 628b9daf92 [pulse] move source files into their own pulse/ directory
6 years ago
Nikos Gorogiannis f78dfbaeda [racerd] guardeby checks on uithread
6 years ago
Nikos Gorogiannis f32db5382f [racerd] restrict guarded by to one field/same or superclass
6 years ago
Ezgi Çiçek 1884994cc0 [cost] Allow program variables to occur in control variables
6 years ago
Ezgi Çiçek b537685fc2 [purity] Enable Clang in purity analysis
6 years ago
Dino Distefano 67b42bf021 Added new issue types for Allocation and IO
6 years ago
Nikos Gorogiannis 05f14391a6 [racerd] replace quandary traces with explicit ones
6 years ago
Dino Distefano 52b72f4bbe Added more allocation primitives
6 years ago
Ezgi Çiçek 88a1dedb90 [cost] Ignore counting dummy loads
6 years ago
Jules Villard 89bdab173a [pulse] add HTML debug for various cases of call models
6 years ago
Jules Villard 3f8dc91b2a [pulse] perf win: separate edges from attrs in memory
6 years ago
Jules Villard bb3c8cfcc2 [pulse][minor] move attributes function around
6 years ago
Jules Villard 38435fec03 [pulse][minor] do not record abstract address in diagnostics
6 years ago
Jules Villard 363d69430d [ai][pulse] use subgraph-based implication between states
6 years ago
Jules Villard aae17242d7 [pulse] no addresses in attributes
6 years ago
Mehdi Bouaziz e74b607cd0 [Cost] Do not print Top trace in trace step
6 years ago
Dino Distefano 3b8782a6c1 added allocation
6 years ago
Jeremy Dubreil 8a7363b16b [infer] make the Fragment Retains View warnings pretty-printable
6 years ago
Jeremy Dubreil 130a729674 [infer] report the Fragment Retains View issues as warnings instead of errors
6 years ago
Jules Villard a19db6605c [AI][pulse] lists of disjuncts instead of sets
6 years ago
Jules Villard 44007f054c [pulse] collect garbage (unreachable) heap parts from time to time
6 years ago
Jules Villard e118fe2ea4 [pulse] RIP join
6 years ago
Mehdi Bouaziz b48884bce7 [Cost] Traces for Top values
6 years ago
Ezgi Çiçek 340ac9d1c9 [purity] Fix global modification via argument passing
6 years ago
Mehdi Bouaziz c991f0c157 Small refactorings: Cost
6 years ago
Mehdi Bouaziz 212bd978e7 [purity] Allow Clang
6 years ago
Mehdi Bouaziz 4d5f8e6fea Small refactorings: Hoisting
6 years ago
Mehdi Bouaziz 48298f9bcc Small refactorings: Loop_control
6 years ago
Mehdi Bouaziz 21c9227529 Small refactorings: LoopInvariant
6 years ago
Mehdi Bouaziz 5a5a865bf4 Small refactorings: ReachingDefs
6 years ago
Mehdi Bouaziz 65499e36ce Small refactorings: Purity
6 years ago
Mehdi Bouaziz 52e8f73060 Small refactorings: Control
6 years ago
Mehdi Bouaziz 0185b76c3d Cost domain is not an abstract domain
6 years ago
Mehdi Bouaziz e3db5720ce [Cost] Always call substitute to record trace element
6 years ago
Mehdi Bouaziz 05ac5adfee Run Purity once
6 years ago
Mehdi Bouaziz 453cb1336c [inferbo] Make Bound type abtract
6 years ago
Mehdi Bouaziz b212f1ce6c [hoisting] Fix reporting logic
6 years ago
Mehdi Bouaziz 023d608530 [cost] Make it more Kind-generic
6 years ago
Ezgi Çiçek cd20abfc88 [cost] Add trace to symbols in polynomial bounds
6 years ago
Mehdi Bouaziz 3139ee5d46 [cost] Instantiate costs using formals not pname
6 years ago
Mehdi Bouaziz 7fa7ee4535 [cost] Report only after the analysis
6 years ago
Mehdi Bouaziz 7c688583e0 [cost] Simplify & optimize NodesBasicCost
6 years ago
Mehdi Bouaziz 17fc4ca5cf [cost] Simplify & optimize exit cost + threshold
6 years ago
Jules Villard 4c4bb84e2c [liveness] blacklist of dangerous classes
6 years ago
Dino Distefano b52f2eb4be Simulate record domain in cost analysis
6 years ago
Jules Villard f8338d8faf [clang] ignore `__attribute__((unused))` variable initialisations
6 years ago
Ezgi Çiçek ea486c59d8 [purity] Always show PURE_FUNCTION issues
6 years ago
Ezgi Çiçek 6e0682b463 [purity] Mark unmodeled functions as modifying global state
6 years ago
Ezgi Çiçek 50b1533921 [loop-invariance] Make InvariantModels based on ProcName
6 years ago
Ezgi Çiçek c72f381520 [purity] Refactor global writes and get rid of BottomLifting
6 years ago
Nikos Gorogiannis 374538a02f [crashcontext] die
6 years ago
Dino Distefano e6d2872a4e Using record data structure for the cost domain
6 years ago
Mehdi Bouaziz 1b8927badd [inferbo/cost] Do not produce inferbo issues on Cost and Purity analysis
6 years ago
Mehdi Bouaziz e4bb3c9d68 [inferbo] Only callee formals are needed
6 years ago
Mehdi Bouaziz 5ba8bbe08f [inferbo] Split summary
6 years ago
Mehdi Bouaziz 3fabbfdcad [inferbo] Split Analysis and Checker
6 years ago
Nikos Gorogiannis 764e9ee1be [AI] empty is not (necessarily) bottom
6 years ago
Mehdi Bouaziz 8a3592c34e [inferbo] Uncouple numerical analysis and numerical checks
6 years ago
Nikos Gorogiannis 9463b25702 [classloads] move sources to more appropriate location
6 years ago
Jules Villard 49ca4eeecd [HIL][disjunctive] allow underlying transfer function to return disjunctions
6 years ago
Jeremy Dubreil 87a8ddc8fa [nullsafe] merge the option names
6 years ago
Jules Villard 11eca94be7 [pulse] split PulseDomain.ml
6 years ago
Jules Villard 4c1ee2a485 [pulse] add traces to the domain
6 years ago
Jules Villard d9978bb897 [pulse] better pretty-printing of stacks
6 years ago
Mehdi Bouaziz 5d1a213f52 [Hil] Fix failure in exception node
6 years ago
Mehdi Bouaziz 85bab87d16 [cost] The first cost model is a log
6 years ago
Daiva Naudziuniene c09068e3bf [HIL] Preserve ExitScope location information in the translation from SIL
6 years ago
Daiva Naudziuniene 2a139a2220 [pulse] Fix operator= case with temporaries
6 years ago
Ezgi Çiçek b46f55d0bc [purity] Mark functions with empty modified params as pure
6 years ago
Mehdi Bouaziz 4343f9c8b2 [cost] Adds Log elements to polynomials
6 years ago
Mehdi Bouaziz 9f333bb433 [quandary] Different source kinds for endpoints
6 years ago
Jules Villard 9868f7f763 [pulse] warn on returning address of C++ temporary
6 years ago
Jules Villard db1814b1d1 [pulse] detect stack variable address escape
6 years ago
Jules Villard 1b79f13a18 [ownership] make heuristic for reporting on lambdas more shareable
6 years ago
Mehdi Bouaziz b3c8d1dc67 [HIL] Fix ExitScope
6 years ago
Ezgi Çiçek 89b73e554e [purity] Mark functions that write to global static vars as impure
6 years ago
Daiva Naudziuniene e2b5a6f941 [pulse] Allow taking address of a field of an invalid object
6 years ago
Mehdi Bouaziz 52e09aed13 [inferbo] Move get_formals from Domain to Procdesc
6 years ago
Daiva Naudziuniene 220d29766d [pulse] Model stack as a map from addresses of variables
6 years ago
Jules Villard 77179d2c5c [pulse] switch back to having a single abstract address per stack variable and heap location
6 years ago
Jules Villard 2a46a54060 [pulse] use the disjunctive domain and make it configurable
6 years ago
Jules Villard 156f5946c2 [HIL][pulse] add disjunctive domain
6 years ago
Jules Villard d9a014f71b [pulse] take array indices into account
6 years ago
Jules Villard 26d4a2d14f [HIL] simplify some functors around TransferFunctions
6 years ago
Jules Villard 65d031af66 [pulse] model lambda captures
6 years ago