312 Commits (6fa25b7464aa112649c640ef1939d19c23f0ebe1)

Author SHA1 Message Date
Sam Blackshear 19da59cf19 [hil] functor for easily creating HIL analyses
8 years ago
Sam Blackshear 80030c8de7 [quandary] delegate handling of assignment to HIL
8 years ago
Jeremy Dubreil b3af2ad4b6 [infer][ondemand] The source parameter from the analysis callback was never used
8 years ago
Sam Blackshear d248780645 [quandary] delegate cast handling to HIL
8 years ago
Andrzej Kotulski 029499cd9d [IR] add type qualifiers to Typ.t
8 years ago
Jules Villard f232e3bd8d [build] fatal on warnings 21, 52, 57
8 years ago
Sam Blackshear 92011790c2 [quandary] optimize handling of unknown code by adding notion of 'taintable types'
8 years ago
Dulma Churchill f4bc0db2b4 [clang] Make capture with simple clang command be a method call
8 years ago
Jeremy Dubreil f5adab59ec [infer][checkers] Prevent the race conditions between the summaries passed as parameter to the checkers and the summaries from the specs table
8 years ago
Andrzej Kotulski 71702a13dc [IR] More detailed type for Fieldname.t
8 years ago
Andrzej Kotulski e6ebad394e [IR] Make qualified names type safe
8 years ago
Andrzej Kotulski 7c64d217f2 [IR] Refactor Ident.fieldname _*into Fieldname module
8 years ago
Sam Blackshear c5d7762f60 [access trees] expose join of nodes and fold over nodes
8 years ago
Sam Blackshear 69fe80346c [quandary][perf] Always use the location of the pdesc in footprint sources
8 years ago
Jeremy Dubreil 30ae60461e [infer][backend] Fail when no callback is registered to run the analysis on-demand
8 years ago
Dulma Churchill fca8322c1f [linters] Save the linters definition file in the report.json
8 years ago
Martino Luca 5448a95ce7 [Infer][Localise] Group all issue types in one place, and provide their human-readable representation
8 years ago
Andrzej Kotulski e363958d34 [codemod] Move `Procname` into `Typ.Procname`
8 years ago
Andrzej Kotulski ef79b20e17 [clang] Inline namespaces disappear, simplify infer's code
8 years ago
Martino Luca f8a65e698c Add differential and filtering functionalities to Infer, to compare two analyses
8 years ago
Dulma Churchill 01c1d9f112 [linters] Remove new lines from linters messages
9 years ago
Cristiano Calcagno 9a06a859e2 Deprecate IList part 3.
9 years ago
Cristiano Calcagno b1b5460529 Deprecate further IList functions
9 years ago
Cristiano Calcagno 731dead406 More IList deprecation: fold functions
9 years ago
Jules Villard f1698f3816 [clang] reimplement fuzzy matching of list of qualifiers
9 years ago
Jules Villard 7e1f1f9101 [test] make tests pass in clang-only or java-only mode
9 years ago
Sam Blackshear ae0df5dc57 [access paths] kill type of field access and replace with utility functions for recovering type
9 years ago
Sam Blackshear 919b35f50a [quandary] better taint propagation for Intent's
9 years ago
Cristiano Calcagno 60916922c6 Deprecate more IList functions and use Core List instead
9 years ago
Dulma Churchill 9ac65a7b1d [linters] Take current os version into account in the unavailable api check
9 years ago
Sam Blackshear a4efc7bba7 [cleanup] Simplify PrettyPrintable.Make functors
9 years ago
Sam Blackshear 4627bb6f48 [absint] simplify `AbstractInterpreter.Make` functor by hiding `Scheduler` parameter
9 years ago
Cristiano Calcagno 5c12d98d37 Deprecate IList module in favour of Core List
9 years ago
Sam Blackshear 38a336694a [quandary] improve taint propagation for unknown calls
9 years ago
Kihong Heo cef2f0e055 Inferbo
9 years ago
Cristiano Calcagno b1421bc27f [BetterEngineering] Remove remaining uses of polymorphic equality
9 years ago
Sam Blackshear df5798336b [cleanup] give AccessPath.raw its own module
9 years ago
Sam Blackshear 2f69191c7e [backend] expose underlying Procdesc.Node from ProcCFG nodes
9 years ago
Sam Blackshear 2add2954da [checkers] factor out FormalMap into its own module
9 years ago
Sam Blackshear d86f777132 [quandary] considering methods of subclasses of Activity, SharedPreferences etc. as sources/sinks too
9 years ago
Sam Blackshear 9c48178e4a [quandary] model some formals of Webview methods as tainted
9 years ago
Sam Blackshear 8d0f6e822c [absint] don't require domains to define their initial state
9 years ago
Sam Blackshear 374ee12792 [traces] adding Sink.Make functor for easier sink creation
9 years ago
Sam Blackshear 6bf38931ce [traces] adding Source.Make functor for easier source creation
9 years ago
Sam Blackshear 06e0f6fbc9 [quandary] support tainted formals
9 years ago
Sam Blackshear 2a567d3abe [quandary] summaries are access trees too
9 years ago
Josh Berdine 7834c95bc8 Silence deprecation warnings
9 years ago
Josh Berdine e438314776 Divide Utils into Utils, Pp, and IStd
9 years ago
Josh Berdine de2e6c9d88 Core.Std.Option
9 years ago
Josh Berdine e415b73786 Core.Std.String
9 years ago
Josh Berdine a2930b7007 Core.Std.Int
9 years ago
Josh Berdine 198bc00df7 Remove Utils compare and equal functions
9 years ago
Josh Berdine bbd5ef385d ppx_compare ProcCfg
9 years ago
Josh Berdine 356d081e1f ppx_compare AccessPath
9 years ago
Sam Blackshear ad5ff00dcd [quandary] making it easier to specify behavior for unknown functions
9 years ago
Sam Blackshear 5c2666a07c [quandary] filter the footprint sources in Trace.should_report
9 years ago
Jules Villard 7705ffbc31 [checkers] rename to_callee -> with_callsite
9 years ago
Cristiano Calcagno c5159bae1c [IR] Move Procdesc module to a separate file.
9 years ago
Sam Blackshear fde7a6ecf3 [quandary] support for full interprocedural traces
9 years ago
Cristiano Calcagno e933ee958a [IR] Rearrange the cfg module to make nodes, procd descs, and cfgs independent types.
9 years ago
Josh Berdine 32a60e05f4 Unbreak master
9 years ago
Sam Blackshear 768a60caca [quandary] support for full interprocedural traces
9 years ago
Sam Blackshear 9968245a43 [quandary] move source and sink kinds into their own modules
9 years ago
Sam Blackshear 874e7f000d [quandary] functions that transitively return sources are sources, not passthroughs
9 years ago
Cristiano Calcagno 73c5dfdfa4 [IR] Remove use of Cfg.Node.get_proc_desc
9 years ago
Sam Blackshear d76a7ef43a [quandary] functions that transitively call sinks are sinks, not passthroughs
9 years ago
Andrzej Kotulski 46592ffdd9 [backend] Split construction of builtin pnames and builtin registration
9 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg
9 years ago
Sam Blackshear 2c0bf042b4 [checkers] extract access paths from non-lhs expressions
9 years ago
Cristiano Calcagno ecda199e9d [IR] Clean up unused parts of Cfg
9 years ago
Sam Blackshear 319463b3bc [quandary] propagating taint from unknown procedures and constructors
9 years ago
Sam Blackshear 355ab92130 [backend] move expression pretty-printing into exp module
9 years ago
Sam Blackshear 6aee686cb2 [quandary] passing actuals to the sink-determining code
9 years ago
Sam Blackshear 727af5d660 [checkers] clean up abstract interpreter
9 years ago
Sam Blackshear 1a958d1d8b [quandary] simplifying Source module interface now that calls have single retval
9 years ago
Sam Blackshear 35bb540bf4 [quandary] adding TaintSpec module for clearer naming
9 years ago
Sam Blackshear 5e2e7b88aa [quandary] allow trace-specific rules for handling unknown code
9 years ago
Josh Berdine c094a38d56 [IR] Simplify to single return id, with type
9 years ago
Sam Blackshear 3051d90307 [quandary] kill unused Source.to_return proc
9 years ago
Sam Blackshear de146f4f2d [quandary] switch to using base -> formal num map in extras
9 years ago
Sam Blackshear 31e6849ec0 [quandary] using summaries part 2: the relational cases
9 years ago
Sam Blackshear 9f1c4e4bca [quandary] adding append operation
9 years ago
Sam Blackshear d6d7293633 [quandary] moving logging of errors into analysis
9 years ago
Sam Blackshear 31435fa936 [quandary] summaries for interprocedural analysis
9 years ago
Sam Blackshear 27cfb141da richer sink specifications
9 years ago
Sam Blackshear 3368548e3e replace stackop instruction with skip instruction
9 years ago
Sam Blackshear 8ab9a6c714 remove some commented logging code
9 years ago
Lázaro Clapp Jiménez Labora f2e958ef3a Add support for multiple stacktraces in '-a crashcontext'
9 years ago
Sam Blackshear a31a735e35 separate pretty-printer for pp_kind
9 years ago
Sam Blackshear 36b0a957bd setup for creating very simple absint checkers
9 years ago
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
9 years ago
Sam Blackshear 262a121cf6 handle casts
9 years ago
Sam Blackshear 514107ec88 track sinks
9 years ago
Sam Blackshear f0028669ee propagate tainted sources
9 years ago
Sam Blackshear 3b12208e1b intraprocedural taint analysis that records sources
9 years ago
Sam Blackshear 90c8f55c32 adding missing functionality to analyzerTester
9 years ago
Sam Blackshear 462bf68f46 killing is_bottom
9 years ago
Sam Blackshear f99b30c4cd abstracting passthroughs more aggressively
9 years ago
Lázaro Clapp Jiménez Labora 175efddc2b Make stacktrace and stacktree line number an int option.
9 years ago
Lázaro Clapp Jiménez Labora 616e8fddd4 Make stacktrace parsing work when line number info is not available.
9 years ago
Sam Blackshear 034d2e3c81 adding accessTree.fold
9 years ago
Josh Berdine 25a52c7bbc Refactor operations on Exp.t in Sil to Exp
9 years ago
Josh Berdine 701eb20f83 Refactor Sil.exp to Exp.t
9 years ago
Lázaro Clapp Jiménez Labora d23c99a4ea Add blame_range to crashcontext analysis.
9 years ago
Sam Blackshear 33b417c280 generalizing `add_trace` to `add_node`
9 years ago
Sam Blackshear 706acdfd9e generalizing get_trace to get_node
9 years ago
Sam Blackshear e9aecd0afe widen for access trees
9 years ago
Sam Blackshear 6a1a0d68da create access paths from expressions
9 years ago
Sam Blackshear e95ebca786 factoring out some utility methods for testing access-based stuff
9 years ago
Lázaro Clapp Jiménez Labora 9f7cb87bb0 Add stacktrace extras to BoundedCallTree checker.
9 years ago
Sam Blackshear 0ca19da3cf allowing custom procname in analyzerTester
9 years ago
Sam Blackshear a33e047377 allow access path base to be an ident as well
9 years ago
Lázaro Clapp Jiménez Labora d4a9a6cde1 Add initial stack trace parsing code for semantic blame
9 years ago
Sam Blackshear 16b31acfc9 add_trace function for access tree + tests
9 years ago
Lázaro Clapp Jiménez Labora b9a5a3b5ad Add initial version (k=1, undirected) of the bounder calltree analysis checker for the Semantic Blame project
9 years ago
Sam Blackshear 09e45710d3 join for access trees and tests
9 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
9 years ago
Josh Berdine 2154c2c483 Refactor Sil.unop into separate Unop module
9 years ago
Josh Berdine 9487cab145 Refactor Sil.const into separate Const module
9 years ago
Josh Berdine 32d09545e2 Closure values are not constants
9 years ago
Sam Blackshear b2c422827a adding <=, tests to access tree domain
9 years ago
Sam Blackshear 05505b55fd beginnings of access tree domain, tests
9 years ago
Sam Blackshear 9df3b8f653 eliminating dead stores created by copy-propagation
9 years ago
Sam Blackshear 314d022e38 add abstraction of access path, use in access path set domain
9 years ago
Sam Blackshear b9fefe9d9b better unit tests for procCfg
9 years ago
Sam Blackshear cf5871e76f fixing broken backward/per-instr cfg by taking a different approach
9 years ago
Sam Blackshear 7544e500bf adding finite access paths, tests, and basic utilities
9 years ago
Sam Blackshear c1b5a4b03e don't treat `x = &y` as a copy
9 years ago
Josh Berdine bbec166174 Refactor Sil.typ into separate Typ module
9 years ago
Josh Berdine a6a766b5f5 Refactor Sil.Int into separate IntLit module
9 years ago
Sam Blackshear 49136a187b fixing bug in exceptional preds/succs in per-instr procCfg
9 years ago
Sam Blackshear 25578de26d redesigning abstract interpreter to allow easy composition of analyses
9 years ago
Sam Blackshear c92bbf362b removing need to pass around lists of temporary id's in the frontend
9 years ago
Sam Blackshear ef1b76d27b new procCfg type with each node containing at most one instruction
9 years ago
Sam Blackshear 0becc32a88 factoring Node module out of CFG
9 years ago
Sam Blackshear f60b17d8b9 correctly handling Sil.Letderef(Var, Var) Sil.Set(Var, _) in copy propagation
9 years ago
Sam Blackshear b20ef20644 Allowing custom procCfg node types
9 years ago
Sam Blackshear ebcfae388a handling Set(Var, _,) as read of var in liveness analysis
9 years ago
Sam Blackshear 49d32859cb adding optional postprocessing step to transfer functions
9 years ago
Sam Blackshear 90a5a5912f allowing extra data to be packaged along with procCfg
9 years ago
Sam Blackshear f3fe199a25 Forcing node ids of procCfg's to be Cfg.Node.id
9 years ago
Sam Blackshear 596d8338ee dealing with exceptional control-flow in abstract interpreter
9 years ago
Sam Blackshear 6aca1cdfef exceptional procCfg
9 years ago
Sam Blackshear 988ceafbf0 adding try/catch/finally instruction to structured SIL
9 years ago
Cristiano Calcagno 054ad223a8 Fix control-flow graph shape when conditional is last instruction.
9 years ago
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
9 years ago
Sam Blackshear e54db73bab pass tenv to the transfer functions
9 years ago
Sam Blackshear c499645f6f better names in AbstractDomain and TransferFunctions modules
9 years ago
Sam Blackshear 967dcec7f1 liveness analysis and unit tests
9 years ago
Sam Blackshear c8b87ed0c8 passing caller pdesc into the transfer functions
9 years ago
Cristiano Calcagno 509a666ee0 Refactor Sil.pvar into a separate module.
9 years ago
Sam Blackshear c03f39f20c Fixing some issues with Obj-C blocks
9 years ago
Sam Blackshear a71caccc80 address-taken analysis and tests
9 years ago
Cristiano Calcagno c198d76631 Clean up the Procname module, and remove remaining assert false
9 years ago
Sam Blackshear dec843f5f5 copy-propagation analysis + tests
9 years ago
Sam Blackshear 8913e38dbd getting rid of bottom
9 years ago
Sam Blackshear 730a2afaaf more consistency with abbreviated functions names in abstract domain signature
10 years ago
Sam Blackshear ddfd35107c unit tests for abstract interpreter
10 years ago
Sam Blackshear 2f44f3faa8 adding generic abstract interpreter
10 years ago
Sam Blackshear b62bdc46b6 adding scheduler abstraction and reverse postorder scheduler
10 years ago
Sam Blackshear 85747084b5 adding dependency on ounit
10 years ago
Sam Blackshear 62965e8051 adding runner for OCaml unit tests
10 years ago