1616 Commits (e5863f542026e51c0d59bce0c3c8ef9f94f13e44)

Author SHA1 Message Date
Sam Blackshear 87248009b7 fixing issue where crashcontext breaks without -o
8 years ago
Sam Blackshear e918624076 abducted -> abduced
8 years ago
Sam Blackshear 1e4b4df427 fixing handling of aliasing for frontend tmp vars
8 years ago
Dulma Churchill e18381ab67 Fix compilation problem with buck compilation database and travis
8 years ago
Cristiano Calcagno 0b7ea202db Convert infer c++ tests to new format
8 years ago
Sam Blackshear 8ab9a6c714 remove some commented logging code
8 years ago
Dulma Churchill f6636c6d41 Store the issue file only if there are issues
8 years ago
Dulma Churchill 6c4762b9de Remove compilation warning
8 years ago
Dulma Churchill 13de8a0835 Fix cpp models that got broken by an incorrect refactoring
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
Josh Berdine 90314a4d94 Catch Unix exceptions in DB.create_dir
8 years ago
Dulma Churchill d11b2754a9 New buck integration based on the compilation database emitted by buck
8 years ago
Sam Blackshear 91071af3ad logging errors
8 years ago
Sam Blackshear 50ac3cde41 command-line setup
8 years ago
Cristiano Calcagno 20c33f15c9 Fix flakiness in the analysis when a procedure is defined in more than one file.
8 years ago
Andrzej Kotulski be891e8413 Simplify builtin function detection during translation
8 years ago
Cristiano Calcagno 346d3e6d01 Address capture flakiness when a symbol is multiply defined.
8 years ago
Dulma Churchill 977f73ff5b Add column to json file of issues
8 years ago
Andrzej Kotulski 97fe6275bd Simplify language detection in frontend
8 years ago
Andrzej Kotulski ad325d5047 Drop ti_raw field from clang_ast_t.type_info
8 years ago
Andrzej Kotulski 21ecba2d17 move retain/release special handling to function_deref_trans
8 years ago
Andrzej Kotulski 7461d40024 Clean up special handling of smart pointers in backend
8 years ago
Andrzej Kotulski 2444618943 Translate functions coming from std headers od demand
8 years ago
Josh Berdine 8cacd31f85 Remove unused typedef and enum Typename's
8 years ago
Jules Villard 4fe1615434 give correct type to root exps of array dereferences
8 years ago
Cristiano Calcagno 674f30de2c Convert java infer tests to the new direct format
8 years ago
Jules Villard 0caa7e1826 move printing module to its own file
8 years ago
Martino Luca 9e3b3c5d77 Fix C++ tests
8 years ago
Josh Berdine 377d284cf2 Simplify originator detection
8 years ago
Sam Blackshear 15b6a8cdd7 killing a bunch of options by using optional argument types correctly
8 years ago
Martino Luca 80c82c0cae Adapt Infer to the new changes introduced by the upgrade to Clang 4.0
8 years ago
Jules Villard a6bf43a570 replace boolean by named argument in Inteproc.propagate
8 years ago
Andrzej Kotulski 4cd9470586 Skip Sil.Call instruction for some shared_ptr method calls
8 years ago
Andrzej Kotulski 2baf3f8456 Replace shared_ptr<T> structs with T* pointers
8 years ago
Sam Blackshear a92543b67c fix needless type extension
8 years ago
Lázaro Clapp Jiménez Labora f2e958ef3a Add support for multiple stacktraces in '-a crashcontext'
8 years ago
Sam Blackshear a31a735e35 separate pretty-printer for pp_kind
8 years ago
Andrzej Kotulski 5d3a15fd9c Fix roots with new names for InferPrint and InferAnalyze
8 years ago
Ryan Rhee e19550a43b Handle l-value refs correctly
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
Dulma Churchill 6ad78e7d9c Add case for blocks when building a procname
8 years ago
Cristiano Calcagno a6254f6b73 Extend Inferprint with a command --issues-tests to print issues in a format suitable for tests
8 years ago
Andrzej Kotulski a31c5416b1 Add basic support for starting ocaml repl with infer code
8 years ago
Jules Villard c2ca6a23d5 pass -l to infer.py
8 years ago
Dulma Churchill 9ae19d01d0 Make the is_global_var not fire for the static local variables
8 years ago
Cristiano Calcagno ed8d112e87 Convert Inferprint and Inferanalyze to Reason
8 years ago
Jules Villard 26a6594b90 detect unsigned values inside structured expressions
8 years ago
Martino Luca 7de52e7649 Check early whether the given decl has to be checked with linters or not
8 years ago
Jules Villard e1f19192c0 move --fail-on-issue functionality to OCaml
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 262a121cf6 handle casts
8 years ago
Sam Blackshear 514107ec88 track sinks
8 years ago
Sam Blackshear f0028669ee propagate tainted sources
8 years ago
Andrzej Kotulski 761579469e Revert "[C++] Move models of smart pointers to custom namespace"
8 years ago
Jules Villard 3f60f54fbf align --help and support -h
8 years ago
Dulma Churchill 07bf714d91 Put current method in context
8 years ago
Cristiano Calcagno 6221956149 Apply type resolution to qualify fields and variants in Prop.
8 years ago
Sam Blackshear 3b12208e1b intraprocedural taint analysis that records sources
8 years ago
Jules Villard dda4921786 exit with correct error code when infer.py fails
8 years ago
Sam Blackshear 90c8f55c32 adding missing functionality to analyzerTester
8 years ago
Sam Blackshear e853b01051 taint domain
8 years ago
Sam Blackshear 20584be8f3 mapping of ids to raw access path
8 years ago
Jules Villard 0add05de87 do not print infer.py usage message on wrong arguments
8 years ago
Jules Villard 145cb744f6 do not havoc actuals of skip functions with const parameters
8 years ago
Jules Villard 7603395ee9 qual_type fields are namespaced now
8 years ago
Dulma Churchill b7ec110ea3 Adding new mode linters
8 years ago
Dulma Churchill 3d39fba622 Refactor InferPrint and store the lint issues in a serialized data structure that InferPrint picks up and prints.
8 years ago
Andrzej Kotulski 121c968e77 Move models of smart pointers to custom namespace
8 years ago
Martino Luca 40b176fd01 Translate global const vars locally to a procedure
8 years ago
Sam Blackshear c2043af70d functor for creating trace domain
8 years ago
Sam Blackshear 462bf68f46 killing is_bottom
8 years ago
Sam Blackshear f99b30c4cd abstracting passthroughs more aggressively
8 years ago
Lázaro Clapp Jiménez Labora 175efddc2b Make stacktrace and stacktree line number an int option.
8 years ago
Lázaro Clapp Jiménez Labora 616e8fddd4 Make stacktrace parsing work when line number info is not available.
8 years ago
Ryan Rhee a134669f73 Make issues warnings again
8 years ago
Ryan Rhee da771ac5aa Mutable local vars
8 years ago
Ryan Rhee 8a40482fac Detect when in CK
8 years ago
Ryan Rhee 88897addfa Add in_main_file to context
8 years ago
Sam Blackshear 8f5542ed2f functor for creating traces from source and sink specs
8 years ago
Sam Blackshear 36e2175293 trace building blocks: sources and sinks
8 years ago
Ryan Rhee 5a8eb19041 Comment formatting for cFrontend_utils.mli
8 years ago
Ryan Rhee 70d5b604bf Split get_super into get_super_impl and get_super_if
8 years ago
Jules Villard cdce8f9794 better help
8 years ago
Ryan Rhee 894e92d4f3 Fix comment formatting for linter context
8 years ago
Ryan Rhee 6e6a7a8e5a Add is_ck_translation_unit to context
8 years ago
Cristiano Calcagno 66385dd5f4 Refactor module Prop by moving normalization functions into module Normalize.
8 years ago
Cristiano Calcagno b48ec1ac93 Clean up API to access components of propositions.
8 years ago
Cristiano Calcagno 89270c558c Add module Core in Prop to make transitions between exposed and normalized explicit.
8 years ago
Sam Blackshear 034d2e3c81 adding accessTree.fold
8 years ago
Jules Villard 3b3f587652 update fcp to have qualifiers in ValueDecl types
8 years ago
Ryan Rhee 4a6202c772 Move get_super to utils
8 years ago
Josh Berdine a9a38f20ec Simplify normalization in Attribute.remove
8 years ago
Josh Berdine 3896b10265 Move Prop.Attribute to toplevel
8 years ago
Josh Berdine 60496f2ae4 Minor cleanup of Prop.Attributes interface
8 years ago
Josh Berdine 4053d24bed Refactor Prop ops on attributes into sub-module
8 years ago
Martino Luca b7d70ff178 Add support for extra cases of BAD_POINTER_COMPARISON warning
8 years ago
Josh Berdine 6555a84409 Make warning 23 (Useless record with clause) fatal
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 8a90190309 Remove dead Sil.binop_invert
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 6ffe204252 Make Aobjc_null attribute a binary predicate
8 years ago
Josh Berdine 4185bda8ba Generalize predicates from unary to nary
8 years ago
Josh Berdine b6544eace7 Remove redundant normalization
8 years ago
Josh Berdine c2f62f3a97 Remove tuple type redundant with atom
8 years ago
Josh Berdine a8ce65b221 Encode polarity of predicates into atom tag
8 years ago
Josh Berdine b09b28f10f Add negated attributes, with 2-valued semantics
8 years ago
Josh Berdine 71a15b2388 Represent attributes with atoms, not disequalities
8 years ago
Martino Luca e3132152cb Check for the presence of removeObserver into class hierarchy
8 years ago
Lázaro Clapp Jiménez Labora d23c99a4ea Add blame_range to crashcontext analysis.
8 years ago
Sam Blackshear 8ff9f2afab making get_reachable_hpreds understand inductive predicates
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 fe780cb6ff Move comments to improve attachment
8 years ago
Josh Berdine 32146523ca Enable warning: Unexpected documentation comment
8 years ago
Ryan Rhee d2a4028881 Call decl checkers on DeclStmt statements
8 years ago
Lázaro Clapp Jiménez Labora 7c3110b76f Extract stacktrace.ml regexp constructors to module level.
8 years ago
Lázaro Clapp Jiménez Labora 751d027f8d Remove 'open Jsonbug_t' scope clutter.
8 years ago
Lázaro Clapp Jiménez Labora 0a8b95a856 Crashcontext ocaml method summary merging
8 years ago
Lázaro Clapp Jiménez Labora d5848d8c94 Add parsing of native methods on the stacktrace.
8 years ago
Lázaro Clapp Jiménez Labora 58d008a026 Add Stacktree ATD type for serializing/decerializing crashcontext results.
8 years ago
Lázaro Clapp Jiménez Labora ed85a129f5 Add DB.paths_matching utility method to recursively search files under a directory matching a function f.
8 years ago
Josh Berdine 3064caacdb Remove stale Autounit module
8 years ago
Martino Luca bed9b31c62 Add general context to linters framework to implement smarter checks
8 years ago
Jules Villard aee1eeba3d restore --pmd-xml functionality
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
Sam Blackshear ed9495a893 delete unused class-to-source mapper processor
8 years ago
Dulma Churchill 8d279748fa Adding a key to the lint issues
8 years ago
Martino Luca da2717ff2a Migrate BAD_POINTER_COMPARISON check from backend to linters infra
8 years ago
Martino Luca adb0ef8a78 Alphabetize CIssue
8 years ago
Dulma Churchill ff597a6c03 Model init method in NSData and understand the field bytes
8 years ago
Sam Blackshear 4490d9b033 fix recognition of inner class this guarded-by strings
8 years ago
Dulma Churchill fa8ae3e5e9 In the new framework where we go through every declaration we don't need a special case for properties anymore
8 years ago
Daiva Naudziuniene ac9cabe677 Fixing Memory leak false positives in C++/ObjC
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 b500a5c4b5 don't warn in cases where GuardedBy string is clearly unrecognizable
8 years ago
Sam Blackshear e9aecd0afe widen for access trees
8 years ago
Jules Villard 01ffc387bb resolve symlinks recursively until the real infer executable is found
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
Jules Villard 10f10a90c6 diverge on `throw`
8 years ago
Jules Villard fb7aed07c6 typo and whitespace cleanup in cFrontend_config
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
Dulma Churchill 7fd1149f85 Add NPE check for weak variables captured in blocks
8 years ago
Andrzej Kotulski 0aa5101a05 Replace space with _ in type names
8 years ago
Andrzej Kotulski 5ed50f5a97 Keep more precise information in constructor's var_exp_typ
8 years ago
Andrzej Kotulski ed3470c30e unify handling of many special cases in callExpr_trans
8 years ago
Dulma Churchill fb607ef388 Use the block captured variables as mangled
8 years ago
Jules Villard 4078a2b276 pass down --reactive and --continue to python
8 years ago
Daiva Naudziuniene dfb7c15303 Fixing Resource leak false positives assuming developers use raii.
8 years ago
Jules Villard 9378913223 add constructor info to c++ methods
8 years ago
Sam Blackshear e95ebca786 factoring out some utility methods for testing access-based stuff
8 years ago
Lázaro Clapp Jiménez Labora 9f7cb87bb0 Add stacktrace extras to BoundedCallTree checker.
8 years ago
Sam Blackshear 0ca19da3cf allowing custom procname in analyzerTester
8 years ago
Sam Blackshear a33e047377 allow access path base to be an ident as well
8 years ago
Lázaro Clapp Jiménez Labora d4a9a6cde1 Add initial stack trace parsing code for semantic blame
8 years ago
Sam Blackshear d6149c7741 switching to by-ref semantics
8 years ago
Martino Luca 062ec6c872 Translate VAArgExpr
8 years ago
Martino Luca 4ba864780e Translate OffsetOfExpr
8 years ago
Andrzej Kotulski f40033fc5f Update fcp
8 years ago
Dulma Churchill 62da495510 Start transitioning logging of frontend bugs into a map of errlogs rather than in procdescs
8 years ago
Andrzej Kotulski b8044c6b65 Use mangled names instead of function type for mangling
8 years ago
Sam Blackshear d946a7bc33 fix ugly printing of NONE idents
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
Andrzej Kotulski e61b6fe719 Use pointers to decls instead of class names when creating a type
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
8 years ago
Sam Blackshear e94fc21410 deleting stacktrace
8 years ago
Andrzej Kotulski 118295e03c Fix C++ models of c library
8 years ago
Dulma Churchill 1617d470f1 Creating a specific type for frontend issues
8 years ago
Josh Berdine e8fd648fe8 Fix mod_dep for reason conversion, add mod_dep.pdf
8 years ago
Dulma Churchill 694ded4795 Make the description of issues specify the error kind
8 years ago
Sam Blackshear 09e45710d3 join for access trees and tests
8 years ago
Josh Berdine e739b0e6ea Refactor Sil.dexp into separate DecompExp module
8 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
8 years ago
Josh Berdine eefe05b240 Refactor Sil.Subtype into separate Subtype module
8 years ago
Josh Berdine aba67b4a2a Refactor Sil.binop into separate Binop module
8 years ago
Josh Berdine 2154c2c483 Refactor Sil.unop into separate Unop module
8 years ago
Josh Berdine 9487cab145 Refactor Sil.const into separate Const module
8 years ago
Josh Berdine 54403206fd Eliminate unnecessary recursion for strexp type
8 years ago
Josh Berdine e62bfb44a3 Eliminate unnecessary recursion for dexp type
8 years ago
Josh Berdine fba137e9ef Eliminate unnecessary recursion for const type
8 years ago
Josh Berdine a1b680c473 Move attributes from const to exp
8 years ago
Josh Berdine a379729e1f Use Prop.atom_negate in Rearrange
8 years ago
Josh Berdine 5f309ebb23 Tighten type of Aobjc_null to reduce recursion
8 years ago
Josh Berdine 32d09545e2 Closure values are not constants
8 years ago
Josh Berdine c5ce74f3d3 Exception values are not constants
8 years ago
Sam Blackshear b2c422827a adding <=, tests to access tree domain
8 years ago
Sam Blackshear 05505b55fd beginnings of access tree domain, tests
8 years ago
Sam Blackshear 15534be574 eliminate tmp vars in resource leak error message
8 years ago
Dulma Churchill 0253608fab Separate the flow of the frontend checks form the translation
8 years ago
Dulma Churchill 5566ca1fd9 Add a new error kind Advice
8 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing
8 years ago
Dulma Churchill bcb1422a9a Implement direct atomic var check with the new ivar to property map
8 years ago
Josh Berdine 7e59032a42 Move analyzer type and ops from Utils to Config
8 years ago
Sam Blackshear 9df3b8f653 eliminating dead stores created by copy-propagation
8 years ago
Andrzej Kotulski 046654a9c0 Fix translation of unary operator! for all integral types
9 years ago
Josh Berdine 061bb2d799 Change length of Dsizeof from an exp to a dexp
9 years ago
Dulma Churchill 6ac4db7113 Change the check CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK to use only the clang ast
9 years ago
Josh Berdine caff49e411 Cleanup some usage messages
9 years ago
Josh Berdine ac50b01240 Simplify defining new executables
9 years ago
Josh Berdine c6438da919 Add HOWTO define new config option doc
9 years ago
Sam Blackshear 314d022e38 add abstraction of access path, use in access path set domain
9 years ago
Dulma Churchill cf72de9460 Make ObjC virtual functions return nil if they are called with nil, even if they are going to be skipped.
9 years ago
Jules Villard 60c5b87ffd make --merge accept absolute paths
9 years ago
Jules Villard b95b71fa85 add option to assume that malloc never returns null
9 years ago
Jules Villard b95aaefb37 make --abs-val great again
9 years ago
Sam Blackshear 006bd06adb add concept of a dummy identifier
9 years ago
Sam Blackshear 2439dcf91f copy propagation step 1: propagate copies in the CFG
9 years ago
Sam Blackshear 16bf929dbe fix confusing `$irvar0` error messages
9 years ago
Josh Berdine 843d380d10 Simplify DB initialization
9 years ago
Josh Berdine 29dfacdffb Treat relative paths wrt initial working directory
9 years ago
Josh Berdine 9608504b57 Ignore non-existent dirs when looking for specs
9 years ago
Josh Berdine e1403f2a0c Create log dir only if results_dir exists
9 years ago
Andrzej Kotulski d1fa1e130d Define STATIC_ANALYSIS macro when using glog/logging.h
9 years ago
Andrzej Kotulski 9b07a3e762 Never call destructor on delete expression
9 years ago
Andrzej Kotulski 1f089d0e4b update fcp commit
9 years ago
Andrzej Kotulski e46cddb52b Use mangling in function parameters to encode its position
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 37f943a3fa unifying checking of temporary variables
9 years ago
Sam Blackshear 7544e500bf adding finite access paths, tests, and basic utilities
9 years ago
Andrzej Kotulski c3acb3a015 Make InferPrint print to stdout/stderr
9 years ago
Andrzej Kotulski 98f324409d print reason of analysis failure in html
9 years ago
Andrzej Kotulski afc192b100 Add -Xbuck option to pass arguments to buck build
9 years ago
Dulma Churchill c06795e631 Fixing the treatment of annotations in the clang frontend
9 years ago
Andrzej Kotulski c7d6d904f7 Whitelist std::min and std::max
9 years ago
Dulma Churchill edc57f70f5 Translate CXXNoexceptExpr
9 years ago
Dulma Churchill 8bfa983716 Translate TypeTraitExpr
9 years ago
Dulma Churchill 52e037f77c Translate AttributedStmt and Fallthrough attribute
9 years ago
Sam Blackshear da054beb00 adding exp_sub_ids, instr_sub_bound_ids
9 years ago
Peter O'Hearn 1edb492b70 One step closer to shipping initial GUARDEDBY
9 years ago
Josh Berdine b25572fafb Convert INFER_ONDEMAND_FILE env var to clopt
9 years ago
Josh Berdine a2a7e07708 Add OCaml toplevel driver executable
9 years ago
Dulma Churchill 7f3e99c3d4 Fix assert false when calling zero_value_of_numerical_type
9 years ago
Sam Blackshear 9d95a3a199 don't warn if procedure is marked VisibleForTesting
9 years ago
Sam Blackshear 03df3a0c47 supporting guarding on outer-class this in inner class
9 years ago
Andrzej Kotulski 14f5f6b8e4 Update clang and raise buffer size
9 years ago
Josh Berdine df0d26e3c7 Move Logging setup to Logging
9 years ago
Martino Luca b27bf407db Aggregate buck stats per target
9 years ago
Josh Berdine a5791d7f43 Remove dead code
9 years ago
Josh Berdine 9bada2f929 Add config option for FCP_CLANG_INCLUDE_TO_REPLACE
9 years ago
Sam Blackshear 7ae14d0bdf don't report on compiler-generated access$ methods
9 years ago
Dulma Churchill f90bf94bd7 Making empty vector an error
9 years ago
Sam Blackshear df257da918 supporting @GuardedBy(MyClass.class) idiom
9 years ago
Andrzej Kotulski 4d90ef99f0 Fix custom type_ptr to char* and char
9 years ago
Jules Villard 8796f2c7ef add travis CI
9 years ago
Sam Blackshear 6304e30f5a don't warn on read-write locks
9 years ago
Josh Berdine f3d7d4d0d6 Deabbreviate CLOpt.exe constructors
9 years ago
Josh Berdine e1d49821fd Fix minor heap size calculation
9 years ago
Josh Berdine 4e67ff6771 Fix bug in AttributesTable stats
9 years ago
Peter O'Hearn da0933fd79 first try at dereferencing lock on monitor enter
9 years ago
Jules Villard a7fdb09600 add quick-test target
9 years ago
Josh Berdine 3a47b4064b Fix --help and friends that 2 phase parsing broke
9 years ago
Sam Blackshear c1b5a4b03e don't treat `x = &y` as a copy
9 years ago
Sam Blackshear b940c4dfac warning on guarded-by writes
9 years ago
Dulma Churchill b1e3d994bd Report more cases of null dereference as empty vector access
9 years ago
Dulma Churchill 52e8d8a560 Expand links under buck-out
9 years ago
Josh Berdine ec7af097eb Generalize extra options for make module
9 years ago
Josh Berdine bbec166174 Refactor Sil.typ into separate Typ module
9 years ago
Josh Berdine ce19de4a42 Show timeouts in progress bar in stats mode
9 years ago
Josh Berdine a6a766b5f5 Refactor Sil.Int into separate IntLit module
9 years ago
Josh Berdine 3828bdd544 Make int_compare avoid overflow
9 years ago
Sam Blackshear 35f86fbe7b separate lazy dynamic dispatch from dynamic dispatch handling in preanalysis
9 years ago
Josh Berdine 229ca26c8b Optimize normalization, substitution, renaming of array types
9 years ago
Dulma Churchill 5adab3cb61 Fix StmtExpr
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
Peter O'Hearn 8613f16c19 drop GuardedBy ui_thread warnings
9 years ago
Dulma Churchill a68c45c2a9 Fix dyspatch_async calls
9 years ago
Sam Blackshear 1e60923e63 improve errdesc to account for copy-propagation
9 years ago
Sam Blackshear 49136a187b fixing bug in exceptional preds/succs in per-instr procCfg
9 years ago
Jeremy Dubreil 17da853fa8 Do not angelically remove the file attribute on the reciever for virtual calls
9 years ago
Josh Berdine a85a88d145 Extend Sizeof with final extensible array length
9 years ago
Dulma Churchill 5ed970efa9 Fix the return stmt that would not be the last instruction in the path in some cases
9 years ago
Dulma Churchill 08c1c5bbf0 Change desc of npe message regarding pointer inside smart pointers
9 years ago
Sam Blackshear fd8a864c15 doing preanalysis on-demand
9 years ago
Dulma Churchill 60d9a19ae0 Fix bucketing for variables passed by reference
9 years ago
Sam Blackshear fa077c75d0 kill uses of Config.curr_language in subtyping part of prover.ml
9 years ago
Jules Villard 533831a206 move all config variables to Makefile.config.in
9 years ago
Dulma Churchill bf9d194e43 Translate builtin_expect as its first argument. Avoids weird symb. exec. problems
9 years ago
Jules Villard e873a2c502 build the bdump dict again
9 years ago
Andrzej Kotulski 617ffab0ac Add @generated comment to icfg.dot files
9 years ago
Sam Blackshear 7ec8f59998 adding find_in_node_or_preds to clean up errdesc
9 years ago
Martino Luca f89e66dc60 Stats aggregator for frontend/backend/reporting
9 years ago
Sam Blackshear 83a14a3541 changing API to take pdesc instead of cfg
9 years ago
Jules Villard d1eff7436b build more things
9 years ago
Dino Distefano daf043bff1 Fixing shortcircuit in binary operator.
9 years ago
Andrzej Kotulski 1a98bc6492 update facebook-clang-plugins
9 years ago
Andrzej Kotulski 3699b9c0dc Fix translation of passing struct parameters by value
9 years ago
Cristiano Calcagno 8639042bc0 Remove dead renaming code
9 years ago
Jeremy Dubreil 91c25fe636 revert the use of the jar cache
9 years ago
Daiva Naudziuniene 10f1036937 Normalizing source path.
9 years ago
Sam Blackshear 04f88d60ea kill dead code created by D3288789
9 years ago
Sam Blackshear f45a7ec1eb using taint kind in taint sink specifications
9 years ago
Dulma Churchill de615594df Skip whitelisted functions form trace
9 years ago
Sam Blackshear 25578de26d redesigning abstract interpreter to allow easy composition of analyses
9 years ago
Andrzej Kotulski 99a58e691d Report empty vector access in tabulation.ml
9 years ago
Cristiano Calcagno 56cfac14da Fix issue in join where the origin of a variable would be lost in a loop.
9 years ago
Sam Blackshear e3e80dd2f0 don't report on private unguarded accesses
9 years ago
Sam Blackshear 36ee3730aa reporting error on unprotected access to field annotated with @GuardedBy
9 years ago
Andrzej Kotulski 8ccdff649f Report empty vector access instead of null dereference
9 years ago
Josh Berdine 1177f21aa4 Optimize deserialization retrying
9 years ago
Josh Berdine 3fe1cbb6ec Fix bug in sym_eval
9 years ago
Josh Berdine 0947a67a7e Remove dead Sil.*_iter_types functions
9 years ago
Josh Berdine 66faedbf15 Optimize attribute loading
9 years ago
Jules Villard dbb6d08254 cleanup inferconfig stuff now that everything has been ported to the CLI
9 years ago
Jules Villard 21367b0e98 add matchers from inferconfig to the CLI
9 years ago
Jules Villard 9748a8f1a3 add {enable,disable}_checks from inferconfig to the CLI
9 years ago
Jules Villard 8f154144c0 add skip_clang_analysis_in_path from inferconfig to the CLI
9 years ago
Jules Villard aec3d0ccdf add skip_translation_headers from inferconfig to the CLI
9 years ago
Jules Villard 13cb7d8ed9 test OSS build as part of `make test`
9 years ago
Jules Villard 92aef2a411 fix make -j8 clean test
9 years ago
Cristiano Calcagno 08546ce7bb Move vim comments up.
9 years ago
Cristiano Calcagno 52e9ebc252 Enable syntax highlighting for Reason files on GitHub.
9 years ago
Josh Berdine d8f50c748b Revise the units of measure for perf stats
9 years ago
Jules Villard e695e14ee1 add various filter options from inferconfig to the CLI
9 years ago
Jules Villard 3fe032ccf0 accept any option through .inferconfig
9 years ago
Jules Villard 1c56310f39 build in one directory only
9 years ago
Sam Blackshear 9fdd094a89 refactoring annotation reachability checker to allow custom src/sink annotations
9 years ago
Sam Blackshear 5b041d46ad remember when a method is synchronized
9 years ago
Peter O'Hearn 6f951e70d3 Non-resource model for locks
9 years ago
Sam Blackshear 3cea4279b6 adding locked proof obligation when lock is not held
9 years ago
Dulma Churchill 83e6ab1a20 Blacklist translation of files in inferconfig
9 years ago
Dulma Churchill 93fcf7be9f Skip cpp models from traces
9 years ago
Josh Berdine e211e489c7 Add target to convert files to reason
9 years ago
Sam Blackshear a45844f409 identify reads of fields protected by @GuardedBy
9 years ago
Sam Blackshear 8cff90ed21 adding find_map_opt utility function
9 years ago
Sam Blackshear cfa7739963 hiding implementation of var
9 years ago
Cristiano Calcagno fd04004b43 Update README with Reason dependencies
9 years ago
Cristiano Calcagno 885beed0b1 Convert the Intermediate Representation to Reason.
9 years ago
Dino Distefano aae1dbac3d Skipping reporting global variable warning on known non-expensive cases.
9 years ago
Jules Villard 438a4b430b fix github build
9 years ago
Sam Blackshear 1bb73ee3b6 adding map domain
9 years ago
Dino Distefano f37ed66888 Added new taint source/sink for iOS
9 years ago
Cristiano Calcagno b7b31982ee Fix the position of some comments.
9 years ago
Josh Berdine acb227ec30 Pre-parse inferconfig_home and project_root
9 years ago
Josh Berdine 88a2da91fc Add `make -C infer/src test_build` to `make test`
9 years ago
Sam Blackshear 83f511107b stop reporting handler leaks
9 years ago
Sam Blackshear 44edd9ba7f fix frontend crash when running on Java 8
9 years ago
Dulma Churchill 6d8d9f56c2 Reducing the scope of all frontend checks on declarations
9 years ago
Andrzej Kotulski bfce6bac47 Model empty vector access
9 years ago
Dulma Churchill 6c7c18e920 Model other functions from glog library
9 years ago
Jules Villard 944176bf67 load json config files lazily and at most once
9 years ago
Dulma Churchill 9b1bd712b5 Marking getters/setters as builtins only inside the definition of the class
9 years ago
Sam Blackshear 6e75c1e33f delete old preanalysis code
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 f1dabb747c Ease down InferPrint debug printing
9 years ago
Jules Villard 9de3f9792c print legend for the output
9 years ago
Josh Berdine 3e2fa59262 Reimplement command line options
9 years ago
Dulma Churchill d73d4ea177 Getting a more precise type when creating ObjC objects
9 years ago
Sam Blackshear c92bbf362b removing need to pass around lists of temporary id's in the frontend
9 years ago
Sam Blackshear 3f49f3a1d4 using liveness to add removetemps instructions
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 20925df57c removing unused deallocate param in nullify instr
9 years ago
Sam Blackshear 4fd2f52fe8 new analysis for adding nullify's
9 years ago
Dulma Churchill c3fbd5af29 Model CHECK macro and fix the model for builtin_expect
9 years ago
Jeremy Dubreil a352c0ffa8 Lazily load summaries from zip files
9 years ago
Josh Berdine 0cda42fc90 Add target to build single module
9 years ago
Jeremy Dubreil 6dfd1a317e Some cleanup and renaming
9 years ago
Sam Blackshear f60b17d8b9 correctly handling Sil.Letderef(Var, Var) Sil.Set(Var, _) in copy propagation
9 years ago
Josh Berdine 7ed2425320 Incorporate _tags file into Makefile
9 years ago
Josh Berdine 12e42fefd9 Fix perf stats filename for relative path clusters
9 years ago
Sam Blackshear b20ef20644 Allowing custom procCfg node types
9 years ago
Sam Blackshear 6f6da12b2c don't nullify params/locals at beginning of procedure
9 years ago
Sam Blackshear ebcfae388a handling Set(Var, _,) as read of var in liveness analysis
9 years ago
Jules Villard d4521fd70d handle utf8 PWD
9 years ago
Dulma Churchill f88e5be395 Move the npes regarding smart pointers from B5 to B1.
9 years ago
Sam Blackshear 442cf66fdc don't fail when nullifying a var not in the prop
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
Jeremy Dubreil b3baf72df8 Lazy dinamic dispatch: add missing case where the right hand side is a idenfier
9 years ago
Sam Blackshear e96b94204c widen at pre instead of at post
9 years ago
Jeremy Dubreil 71b6581823 No longer save the list of SKIP_FUNCTION warnings in the report
9 years ago
Dulma Churchill 54a3bdd455 Load the attribute file to get the getter/setter info from the procdesc
9 years ago
Jeremy Dubreil 8072d2c1e5 report errors when all the postconditions are error states
9 years ago
Sam Blackshear 46fc0bb1dc remove recursive call in try/with
9 years ago
Jeremy Dubreil 0737b9231d make Tabulation.prop_get_exn_name return an option type
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
Luis Cruz 51f4dc7a9a added Tenv.get_overriden_method
9 years ago
Andrzej Kotulski 2989105318 Decrease number of allocations in Prop.typ_normalize
9 years ago
Sam Blackshear 77791b7e8e warn on deref of nullable skip function
9 years ago
Sam Blackshear 843bcc1576 support tainting of annotated fields
9 years ago
Dino Distefano 83c1bbc832 Implementing a checker to warn initialization of global variables with mehod calls.
9 years ago
Peter O'Hearn 50081c7ccb alloc/dealloc model for locks
9 years ago
Dino Distefano a15095c854 Introducing a mechanism of white/black listing of checks/error reporting based on .inferconfig
9 years ago
Dulma Rodriguez 7671fe755f Skip translation and checks from headers in specified folders
9 years ago
Andrzej Kotulski 05c218d84f Declare local variable for conditional in procdesc
9 years ago
Sam Blackshear a10d7099c7 warning on deref of nullable retvals
9 years ago
Dulma Rodriguez be91fb5429 Fix toll free bridging
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
Josh Berdine 5710a3e887 Do not special case default InferPrint results_dir
9 years ago
Sam Blackshear 6113497020 delete callbackChecker and deps
9 years ago
Andrzej Kotulski 66d3d492f8 Fix translation of BinaryConditionalOperator
9 years ago
Dulma Rodriguez 8a1288860b Make alloc save a given procanem in the path
9 years ago
jrm 82670de0c8 improve errors traces for the @NoAllocation and the @PerformanceCritical checker
9 years ago
Cristiano Calcagno 45621ab171 Fix two issues in the prover.
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
Dino Distefano b7ab1760a6 Translation of lambda [part one]
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 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
Dulma Rodriguez d366bb970b Create the procdescs for frontend checks only when needed
9 years ago
Josh Berdine 7a5cc8f42c Add make target for module dependency graph
9 years ago
Sam Blackshear f8ecbd800a moving noAllocation checker into AbsInt framework
9 years ago
Josh Berdine a5e1a6c77e Report time and memory stats
9 years ago
Dulma Rodriguez 6b2b76d956 Translate dynamic arrays to cpp classes
9 years ago
Josh Berdine 5481f14768 Remove dead code introduced in 41e99357
9 years ago
Andrzej Kotulski 590f73b59f Translate functions/methods from headers when they are referenced
9 years ago
Josh Berdine b881887bf2 Refactor Utils.SymOp into separate module
9 years ago
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
9 years ago
Andrzej Kotulski 037b27d465 Put goto label map into Context instead of one global map
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
Josh Berdine 35e1a8740a Add checkcopyright to test build
9 years ago
Sam Blackshear 15aaa39fea allowing class-level Expensive and PerformanceCritical annotations
9 years ago
Andrzej Kotulski e495a81942 Remove parent_dec from translate_one_decl
9 years ago
Josh Berdine 213fe46c89 Move ml_loc and operations to Logging
9 years ago
Sam Blackshear 0a14ac8e2a pair domain
9 years ago
Sam Blackshear e54db73bab pass tenv to the transfer functions
9 years ago
Andrzej Kotulski 64bb3b62b3 Use variable stmt location info in init_res_trans
9 years ago
Cristiano Calcagno dbbf3b8758 Fix issue in merge of captured buck targets where .start file was overwritten.
9 years ago
Dulma Rodriguez bc3134dd32 Translate initializing arrays of C++ classes
9 years ago
Sam Blackshear b5b4d436ba ContentResolver methods that open files are sinks
9 years ago
Josh Berdine 61c5a80567 Clean files generated by setup.sh
9 years ago
Dulma Rodriguez 44491679cf Fix broken tests in master
9 years ago
Sam Blackshear e9cb9f4352 assign pointer type checker
9 years ago
Josh Berdine ee206dbc12 Simplify NCPU computation and avoid fork bombs
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
Dino Distefano 1b21869108 Disabling the NSNotification center error from the backend
9 years ago
Sam Blackshear 7166a4856c nullifying vars captured in blocks
9 years ago
Jules Villard 660250dcf7 move Dom.JoinState to its own file
9 years ago
Cristiano Calcagno 031f433b15 Print timing information in InferClang debug mode.
9 years ago
Cristiano Calcagno a386cf7dbf Fix quadratic behaviour of collect_res_trans.
9 years ago
Cristiano Calcagno 8759017f7c Store proc attributes inside bucket directories.
9 years ago
Sam Blackshear aa1588372e using address-taken checker in liveness analysis
9 years ago
Cristiano Calcagno d2ff52e17c Fix some issues with merging the capture from several buck targets.
9 years ago
Josh Berdine 9539b430f7 Create symlinks in near future when merging
9 years ago
Sam Blackshear c8b87ed0c8 passing caller pdesc into the transfer functions
9 years ago
Jules Villard f813b801ee change external buckversion
9 years ago
Sam Blackshear 6504b58802 support for interprocedural checkers
9 years ago
Jules Villard 27f4b99a7a create "install" target
9 years ago
Josh Berdine b4bc7904f5 Move SymExec.lookup_java_typ_from_string to Tenv
9 years ago
Jules Villard f0512bcd91 create infer/bin/ symlinks from the makefile
9 years ago
Josh Berdine 61d2a50809 Simplify interface of SymExec
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
Sam Blackshear c03f39f20c Fixing some issues with Obj-C blocks
9 years ago
Josh Berdine 2dcd93204c Refactor SymExec.Builtin into toplevel module
9 years ago
Josh Berdine 6ae225dd62 Merge captured targets after parsing args
9 years ago
Cristiano Calcagno d41d452b67 Make eradicate work in the absence of procdescs for callees.
9 years ago
Josh Berdine 97bc95e8c9 Allow relative or absolute names in ondemand_file
9 years ago
Dulma Rodriguez c0e5365458 Translate delete of arrays with the correct destructor
9 years ago
Dino Distefano b7e93737df This diff exclude names containing queue from the strong delegate warning
9 years ago
Dulma Rodriguez 0c5bca7a4b Translate arrays created with new
9 years ago
Jules Villard d95ed8e9a7 write filenames as ascii only
9 years ago
Josh Berdine 63b1df9966 Print usage message when cl arg parsing fails
9 years ago
Dulma Rodriguez c6524d799f Translate C++ constructors after new
9 years ago
Cristiano Calcagno e34e369835 Complete command-line support for reactive mode with buck on iOS.
9 years ago
Sam Blackshear a71caccc80 address-taken analysis and tests
9 years ago
Dino Distefano fc5d4897a5 Registered Observer check done by front-end
9 years ago
Cristiano Calcagno b7bc95e1f9 Add option -merge_captured to merge the result of capture for different targets.
9 years ago
jrm af80cdc168 Enable the printing of OCaml exceptions stack traces
9 years ago
Cristiano Calcagno c198d76631 Clean up the Procname module, and remove remaining assert false
9 years ago
Sam Blackshear 91ae1baebc massive refactoring of harness generation
9 years ago
Dulma Rodriguez 9f7bfea98f Translate CXXStdInitializerListExpr
9 years ago
jrm e734c1873d Fix cases of resource leaks not detected when the resource indirectly implements Closeable
9 years ago
Sam Blackshear fb5c5c8515 turning off copy-propagation
9 years ago
Sam Blackshear f9bffe1e87 move remove_tmps and add_abstraction steps into the pre-analysis
9 years ago
Sam Blackshear dec843f5f5 copy-propagation analysis + tests
9 years ago
Sam Blackshear 2991bd3fc3 using address-taken analysis for nullify placement rather than alias analysis
9 years ago
Andrzej Kotulski 0a32ff4400 Translate std::move from system headers to improve analysis quality
9 years ago
Sam Blackshear ab1ac822f6 Replacing Ctuple with Cclosure
9 years ago
jrm 0b56374b11 Seprate the concept of @PerformanceCritical from the concept of @NoAllocation
9 years ago
Josh Berdine 66d865ff6a Accept command line options via environment vars
9 years ago
Cristiano Calcagno 86304b3d9c Prevent assert false from occurring on Java functions in Procname.
9 years ago
Jules Villard 4384870b44 move utils.Escape to its own file
9 years ago
Sam Blackshear 8913e38dbd getting rid of bottom
9 years ago
Dulma Rodriguez a62ccc7a05 Fixing init list expr when there is no variable or compound literal expression
9 years ago