682 Commits (233d6a53c0e14ae62019f1f96f9b87d5ebb1771b)

Author SHA1 Message Date
Ryan Rhee e73350598a [componentkit] Unconventional superclass rule
8 years ago
Jules Villard 5d4e3fa267 [clang] store args into files for Buck compilation db too
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
Andrzej Kotulski d7a0e706df [clang] Create separate module for compilation database
8 years ago
Dulma Churchill 60db0dd67e [clang] Choose always the first location a range
8 years ago
Dulma Churchill e578198622 [clang] Do not store proc attributes directly but create procdesc to preserve invariants
8 years ago
Jules Villard 36a5dc33ee [clang] write clang arguments into a file
8 years ago
Jules Villard 9535c4d89e [clang] convert filter_args_and_run_fcp_clang to OCaml
8 years ago
Jules Villard 5fe40bae12 [siof] check origin of globals and complain if potential siof
8 years ago
Jules Villard 62bfde8b5a [clang] translate global var initializers
8 years ago
Josh Berdine dd8b8e6d2e [reason] reformat with new version of reason
8 years ago
Martino Luca c0a66dbd49 [Infer][CTL] First implementation of a debugging feature for AST checks
8 years ago
Dino Distefano 898d956513 Implemented CTL parser
8 years ago
Dulma Churchill 98afe25b54 [linters] Take the attributed types into account when finding pointer types
8 years ago
Jules Villard c53bfe3159 [clang] rewrite plugin attachment logic in OCaml
8 years ago
Dulma Churchill 3b581748f9 [componentkit linters] Remove the links from the message
8 years ago
Andrzej Kotulski 27ed2c7062 [clang] always call add_edge
8 years ago
Dulma Churchill 2d97b5d111 [clang] Add the objc interface case to the function get_decl_from_typ_ptr
8 years ago
Jules Villard af4f65a871 [clang] kill unused plugin
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
Jules Villard 8f32c3cfe1 [clang] minor cleanups
8 years ago
Ryan Rhee 609d1f9058 [clang][frontend] Type ptr to objc if function
8 years ago
Ryan Rhee 8f731569fc [componentkit] Break out common CK context check
8 years ago
Ryan Rhee a1f65716b8 [clang][frontend] Simplify is_objc_if_descendant logic
8 years ago
Ryan Rhee b635269fa8 [clang][frontend] Allow custom blacklist for checking objc descendant
8 years ago
Ryan Rhee 07797410cc [clang][frontend] Break out objc class inheritance check function
8 years ago
Ryan Rhee 272c21ff70 [componentkit] Factory functions analyzer
8 years ago
Martino Luca cab20f4a6e [Infer][iOS][Linters][CTL] Rewrite BAD_POINTER_COMPARISON rule into Computation Tree Logics formula
8 years ago
Dulma Churchill a1d7df6c07 [linters] Log assert failures in the linters framework
8 years ago
Dulma Churchill a44109b2b2 [linters] Pass the current method in the context to the checks about the methods or functions declarations
8 years ago
Dino Distefano 9be81f6e9a Simplify semantics of ET operator and fix build
8 years ago
Dino Distefano 05bb4a0db7 Defining an AST specification language based on CTL for front-end checkers
8 years ago
Dulma Churchill befab1007b [clang] Migrating clang logging to the Logging module
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
Ryan Rhee 6475e358c4 [componentkit][const] Ignore NSError
8 years ago
Ryan Rhee 7a434adea8 [componentkit][const] Whitelist certain classes
8 years ago
Dulma Churchill 561f4fdfad [linters] Adding a new type of procname that is used for lint bugs that are not in any method
8 years ago
Dulma Churchill a2ee69975a [clang] Remove support for logging lint issues in procdescs
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
Cristiano Calcagno fe21442d47 [tests] Convert the linter tests to the new direct format
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
Dulma Churchill f99d3a7c8e Add an option clang-frontend-action to drive the frontend into capture or linters when the -a capture option is used
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
Dulma Churchill f6636c6d41 Store the issue file only if there are issues
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
Andrzej Kotulski be891e8413 Simplify builtin function detection during translation
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 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 0caa7e1826 move printing module to its own file
8 years ago
Martino Luca 9e3b3c5d77 Fix C++ tests
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
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
Ryan Rhee e19550a43b Handle l-value refs correctly
8 years ago
Dulma Churchill 6ad78e7d9c Add case for blocks when building a procname
8 years ago
Dulma Churchill 9ae19d01d0 Make the is_global_var not fire for the static local variables
8 years ago
Martino Luca 7de52e7649 Check early whether the given decl has to be checked with linters or not
8 years ago
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
8 years ago
Dulma Churchill 07bf714d91 Put current method in context
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
Martino Luca 40b176fd01 Translate global const vars locally to a procedure
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
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
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
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
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 d60965824e Refactor exp_equal and exp_compare to Exp
8 years ago
Josh Berdine 701eb20f83 Refactor Sil.exp to Exp.t
8 years ago
Martino Luca e3132152cb Check for the presence of removeObserver into class hierarchy
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
Martino Luca bed9b31c62 Add general context to linters framework to implement smarter checks
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
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
Jules Villard 10f10a90c6 diverge on `throw`
8 years ago
Jules Villard fb7aed07c6 typo and whitespace cleanup in cFrontend_config
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 9378913223 add constructor info to c++ methods
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
Andrzej Kotulski e61b6fe719 Use pointers to decls instead of class names when creating a type
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
9 years ago
Dulma Churchill 694ded4795 Make the description of issues specify the error kind
9 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 32d09545e2 Closure values are not constants
9 years ago
Dulma Churchill 0253608fab Separate the flow of the frontend checks form the translation
9 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing
9 years ago
Dulma Churchill bcb1422a9a Implement direct atomic var check with the new ivar to property map
9 years ago
Andrzej Kotulski 046654a9c0 Fix translation of unary operator! for all integral types
9 years ago
Dulma Churchill 6ac4db7113 Change the check CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK to use only the clang ast
9 years ago
Sam Blackshear 006bd06adb add concept of a dummy identifier
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
Dulma Churchill c06795e631 Fixing the treatment of annotations in the clang frontend
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
Dulma Churchill 7f3e99c3d4 Fix assert false when calling zero_value_of_numerical_type
9 years ago
Andrzej Kotulski 14f5f6b8e4 Update clang and raise buffer size
9 years ago
Andrzej Kotulski 4d90ef99f0 Fix custom type_ptr to char* and char
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
Dulma Churchill 5adab3cb61 Fix StmtExpr
9 years ago
Dulma Churchill a68c45c2a9 Fix dyspatch_async 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
Sam Blackshear fd8a864c15 doing preanalysis on-demand
9 years ago
Dulma Churchill bf9d194e43 Translate builtin_expect as its first argument. Avoids weird symb. exec. problems
9 years ago
Sam Blackshear 83a14a3541 changing API to take pdesc instead of cfg
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
Dulma Churchill de615594df Skip whitelisted functions form trace
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
Dulma Churchill 83e6ab1a20 Blacklist translation of files in inferconfig
9 years ago
Dulma Churchill 93fcf7be9f Skip cpp models from traces
9 years ago
Dino Distefano aae1dbac3d Skipping reporting global variable warning on known non-expensive cases.
9 years ago
Josh Berdine 88a2da91fc Add `make -C infer/src test_build` to `make test`
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
Dulma Churchill 9b1bd712b5 Marking getters/setters as builtins only inside the definition of the class
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 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
Dino Distefano 83c1bbc832 Implementing a checker to warn initialization of global variables with mehod calls.
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
Dulma Rodriguez be91fb5429 Fix toll free bridging
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
Dino Distefano b7ab1760a6 Translation of lambda [part one]
9 years ago
Jules Villard 70c8494625 opacify the type of node ids
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 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 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
Andrzej Kotulski e495a81942 Remove parent_dec from translate_one_decl
9 years ago
Andrzej Kotulski 64bb3b62b3 Use variable stmt location info in init_res_trans
9 years ago
Dulma Rodriguez bc3134dd32 Translate initializing arrays of C++ classes
9 years ago
Dulma Rodriguez 44491679cf Fix broken tests in master
9 years ago
Sam Blackshear e9cb9f4352 assign pointer type checker
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
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
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
Dulma Rodriguez c6524d799f Translate C++ constructors after new
9 years ago
Dino Distefano fc5d4897a5 Registered Observer check done by front-end
9 years ago
Cristiano Calcagno c198d76631 Clean up the Procname module, and remove remaining assert false
9 years ago
Dulma Rodriguez 9f7bfea98f Translate CXXStdInitializerListExpr
9 years ago
Sam Blackshear f9bffe1e87 move remove_tmps and add_abstraction steps into the pre-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
Josh Berdine 66d865ff6a Accept command line options via environment vars
9 years ago
Dulma Rodriguez a62ccc7a05 Fixing init list expr when there is no variable or compound literal expression
9 years ago
Dulma Rodriguez 7ffb635719 Restore translating C++ methods only in cxx experimental mode
9 years ago
Dulma Rodriguez 10a14a7324 Translate CXXTypeidExpr
9 years ago
Dino Distefano 45ae457150 Renamed files to reflect the new structure of the translation.
9 years ago
Dino Distefano ce0ae5c821 Refactoring in preparation of implementing C++ lambda
9 years ago
Dulma Rodriguez 3d4942a748 Restore not translating header in testing mode
9 years ago
Andrzej Kotulski eb76a441f9 Initial implementation of shared_ptr model
9 years ago
Dulma Rodriguez a4b87a0951 Translate destructor calls
9 years ago
Dulma Rodriguez 91a2eaa5f1 Translate CXXPseudoDestructorExpr
9 years ago
Dulma Rodriguez c20ace4a1a Add flag cxx experimental to the clang frontend
9 years ago
Dulma Rodriguez edbd7854b2 Translate SizeOfPackExpr
9 years ago
Dulma Rodriguez ff3455452a Add trace to frontend checks
9 years ago
Dulma Rodriguez c9e5d27e0d Translate GCCAsmStmt
9 years ago
Dulma Rodriguez 6c567f1104 Translate GenericSelectionExpr
9 years ago
Dulma Rodriguez ef3e516f6f Translate ImplicitValueInitExpr
9 years ago
Dulma Rodriguez d499d5fc8e Translate C++ exceptions
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 82f2b7b6de make tenv a typename -> struct_typ map
9 years ago
Sam Blackshear 878bf938eb kill Tenum
9 years ago
Dulma Rodriguez 379d185d74 Sort the fields in the tenv at the end of translation as some translations need the original order
9 years ago
Cristiano Calcagno f3ba6c3906 Revamped Timeout module to save and restore seconds and symops.
9 years ago
Dino Distefano be8f25c90b Improved/simplified framework for frontend checkers.
9 years ago
Dulma Rodriguez 4264e94565 Fix problems with translation of InitListExpr
9 years ago
Andrzej Kotulski decb263b1d Fix translation when accessing reference type fields
9 years ago
Dulma Rodriguez 06f40efab8 Add extra dereference to the variable of the method call to find null dereferences when a method called with null.
9 years ago
Andrzej Kotulski e4a0e9bbf7 Translate CXXDefaultInitExpr
9 years ago
Dulma Rodriguez 2fb2b3d9e1 Add the virtual flag of C++ methods in method calls
9 years ago
Andrzej Kotulski 4584f7f6fc [clang-format] Reformat all c/cpp/objc sources with clang-format
9 years ago
Andrzej Kotulski 50fc847c10 Compile C models again in C++
9 years ago
Andrzej Kotulski 9163b319a6 Fix whitespace issues from last diff
9 years ago
Andrzej Kotulski 941a1c02fb Increase size of biniou buffer, add logging in case of failure
9 years ago
Josh Berdine 77b22ded03 Warn on unused identifiers
9 years ago
Josh Berdine 02056079cf Warn of unused values
9 years ago
Dulma Rodriguez 7721743f46 Model ObjC method isKindOfClass
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
Josh Berdine 55cb61dbda Warn of unused open statements
9 years ago
Josh Berdine b155168083 Open Utils implicitly
9 years ago
Josh Berdine 2e4f4a0c5f Warn of label omitted in function application
9 years ago