729 Commits (891753694439b656a3bf2d3d224411fe01797737)

Author SHA1 Message Date
Andrzej Kotulski acdc081100 [C++] Make C++ whitelist matching more strict
8 years ago
Dulma Churchill 9f153dbafa [linters] Add linter for checking api compatibility
8 years ago
Martino Luca b5124c1506 [CTL] Remove linters' names from Localise module
8 years ago
Martino Luca d044809b32 [CTL] Filter linters through a visibility flag
8 years ago
Martino Luca ebb6931358 [CTL] Let issue name be a string for linters
8 years ago
Dino Distefano 4682393cd6 Use place-holders string in messages
8 years ago
Jules Villard f2a5810141 [clang] remove InferClang command from generated frontend debug scripts
8 years ago
Andrzej Kotulski c9d254c084 Initial version of reactive capture
8 years ago
Dulma Churchill 5b39b3e323 [ObjC] Model methods from NSArray
8 years ago
Andrzej Kotulski 01b57b4f38 [clang] Always compile with -O0 flag
8 years ago
Dino Distefano aa231e5129 [CTL] Expanding formula id with their definition
8 years ago
Josh Berdine fc976bc3ef Core.Std.( ^/ )
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 e00c4cd2dd Core.Std.String.Set and remove unused StringPPSet
8 years ago
Josh Berdine f86fc2ce2d Core.Std.Stack
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 53c170ca0a More uniform and explicit treatment of program and arguments
8 years ago
Josh Berdine e415b73786 Core.Std.String
8 years ago
Andrzej Kotulski 78dfe85468 [clang] Make sl_file store source file instead of string
8 years ago
Andrzej Kotulski 56f8757337 [SourceFile] Move DB.SourceFile into separate file
8 years ago
Jules Villard e5863f5420 [siof] handle constexpr constructors
8 years ago
Andrzej Kotulski 69b39dacb0 [DB] Create module for SourceFile
8 years ago
Andrzej Kotulski e4a93d5e13 [c++] s/cxx_experimental/cxx
8 years ago
Jeremy Dubreil e029612421 [infer][backend] the pp_base parameter was not used anywhere
8 years ago
Jules Villard 9cc9cc101c [IR] add Static_local_var pvar kind and use it in clang
8 years ago
Andrzej Kotulski bd843b277e [DB] Remove source_file_from_string, source_file_to_string no longer returns real path
8 years ago
Andrzej Kotulski b8908282f8 [DB] Remove many callsites of DB.source_file_to_string
8 years ago
Josh Berdine 198bc00df7 Remove Utils compare and equal functions
8 years ago
Josh Berdine 0c8a583cb0 ppx_compare CFrontend_utils
8 years ago
Josh Berdine e397afa085 ppx_compare CContext
8 years ago
Josh Berdine a1e223d36d ppx_compare Ident
8 years ago
Josh Berdine 1ca67fbfa6 ppx_compare DB
8 years ago
Josh Berdine 1bc365f36e ppx_compare Clang_ast_types
8 years ago
Andrzej Kotulski 9d6a6510e8 [clang] Translate everything coming from <X>.h files when translating <X>.cpp source
8 years ago
Andrzej Kotulski 6192cb98b4 [DB] Use realpath when calling source_file_from_abs_path
8 years ago
Dino Distefano 116e90d38c Added parsing for InNode and ETX and added formulas of missing checkers
8 years ago
Martino Luca 950eca3cb3 [CTL] Add support for `in_node` predicate to check correctness of its inputs
8 years ago
Ryan Rhee 28b741e62c [componentkit] Compute Cyclomatic Complexity
8 years ago
Andrzej Kotulski 7a0a89e567 [DB.source_file] Explicitly specify what path is relative to, keep cpp model paths relative
8 years ago
Ryan Rhee ccb51912e1 [componentkit] Compute line count for main file
8 years ago
Martino Luca 7c9612b06b [CTL] Add support for is_unop_with_kind/is_binop_with_kind predicates to check correctness of their inputs
8 years ago
Dulma Churchill e8085d5996 [linters] Fix perf problem in the linters, added tests
8 years ago
Ryan Rhee a2c8c94a3b [componentkit] Move is_in_main_file check to CTL
8 years ago
Jules Villard 17179d4275 [siof] take POD into account
8 years ago
Jules Villard 68332a16a0 [clang] always print clang errors on stderr
8 years ago
Dino Distefano 0ed033a32e Removing the dispatcher for linters.
8 years ago
Andrzej Kotulski 4512fcd8ef [tests] Create integration tests for clang translation logic
8 years ago
Andrzej Kotulski 1a4d165d44 [utils] Cache results of realpath
8 years ago
Dino Distefano 6ffaded4be Modified the hardcoded CTL formulas in preparation to dispatcher removal
8 years ago
Jules Villard 5bd8b7fa95 [make] compatibility with Debian testing
8 years ago
Jules Villard caf9537305 [refactoring] add make_trace_element to Errlog
8 years ago
Cristiano Calcagno c5159bae1c [IR] Move Procdesc module to a separate file.
8 years ago
Josh Berdine b2680d72d0 [config] Make Config.analyzer non-optional, with None = Some Infer
8 years ago
Andrzej Kotulski 459ec32081 kill Location.nLOC
8 years ago
Jules Villard cbe15b3b5a [build] move not-clang-only modules to a new (old) integration/ directory
8 years ago
Andrzej Kotulski 1cbc812502 System calls to filesystem are expensive, call them with care
8 years ago
Andrzej Kotulski 4d43f0e5d8 [clang] Remove CLocation.curr_file
8 years ago
Dulma Churchill bf14034289 [clang] Do compilation database capture in OCaml directly
8 years ago
Jules Villard 8c481d2d9f [clang] pass -fno-cxx-modules to clang -### instead of the clang -cc1 commands
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
Andrzej Kotulski 76d336dba7 [clang capture] Exit clang capture when clang fails
8 years ago
Andrzej Kotulski 28827b461a [clang] Get translation unit language from AST dump
8 years ago
Jules Villard c93bbbbbc5 [clang] run assembly commands with the fcp clang
8 years ago
Josh Berdine e747d21e0c [refactor] Rename CTypes and CTypes_decl modules
8 years ago
Andrzej Kotulski aa3ebf117c [clang] Kill CFrontend_config.json field
8 years ago
Dulma Churchill 6b793a34b5 [clang] Fix crash in analysis of ios apps with json
8 years ago
Cristiano Calcagno 73c5dfdfa4 [IR] Remove use of Cfg.Node.get_proc_desc
8 years ago
Andrzej Kotulski e9ccdb7d50 [clang capture] Make sure to always run clang from facebook-clang-plugins
8 years ago
Andrzej Kotulski 46592ffdd9 [backend] Split construction of builtin pnames and builtin registration
8 years ago
Josh Berdine eee940b2a1 [config] Convert FCP env vars to Config options
8 years ago
Andrzej Kotulski ed29bfef52 [logging] Provide binary type to logging module
8 years ago
Josh Berdine 698ebe8049 [clang] Remove INFER_XX environment variable
8 years ago
Dino Distefano 622366269d Simplified semantics of ET and EH
8 years ago
Ryan Rhee aac14999b0 [componentkit] Whitelist Native Templates
8 years ago
Ryan Rhee a45d59e478 [componentkit] Don't count unavailable initializers
8 years ago
Jules Villard f21db5dab5 [clang] compare file paths in a more principled way
8 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg
8 years ago
Ryan Rhee 5752b14d9c [componentkit] Skip implicit variables during MLV check
8 years ago
Ryan Rhee 5580be8dcc [componentkit] Initializer With Side-Effect Analyzer
8 years ago
Dulma Churchill 4f6aa5e408 [clang] Parse compilation database coming from xcpretty
8 years ago
Andrzej Kotulski 8ea40b29b0 [clang] Allow to call InferClang as a function
8 years ago
Jules Villard 84af7c56f8 [SIOF] detect which variables need initialization
8 years ago
Dulma Churchill 4af26064c1 [clang] Add flag -fno-cxx-modules to analysis
8 years ago
Cristiano Calcagno ecda199e9d [IR] Clean up unused parts of Cfg
8 years ago
Sam Blackshear 355ab92130 [backend] move expression pretty-printing into exp module
8 years ago
Jules Villard a31658a9b8 [clang] treat constexpr as const too
8 years ago
Ryan Rhee 471beed515 [componentkit][clang] Move is_factory_method to Ast_utils
8 years ago
Ryan Rhee db94cae74b [componentkit] Use type hint instead of explicit record for is_ck_context
8 years ago
Dino Distefano 28b15c06af Fixing warning on parser.
8 years ago
Ryan Rhee c2a8dae26f [componentkit] Multiple factory methods
8 years ago
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