984 Commits (b5b4d436ba16d7f76b7147264cd932dc3f4c1d15)

Author SHA1 Message Date
Josh Berdine 77b22ded03 Warn on unused identifiers
9 years ago
Josh Berdine 02056079cf Warn of unused values
9 years ago
Josh Berdine a87ef7e7ff Remove old front-end code
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
Sam Blackshear 091f31dd17 translating monitor exit/enter
9 years ago
Dulma Rodriguez 7721743f46 Model ObjC method isKindOfClass
9 years ago
Dulma Rodriguez efd3aeccc6 Using the attributes table to find out the method to call in virtual calls
9 years ago
Andrzej Kotulski f703d780da Translate headers located inside analyzed project
9 years ago
Josh Berdine a6d7bbb38b Warn of unescaped end-of-line in a string constant
9 years ago
jrm 4af130bf8d remove subtyping rule for the @PerformanceCritical annotation
9 years ago
Josh Berdine 55cb61dbda Warn of unused open statements
9 years ago
Josh Berdine b155168083 Open Utils implicitly
9 years ago
Josh Berdine 8a9f221119 Use Utils in jTransExn and jTransStaticField
9 years ago
Josh Berdine 7f231b8aa0 Move pi and sigma types from Dom to Prop
9 years ago
Josh Berdine 2fa5c5b4e9 Warn of unused types
9 years ago
Josh Berdine 89338c86e9 Warn of unused constructors
9 years ago
Josh Berdine 2e4f4a0c5f Warn of label omitted in function application
9 years ago
Josh Berdine 2f47142b94 Warn of unused loop index variables
9 years ago
Josh Berdine bd8284443c Warn of unused extension (exception) constructors
9 years ago
Josh Berdine 7e7d524e29 Enable -short-paths for better error messages
9 years ago
Josh Berdine 4f4b00fffa Enable -strict-sequence
9 years ago
Josh Berdine 675cfeb56c Enable -strict-formats
9 years ago
Josh Berdine 9bdd1a9d0f Enable -principal to check ambiguous code
9 years ago
Sam Blackshear 5833835289 dynamic dispatch for virtual calls in Java
9 years ago
Josh Berdine fb96eaabcd Make ocamlbuild obey make --silent
9 years ago
Josh Berdine 264038f3ee Make clean target obey --silent
9 years ago
Sam Blackshear bb793770b9 remove --no-cache option, which does nothing
9 years ago
Jules Villard 07822ff16e output infer source locations on --debug-exceptions
9 years ago
Dino Distefano e0fe2af712 Added a two new attributes: observer/unsubscribed_observer
9 years ago
Andrzej Kotulski 3320043217 Fix further problems with forward declarations in C/C++
9 years ago
Andrzej Kotulski 32a5cae175 Fix infinite loop in type expansion
9 years ago
Andrzej Kotulski 3db68bcb4c Create .start file when infer starts
9 years ago
Dulma Rodriguez 5db8fa4539 Remove tvars from the tenv
9 years ago
Sam Blackshear 556b9c121d improving error message from fragment retains View checker
9 years ago
Dulma Rodriguez bf90a64fb5 Fix the typing implication in the bi-abduction for non Java types
9 years ago
jrm 8eb73bf39d Turn on ondemand for the tracing mode
9 years ago
Cristiano Calcagno 2a926d8294 Remove uses of assert false to get original ml location.
9 years ago
jrm 38cb5b48ec Remove no longer useful model for java.lang.Thread
9 years ago
Andrzej Kotulski 8c832142b4 Don't add process type redeclaration unless it has definition
9 years ago
Sam Blackshear 7af27e07d5 deleting unused type_prop.ml
9 years ago
Dino Distefano c41cba92ea Fixed test for taint analysis
9 years ago
Sam Blackshear 5e9a21573b preventing Bad_footprint when passing struct value by reference
9 years ago
jrm 36cc1b0d2e Remove dead code. Feature now implemented in .inferconfig
9 years ago
jrm 904151888c fix treatment of linked list in Java
9 years ago
Dulma Rodriguez ac7959f2df Adding subtyping to ObjC
9 years ago
Jeremy Dubreil 208021fc7e Fix the buck integration for the analysis of Buck itself
9 years ago
Cristiano Calcagno 047eec5a6f Refactor callbacks for Eradicate and Checkers.
9 years ago
Dino Distefano c65947439f Implementing translation of CXXForRangeStmt
9 years ago
Jeremy Dubreil 6389cb9bd0 revert on-demand for the checkers now that the hash for long filename is fixed
9 years ago
Sam Blackshear d0cd8fca47 removed unused param footprint_part
9 years ago
Cristiano Calcagno 88e1d137ba Refactor State module and make OnDemand restore it after calls.
9 years ago
Sam Blackshear 0fbd333cab Checker that complains when Fragments don't nullify their Views
9 years ago
Cristiano Calcagno d31b041fba Replace CRC module with Digest.
9 years ago
jrm 3ece750c15 disable on-demand for the checkers while we fix the filename too long issue
9 years ago
Cristiano Calcagno 6be7266f1f Restore intraprocedural mode for Eradicate and Checkers
9 years ago
Cristiano Calcagno 34b62fc51c Inline Java synthetic methods systematically before writing the cfg to disk.
9 years ago
Cristiano Calcagno 987471d938 Remove unused code for cyclomatic complexity.
9 years ago
Sam Blackshear 526e155046 move resolve_method inside method_invocation
9 years ago
Cristiano Calcagno 41de08924b Indentation of command-line agruments.
9 years ago
jrm dba7e7124f revive the @PerforamanceCritical checker when using Buck
9 years ago
Andrzej Kotulski 49d7bdb6bd Translate CXXScalarValueInitExpr
9 years ago
Andrzej Kotulski 359ad9dd4b Translate constructor initializer
9 years ago
Andrzej Kotulski 1d6aea0fb9 Add typ to trans_state.var_exp
9 years ago
Andrzej Kotulski 7cabc86f77 Pass return parameter type in context
9 years ago
Peter O'Hearn 028ac24d46 Simple model for locks
9 years ago
Jules Villard b1d77e54aa add summary of the analysis to the standard output
9 years ago
Jules Villard cbb8810e2c make dotty field optional in json
9 years ago
Jules Villard e11395d199 print location of errors in infer source code in debug mode
9 years ago
Andrzej Kotulski 8545a0310e Treat xvalues as they were lvalues
9 years ago
Andrzej Kotulski 36fb1f202c Deal with empty parameter names
9 years ago
Jeremy Dubreil 70dbe8db74 Simplify the type comparison of Java classes
9 years ago
jrm 5da7823df5 The env variables used by the Infer backend were only passed in multicore mode
9 years ago
Sam Blackshear 7938fbb344 Fixing 'file name too long' errors
9 years ago
Sam Blackshear f3c7125dc1 build ocaml with debug tag to enable stack traces
9 years ago
Andrzej Kotulski da3a106541 Always translate CXXRecordDecl as Sil.Class
9 years ago
Cristiano Calcagno 58611b15d0 Cleanup of CMethod_signature.
9 years ago
Dino Distefano 5b91ec9f7f A fix for empty retain cycle
9 years ago
Sam Blackshear ef3912cbde Adding on-the-fly translation of types during pre-analysis
9 years ago
Cristiano Calcagno 5683fd8413 Fix collision of spec file names on case insensitive file systems.
9 years ago
Tony Cosentini ac5f092653 Target JDK 1.7 for annotations and processor jar for Android.
9 years ago
Cristiano Calcagno 1b4efcfc7a Enable the analysis of models in on-demand mode.
9 years ago
Jeremy Dubreil 8fcd094c64 Fix NPE in the annotation processor for SuppressWarnings
9 years ago
Andrzej Kotulski 75f4947cb1 Ignore type change in DerivedToBase cast
9 years ago
Andrzej Kotulski b08acedf29 Use clang for default argument resolution
9 years ago
Cristiano Calcagno 10286931ee Cleanup handling of global state, and add footprint mode to the values.
9 years ago
Cristiano Calcagno 7a7260635f Refactor the worklist data structures of the intraprocedural algorithm as non-global state.
9 years ago
Dulma Rodriguez f4bbd44212 Translate dynamic cast for C++
9 years ago
Tony Cosentini 75cca6b3d3 Add android.app.Service to whitelisted Android initializer classes.
9 years ago
Dulma Rodriguez 10fe998c12 Extending subtyping to C++
9 years ago
Sam Blackshear 82b1dd0572 adding support for source roots in maven integration
9 years ago
Andrzej Kotulski 262796d3bf Distinguish between C++ and objc class types
9 years ago
Andrzej Kotulski 9d7ab4b9c2 Translate conversion operators
9 years ago
Sam Blackshear be86e5d15d Exposing java_typ_to_string
9 years ago
Sam Blackshear 14e934205f implementing dynamic dispatch support for Java interfaces
9 years ago
Andrzej Kotulski 3dcd6490c2 Translate reinterpret_cast and const_cast
9 years ago
Cristiano Calcagno 7673d94600 Distinguish between class kinds: CPP, Java, Objc
9 years ago
Andrzej Kotulski bdab22a093 Support temporary objects (CXXTemporaryObjectExpr)
9 years ago
Andrzej Kotulski 44a6ec4f10 Fix return parameter handling
9 years ago
Cristiano Calcagno 74dbfd72b5 Fix issues with html output for debug in on-demand mode.
9 years ago
Andrzej Kotulski e329916e5b Add basic translation of CXXBindTemporaryExpr
9 years ago
Andrzej Kotulski 0a32c95f39 Fix build of llvm frontend
9 years ago
Andrzej Kotulski 1fe920c0c5 Cleanup code triggering code translation
9 years ago
Andrzej Kotulski ec80d40bdd Populate return parameter when returning + turn on new feature for C/C++
9 years ago
Andrzej Kotulski 61de633647 Add information whether translated method has return parameter
9 years ago
Andrzej Kotulski 2c8238849d Add return parameter to function/method call
9 years ago
Andrzej Kotulski 58be5d0eb0 Add return parameter to functions returning structs
9 years ago
jrm 18668a41ce simplify the API to create procedure descriptions
9 years ago
Sam Blackshear dc0b91662a Save space/simplify by deleting Exe.file_map
9 years ago
Cristiano Calcagno 162dc42b5b Use a record for struct types instead of a 7-tuple.
9 years ago
Andrzej Kotulski a317ac38f2 Use init_exp in InitListExpr and CompoundLiteralExpr
9 years ago
Andrzej Kotulski 5eb7d9e994 Add init_pvar to trans_state and use it in c++ constructor
9 years ago
Dulma Rodriguez f379383b04 Adding support for annotations for cpp classes to separate them in the backend from objc classes
9 years ago
jrm ad2a9064c3 No longer overwrite the attributes in the summary if already existing
9 years ago
jrm cdda16effa Make Eradicate use on-demand analysis by default
9 years ago
Andrzej Kotulski fcb561a1ee Use Sil.exp instead of var_res_trans to get initialized variable
9 years ago
Cristiano Calcagno bcba8a7011 Fix transition between re-execution and footprint in on demand, and support tests for incremental.
9 years ago
Cristiano Calcagno 453709c3c8 Only propagate nullable to return value when environment variable is set.
9 years ago
Cristiano Calcagno 97a3aa3d0b Fix treatment of recursion and double file descriptor close in on-demand.
9 years ago
Dulma Rodriguez f34f2dcd98 Don't crash when a cg cannot be loaded.
9 years ago
jrm 2e7956f384 Always use the current directory as the default classpath
9 years ago
Sam Blackshear 9c03a6b14c Using -processorpath and -processor flags correctly
9 years ago
jrm ec2a1e2130 Revive support for --no-cache when analyzing Buck-based projects
9 years ago
Sam Blackshear d1cf7b7177 removing unused tenv in conditional pruning
9 years ago
jrm 2479f69f34 remove symbolic link to deleted script BuckAnalyze
9 years ago
Sam Blackshear 6fa9b995e5 no longer catching Class_structure_exception
9 years ago
Jules Villard 59a3b9c22a add temp var from compoundLiteralExpr to the function locals
9 years ago
jrm ea5490989e Remove deprecated script BuckAnalyze
9 years ago
jrm 1544819b40 merge redundant code to configure logging
9 years ago
Jules Villard 7b9b6841d2 translate CompoundLiteralExpr
9 years ago
Dulma Rodriguez c32f8f39cd Update the intellij settings.
9 years ago
Dulma Rodriguez 7855d6ecfa Fix the order of the translated stmts inside compound stmt
9 years ago
jrm a7371d5678 Perf critical checker: save the chains of calls to expensive methods in the error traces
9 years ago
Sam Blackshear f1c424e1d4 fixing accidental change to Child.java
9 years ago
Dino Distefano 377893637a Direct property access should not fire on dealloc methods
9 years ago
Dulma Rodriguez c88ac54613 Improving the line number information in the string delegate warning check
9 years ago
Dino Distefano 1fc7d4c0a3 Fix year
9 years ago
Dino Distefano d4d5c3bb2f Implemented new check CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK
9 years ago
Dulma Rodriguez 432dd28731 Improving the line number information in the string delegate warning check
9 years ago
Tony Cosentini dc9f8a7a01 Don't create infer-out directory or logs unless analyzing something.
9 years ago
Sam Blackshear 43daa760ee adding InferJava flags for classpath and class-source map, along with associated Python boilerplate
9 years ago
Andrzej Kotulski 0ae9b0e7a1 Change the way nested structs are translated
9 years ago
Sam Blackshear e27959f655 adding annotation processor to build class -> source map, with proper deps this time
9 years ago
Dulma Rodriguez d5baa2a1de Revert "[java] adding annotation processor to build class -> source map"
9 years ago
jrm 22013a007b Buck integration: Infer should always use the javac out directory when running the analysis from the javac commands
9 years ago
Sam Blackshear 8f8d398a9a adding annotation processor to build class -> source map
9 years ago
Andrzej Kotulski df192d06c3 Use ints as clang pointers
9 years ago
Josh Berdine 2ff26d37fb Simplify CLocation implementation
9 years ago
Josh Berdine d9667d07e4 Remove unused CLocation.init_curr_source_file
9 years ago
Josh Berdine c930ef90eb Remove redundant CLocation.current_source_file
9 years ago
Josh Berdine 7999dc3c4e Check CLocation.current_source_file is redundant
9 years ago
jrm cf5040cbee call the on-demand analysis using the procedre name after name resolution
9 years ago
Sam Blackshear 022161cae2 refactoring SuppressWarnings processor to make it easy to add class -> source map processor
9 years ago
Andrzej Kotulski bd935c2347 Add destructor calls on delete expression
9 years ago
jrm 30e2cf7114 Revive the "call by procedure name" mechanism for Java
9 years ago
Andrzej Kotulski 32745b67aa Add dotty information about retain cycle
9 years ago
Andrzej Kotulski 0ea850b7a2 Add dotty file contents to json report
9 years ago
Andrzej Kotulski 3adbb56e9c Add extra field to error_desc.
9 years ago
Josh Berdine 2c0fc4025b Remove out-of-date comments
9 years ago
Jules Villard 9ecf2d9f5e force git repo root when computing version info
9 years ago
jrm b3bf8b1ecc No longer overwrite the list of non-static fields during the translation
9 years ago
jrm 1754e4f0b0 Fix copy-pasted test names
9 years ago
jrm 51cd3ded47 make sure that the Infer out directory is empty before generating the models
9 years ago
Jules Villard f2240395dd restore join of integer values
9 years ago
jrm 9f5159241f Use Typename.t for the type of the supertypes in the defintion of classes.
9 years ago
jrm 6d91199be7 Generalize the detection of assertion failures to any kind of custom errors defined programatically in the orginal source code
9 years ago
Sam Blackshear 43ee904a1f fix possible infinite loop in get_fld_typ_path
9 years ago
Cristiano Calcagno 51f494f542 Add missing reference to eradicate directory.
9 years ago
Cristiano Calcagno a8ee0e6361 Move Eradicate files to a separate directory.
9 years ago
Josh Berdine e607ceb5ba Re-enable printing of specs in InferPrint
9 years ago
Josh Berdine b93bbfdd39 Fix recursive make invocations building models
9 years ago
martinoluca 6daedaef13 Pass javac wrapper through command-line argument
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
Sam Blackshear 45e8db6892 turn off intentional crashing on assertion failures in developer mode
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
Dulma Rodriguez bf9dc57a9b Fix broken test
9 years ago
Jules Villard a6fb4d82bb do not use --delete when rsyncing annotations
9 years ago
Dulma Rodriguez 193fb8799c Removing issues in the models that cause Infer to flag warnings
9 years ago
Andrzej Kotulski cc4d3f3cd0 make get_decl_from_typ_ptr return optional type instead of crashing
9 years ago
Andrzej Kotulski 7960798ca8 Deal with default parameter earlier
9 years ago
Andrzej Kotulski 70b003696f Translate bodies of destructors
9 years ago
Dino Distefano 4feb93e91c Fixed FP for blocks used in loops generated by join operator
9 years ago
Sam Blackshear 15480f34d5 distinguishing between failures and timeouts
9 years ago
Jules Villard 09f9765473 use several build directories
9 years ago
Sam Blackshear 6b9e1fc9d7 Stop reporting false alarms due to __nullable on Obj-C property getters and setters
9 years ago
jrm d579b2be51 avoid name collision when two or more files have the same basename
9 years ago
Josh Berdine 24aceba441 Remove unnecessary code from Arg module
9 years ago
Andrzej Kotulski f83927f0d7 Don't set is_objc_instance_method=true for any C++ methods
9 years ago
Jules Villard 0ccbb80df9 quote infer result dir shell variable
9 years ago
Dulma Rodriguez 96a5cf58e5 Nullify variables with objc flags if they appear in conditions
9 years ago
Jules Villard ec98c32b18 generate .{annot,cmt} files on demand
9 years ago
Sam Blackshear a82588ba8a Factoring out the implementations for letderef and set
9 years ago
Sam Blackshear 812ac265a8 more logging cleanup: only print Errdesc.warning_err in developer mode
9 years ago
Jules Villard 98557bb1fd compatibility with older python (eg 2.7.3)
9 years ago
Jules Villard ea4be060f6 add --disable-java-analyzers option
9 years ago
Sam Blackshear 44de91f84b logging to stderr/stdout all the time
9 years ago
Jules Villard edcc984158 compute version number inside configure script
9 years ago
Samuel Blackshear 546eaa0eaa only log to analyzer_err and analyzer_out files in developer mode
9 years ago
Dulma Rodriguez 742cb4146e Remove property of maps
9 years ago
Andrzej Kotulski 0bf6333708 Remove parent_line_number information from cfg translation
9 years ago
jrm 0def5c4111 No longer enforce the subtyping rule for the @PerformanceCritical annotation
9 years ago
Sam Blackshear df97489aa1 closing the classpath when we're done with it
9 years ago
Josh Berdine 63b57790f9 Fix indentation of multiline copyright comment
9 years ago
jrm d390568aed to avoid redundancy, no longer print the name of the class when printing the name of a constructor
9 years ago
Sam Blackshear 53167d98cd refactoring command line options for debugging
9 years ago
Josh Berdine b729c93dd5 Add model of java.lang.Class.getResource
9 years ago
Josh Berdine d99b6ca492 Use doesNotContain instead of containsExactly none
9 years ago
Andrzej Kotulski 6d9c5c684e Fix naming problems with template methods
9 years ago
Jules Villard 4d23334abd add version.mli
9 years ago
Jules Villard a31d45b4f7 do not use ocamlbuild -clean, do not print rm commands
9 years ago
Dulma Rodriguez fcd040ff8a Don't use the property of maps for finding properties in the frontend checkers
9 years ago
Dulma Rodriguez 339cf56eb9 Replace query for getter and setter with info from the procdesc rather than the property map
9 years ago
Jules Villard 2565bb1438 fix open-source taint models
9 years ago
Jules Villard b8c16ddb27 fix typo
9 years ago
jrm 24d28c6858 no longer fail when the type of an execption is not found in the type environement
9 years ago
Dino Distefano c8b80f2435 Extended framework for taint analysis
9 years ago
Sam Blackshear c6b8682dd6 compute taint errors in single pass over the set of atoms
9 years ago
Cristiano Calcagno 1666d7f353 Model Map.put() alongside Map.containsKey().
9 years ago
jrm 3ba477faff add more special characters that can appear in the list of filenames generated by Buck
9 years ago
jrm 15eb16723b non-functional refactoring of the Procname module
9 years ago
Sam Blackshear e0cf26e5c3 adding cf_interface flag--prereq for experimenting with dynamic dispatch for interfaces only
9 years ago
Sam Blackshear 99f79587cd adding ContentValues as sink
9 years ago
Josh Berdine d66261a1f4 Do not reuse Undef function values
9 years ago
Andrzej Kotulski 5b4df5566c Make all internal pointers convertible to ints
9 years ago
Dulma Rodriguez a54b2d03f6 Remove unused code from ast_expressions
9 years ago
Dulma Rodriguez 515ce95a98 Remove unused code in ObjCProperty_decl
9 years ago
Dulma Rodriguez b51da4f050 Remove the concept of generated method from the frontend and proc attributes
9 years ago
Dulma Rodriguez 1e5b8aeee7 Adding builtin setters and using them by skip
9 years ago
Andrzej Kotulski 173ee91844 Support template methods
9 years ago
Andrzej Kotulski b544be7bef Use PriorityNode.compute_results_to_parent in init_expr_trans
9 years ago
Andrzej Kotulski cd77e41fbb Simplify PriorityNode.compute_results_to_parent
9 years ago
Andrzej Kotulski 84549f691d Support decl_stmt in switch stmt
9 years ago
Andrzej Kotulski a8d5f4241d Put condition node to res_trans_cond
9 years ago
Jules Villard a57ec90405 add empty _tags file to pacify ocaml
9 years ago
jrm 61e457b1f6 Run the @PerformanceCritical checker by default with the other checkers
9 years ago
martinoluca 0dfe0b8f75 Let InferPrint count timeouts
9 years ago
Dulma Rodriguez c02b3ca034 Add correct ivar name to the getters and save the ivar to the tenv if not available
9 years ago
Andrzej Kotulski 6d7521809b Update fcp to get automatic location visitor
9 years ago
Andrzej Kotulski eeb7c33230 Update fcp
9 years ago
Andrzej Kotulski 92690551a6 Handle lvalues inside conditional operator right + fix init_expr_trans to fix materializeTempExpr not connecting nodes
9 years ago
Dulma Rodriguez 9c9504ba51 Using the link from method decl to property to determine whether the method is accessor
9 years ago
jrm 3b919179bc Add the type of the resource being leaked to the error message
9 years ago
jrm 5a218a6d02 treat guava preconditions checks as assume instead of exeption throwing assertions
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
Dulma Rodriguez 4b82e208ff Update facebook clang plugin after adding more info about ObjC properties
9 years ago
Sam Blackshear 8e8772f1aa make tainting work properly for skip functions
9 years ago