373 Commits (07cef38d1ff22c116d4be8e9b8faa261f94d4218)

Author SHA1 Message Date
Sam Blackshear 8dbd91b5ba [java frontend] fix infinite loop
8 years ago
Jules Villard dd2c56da06 be more careful about handling invalid source files
8 years ago
Andrzej Kotulski 3cdb0e04f5 [SourceFile] Move append_crc_cutoff to DB module
8 years ago
Andrzej Kotulski 71702a13dc [IR] More detailed type for Fieldname.t
8 years ago
Andrzej Kotulski 7c64d217f2 [IR] Refactor Ident.fieldname _*into Fieldname module
8 years ago
Andrzej Kotulski 9a07318ab7 [IR] Simplify Typ.Name.t type by inlining Csu.t type
8 years ago
Andrzej Kotulski 42947ea9d9 [IR] Make template info part of Typename.t, rename Typename to Typ.Name
8 years ago
Cristiano Calcagno 434cfbfb15 [eradicate] Add support for new annotation @PropagatesNullable
8 years ago
Andrzej Kotulski e363958d34 [codemod] Move `Procname` into `Typ.Procname`
8 years ago
Jeremy Dubreil 08980b57e5 [infer][ondemand] make the Procname API more robust by using Typename.t for the class name part of a method name
8 years ago
Josh Berdine 95725e4dd0 Refactor StructTyp to Typ.Struct
8 years ago
Sam Blackshear e657d19194 [java frontend] translate boolean annotation parameters
8 years ago
Cristiano Calcagno 9a06a859e2 Deprecate IList part 3.
8 years ago
Cristiano Calcagno b1b5460529 Deprecate further IList functions
8 years ago
Cristiano Calcagno 41c5be9bad Deprecate more IList functions
8 years ago
Cristiano Calcagno 731dead406 More IList deprecation: fold functions
8 years ago
Jules Villard 451adc7949 [build] fix ./build-infer clang
8 years ago
Jeremy Dubreil 4ed185e557 [infer][java] for the buck integration, remove the files that are invalidating the Buck cache
8 years ago
Cristiano Calcagno 60916922c6 Deprecate more IList functions and use Core List instead
8 years ago
Jeremy Dubreil ecfb00e068 [infer][java] Always consider the close() method to be potentially closing a resource
8 years ago
Cristiano Calcagno 5c12d98d37 Deprecate IList module in favour of Core List
8 years ago
Jeremy Dubreil c047819ab3 [infer] rename Mangled.Set and add Mangled.Map
8 years ago
Cristiano Calcagno b1421bc27f [BetterEngineering] Remove remaining uses of polymorphic equality
8 years ago
Jeremy Dubreil add9e476a3 [infer][java] more rebust detection of the class filenames
8 years ago
Cristiano Calcagno f91b3128d3 [BetterEngineering] Replace uses of polymorphic equality
8 years ago
Sam Blackshear e565010cf3 [thread-safety] don't warn on writes to volatile fields
8 years ago
Josh Berdine 4ec3af4a7f Call java frontend directly instead of using fork
8 years ago
Josh Berdine 8c42cfb364 Add root dir argument to Utils.filename_to_absolute
8 years ago
Jeremy Dubreil 4bca15afff [infer][backend] Add the distinction between models and regular procedure as part of the attributes
8 years ago
Josh Berdine 3dfaa9ed7b Remove support for SuppressWarnings annotations
8 years ago
Jules Villard a07e16871c [java] silence javalib warnings on stderr when loading class with Java8 Code
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 23cda11fda Core.Std.Int.Set
8 years ago
Josh Berdine 78ec954ae2 Core.Std.String.Map
8 years ago
Josh Berdine e00c4cd2dd Core.Std.String.Set and remove unused StringPPSet
8 years ago
Josh Berdine c2abce7e3a Core.Std.Array
8 years ago
Josh Berdine de2e6c9d88 Core.Std.Option
8 years ago
Josh Berdine 4ea3410b47 Core.Std.Sys
8 years ago
Josh Berdine 9d1b495f57 Core.Std.Unix
8 years ago
Josh Berdine e415b73786 Core.Std.String
8 years ago
Andrzej Kotulski 56f8757337 [SourceFile] Move DB.SourceFile into separate file
8 years ago
Andrzej Kotulski 69b39dacb0 [DB] Create module for SourceFile
8 years ago
Jeremy Dubreil d89c69dbe6 [infer][java] Adding the android.jar in the classpath is not needed anymore
8 years ago
Andrzej Kotulski b8908282f8 [DB] Remove many callsites of DB.source_file_to_string
8 years ago
Jeremy Dubreil cead43b731 [infer][genrule] run the genrule integration as part of the Buck integration test
8 years ago
Josh Berdine 198bc00df7 Remove Utils compare and equal functions
8 years ago
Jeremy Dubreil e269f2a3fd [infer][java] basic support to run Infer using Buck genrules
8 years ago
Andrzej Kotulski 7a0a89e567 [DB.source_file] Explicitly specify what path is relative to, keep cpp model paths relative
8 years ago
Jeremy Dubreil 3299f74068 [infer][java] removing Thread.start() special treatment
8 years ago
Andrzej Kotulski b2cef3e0b2 [DB] Alawys use DB.source_file_to_abs_path to do actual filesystem operations
8 years ago
Jeremy Dubreil ba62932760 [infer][java] Translate the local variables directly from the bytecode
8 years ago
Jeremy Dubreil 2320ed8af3 [infer][java] Infer does not really rely on having compliant bytecode to run the analysis
8 years ago
Jeremy Dubreil 02ce9a909a [infer][java] only skip the classes where Javalib raises an exception instead of skipping all the classes
8 years ago
Sam Blackshear 75d6fb30e4 [frontend] support Java 8
8 years ago
Cristiano Calcagno c5159bae1c [IR] Move Procdesc module to a separate file.
8 years ago
Jeremy Dubreil 274851fc53 [infer][java] mark all methods as defined
8 years ago
Josh Berdine 3021394a10 [config] Remove unnecessary --models
8 years ago
Andrzej Kotulski 459ec32081 kill Location.nLOC
8 years ago
Jeremy Dubreil 3b997e4882 [infer][java] Isolate the call to the JBir transformation to a single place
8 years ago
Jeremy Dubreil 2e16920f5a [infer][java] Skip the translation of modeled methods earlier
8 years ago
Jeremy Dubreil b3e406ddf3 [infer][java] Simplify the API to translate Java method names into SIL procedure names
8 years ago
Cristiano Calcagno e933ee958a [IR] Rearrange the cfg module to make nodes, procd descs, and cfgs independent types.
8 years ago
Josh Berdine 2ce94632d2 [config] Default project_root to initial working dir
8 years ago
Cristiano Calcagno 73c5dfdfa4 [IR] Remove use of Cfg.Node.get_proc_desc
8 years ago
Andrzej Kotulski 46592ffdd9 [backend] Split construction of builtin pnames and builtin registration
8 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg
8 years ago
Jeremy Dubreil e90f67abd6 [infer][java] Java frontendonly print information when the debug mode is on
8 years ago
Cristiano Calcagno ecda199e9d [IR] Clean up unused parts of Cfg
8 years ago
Jeremy Dubreil c7318ee27e [infer][java] Use the global logging function for the Java frontend
8 years ago
Jeremy Dubreil 31d886bede [infer][java] only cache the classname of translated classes when running Infer with the --dependencies option
8 years ago
Jeremy Dubreil 219832a9a8 [infer][java] Create the procedure descriptions when required instead of creating them beforehand
8 years ago
Jeremy Dubreil e13c3886bf [infer][java] removing no longer used code which can now be handled using .inferconfig
8 years ago
Jeremy Dubreil 837cb9b64e [infer][java] Only create proc_desc for the methods that are defined
8 years ago
Jeremy Dubreil a7d2eb1d02 [infer][java] Remove the code adding a special treatment for static final fields
8 years ago
Jeremy Dubreil d891303bb6 [infer][java] Minor cleanup of the Java frontend
8 years ago
Josh Berdine a7c1105147 [config] Combine analyze_models into models_mode
8 years ago
Cristiano Calcagno 1327de0321 Fix issue with timestamps leading to files not analyzed in -reactive mode when the capture takes less than 1 second
8 years ago
Jules Villard 62bfde8b5a [clang] translate global var initializers
8 years ago
Jules Villard d9f83094b5 [clang] do not depend on Config.clang_lang and Config.source_file
8 years ago
Andrzej Kotulski 6251aad101 [IR] kill Cfg.set_procname_priority
8 years ago
Jeremy Dubreil ea72dadab3 [infer] Add the possibility to skip the analysis of some files based on their path
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
Jeremy Dubreil 168c613ac9 [infer][java] Separate the builtins from the other models for a better modularity
8 years ago
Jeremy Dubreil d1da078ab7 [infer][java] Minor renaming in the Java frontend
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
Cristiano Calcagno bd0215a826 [IR] Add notion of file captured to procedure attributes.
8 years ago
Sam Blackshear b34a23c1b4 [java frontend] fix read of unused id in exception translation.
8 years ago
Cristiano Calcagno b0980bc35e [tests] Convert c/c++ frontend tests to new format.
8 years ago
Josh Berdine 8589dc4868 Remove Tstruct in favor of Tvar
8 years ago
Josh Berdine 548338bb4e Move mk_struct to Tenv
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 30ff9eda22 fix type of array store
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
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
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 701eb20f83 Refactor Sil.exp to Exp.t
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
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
9 years ago
Josh Berdine eefe05b240 Refactor Sil.Subtype into separate Subtype 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 c5ce74f3d3 Exception values are not constants
9 years ago
Sam Blackshear 006bd06adb add concept of a dummy identifier
9 years ago
Josh Berdine 843d380d10 Simplify DB initialization
9 years ago
Peter O'Hearn da0933fd79 first try at dereferencing lock on monitor enter
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
Josh Berdine 229ca26c8b Optimize normalization, substitution, renaming of array types
9 years ago
Josh Berdine a85a88d145 Extend Sizeof with final extensible array length
9 years ago
Sam Blackshear fd8a864c15 doing preanalysis on-demand
9 years ago
Sam Blackshear 83a14a3541 changing API to take pdesc instead of cfg
9 years ago
Jules Villard 21367b0e98 add matchers from inferconfig to the CLI
9 years ago
Sam Blackshear 5b041d46ad remember when a method is synchronized
9 years ago
Sam Blackshear 44edd9ba7f fix frontend crash when running on Java 8
9 years ago
Jules Villard 944176bf67 load json config files lazily and at most once
9 years ago
Josh Berdine 3e2fa59262 Reimplement command line options
9 years ago
Sam Blackshear c92bbf362b removing need to pass around lists of temporary id's in the frontend
9 years ago
Jeremy Dubreil 6dfd1a317e Some cleanup and renaming
9 years ago
Jules Villard d4521fd70d handle utf8 PWD
9 years ago
Peter O'Hearn 50081c7ccb alloc/dealloc model for locks
9 years ago
Cristiano Calcagno 054ad223a8 Fix control-flow graph shape when conditional is last instruction.
9 years ago
Josh Berdine a5e1a6c77e Report time and memory stats
9 years ago
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
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
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
jrm e734c1873d Fix cases of resource leaks not detected when the resource indirectly implements Closeable
9 years ago
Sam Blackshear f9bffe1e87 move remove_tmps and add_abstraction steps into the pre-analysis
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
jrm cc4fcd6837 Add support for modeling @Expensive methods using .inferconfig
9 years ago
Jules Villard c637c10d0f Revert "[java] no longer catching Class_structure_exception"
9 years ago
jrm 81a59515e4 Simplify the code to collect the list of @SuppressWarnings annotations
9 years ago
jrm e123635122 Add support for @SuppressWarnings for Gradle and Ant projects.
9 years ago
Sam Blackshear 2d89426170 fixing tenv_lookup
9 years ago
Sam Blackshear 337d2cc537 fixing tenv_add to add only struct_typ's
9 years ago
Sam Blackshear 749a649138 translating an expression returns its type
9 years ago
Sam Blackshear 82f2b7b6de make tenv a typename -> struct_typ map
9 years ago
Cristiano Calcagno 021cf213a6 Bypass the interprocedural algorithm in Fork with ondemand, and replace it with a simple iteration.
9 years ago
Cristiano Calcagno f3ba6c3906 Revamped Timeout module to save and restore seconds and symops.
9 years ago
Josh Berdine 77b22ded03 Warn on unused identifiers
9 years ago
Josh Berdine 02056079cf Warn of unused values
9 years ago
Sam Blackshear 091f31dd17 translating monitor exit/enter
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 89338c86e9 Warn of unused constructors
9 years ago
jrm 36cc1b0d2e Remove dead code. Feature now implemented in .inferconfig
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
Sam Blackshear ef3912cbde Adding on-the-fly translation of types during pre-analysis
9 years ago
Dulma Rodriguez 10fe998c12 Extending subtyping to C++
9 years ago
Sam Blackshear 14e934205f implementing dynamic dispatch support for Java interfaces
9 years ago
Cristiano Calcagno 7673d94600 Distinguish between class kinds: CPP, Java, Objc
9 years ago
jrm 18668a41ce simplify the API to create procedure descriptions
9 years ago
Cristiano Calcagno 162dc42b5b Use a record for struct types instead of a 7-tuple.
9 years ago
Sam Blackshear 6fa9b995e5 no longer catching Class_structure_exception
9 years ago
Sam Blackshear 43daa760ee adding InferJava flags for classpath and class-source map, along with associated Python boilerplate
9 years ago
jrm 30e2cf7114 Revive the "call by procedure name" mechanism for Java
9 years ago
jrm b3bf8b1ecc No longer overwrite the list of non-static fields during the translation
9 years ago
jrm 51cd3ded47 make sure that the Infer out directory is empty before generating the models
9 years ago
jrm 9f5159241f Use Typename.t for the type of the supertypes in the defintion of classes.
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 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
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 3ba477faff add more special characters that can appear in the list of filenames generated by Buck
9 years ago
Sam Blackshear e0cf26e5c3 adding cf_interface flag--prereq for experimenting with dynamic dispatch for interfaces only
9 years ago
jrm 8636aa1f70 open the jar file of the model only once
9 years ago
jrm a8388644b8 Add a flag to create the procedure descriptions of callees
9 years ago
jrm 4260c720c0 Disable the creation of the harness by default
9 years ago
jrm 6f3873aa99 Adding inferconfig support to skip the translation of generated source code
9 years ago
jrm 43958b461a Use the type environment as a cache of translated types
9 years ago
jrm 3076b434c1 Collect all the class fields in a single loop instead of collecting the static and non-static fields separately
9 years ago
Cristiano Calcagno 03bca6734c fix a number of issues related to the treatment of global state in ondemand analysis
9 years ago
Jules Villard 7d0a7568f3 put Util.list_* functions into an IList module
9 years ago
Cristiano Calcagno f17f54939b checkers can now analyze a restricted subset of the procedures defined in a file
9 years ago
jrm c01df1fe90 no longer collect all possible subtypes in the type environment
9 years ago
Cristiano Calcagno 1e6247c872 [frontend] generate fresh ids separately for different procedures in the cfg
9 years ago
Cristiano Calcagno ea7c13ff6c [backend][cleanup] Move proc_attributes to a separate module.
9 years ago
Sam Blackshear a9b6f33940 [Infer][filtering] Adding support for filtering by procname using .inferconfig
9 years ago