1538 Commits (d36aae1bcfceee08f52b7e51be2a47cc06e29bf3)

Author SHA1 Message Date
Cristiano Calcagno b1b5460529 Deprecate further IList functions
8 years ago
Cristiano Calcagno 41c5be9bad Deprecate more IList functions
8 years ago
Peter O'Hearn c080cbb60f [threadsafety] De-duplicate the reports
8 years ago
Sam Blackshear 040140ba52 [thread-safety] model SynchronizedPool.acquire as acquiring ownership
8 years ago
Peter O'Hearn df154b4135 [threadsafety] read/write races
8 years ago
Sam Blackshear 8629ee5381 [cleanup] make PatternMatch.override_exists check the current procname too
8 years ago
Sam Blackshear 5c2ee8d85f [thread-safety] model ThreadLocal.get() as acquiring ownership
8 years ago
Sam Blackshear 23150c8490 [thread-safety] use untyped access path maps/sets in thread-safety analysis
8 years ago
Cristiano Calcagno 731dead406 More IList deprecation: fold functions
8 years ago
Jules Villard a79096efa8 [siof] generic model of std::ios_base::Init that prevents SIOF
8 years ago
Jules Villard f1698f3816 [clang] reimplement fuzzy matching of list of qualifiers
8 years ago
Jules Villard a469e97987 [siof] add --siof-safe-methods whitelisting option
8 years ago
Jeremy Dubreil 279f50eac6 [infer][backend] make the on-demand analysis function return a summary
8 years ago
Sam Blackshear ae0df5dc57 [access paths] kill type of field access and replace with utility functions for recovering type
8 years ago
Sam Blackshear b229b39a1b [thread-safety] Add @ReturnsOwnership annotation for methods and handle it in the thread-safety analysis
8 years ago
Sam Blackshear e15121c928 [thread-safety] model DI via Provider.get as acquiring ownership
8 years ago
Sam Blackshear 5cdee51ed5 [checkers] allow custom sources and sinks in annotation reachability
8 years ago
Sam Blackshear 61e4e6e1ed [thread-safety] propagate attributes across binary/unary expressions
8 years ago
Sam Blackshear f085023aff [thread-safety] model certain methods of Resources as @Functional
8 years ago
Sam Blackshear 4f33ecef1e [thread-safety] treat generated GraphQL constructors as returning ownership
8 years ago
Sam Blackshear b8f9c774f3 [thread-safety] support conditional writes to containers
8 years ago
Cristiano Calcagno 60916922c6 Deprecate more IList functions and use Core List instead
8 years ago
Sam Blackshear c4fbf4e3fb [thread-safety] propagate attributes across casts
8 years ago
Sam Blackshear 42188eb105 [thread-safety] add understanding of conditional ownership
8 years ago
Sam Blackshear dc9892eef5 [thread-safety] use map of access paths to attributes rather than multiple sets of access paths
8 years ago
Sam Blackshear a3cffa7116 [absint] add inverted map domain
8 years ago
Sam Blackshear a4efc7bba7 [cleanup] Simplify PrettyPrintable.Make functors
8 years ago
Sam Blackshear 4627bb6f48 [absint] simplify `AbstractInterpreter.Make` functor by hiding `Scheduler` parameter
8 years ago
Sam Blackshear 9ed282b28b [thread-safety] handle constructors by understanding that a constructor owns `this`
8 years ago
Sam Blackshear 0e77e36235 [thread-safety] propagate @Functional attribute across boxing of primitive types
8 years ago
Sam Blackshear d41b500659 [thread-safety] treat constants as owned
8 years ago
Sam Blackshear 5c2fcd02bd [cleanup] move annotated_signature into its own module inside eradicate
8 years ago
Cristiano Calcagno 5c12d98d37 Deprecate IList module in favour of Core List
8 years ago
Sam Blackshear 6c0c3b44b4 [annotations] make override_exists recursive
8 years ago
Sam Blackshear f6e8bf0f3f [thread-safety] don't warn on external accesses to fields of ThreadConfined classes
8 years ago
Kihong Heo cef2f0e055 Inferbo
8 years ago
Sam Blackshear 2800c84972 [checkers] don't do expensive access path equality check unless debugging
8 years ago
Jeremy Dubreil b6fae5cd46 [infer][eradicate] Consider junit.framework.TestCase.setUp as an initializer
8 years ago
Sam Blackshear f9280b682f [thread-safety] don't warn on accesses to fields assigned to @Functional calls
8 years ago
Sam Blackshear 70df06a596 [thread-safety] don't consider VisibleForTesting methods as public
8 years ago
Sam Blackshear d0f4e8771b [cleanup] generalize PatternMatch.iter_overrides to override_exists
8 years ago
Sam Blackshear 50c73e517b [cleanup] adding Annotations.pname_has_return_annot function
8 years ago
Sam Blackshear 3ee349ee23 [thread-safety] warn on unsafe accesses to lists
8 years ago
Sam Blackshear bcfcb5d405 [cleanup] restrict uses of annotated_signature to eradicate
8 years ago
Sam Blackshear 2351f767dc [cleanup] use pdesc_has_return_annot and friends instead of more cumbersome ways of looking up return annots
8 years ago
Sam Blackshear 73f3c5e0cd [cleanup] separate functions for checking annotations of return value and parameters
8 years ago
Sam Blackshear b371a3429c [cleanup] simplify method annotation and item annotation iteration methods
8 years ago
Sam Blackshear f0199a058a [cleanup] alphabetize annotations and remove duplicates
8 years ago
Sam Blackshear b227ee58a6 [thread-safety] handle some annotations as aliases of ThreadConfined
8 years ago
Sam Blackshear 369feb4149 [thread-safety] allow ownership to be transferred via return
8 years ago
Sam Blackshear 5bddb1e548 [quandary] allow sources to be specified in inferconfig
8 years ago
Cristiano Calcagno b1421bc27f [BetterEngineering] Remove remaining uses of polymorphic equality
8 years ago
Sam Blackshear df5798336b [cleanup] give AccessPath.raw its own module
8 years ago
Sam Blackshear 851a4da7e0 [thread-safety][cleanup] add mli for ThreadSafetyDomain
8 years ago
Sam Blackshear d25a3edbd7 [thread-safety][cleanup] open ThreadSafetyDomain locally to avoid excess typing
8 years ago
Sam Blackshear e132188361 [thread-safety] warn on unsafe accesses in overrides of methods annotated with @ThreadSafeMethod
8 years ago
Cristiano Calcagno f91b3128d3 [BetterEngineering] Replace uses of polymorphic equality
8 years ago
Sam Blackshear b9694ef086 [thread-safety] warn on unsafe writes in constructors
8 years ago
Sam Blackshear c4c495fbe5 [thread-safety] propagate conditional writes to callers
8 years ago
Sam Blackshear 4373945e74 [thread-safety] don't warn on writes rooted in a parameter owned by the callee
8 years ago
Sam Blackshear 6ace3838ba [absint] support HTML debug output
8 years ago
Sam Blackshear e565010cf3 [thread-safety] don't warn on writes to volatile fields
8 years ago
Jules Villard ca784cdb41 [cli] warn about deprecated options, clean up infer repo
8 years ago
Sam Blackshear 618e9c9338 [thread-safety] add @AssumeThreadSafe annotation to assume thread-safety of a method without checking it
8 years ago
Sam Blackshear f4b1af6f91 [thread-safety] allow @ThreadConfined annotation on methods
8 years ago
Sam Blackshear 2f69191c7e [backend] expose underlying Procdesc.Node from ProcCFG nodes
8 years ago
Cristiano Calcagno 1eaaf84a90 [checkers] Add support for html output in checkers, starting with Eradicate
8 years ago
Sam Blackshear f065f7653a [thread-safety] add map for conditional accesses
8 years ago
Sam Blackshear 72e17403fa [thread-safety] add and support @ThreadSafeMethod annotation
8 years ago
Jeremy Dubreil 619c202bd6 [infer][java] do no consider @OnBind as equivalent to @NoAllocation for the reachability checker
8 years ago
Sam Blackshear 1891a16f8f [thread-safety] suppress warnings on methods annotated with @OnEvent
8 years ago
Sam Blackshear 8b57278c70 [thread-safety] support fields annotated with @ThreadConfined
8 years ago
Sam Blackshear 2add2954da [checkers] factor out FormalMap into its own module
8 years ago
Sam Blackshear 4cb03f4670 [checkers] add ui-thread/non-ui thread reasoning to annotation reachability checker
8 years ago
Sam Blackshear 685f205dda [quandary] skeleton for ObjC traces
8 years ago
Sam Blackshear 73f219560d [thread-safety] warn on unsafe accesses to maps
8 years ago
Sam Blackshear d86f777132 [quandary] considering methods of subclasses of Activity, SharedPreferences etc. as sources/sinks too
8 years ago
Sam Blackshear 9c48178e4a [quandary] model some formals of Webview methods as tainted
8 years ago
Peter O'Hearn 7bcc7e421d [threadsafety] don't warn on methods from classes annotated ThreadConfined
8 years ago
Sam Blackshear 68c0705f26 [thread-safety] don't warn on methods annotated with UiThread
8 years ago
Sam Blackshear 8d0f6e822c [absint] don't require domains to define their initial state
8 years ago
Sam Blackshear 374ee12792 [traces] adding Sink.Make functor for easier sink creation
8 years ago
Sam Blackshear 6bf38931ce [traces] adding Source.Make functor for easier source creation
8 years ago
Sam Blackshear e8835b308e [thread-safety] add liveness analysis for thread-safety
8 years ago
Jeremy Dubreil 0cb69c5a6a [infer][java] fix comments for Annotations.annot_ends_with
8 years ago
Sam Blackshear 06e0f6fbc9 [quandary] support tainted formals
8 years ago
Sam Blackshear 3ca924f546 [thread-safety] blacklist logging methods
8 years ago
Sam Blackshear 084fd9301b [absint] Fix capitalization of abstractInterpreter.mli and reconcile with the source file
8 years ago
Peter O'Hearn 4057ffadcf [threadsafety] Change THREAD_SAFETY_ERROR to THREAD_SAFETY_VIOLATION
8 years ago
Sam Blackshear 2a567d3abe [quandary] summaries are access trees too
8 years ago
Kihong Heo 42a3176882 Fix the widening operator of the Map functor
8 years ago
Peter O'Hearn 23a0a611dc [threadsafety] Fix situation where @NotThreadSafe is reported on, when super is @ThreadSafe
8 years ago
Josh Berdine 3dfaa9ed7b Remove support for SuppressWarnings annotations
8 years ago
Jules Villard c51c4a21ae [siof] collate multiple reports at the same line into one
8 years ago
Sam Blackshear ee90e10491 [thread-safety] don't report on fields of immutable collections
8 years ago
Sam Blackshear 79154adf9e [thread-safety] use ownership info to avoid false alarms
8 years ago
Sam Blackshear 16cae31f20 [absint] add inverted set domain
8 years ago
Sam Blackshear 8e212f0468 [thread-safety] use id map to decompile tmp vars into access paths
8 years ago
Sam Blackshear 26ba5336a8 [domains] gating sanity checks in id -> access path domain
8 years ago
Sam Blackshear 7682017f93 [quandary] only show relevant passthroughs in trace
8 years ago
Sam Blackshear 5bd4daa900 [absint] make Interprocedural functor easier to customize
8 years ago
Jeremy Dubreil 715f6ffa7e [infer][java] match the annotation by class name, forgetting the package, instead of checking if the end of the annotation matches
8 years ago
Sam Blackshear 2386bc8f67 [thread-safety] use record type in domain
8 years ago
Josh Berdine 7834c95bc8 Silence deprecation warnings
8 years ago
Josh Berdine 2e66dcfac4 Open Core.Std by default, still use Caml Hashtbl, Map, Set
8 years ago
Josh Berdine e438314776 Divide Utils into Utils, Pp, and IStd
8 years ago
Josh Berdine 78ec954ae2 Core.Std.String.Map
8 years ago
Josh Berdine 76f8450203 Move proc_flags from Utils to ProcAttributes
8 years ago
Josh Berdine 7e6278baeb Core.Std.Printexc
8 years ago
Josh Berdine de2e6c9d88 Core.Std.Option
8 years ago
Josh Berdine 782e9d69f6 Core.Std.Bool
8 years ago
Josh Berdine e415b73786 Core.Std.String
8 years ago
Josh Berdine a2930b7007 Core.Std.Int
8 years ago
Andrzej Kotulski 56f8757337 [SourceFile] Move DB.SourceFile into separate file
8 years ago
Jules Villard e5863f5420 [siof] handle constexpr constructors
8 years ago
Andrzej Kotulski 69b39dacb0 [DB] Create module for SourceFile
8 years ago
Sam Blackshear e212183e7e [thread-safety] don't count accesses in methods of builder classes
8 years ago
Jules Villard 9cc9cc101c [IR] add Static_local_var pvar kind and use it in clang
8 years ago
Sam Blackshear ff3b6a10db [checkers] add mli for AccessTree
8 years ago
Sam Blackshear 4b98543d35 [traces] don't hang when unrolling a mutually recursive trace
8 years ago
Sam Blackshear c1205c1453 [thread-safety] model ReadLock/WriteLock
8 years ago
Sam Blackshear 5743351906 [thread-safety] don't report thread safety violations due to calls to constructors
8 years ago
Sam Blackshear cb82dacd54 [traces] moving logic for reporting flow-sensitive traces from quandary to trace domain
8 years ago
Andrzej Kotulski b8908282f8 [DB] Remove many callsites of DB.source_file_to_string
8 years ago
Sam Blackshear 0972c8d262 [quandary] don't report FP's due to flow-insensitive traces
8 years ago
Sam Blackshear 3b161a3737 [thread-safety] interprocedural traces for thread safety checker
8 years ago
Sam Blackshear 579b982359 [thread-safety] Lay the groundwork for interprocedural trace-based reporting
8 years ago
Cristiano Calcagno 827d7c3d9c [backend][perf] Address top performance bottleneck from profiling the backend.
8 years ago
Sam Blackshear 226791b631 [ondemand] simplify API by removing need to pass type environment
8 years ago
Sam Blackshear 01136cc326 [thread-safety] interprocedural analysis
8 years ago
Sam Blackshear 937ae12f29 [thread-safety] adding models for lock methods
8 years ago
Josh Berdine 198bc00df7 Remove Utils compare and equal functions
8 years ago
Josh Berdine 608ed877d3 ppx_compare RepeatedCallsChecker
8 years ago
Josh Berdine bebb00074d ppx_compare CheckTraceCallSequence
8 years ago
Josh Berdine 5d69d04578 ppx_compare TypeAnnotations
8 years ago
Josh Berdine 71664c7828 ppx_compare SiofTrace
8 years ago
Josh Berdine bbd5ef385d ppx_compare ProcCfg
8 years ago
Josh Berdine 85d15bcc49 ppx_compare Trace
8 years ago
Josh Berdine b94b5f1c58 ppx_compare Procdesc
8 years ago
Josh Berdine 48dcd7bb92 ppx_compare Source
8 years ago
Josh Berdine 356d081e1f ppx_compare AccessPath
8 years ago
Josh Berdine 9bc72ad790 ppx_compare Var
8 years ago
Josh Berdine aa5998a9d1 ppx_compare Sil
8 years ago
Josh Berdine f73f997e5a ppx_compare TraceElem
8 years ago
Josh Berdine 10046e1848 ppx_compare Passthrough
8 years ago
Josh Berdine a1e223d36d ppx_compare Ident
8 years ago
Josh Berdine 1ca67fbfa6 ppx_compare DB
8 years ago
Sam Blackshear 9e9ca333f9 [thread-safety] use boolean domain to track locks
8 years ago
Jeremy Dubreil afd29e71de [infer][backend] Simplify the code doing the case analysis for execturing the cast instruction
8 years ago
Peter O'Hearn 47588027eb [threadsafety] analyze all the files and methods
8 years ago
Sam Blackshear adacee51e2 [quandary] switch to --issues-tests printing
8 years ago
Sam Blackshear 37610b5180 [quandary] faster access list comparisons
8 years ago
Sam Blackshear b320714edd [quandary] optimizing Quandary compare functions
8 years ago
Jules Villard 17179d4275 [siof] take POD into account
8 years ago
Sam Blackshear 8d48c108ca [quandary] add Errlog traces
8 years ago
Sam Blackshear 5c2666a07c [quandary] filter the footprint sources in Trace.should_report
8 years ago
Peter O'Hearn 7a04ed32f5 [threadsafety] interprocedural
8 years ago
Peter O'Hearn 171d1d6d43 [threadsafety] run thread safety checker on its own
8 years ago
Jules Villard 0085417e0d [siof] better error reports using `Errlog.loc_trace`s
8 years ago
Jules Villard 7705ffbc31 [checkers] rename to_callee -> with_callsite
8 years ago
Jules Villard caf9537305 [refactoring] add make_trace_element to Errlog
8 years ago
Cristiano Calcagno c5159bae1c [IR] Move Procdesc module to a separate file.
8 years ago
Sam Blackshear ba7cef4657 [backend] differentiate unknown methods and methods with empty summaries
8 years ago
Sam Blackshear fcf57c6e09 [siof] add fancy interprocedural reporting
8 years ago
Sam Blackshear a8129be763 [traces] expose source-sink paths so users of traces can custom-print them
8 years ago
Jules Villard 2f5d132734 [config] normalize all paths options
8 years ago
Sam Blackshear 5358646c6f [siof] convert domain to sink trace of pvar's
8 years ago
Sam Blackshear ae5f8eff0d [traces] Move all trace-related files to checkers
8 years ago
Josh Berdine 7fc5b4d55d [siof] Make siof reporting closer to other checkers
8 years ago
Josh Berdine 32a60e05f4 Unbreak master
8 years ago
Sam Blackshear ea26d6f179 [siof] convert domain to sink trace of pvar's
8 years ago
Sam Blackshear 31093801d4 [traces] Move all trace-related files to checkers
8 years ago
Cristiano Calcagno 73c5dfdfa4 [IR] Remove use of Cfg.Node.get_proc_desc
8 years ago
Peter O'Hearn e91742afea Support @SuppressLint("InvalidAccessToGuardedField")
8 years ago
Sam Blackshear 21f9bd1ed6 [quandary] fix crash from returning exceptions that read from the environment
8 years ago
Andrzej Kotulski 46592ffdd9 [backend] Split construction of builtin pnames and builtin registration
8 years ago
Peter O'Hearn ec45b44dfd [threadsafety] Better error message when warning on subclasses of @ThreadSafe classes
8 years ago
Sam Blackshear 2c0bf042b4 [checkers] extract access paths from non-lhs expressions
8 years ago
Jules Villard 84af7c56f8 [SIOF] detect which variables need initialization
8 years ago
Sam Blackshear 9bf318fd4d [checkers] mlis for abstract domains
8 years ago
Sam Blackshear 471a7633f1 [checkers] return already-computed summaries from Interprocedural.checker
8 years ago
Sam Blackshear 355ab92130 [backend] move expression pretty-printing into exp module
8 years ago
Josh Berdine a9192cffd6 [config] Eliminate ad hoc environment variables
8 years ago
Peter O'Hearn 25a688bdbe [threadsafety] Consider certain init() methods as constructors
8 years ago
Sam Blackshear 6fc1a7e20f [quandary] reporting on array passed to sink when contents of array are tainted
8 years ago
Peter O'Hearn b1e9267e08 [threadsafety] Don't warn autogenerated methods (containing '$' in proc name)
8 years ago
Peter O'Hearn 2601af5ade [threadsafety] don't report on class initializers
8 years ago
Peter O'Hearn 69f7ed5f6d [threadsafe] fix the code for recognizing constructors
8 years ago
Jules Villard 5fe40bae12 [siof] check origin of globals and complain if potential siof
8 years ago
Peter O'Hearn 6423ec74ad Writing errors for Threadsafe checker
8 years ago
Jules Villard cb4b2339a3 [checkers] make SimpleCheckers compile
8 years ago
Sam Blackshear 727af5d660 [checkers] clean up abstract interpreter
8 years ago
Sam Blackshear 856f84aaff [quandary] skeleton for C++ analysis
8 years ago
Josh Berdine de56a302f3 [refactor] Remove unused prop reporting, and refactor
8 years ago
Peter O'Hearn 6b2a9de863 [refactor] moving check_attributes to patternMatch.ml
8 years ago
Peter O'Hearn 81344f016e [refactor] moving StringPPSet from ThreadSafety to Utils
8 years ago
Sam Blackshear 3449cbd555 [checkers] update timestamp when storing checkers summary
8 years ago
Jules Villard d9f83094b5 [clang] do not depend on Config.clang_lang and Config.source_file
8 years ago
Sam Blackshear dab5786789 [checkers] kill ref in abstract interpreter
8 years ago
Peter O'Hearn 3d1eba890a thread safety checker alpha0
8 years ago
Sam Blackshear 5e2e7b88aa [quandary] allow trace-specific rules for handling unknown code
8 years ago
Josh Berdine 3ddc23d7e5 [IR] Do not use JBasics.java_lang_object in IR/backend
8 years ago
Josh Berdine c094a38d56 [IR] Simplify to single return id, with type
8 years ago
Josh Berdine ae632e281a [IR] Refactor Typ.struct_typ into separate module
8 years ago
Josh Berdine 44e2c32524 [IR] Refactor annotation types into separate module
8 years ago
Josh Berdine 74c8198826 [IR] Remove redundant struct_typ.name field
8 years ago
Josh Berdine af51599e0f [backend] Remove AttributesTable.get_tenv
8 years ago
Dulma Churchill 561f4fdfad [linters] Adding a new type of procname that is used for lint bugs that are not in any method
8 years ago
Peter O'Hearn 419f2e0bdf [infer] Active Variables
8 years ago
Sam Blackshear f0a31f460b [checkers] don't crash when a frontend temp is reassigned
8 years ago
Cristiano Calcagno 4cee6907ec [backend] Remove the global reference DB.current_source and clean up the flow of information about the current source file.
8 years ago
Sam Blackshear de146f4f2d [quandary] switch to using base -> formal num map in extras
8 years ago
Sam Blackshear 70670f5355 [checkers] kill noisy logging in abstract interpreter
8 years ago
Sam Blackshear e4beca3779 [quandary] using summaries part 1: return
8 years ago
Josh Berdine 8589dc4868 Remove Tstruct in favor of Tvar
8 years ago
Josh Berdine 30b3881e52 Make Typ.struct_typ private and add Typ.mk_struct
8 years ago
Josh Berdine ad31aeb2a2 Expand Tvar to Tstruct as needed
8 years ago
Sam Blackshear 3368548e3e replace stackop instruction with skip instruction
8 years ago
Sam Blackshear 1e4b4df427 fixing handling of aliasing for frontend tmp vars
8 years ago
Josh Berdine 8a85919001 Pass tenv to everywhere that matches on Tstruct
8 years ago
Josh Berdine 2bebd94553 Remove redundant Typ.struct_typ.csu field
8 years ago
Josh Berdine f0940f25d7 Replace optional mangled struct_name with typename
8 years ago
Sam Blackshear 50ac3cde41 command-line setup
8 years ago
Sam Blackshear 15b6a8cdd7 killing a bunch of options by using optional argument types correctly
8 years ago
Lázaro Clapp Jiménez Labora f2e958ef3a Add support for multiple stacktraces in '-a crashcontext'
8 years ago
Sam Blackshear 36b0a957bd setup for creating very simple absint checkers
8 years ago
Sam Blackshear 89fa74bc9b make @OnBind an alias for @NoAllocation
8 years ago
Sam Blackshear f64e880c11 java traces
8 years ago
Jules Villard 26a6594b90 detect unsigned values inside structured expressions
8 years ago
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
8 years ago
Cristiano Calcagno c0969da619 Remove unused module CodeQuery.
8 years ago
Sam Blackshear f0028669ee propagate tainted sources
8 years ago
Sam Blackshear e853b01051 taint domain
8 years ago
Sam Blackshear 20584be8f3 mapping of ids to raw access path
8 years ago
Sam Blackshear 462bf68f46 killing is_bottom
8 years ago
Lázaro Clapp Jiménez Labora 175efddc2b Make stacktrace and stacktree line number an int option.
8 years ago
Sam Blackshear 034d2e3c81 adding accessTree.fold
8 years ago
Josh Berdine c147ab4197 Refactor Sil.attribute and associates to PredSymb
8 years ago
Josh Berdine 25a52c7bbc Refactor operations on Exp.t in Sil to Exp
8 years ago
Josh Berdine f9ca08a9a8 Refactor Exp.t-keyed collections from Sil to Exp
8 years ago
Josh Berdine d60965824e Refactor exp_equal and exp_compare to Exp
8 years ago
Josh Berdine 701eb20f83 Refactor Sil.exp to Exp.t
8 years ago
Josh Berdine 71a15b2388 Represent attributes with atoms, not disequalities
8 years ago
Lázaro Clapp Jiménez Labora d23c99a4ea Add blame_range to crashcontext analysis.
8 years ago
Vaibhav Tulsyan dba179845b Minor typo fix
8 years ago
Josh Berdine 06cbdfa651 Cosmetic changes to improve Reason conversion
8 years ago
Josh Berdine 32146523ca Enable warning: Unexpected documentation comment
8 years ago
Lázaro Clapp Jiménez Labora 0a8b95a856 Crashcontext ocaml method summary merging
8 years ago
Lázaro Clapp Jiménez Labora 58d008a026 Add Stacktree ATD type for serializing/decerializing crashcontext results.
8 years ago
Zac Sweers aed5e6bee8 Support butter knife 8's BindView annotation
8 years ago
Sam Blackshear 3233666b11 extract callsite to its own module
8 years ago
Lázaro Clapp Jiménez Labora 9a79e74380 Crashbot results stitching and end-to-end testing.
8 years ago
Sam Blackshear 33b417c280 generalizing `add_trace` to `add_node`
8 years ago
Sam Blackshear 706acdfd9e generalizing get_trace to get_node
8 years ago
Sam Blackshear e9aecd0afe widen for access trees
8 years ago
Lázaro Clapp Jiménez Labora 76764c148a Output the callee sumaries of -a crashcontext to per-method files.
8 years ago
Sam Blackshear 6a1a0d68da create access paths from expressions
8 years ago
Lázaro Clapp Jiménez Labora 6469a6c37b Implement '-a crashcontext' and '-st trace' options to invoke BoundedCallTree.ml from the command line.
8 years ago
Lázaro Clapp Jiménez Labora 9f7cb87bb0 Add stacktrace extras to BoundedCallTree checker.
8 years ago
Sam Blackshear a33e047377 allow access path base to be an ident as well
8 years ago
Sam Blackshear 27fa745cee using more general version of join_all_traces
8 years ago
Sam Blackshear 16b31acfc9 add_trace function for access tree + tests
8 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 e739b0e6ea Refactor Sil.dexp into separate DecompExp module
9 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
9 years ago
Josh Berdine aba67b4a2a Refactor Sil.binop into separate Binop 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 a1b680c473 Move attributes from const to exp
9 years ago
Josh Berdine 32d09545e2 Closure values are not constants
9 years ago
Josh Berdine c5ce74f3d3 Exception 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 2439dcf91f copy propagation step 1: propagate copies in the CFG
9 years ago
Sam Blackshear cf5871e76f fixing broken backward/per-instr cfg by taking a different approach
9 years ago
Sam Blackshear 37f943a3fa unifying checking of temporary variables
9 years ago
Sam Blackshear 7544e500bf adding finite access paths, tests, and basic utilities
9 years ago
Sam Blackshear 9d95a3a199 don't warn if procedure is marked VisibleForTesting
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
Cristiano Calcagno de0f98389a Add sample checker to detect reads and writes to globals
9 years ago
Jules Villard d2f7cb44fa disable dead code checker on clang
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
Jules Villard 21367b0e98 add matchers from inferconfig to the CLI
9 years ago
Sam Blackshear 9fdd094a89 refactoring annotation reachability checker to allow custom src/sink annotations
9 years ago
Sam Blackshear a45844f409 identify reads of fields protected by @GuardedBy
9 years ago
Sam Blackshear cfa7739963 hiding implementation of var
9 years ago
Sam Blackshear 1bb73ee3b6 adding map domain
9 years ago
Jules Villard 944176bf67 load json config files lazily and at most once
9 years ago
Sam Blackshear 3b6fa0939b adding taint kind to taint source specifications
9 years ago
Sam Blackshear 258e765d4e adding integrity source/sink annotations
9 years ago
Josh Berdine 3e2fa59262 Reimplement command line options
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 4fd2f52fe8 new analysis for adding nullify's
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 e96b94204c widen at pre instead of at post
9 years ago
Sam Blackshear 46fc0bb1dc remove recursive call in try/with
9 years ago
Sam Blackshear ffc4e2d213 checking supertypes for annotations
9 years ago
Sam Blackshear b228584855 refactoring get_strict_supertyps to use iteration for more flexibility
9 years ago
Sam Blackshear 3e8b681135 big refactoring to improve API for subtyping related operations
9 years ago
jrm 9b6de7aeb0 Do not report @NoAllocation and @PerformanceCritical violations in "unlikely" branches
9 years ago
Sam Blackshear 6113497020 delete callbackChecker and deps
9 years ago
jrm 82670de0c8 improve errors traces for the @NoAllocation and the @PerformanceCritical checker
9 years ago
Sam Blackshear e1e62be243 supporting new @PrivacySource/PrivacySink annotations
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
Jules Villard 70c8494625 opacify the type of node ids
9 years ago
Jules Villard ac6ef1d9f6 kill Sil.Goto
9 years ago
Sam Blackshear f8ecbd800a moving noAllocation checker into AbsInt framework
9 years ago
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
9 years ago
Sam Blackshear e468d3d189 using address equality optimization in all abstract domains
9 years ago
Sam Blackshear 378ab69558 consistent API and usage for extracting Java types from strings
9 years ago
Sam Blackshear 15aaa39fea allowing class-level Expensive and PerformanceCritical annotations
9 years ago
Sam Blackshear 0a14ac8e2a pair domain
9 years ago
Sam Blackshear e54db73bab pass tenv to the transfer functions
9 years ago
Sam Blackshear 44a6bf7128 move Var into its own module
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 aa1588372e using address-taken checker in liveness analysis
9 years ago
Sam Blackshear c8b87ed0c8 passing caller pdesc into the transfer functions
9 years ago
Sam Blackshear 6504b58802 support for interprocedural checkers
9 years ago
Josh Berdine fd062cf736 Refactor SymExec.ModelBuiltins into toplevel module
9 years ago
Cristiano Calcagno 509a666ee0 Refactor Sil.pvar into a separate module.
9 years ago
Cristiano Calcagno 53702e43e8 Created IR folder for the intermediate representaion files.
9 years ago
Josh Berdine 2dcd93204c Refactor SymExec.Builtin into toplevel module
9 years ago
Cristiano Calcagno d41d452b67 Make eradicate work in the absence of procdescs for callees.
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 fb5c5c8515 turning off copy-propagation
9 years ago
Sam Blackshear dec843f5f5 copy-propagation analysis + tests
9 years ago
jrm 0b56374b11 Seprate the concept of @PerformanceCritical from the concept of @NoAllocation
9 years ago
Cristiano Calcagno 86304b3d9c Prevent assert false from occurring on Java functions in Procname.
9 years ago
Sam Blackshear 8913e38dbd getting rid of bottom
9 years ago
Sam Blackshear 7d10105060 moving tracecalls around so tests will pass on open-source build
9 years ago
Sam Blackshear 63f8a3e709 refactoring facebook-specific and open-source taint lists to fix open-source tests
9 years ago
Nick Firmani 1c819770e2 Add SuppressViewNullability annotation
9 years ago
jrm cc4fcd6837 Add support for modeling @Expensive methods using .inferconfig
9 years ago
Cristiano Calcagno b2969820a4 Avoid loading the cfg explicitly to find a proc desc.
9 years ago
Cristiano Calcagno a06d854364 Make the API of Exe_env return options instead of throwing exceptions.
9 years ago
jrm 793911c847 Add the possibility to analyze procedure descriptions on-demand without serialization
9 years ago
Sam Blackshear 730a2afaaf more consistency with abbreviated functions names in abstract domain signature
9 years ago
Sam Blackshear 2f44f3faa8 adding generic abstract interpreter
9 years ago
Sam Blackshear b62bdc46b6 adding scheduler abstraction and reverse postorder scheduler
9 years ago
Cristiano Calcagno 494dabf638 Simplify code in SymExec: cleanup and look up cfg.
9 years ago
jrm e123635122 Add support for @SuppressWarnings for Gradle and Ant projects.
9 years ago
Sam Blackshear 177574c29e type signatures for abstract domains and transfer functions
9 years ago
Sam Blackshear 65de2d9946 refactoring procCfg API to make it easier to mock
9 years ago
Sam Blackshear 2d89426170 fixing tenv_lookup
9 years ago
Cristiano Calcagno 89a2f2a7b4 Keep only on-demand infrastructure and delete the rest or the infrastructure.
9 years ago
jrm 761902afad for the @PerformanceCritical checker, skip allocations reports on subtypes of java.lang.Throwable instead of only java.lang.Exceptions
9 years ago
Cristiano Calcagno 021cf213a6 Bypass the interprocedural algorithm in Fork with ondemand, and replace it with a simple iteration.
9 years ago
jrm 697778cc3b Add the annotation @IgnoreAllocations to stop tracking allocations whenever useless
9 years ago
Samuel Blackshear ed580c59e9 implementing procedure cfg wrapper
9 years ago
jrm 1f5529c67e The @NoAllocation checker should not report on created exceptions
9 years ago
Josh Berdine 77b22ded03 Warn on unused identifiers
9 years ago
Josh Berdine 02056079cf Warn of unused values
9 years ago
jrm c6d8cdc8ee Add support for @NoAllocation in the performance critical checker
9 years ago
jrm 14d4f862eb @Performance critical checker: compute the expensive call stack lazily when reporting errors
9 years ago
jrm 4af130bf8d remove subtyping rule for the @PerformanceCritical annotation
9 years ago
Josh Berdine b155168083 Open Utils implicitly
9 years ago
Josh Berdine 2fa5c5b4e9 Warn of unused types
9 years ago
Sam Blackshear 556b9c121d improving error message from fragment retains View checker
9 years ago
Cristiano Calcagno 047eec5a6f Refactor callbacks for Eradicate and Checkers.
9 years ago
Sam Blackshear 0fbd333cab Checker that complains when Fragments don't nullify their Views
9 years ago
Tony Cosentini 75cca6b3d3 Add android.app.Service to whitelisted Android initializer classes.
9 years ago
Cristiano Calcagno 7673d94600 Distinguish between class kinds: CPP, Java, Objc
9 years ago
Cristiano Calcagno 162dc42b5b Use a record for struct types instead of a 7-tuple.
9 years ago
jrm a7371d5678 Perf critical checker: save the chains of calls to expensive methods in the error traces
9 years ago
jrm 9f5159241f Use Typename.t for the type of the supertypes in the defintion of classes.
9 years ago
Cristiano Calcagno a8ee0e6361 Move Eradicate files to a separate directory.
9 years ago
jrm 807922ca7f simplify the PatternMatch module
9 years ago
jrm 8325630da1 remove the function Sil.get_typ and use Sil.tenv_lookup instead
9 years ago
jrm 467fe385be Use the Mangled module to name the parameters in the procudure description instead of simple string
9 years ago
jrm 2e7f5735d3 Extract the naming of types to its own module named Typename
9 years ago
jrm 4143d4eb2d Extract the kind of data structure, Class Struct or Union, into it own module
9 years ago
jrm 0def5c4111 No longer enforce the subtyping rule for the @PerformanceCritical annotation
9 years ago
Josh Berdine 63b57790f9 Fix indentation of multiline copyright comment
9 years ago
Josh Berdine b729c93dd5 Add model of java.lang.Class.getResource
9 years ago
Cristiano Calcagno 1666d7f353 Model Map.put() alongside Map.containsKey().
9 years ago
Josh Berdine d66261a1f4 Do not reuse Undef function values
9 years ago
jrm 61e457b1f6 Run the @PerformanceCritical checker by default with the other checkers
9 years ago
Jules Villard a774f5e733 compile with -safe-string
9 years ago
Jules Villard 8dabf716e0 remove compilation warnings for OCaml version >= 4.02.0
9 years ago
Sam Blackshear 4dc9dac9e9 getting started on a Nullable annotation checker for obj-c
9 years ago
jrm a49b0965ef Model `android.view.View.findViewById` as an expensive method
9 years ago
jrm d712635feb Automatically infer the @PerformanceCritical annotations from the overriden methods
9 years ago
Cristiano Calcagno 8cd68cd890 Separate payloads from different analyses in specs.
9 years ago
jrm 646c9dbb61 Report error message with call stacks for @PerformanceCritical checker
9 years ago
jrm 8fb90ccf54 get the @PerformanceCritical and @Expensive annotatations of overridden methods from the summaries
9 years ago
jrm 5691f24090 Use the summaries to store the @CallsExpensive attributes
9 years ago
jrm b1b9cbe771 distinguish between the user added annotation @Expensive and the inferred annotation @CallsExpensive
9 years ago
jrm 0cd533f892 Enforcing subtyping rules for @Expensive and @PerformanceCritical
9 years ago
jrm 6b6b4d1949 Detecting if methods annotated with @PerformanceCritical transitively call methods annotated with @Expensive
9 years ago
jrm f5ddb983fe Initial version of the @Expensive checker
9 years ago
Cristiano Calcagno 6a922ff597 Print origin information for procedured modelled internally.
9 years ago
Sam Blackshear 04f92614e8 Moving printf args checker into Infer
9 years ago
Jules Villard 7d0a7568f3 put Util.list_* functions into an IList module
9 years ago
Cristiano Calcagno 22aad3e33a Add basic support for on-demand for the core Infer analysis.
9 years ago
Cristiano Calcagno 7d95e284d2 Let on-demand control whether to start at all the analysis of a procedure.
9 years ago
Cristiano Calcagno 75950384c9 [backend] Extend results directory with attributes for each procedure.
9 years ago
Cristiano Calcagno 8c80856e97 [Eradicate] Fix regression introduced when adding support for @TrueOnNull and @FalseOnNull.
9 years ago
Cristiano Calcagno 0f8c3e7974 [eradicate][ondemand] Skeleton of on-demand analysis for Eradicate.
9 years ago
Cristiano Calcagno f1c5cb337e [Eradicate] Add support for modeling boolean functions that check if the argument is null.
9 years ago
Cristiano Calcagno 629b09307f [Models] Add model for System.getProperty for Infer and Eradicate
9 years ago
Cristiano Calcagno 401109b4eb [Eradicate] Allow assigning null to fields marked @InjectView to support ButterKnife.
9 years ago
Cristiano Calcagno 2eb0f47646 [eradicate] generalize domain from two fields (nullable, present) to a map
9 years ago
Cristiano Calcagno 76c8b6e58b [backend] Reorganize the resolution of procedure attributes, fixing a bug where annotations of overridden procedures via spec files were not found.
9 years ago
Cristiano Calcagno ea7c13ff6c [backend][cleanup] Move proc_attributes to a separate module.
9 years ago
Cristiano Calcagno 6f65486942 [backend][cleanup] move fields in common to Cfg.Procdes and Specs.summary to proc_attributes.
9 years ago
Cristiano Calcagno 78f65b6dd7 [eradicate] handle methods overridden in other files
9 years ago
jrm 6de12aa5ba [infer][eradicate] Allow developers to locally redefine @Initializer
9 years ago
jrm fcc0c72ecb [infer][eradicate] add support for butterknife @Bind annotation
9 years ago
jrm c0446276a1 [eradicate] add support for the Android support v4 @NonNull annotation
9 years ago
Jonathan Keljo 17fc7c93f2 Add models for many methods in javax.lang.model and com.sun.source
9 years ago
Jonathan Keljo a1c735dd84 Factor out modelTables module
9 years ago
Jules Villard bae8a4dced [whitespace] indent .ml files as well
9 years ago
Jules Villard 6911a1516c [whitespace] ocp-indent the code
9 years ago
Jules Villard ca613a77ff [copyrightor] format start and end of copyright comments
9 years ago
Andrzej Kotulski 35400dd4f6 Rename Procname.from_string
9 years ago
Andrzej Kotulski 687f4958c8 Change procname types for objc/c functions
10 years ago
Cristiano Calcagno 3e199467f4 Complete copyright messages.
10 years ago
Cristiano Calcagno 6bde9bda88 [Bucketing] Improve error bucketing by using constant propagation when detecting direct null assignments.
10 years ago
Cristiano Calcagno a94fab55e8 [Eradicate] Fix issue where direct throw instructions were not handled like method calls that trow exceptions.
10 years ago
Cristiano Calcagno dd066c828c [Checkers] checker for printf format strings.
10 years ago
Cristiano Calcagno d2e2bbf6a5 [Eradicate @Nullable checker] Don't apply sub-typing checks for method definitions in the case of constructors.
10 years ago
Cristiano Calcagno fb300b9948 [Eradicate @Nullable checker] Fix missing reports of PARAMETER_NOT_NULLABLE across modules.
10 years ago
Open Source Synchronization b8982270f2 initial synchronization
10 years ago