790 Commits (6f6da12b2c35a7130adba906e26cea51dfa53e3d)

Author SHA1 Message Date
kstreee a7e004472d Resolve a bug that Infer does not analyze procedures when the analyzer is run on '/'.
10 years ago
Cristiano Calcagno 42ecddcf37 Add command line arguments for reactive mode.
10 years ago
Cristiano Calcagno c570d97ad8 Cleanup code for registering builtins.
10 years ago
Cristiano Calcagno bf2909dd34 Cleanup global state in module Fork.
10 years ago
Josh Berdine de31246399 Builtin.builtin_plain_functions is no longer used
10 years ago
Josh Berdine b54fbc2776 Add test_build target warnings not fatal otherwise
10 years ago
Josh Berdine 3a7f4b9d3f Add byte target
10 years ago
Josh Berdine 4e8008baf2 Simplify setting ocamlbuild options
10 years ago
Dulma Rodriguez 2fb2b3d9e1 Add the virtual flag of C++ methods in method calls
10 years ago
Josh Berdine c585383fba Let ocamlfind find include and lib files
10 years ago
Andrzej Kotulski 4584f7f6fc [clang-format] Reformat all c/cpp/objc sources with clang-format
10 years ago
Andrzej Kotulski 50fc847c10 Compile C models again in C++
10 years ago
Andrzej Kotulski 9163b319a6 Fix whitespace issues from last diff
10 years ago
Josh Berdine a73d7be9a8 Remove unused support for ocaml < 4.02
10 years ago
Andrzej Kotulski 941a1c02fb Increase size of biniou buffer, add logging in case of failure
10 years ago
Josh Berdine 77b22ded03 Warn on unused identifiers
10 years ago
Josh Berdine 02056079cf Warn of unused values
10 years ago
Josh Berdine a87ef7e7ff Remove old front-end code
10 years ago
jrm c6d8cdc8ee Add support for @NoAllocation in the performance critical checker
10 years ago
jrm 14d4f862eb @Performance critical checker: compute the expensive call stack lazily when reporting errors
10 years ago
Sam Blackshear 091f31dd17 translating monitor exit/enter
10 years ago
Dulma Rodriguez 7721743f46 Model ObjC method isKindOfClass
10 years ago
Dulma Rodriguez efd3aeccc6 Using the attributes table to find out the method to call in virtual calls
10 years ago
Andrzej Kotulski f703d780da Translate headers located inside analyzed project
10 years ago
Josh Berdine a6d7bbb38b Warn of unescaped end-of-line in a string constant
10 years ago
jrm 4af130bf8d remove subtyping rule for the @PerformanceCritical annotation
10 years ago
Josh Berdine 55cb61dbda Warn of unused open statements
10 years ago
Josh Berdine b155168083 Open Utils implicitly
10 years ago
Josh Berdine 8a9f221119 Use Utils in jTransExn and jTransStaticField
10 years ago
Josh Berdine 7f231b8aa0 Move pi and sigma types from Dom to Prop
10 years ago
Josh Berdine 2fa5c5b4e9 Warn of unused types
10 years ago
Josh Berdine 89338c86e9 Warn of unused constructors
10 years ago
Josh Berdine 2e4f4a0c5f Warn of label omitted in function application
10 years ago
Josh Berdine 2f47142b94 Warn of unused loop index variables
10 years ago
Josh Berdine bd8284443c Warn of unused extension (exception) constructors
10 years ago
Josh Berdine 7e7d524e29 Enable -short-paths for better error messages
10 years ago
Josh Berdine 4f4b00fffa Enable -strict-sequence
10 years ago
Josh Berdine 675cfeb56c Enable -strict-formats
10 years ago
Josh Berdine 9bdd1a9d0f Enable -principal to check ambiguous code
10 years ago
Sam Blackshear 5833835289 dynamic dispatch for virtual calls in Java
10 years ago
Josh Berdine fb96eaabcd Make ocamlbuild obey make --silent
10 years ago
Josh Berdine 264038f3ee Make clean target obey --silent
10 years ago
Dino Distefano e0fe2af712 Added a two new attributes: observer/unsubscribed_observer
10 years ago
Andrzej Kotulski 3320043217 Fix further problems with forward declarations in C/C++
10 years ago
Andrzej Kotulski 32a5cae175 Fix infinite loop in type expansion
10 years ago
Andrzej Kotulski 3db68bcb4c Create .start file when infer starts
10 years ago
Dulma Rodriguez 5db8fa4539 Remove tvars from the tenv
10 years ago
Sam Blackshear 556b9c121d improving error message from fragment retains View checker
10 years ago
Dulma Rodriguez bf90a64fb5 Fix the typing implication in the bi-abduction for non Java types
10 years ago
Cristiano Calcagno 2a926d8294 Remove uses of assert false to get original ml location.
10 years ago
Andrzej Kotulski 8c832142b4 Don't add process type redeclaration unless it has definition
10 years ago
Sam Blackshear 7af27e07d5 deleting unused type_prop.ml
10 years ago
Sam Blackshear 5e9a21573b preventing Bad_footprint when passing struct value by reference
10 years ago
jrm 36cc1b0d2e Remove dead code. Feature now implemented in .inferconfig
10 years ago
jrm 904151888c fix treatment of linked list in Java
10 years ago
Dulma Rodriguez ac7959f2df Adding subtyping to ObjC
10 years ago
Cristiano Calcagno 047eec5a6f Refactor callbacks for Eradicate and Checkers.
10 years ago
Dino Distefano c65947439f Implementing translation of CXXForRangeStmt
10 years ago
Sam Blackshear d0cd8fca47 removed unused param footprint_part
10 years ago
Cristiano Calcagno 88e1d137ba Refactor State module and make OnDemand restore it after calls.
10 years ago
Sam Blackshear 0fbd333cab Checker that complains when Fragments don't nullify their Views
10 years ago
Cristiano Calcagno d31b041fba Replace CRC module with Digest.
10 years ago
Cristiano Calcagno 6be7266f1f Restore intraprocedural mode for Eradicate and Checkers
10 years ago
Cristiano Calcagno 34b62fc51c Inline Java synthetic methods systematically before writing the cfg to disk.
10 years ago
Cristiano Calcagno 987471d938 Remove unused code for cyclomatic complexity.
10 years ago
Sam Blackshear 526e155046 move resolve_method inside method_invocation
10 years ago
Cristiano Calcagno 41de08924b Indentation of command-line agruments.
10 years ago
Andrzej Kotulski 49d7bdb6bd Translate CXXScalarValueInitExpr
10 years ago
Andrzej Kotulski 359ad9dd4b Translate constructor initializer
10 years ago
Andrzej Kotulski 1d6aea0fb9 Add typ to trans_state.var_exp
10 years ago
Andrzej Kotulski 7cabc86f77 Pass return parameter type in context
10 years ago
Peter O'Hearn 028ac24d46 Simple model for locks
10 years ago
Jules Villard cbb8810e2c make dotty field optional in json
10 years ago
Jules Villard e11395d199 print location of errors in infer source code in debug mode
10 years ago
Andrzej Kotulski 8545a0310e Treat xvalues as they were lvalues
10 years ago
Andrzej Kotulski 36fb1f202c Deal with empty parameter names
10 years ago
Jeremy Dubreil 70dbe8db74 Simplify the type comparison of Java classes
10 years ago
Sam Blackshear 7938fbb344 Fixing 'file name too long' errors
10 years ago
Sam Blackshear f3c7125dc1 build ocaml with debug tag to enable stack traces
10 years ago
Andrzej Kotulski da3a106541 Always translate CXXRecordDecl as Sil.Class
10 years ago
Cristiano Calcagno 58611b15d0 Cleanup of CMethod_signature.
10 years ago
Dino Distefano 5b91ec9f7f A fix for empty retain cycle
10 years ago
Sam Blackshear ef3912cbde Adding on-the-fly translation of types during pre-analysis
10 years ago
Cristiano Calcagno 5683fd8413 Fix collision of spec file names on case insensitive file systems.
10 years ago
Cristiano Calcagno 1b4efcfc7a Enable the analysis of models in on-demand mode.
10 years ago
Andrzej Kotulski 75f4947cb1 Ignore type change in DerivedToBase cast
10 years ago
Andrzej Kotulski b08acedf29 Use clang for default argument resolution
10 years ago
Cristiano Calcagno 10286931ee Cleanup handling of global state, and add footprint mode to the values.
10 years ago
Cristiano Calcagno 7a7260635f Refactor the worklist data structures of the intraprocedural algorithm as non-global state.
10 years ago
Dulma Rodriguez f4bbd44212 Translate dynamic cast for C++
10 years ago
Tony Cosentini 75cca6b3d3 Add android.app.Service to whitelisted Android initializer classes.
10 years ago
Dulma Rodriguez 10fe998c12 Extending subtyping to C++
10 years ago
Andrzej Kotulski 262796d3bf Distinguish between C++ and objc class types
10 years ago
Andrzej Kotulski 9d7ab4b9c2 Translate conversion operators
10 years ago
Sam Blackshear be86e5d15d Exposing java_typ_to_string
10 years ago
Sam Blackshear 14e934205f implementing dynamic dispatch support for Java interfaces
10 years ago
Andrzej Kotulski 3dcd6490c2 Translate reinterpret_cast and const_cast
10 years ago
Cristiano Calcagno 7673d94600 Distinguish between class kinds: CPP, Java, Objc
10 years ago
Andrzej Kotulski bdab22a093 Support temporary objects (CXXTemporaryObjectExpr)
10 years ago
Andrzej Kotulski 44a6ec4f10 Fix return parameter handling
10 years ago
Cristiano Calcagno 74dbfd72b5 Fix issues with html output for debug in on-demand mode.
10 years ago
Andrzej Kotulski e329916e5b Add basic translation of CXXBindTemporaryExpr
10 years ago
Andrzej Kotulski 0a32c95f39 Fix build of llvm frontend
10 years ago
Andrzej Kotulski 1fe920c0c5 Cleanup code triggering code translation
10 years ago
Andrzej Kotulski ec80d40bdd Populate return parameter when returning + turn on new feature for C/C++
10 years ago
Andrzej Kotulski 61de633647 Add information whether translated method has return parameter
10 years ago
Andrzej Kotulski 2c8238849d Add return parameter to function/method call
10 years ago
Andrzej Kotulski 58be5d0eb0 Add return parameter to functions returning structs
10 years ago
jrm 18668a41ce simplify the API to create procedure descriptions
10 years ago
Sam Blackshear dc0b91662a Save space/simplify by deleting Exe.file_map
10 years ago
Cristiano Calcagno 162dc42b5b Use a record for struct types instead of a 7-tuple.
10 years ago
Andrzej Kotulski a317ac38f2 Use init_exp in InitListExpr and CompoundLiteralExpr
10 years ago
Andrzej Kotulski 5eb7d9e994 Add init_pvar to trans_state and use it in c++ constructor
10 years ago
Dulma Rodriguez f379383b04 Adding support for annotations for cpp classes to separate them in the backend from objc classes
10 years ago
jrm ad2a9064c3 No longer overwrite the attributes in the summary if already existing
10 years ago
Andrzej Kotulski fcb561a1ee Use Sil.exp instead of var_res_trans to get initialized variable
10 years ago
Cristiano Calcagno bcba8a7011 Fix transition between re-execution and footprint in on demand, and support tests for incremental.
10 years ago
Cristiano Calcagno 453709c3c8 Only propagate nullable to return value when environment variable is set.
10 years ago
Cristiano Calcagno 97a3aa3d0b Fix treatment of recursion and double file descriptor close in on-demand.
10 years ago
Dulma Rodriguez f34f2dcd98 Don't crash when a cg cannot be loaded.
10 years ago
Sam Blackshear d1cf7b7177 removing unused tenv in conditional pruning
10 years ago
Sam Blackshear 6fa9b995e5 no longer catching Class_structure_exception
10 years ago
Jules Villard 59a3b9c22a add temp var from compoundLiteralExpr to the function locals
10 years ago
Jules Villard 7b9b6841d2 translate CompoundLiteralExpr
10 years ago
Dulma Rodriguez 7855d6ecfa Fix the order of the translated stmts inside compound stmt
10 years ago
jrm a7371d5678 Perf critical checker: save the chains of calls to expensive methods in the error traces
10 years ago
Dino Distefano 377893637a Direct property access should not fire on dealloc methods
10 years ago
Dulma Rodriguez c88ac54613 Improving the line number information in the string delegate warning check
10 years ago
Dino Distefano d4d5c3bb2f Implemented new check CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK
10 years ago
Dulma Rodriguez 432dd28731 Improving the line number information in the string delegate warning check
10 years ago
Sam Blackshear 43daa760ee adding InferJava flags for classpath and class-source map, along with associated Python boilerplate
10 years ago
Andrzej Kotulski 0ae9b0e7a1 Change the way nested structs are translated
10 years ago
Andrzej Kotulski df192d06c3 Use ints as clang pointers
10 years ago
Josh Berdine 2ff26d37fb Simplify CLocation implementation
10 years ago
Josh Berdine d9667d07e4 Remove unused CLocation.init_curr_source_file
10 years ago
Josh Berdine c930ef90eb Remove redundant CLocation.current_source_file
10 years ago
Josh Berdine 7999dc3c4e Check CLocation.current_source_file is redundant
10 years ago
jrm cf5040cbee call the on-demand analysis using the procedre name after name resolution
10 years ago
Andrzej Kotulski bd935c2347 Add destructor calls on delete expression
10 years ago
jrm 30e2cf7114 Revive the "call by procedure name" mechanism for Java
10 years ago
Andrzej Kotulski 32745b67aa Add dotty information about retain cycle
10 years ago
Andrzej Kotulski 0ea850b7a2 Add dotty file contents to json report
10 years ago
Andrzej Kotulski 3adbb56e9c Add extra field to error_desc.
10 years ago
Josh Berdine 2c0fc4025b Remove out-of-date comments
10 years ago
Jules Villard 9ecf2d9f5e force git repo root when computing version info
10 years ago
jrm b3bf8b1ecc No longer overwrite the list of non-static fields during the translation
10 years ago
jrm 51cd3ded47 make sure that the Infer out directory is empty before generating the models
10 years ago
Jules Villard f2240395dd restore join of integer values
10 years ago
jrm 9f5159241f Use Typename.t for the type of the supertypes in the defintion of classes.
10 years ago
jrm 6d91199be7 Generalize the detection of assertion failures to any kind of custom errors defined programatically in the orginal source code
10 years ago
Sam Blackshear 43ee904a1f fix possible infinite loop in get_fld_typ_path
10 years ago
Cristiano Calcagno 51f494f542 Add missing reference to eradicate directory.
10 years ago
Cristiano Calcagno a8ee0e6361 Move Eradicate files to a separate directory.
10 years ago
Josh Berdine e607ceb5ba Re-enable printing of specs in InferPrint
10 years ago
jrm 807922ca7f simplify the PatternMatch module
10 years ago
jrm 8325630da1 remove the function Sil.get_typ and use Sil.tenv_lookup instead
10 years ago
jrm 467fe385be Use the Mangled module to name the parameters in the procudure description instead of simple string
10 years ago
Sam Blackshear 45e8db6892 turn off intentional crashing on assertion failures in developer mode
10 years ago
jrm 2e7f5735d3 Extract the naming of types to its own module named Typename
10 years ago
jrm 4143d4eb2d Extract the kind of data structure, Class Struct or Union, into it own module
10 years ago
Jules Villard a6fb4d82bb do not use --delete when rsyncing annotations
10 years ago
Andrzej Kotulski cc4d3f3cd0 make get_decl_from_typ_ptr return optional type instead of crashing
10 years ago
Andrzej Kotulski 7960798ca8 Deal with default parameter earlier
10 years ago
Andrzej Kotulski 70b003696f Translate bodies of destructors
10 years ago
Dino Distefano 4feb93e91c Fixed FP for blocks used in loops generated by join operator
10 years ago
Sam Blackshear 15480f34d5 distinguishing between failures and timeouts
10 years ago
Jules Villard 09f9765473 use several build directories
10 years ago
Sam Blackshear 6b9e1fc9d7 Stop reporting false alarms due to __nullable on Obj-C property getters and setters
10 years ago
jrm d579b2be51 avoid name collision when two or more files have the same basename
10 years ago
Josh Berdine 24aceba441 Remove unnecessary code from Arg module
10 years ago
Andrzej Kotulski f83927f0d7 Don't set is_objc_instance_method=true for any C++ methods
10 years ago
Dulma Rodriguez 96a5cf58e5 Nullify variables with objc flags if they appear in conditions
10 years ago
Jules Villard ec98c32b18 generate .{annot,cmt} files on demand
10 years ago
Sam Blackshear a82588ba8a Factoring out the implementations for letderef and set
10 years ago
Sam Blackshear 812ac265a8 more logging cleanup: only print Errdesc.warning_err in developer mode
10 years ago
Jules Villard ea4be060f6 add --disable-java-analyzers option
10 years ago
Sam Blackshear 44de91f84b logging to stderr/stdout all the time
10 years ago
Jules Villard edcc984158 compute version number inside configure script
10 years ago
Samuel Blackshear 546eaa0eaa only log to analyzer_err and analyzer_out files in developer mode
10 years ago
Dulma Rodriguez 742cb4146e Remove property of maps
10 years ago
Andrzej Kotulski 0bf6333708 Remove parent_line_number information from cfg translation
10 years ago
jrm 0def5c4111 No longer enforce the subtyping rule for the @PerformanceCritical annotation
10 years ago
Sam Blackshear df97489aa1 closing the classpath when we're done with it
10 years ago
Josh Berdine 63b57790f9 Fix indentation of multiline copyright comment
10 years ago
jrm d390568aed to avoid redundancy, no longer print the name of the class when printing the name of a constructor
10 years ago
Josh Berdine b729c93dd5 Add model of java.lang.Class.getResource
10 years ago
Andrzej Kotulski 6d9c5c684e Fix naming problems with template methods
10 years ago
Jules Villard 4d23334abd add version.mli
10 years ago
Jules Villard a31d45b4f7 do not use ocamlbuild -clean, do not print rm commands
10 years ago
Dulma Rodriguez fcd040ff8a Don't use the property of maps for finding properties in the frontend checkers
10 years ago
Dulma Rodriguez 339cf56eb9 Replace query for getter and setter with info from the procdesc rather than the property map
10 years ago
Jules Villard 2565bb1438 fix open-source taint models
10 years ago
Jules Villard b8c16ddb27 fix typo
10 years ago
jrm 24d28c6858 no longer fail when the type of an execption is not found in the type environement
10 years ago
Dino Distefano c8b80f2435 Extended framework for taint analysis
10 years ago
Sam Blackshear c6b8682dd6 compute taint errors in single pass over the set of atoms
10 years ago
Cristiano Calcagno 1666d7f353 Model Map.put() alongside Map.containsKey().
10 years ago
jrm 3ba477faff add more special characters that can appear in the list of filenames generated by Buck
10 years ago
jrm 15eb16723b non-functional refactoring of the Procname module
10 years ago
Sam Blackshear e0cf26e5c3 adding cf_interface flag--prereq for experimenting with dynamic dispatch for interfaces only
10 years ago
Josh Berdine d66261a1f4 Do not reuse Undef function values
10 years ago
Andrzej Kotulski 5b4df5566c Make all internal pointers convertible to ints
10 years ago
Dulma Rodriguez a54b2d03f6 Remove unused code from ast_expressions
10 years ago
Dulma Rodriguez 515ce95a98 Remove unused code in ObjCProperty_decl
10 years ago
Dulma Rodriguez b51da4f050 Remove the concept of generated method from the frontend and proc attributes
10 years ago
Dulma Rodriguez 1e5b8aeee7 Adding builtin setters and using them by skip
10 years ago
Andrzej Kotulski 173ee91844 Support template methods
10 years ago
Andrzej Kotulski b544be7bef Use PriorityNode.compute_results_to_parent in init_expr_trans
10 years ago
Andrzej Kotulski cd77e41fbb Simplify PriorityNode.compute_results_to_parent
10 years ago
Andrzej Kotulski 84549f691d Support decl_stmt in switch stmt
10 years ago
Andrzej Kotulski a8d5f4241d Put condition node to res_trans_cond
10 years ago
Jules Villard a57ec90405 add empty _tags file to pacify ocaml
10 years ago
jrm 61e457b1f6 Run the @PerformanceCritical checker by default with the other checkers
10 years ago
martinoluca 0dfe0b8f75 Let InferPrint count timeouts
10 years ago
Dulma Rodriguez c02b3ca034 Add correct ivar name to the getters and save the ivar to the tenv if not available
10 years ago
Andrzej Kotulski 6d7521809b Update fcp to get automatic location visitor
10 years ago
Andrzej Kotulski 92690551a6 Handle lvalues inside conditional operator right + fix init_expr_trans to fix materializeTempExpr not connecting nodes
10 years ago
Dulma Rodriguez 9c9504ba51 Using the link from method decl to property to determine whether the method is accessor
10 years ago
jrm 3b919179bc Add the type of the resource being leaked to the error message
10 years ago
Jules Villard a774f5e733 compile with -safe-string
10 years ago
Jules Villard 8dabf716e0 remove compilation warnings for OCaml version >= 4.02.0
10 years ago
Dulma Rodriguez 4b82e208ff Update facebook clang plugin after adding more info about ObjC properties
10 years ago
Sam Blackshear 8e8772f1aa make tainting work properly for skip functions
10 years ago
Dino Distefano dd5b3dfd83 Making the checker not report on init methods
10 years ago
Dino Distefano e76939b53b Drawing retain cycles
10 years ago
Dulma Rodriguez 37fdeb84bc Moving the property frontend checkers to a dummy procdesc
10 years ago
Andrzej Kotulski a1c1b10862 Use priority node for branches inside coditional operator
10 years ago
Andrzej Kotulski 9db84e3a86 Always translate record types
10 years ago
Jules Villard c95a142d76 remove GNU-specific install flags
10 years ago
Jules Villard 5019471640 migrate infer/src/Makefile
10 years ago
Andrzej Kotulski 0bf7e46579 Translate C++ function templates
10 years ago
Sam Blackshear 4dc9dac9e9 getting started on a Nullable annotation checker for obj-c
10 years ago
Andrzej Kotulski d4e76fa9ec Refactor UnaryOperator_trans to use compute_results_to_parent
10 years ago
Andrzej Kotulski 71482fb472 Refactor CompoundBinaryOperator to use same code as BinaryOperator
10 years ago
Dino Distefano 99c491e8c7 Introducing the DIRECT_ATOMIC_PROPERTY_ACCESS
10 years ago
Dulma Rodriguez 12d21c73dd Adding builtins for getters and calling them by skip
10 years ago
Andrzej Kotulski 1349492e57 Update facebook-clang-plugins version
10 years ago
jrm a49b0965ef Model `android.view.View.findViewById` as an expensive method
10 years ago
Jules Villard f7ecf30739 refactor pruning code in symExec.ml
10 years ago
Andrzej Kotulski 5a4f5fa444 Refactor BinaryOperator_trans to use compute_results_to_parent
10 years ago
Andrzej Kotulski 60b4f6e766 Refactor PriorityNode.compute_results_to_parent to call collect_res_trans directly
10 years ago
Andrzej Kotulski 35bb8a9a26 Change order in which ids get generated for objcMessageExpr_trans
10 years ago
Jules Villard 1abebf9046 minor cleanups in prop.ml
10 years ago
Andrzej Kotulski 3f9a08f99c Defer cfg node creation for returnStmt and init_expr_trans
10 years ago
Andrzej Kotulski 0d1af3cc46 Don't set succ_nodes for substatements in returnStmt and init_expr_trans
10 years ago
Andrzej Kotulski 9353c7bbfd Use qualified names for global variables
10 years ago
Andrzej Kotulski a06ce9ca0e Don't report null dereference on 'this' in C++ methods
10 years ago
Andrzej Kotulski 22b84162d6 Don't use trans_state.parent_line_number to determine location
10 years ago
Andrzej Kotulski 1eecdacea6 Ignore type change in UncheckedDerivedToBase cast
10 years ago
jrm b598c747b5 Always consider Java types as subtypes of themselves
10 years ago