595 Commits (5007eddbef03ad207aebd7481c78def059972f62)

Author SHA1 Message Date
Jules Villard 339ebe74ec [config] sensible default for --from-json-report
5 years ago
Mitya Lyubarskiy bd83813b3e [tech debt] Remove experimental nullability checkers
5 years ago
Dulma Churchill 634a42b619 [SelfInBlock] Take ns_noescape into account when reporting captured strong self.
5 years ago
Sungkeun Cho 100807ed2a [inferbo] Do not prune values with bottom
5 years ago
Dulma Churchill 58913e6a1c [Infer] Dedup reports of weakSelf in Noescape block
5 years ago
Dulma Churchill 00c52a52c2 [Infer] Dedup the reporting of Captured StrongSelf
5 years ago
Dulma Churchill f6341977fb [Infer] Dedup reports of strongSelf Not checked
5 years ago
Dulma Churchill a864823f38 [SelfInBlock] Fix a bug in exps_of_instr where some expressions were missed.
5 years ago
Dulma Churchill 7631d34f43 [SelfInBlock] Refactor the reporting to run only once over the domain
5 years ago
Ezgi Çiçek b5562f124a [cost] Disable reporting of allocation costs
5 years ago
Nikos Gorogiannis 9648632bd5 [clang] Revert "Translate SynchronizedStmt"
5 years ago
Dulma Churchill 63428e7b69 [SelfInBlock] Check for when weakSelf is used in a no escaping block
5 years ago
Dulma Churchill 9dfd1943e6 [selfInBlock] Remove false positive from mix self weakSelf
5 years ago
Dulma Churchill b1eb969635 [selfInBlock] Add a new check when strongSelf is captured in a (sub)block.
5 years ago
Dulma Churchill edc47d4a96 [selfInBlock] Handle conditionals as well as ifs
5 years ago
Dulma Churchill 430727519b [clang frontend] Translate BinaryOperators in ifs equally whether they are part of a ExprWithCleanups or not
5 years ago
Dulma Churchill 66c6a73cc6 [SelfInBlock] Report strongSelf Not Checked when strongSelf passed to a function as argument
5 years ago
Dulma Churchill 05bd4185e0 [SelfInBlock] Reporting strongSelf Not Checked only in field access
5 years ago
Nikos Gorogiannis 279f1c85ce [racerd] abbreviate procnames in report text
5 years ago
Sungkeun Cho 668969a3c2 [frontend] Do not die when selector is unknown in objc boxed expr
5 years ago
Dulma Churchill d00d8b3597 [AL] Allow to match typedefs and pointers.
5 years ago
Dulma Churchill f69d0992bc [self-in-block] Add new issue type MULTIPLE_WEAKSELF
5 years ago
Dulma Churchill c9c4adebc2 [AL] Improve the predicate for checking visibility attribute and example rule for checking macro for category implementation
5 years ago
Dulma Churchill 48da570aa0 [AL] Introduce a way of binding the two witnesses of an AND formula
5 years ago
Dulma Churchill 766fc2c072 [AL] Adding a new transition to siblings
5 years ago
Jules Villard 78a33acb77 [cfg] run pre-analysis lazily in ondemand
5 years ago
Dulma Churchill e411db6f82 [AL] Make the transition Parameters work with function calls
5 years ago
Dulma Churchill 510a5e2933 [self in block] Adding traces to the Strong_self_not_checked check
5 years ago
Dulma Churchill bf581e0b72 [self in block] Add a check for strongSelf not checked for null
5 years ago
Dulma Churchill f303c9fa87 [self in block] Fix error in choosing variables fmor the domain for reporting
5 years ago
Dulma Churchill 41fffa690c [self in block] Adding traces to the mixed self with weakself check
5 years ago
Dulma Churchill 43823266ec [self in block] Add a new checker to detect correct uses of when ObjC blocks capture self.
5 years ago
Jules Villard 6a738045fd [pulse] interprocedural histories and traces
5 years ago
Dulma Churchill 6cfbd38355 [AL] Take API_AVAILABLE into account in the Unavailable_Api check
5 years ago
Dulma Churchill 86140581d5 [AL] Adding predicate for AL rule to check that a variable of a specific type is being captured in a block
5 years ago
Dulma Churchill ab683af1f1 [objc frontend] Keep the counter for block names local to each procedure
5 years ago
Dulma Churchill 5c58689493 [pulse] Add pulse tests for objective-c (the c part of it)
5 years ago
Ezgi Çiçek 89782dfff9 [cost] Mask min/max symbols when printing big O
5 years ago
Ezgi Çiçek 9c5b704ddd [cost] Record bigO in error trace description
5 years ago
Martin Trojer 0fe30d13c5 add flag for (undefined) functions that should be modelled as mallocs
5 years ago
Jules Villard 937e971849 [objc] fix test so that it looks like it could compile
5 years ago
Ezgi Çiçek 0f43930f40 [cost] Refactor cost issue types and enable detecting allocation complexity increase on cold start
6 years ago
Josh Berdine cfc1c8be36 [copyright] Remove years
6 years ago
Radu Grigore d86e2f0d1c [topl] Generate monitor.
6 years ago
Dino Distefano 24728dc093 New ObjC checker for calls to @optional methods
6 years ago
Jules Villard 1395d5581d [clang] upgrade to 8.0.0
6 years ago
Jules Villard d4e4ed55bc [objc] make quandary test run
6 years ago
Ezgi Çiçek 75cfdf23ea [clang] Fix arc lint
6 years ago
Dino Distefano 2f3b376996 Added is_optional_objc_method predicate
6 years ago
Dino Distefano 10ca0c3269 Fix detection of return type for instancetype when using NS_ASSUME_NONNUL
6 years ago
Dino Distefano 4f982e9f63 Add predicate for Unavailable attr
6 years ago
Dino Distefano df438016f2 Adding SourceExp transition to AL
6 years ago
Ezgi Çiçek c114a4b9f2 [control,cost] Add test for dangling global enum
6 years ago
Jules Villard 686231ec6e [SIL] change `variable_initialization()` builtin to a new auxiliary instruction
6 years ago
David Lively 5d4a27ea54 RFC: stop using _ to separate ObjC/C++ class name from method in Typ.Procname.to_string
6 years ago
Dino Distefano 1172e6de50 Translate SynchronizedStmt
6 years ago
Ezgi Çiçek ba42e3fa46 [inferbo] Add models for CF
6 years ago
Ezgi Çiçek fb8faaf38a [objc] Fix performance Makefile to allow jackalope runs
6 years ago
Dino Distefano 67b42bf021 Added new issue types for Allocation and IO
6 years ago
Dino Distefano 52b72f4bbe Added more allocation primitives
6 years ago
Radu Grigore 86861498a5 Slightly more precise pi_partial_meet
6 years ago
Jules Villard a36db66940 [SIL][2/3] print all the CallFlags
6 years ago
Ezgi Çiçek 274570f499 [objc] Fix test results for linters
6 years ago
Dino Distefano aae5192b79 fix vardecl const
6 years ago
Jeremy Dubreil a3ecfdb8ad [infer][nullsafe] add a NULLSAFE_ prefix to the internal name of the Nullsafe errors
6 years ago
Jules Villard 4d46f8631e [objc] unbreak frontend test
6 years ago
Jeremy Dubreil 87a8ddc8fa [nullsafe] merge the option names
6 years ago
Jeremy Dubreil 61d75d9991 [infer][nullsafe] use the same human readable error message for Eradicate and the new Nullsafe backend
6 years ago
Jeremy Dubreil 69af58506d [infer][nullsafe] rename the option to run the Nullsafe checker
6 years ago
Jules Villard 9510549cf6 [ios] kill flaky linter test
6 years ago
Jules Villard 1c668c4d41 [SIL][preanalysis] add call flag for functions treating first formal as return
6 years ago
Jules Villard 55586b581b [preanalysis] do not delay killing variables taken by reference
6 years ago
Sungkeun Cho 5f925869b6 [infer] Translate more casts (unsigned int)
6 years ago
Sungkeun Cho 1486a5f105 [infer] Translate casting expressions of integer pointers
6 years ago
Jules Villard 646aa30797 [cfg] print dotty *after* pre-analysis
6 years ago
Jules Villard 9aa5582caa [clang] leave markers of variable initialization for pulse
6 years ago
Dino Distefano 5d533bba5c New Infer rule for dispatch_once_t
6 years ago
Mehdi Bouaziz 148664a7d4 Fix objc tests
6 years ago
Mehdi Bouaziz ce34dcb695 Format everything
6 years ago
Jules Villard 7615963bf4 [proc-cfg][2/5] fix duplicate symbols detection
6 years ago
Jules Villard a29e769b61 [kill -a][1/4] stop using `-a foo` in the infer repo
6 years ago
Martin Trojer 6d17ba7044 make tests work in xcode10
6 years ago
Martin Trojer f94e760c7e Adding model and tests for NSString_stringByAppendingString
6 years ago
Martin Trojer e2c08e4085 Decouple objc tests from xcode-select
6 years ago
Jules Villard d9e12850b9 [biabd] do not try to bypass `Ondemand` to get proc desc of models
6 years ago
Mehdi Bouaziz ad986dffde Get rid of Declare_locals
6 years ago
Martin Trojer 562f9d1c7c Add guard against triggering static self logic when we have nested class calls
6 years ago
Martin Trojer 4ba7218133 Added test to verify a NSArray nil insert case.
6 years ago
Martin Trojer 4b69087ad5 Adding OBJCPP models to avoid SKIPs of models from .mm
6 years ago
Dulma Churchill 5653839540 [clang] Add the types of captured variables to the procname of blocks
6 years ago
Martin Trojer 63b3f5b99b Deal with anonymous objc blocks where non closure args could wrongly be considered duplicates.
7 years ago
Martin Trojer d442937380 Add CFRunLoopObserverCreateWithHandler model and test
7 years ago
Martin Trojer 8bdbf3aedc Fix false positive BAD_POINTER for objcpp
7 years ago
Dulma Churchill 60cbc2c98e [biabduction] Enable dynamic dispatch for ObjC methods
7 years ago
Dulma Churchill 2cf0e7a1d2 [clang] Treat class method as a static self only as the first argument of an instance method call, not a class method
7 years ago
Martin Trojer 5156ff7f65 [infer][PR] handle improper version strings in @available clauses
7 years ago
Dulma Churchill 91e0a7d1a3 [IR] Take parameters into account in to_filename method
7 years ago
Dulma Churchill 79a8f8716c [clang] Adding parameters as part of the procname for C++/ObjC methods and ObjC blocks
7 years ago
Jeremy Dubreil a5129e57db [Nullable checker][Objective C] add test for nullable properties in NSArray
7 years ago
Jules Villard 30c470eb48 [tests] record error bucket in expected output
7 years ago
Jules Villard 8b882ac1df Change license to MIT
7 years ago
Daiva Naudziuniene d7d3e16d6f [uninit] Enable reporting on uninitialized pointers
7 years ago
Brandon Kieft eab7fd1242 Add predicates to check the receiver class type
7 years ago
Dulma Churchill accfc00d82 [objc frontend] Do not crash on internal forward classes
7 years ago
Jules Villard 766a16cd90 [clang] enforce that `instruction` always returns one SIL expression
7 years ago
Brandon Kieft cb66e4212b Add predicates for instance and class methods
7 years ago
Dulma Churchill afe511b53d [biabduction] Support finding skip reasons from attributes for clang too
7 years ago
Jules Villard dfe2ad5229 [camel] call `Format.pp_print_*` directly where appropriate
7 years ago
Dulma Churchill c24ff02bb4 [biabduction] Add to the skip reason when the method comes from a protocol
7 years ago
Brandon Kieft 275f4c3a8c Add predicates to check for protocols
7 years ago
Brandon Kieft 439839a9fa Add is_in_(interface/implementation) predicates
7 years ago
Brandon Kieft 7d4bd403df Add is_objc_method_exposed predicate
7 years ago
Brandon Kieft 01ee635902 Add is_objc_method_overriding predicate
7 years ago
Brandon Kieft d7cf002461 Add new ObjC predicates, mostly related to categories
7 years ago
Jules Villard 902de9d6e3 [sil] make return value and type mandatory
7 years ago
Dulma Churchill 077d9a534b [objc frontend] Do not assume that the fast enumeration in ObjC always includes a declaration of the loop variable
7 years ago
Dulma Churchill 038c0b92d4 [objc frontend] Raise SelfClassException only inside ObjCMethodCallExpr nodes
7 years ago
Dulma Churchill 69392d4192 [biabduction] Log reasons for skipping also in non Java context
7 years ago
Jules Villard 73a47d594c [debug] print procedures in alphabetical order in cfgs
7 years ago
Dulma Churchill 28200b87d7 [objc blocks] Specialize store instructions with current closure in methods specialized with blocks as arguments
7 years ago
Ezgi Çiçek 523c2f539b change clang translation to track if_kind (i.e. the type of prune node)
7 years ago
Dulma Churchill aa578ea586 [retain cycles] Treat missing fields also angelically when it still happens in rare cases
7 years ago
Dulma Churchill 74e16bdb58 [retain cycles] Define custom compare function that is more suited to dedup cycles
7 years ago
Dulma Churchill 436e5340f3 [retain cycles] Move the retain cycle check to sym_exec_wrapper to get the path of the last instruction executed
7 years ago
Dulma Churchill 927e2049c3 [backend] Add getter/setter execution to the trace
7 years ago
Dulma Churchill 862bbdb5fc [retain cycles] Take weak pointers into account to avoid false positives
7 years ago
Dulma Churchill d04a7aed52 [clang] Removed the mangling part of Clang global variables in the error messages
7 years ago
Sam Blackshear 6d46b0c7be [cleanup] stop printing `&`'s on `Var.t`'s
7 years ago
Dulma Churchill 0bc4df4b42 [retain cycles] Report cycles after assignment and method call
7 years ago
Dulma Churchill 2edc1d8581 [retain cycles] Improve the message of cycles with blocks by adding more info about captured variables
7 years ago
Jeremy Dubreil d74f189dfe [infer] add the report kind to the list of expected output
7 years ago
Dulma Churchill be53bc80e2 [lieveness] Fix false positive to do with a _Generic expression not being translated properly
7 years ago
Dulma Churchill ae8067ea1a [clang] Set up the objc accessor flags correctly in case property is defined in protocol
7 years ago
Dulma Churchill 9f343853ec [clang] Find fields from the properties corresponding to the property implementations.
7 years ago
Jérémie Marguerie 8cfc7f2cad Add function to retrieve the lifetime of an ivar pointer and check if it is strong
7 years ago
Dulma Churchill 702f8098e7 [retain cycles] Find all the cycles available instead of only one per root analysed
7 years ago
Dulma Churchill aae319376d [retain cycles] Fix renaming of closures, finds more retain cycles
7 years ago
Jeremy Dubreil 89ec1effde [infer][nullable checker] lookup the attributes in the CFG
7 years ago
Dulma Churchill 4218142a84 [retain cycles] Implement dotty files for retain cycles new
7 years ago
Varun Arora ad10435b58 [IR] combine is_objc_instance_method and is_cpp_instance_method fields in ProcAttributes into method_kind
7 years ago
Dulma Churchill 91fbe68cc9 [retain cycles] Do not report when the captured variable is weak
7 years ago
Jeremy Dubreil 2228f7448d [infer][nullable checker] add tests for the early return
7 years ago
Dulma Churchill 8a9fcdc43f [retain cycles] Find cycles about blocks
7 years ago
Dulma Churchill f5e89797a8 [backend] Fix consistency of closures after bi-abduction and other executions.
7 years ago
Jules Villard 6b5390fe79 [cfg] rename iCFG to cfg in dotty files
7 years ago
Jules Villard 337fb9bcdd [al] import files relatively to the current al file
7 years ago
Jules Villard 6d908adf14 [al] use "quotes" for user imports
7 years ago
Jules Villard 3d7878ef25 [make] make sure we always read from the right infer-out/
7 years ago
Dulma Churchill 66b1956e9a [debug] Adding the captured variable to the printing of the closures
7 years ago
Jeremy Dubreil b089486b5a [infer][nullable checker] take subtyping into account when detecting pointer assignment
7 years ago
Jeremy Dubreil 73b4409e6f [infer][nullable checker] no longer propagate the nullability when the lhs is not a pointer type
7 years ago
Jeremy Dubreil f50c7b469e [infer][nullable checkers] move the tests for the nullable checker in a dedicated subdirectory
7 years ago
Jeremy Dubreil 71cf1760c5 [infer][nullable checker] find the nullable violation involving annotated protocol methods
7 years ago
Jeremy Dubreil c62dd2a0c2 [infer][nullable checker] add models for mutations of mutable dictionaries and mutable arrays
7 years ago
Jeremy Dubreil 83118865aa [infer] add arrayByAddingObject: to the list of methods asserting the parameters
7 years ago
Sam Blackshear 0ebdd369b0 [liveness] don't warn on dead stores of type CKComponentScope
7 years ago
Dulma Churchill ed740600de [cleanup] Remove hidden field and related code that is not used anymore.
7 years ago
Jeremy Dubreil 4aaa39fdd1 [infer][nullable checker] propagate object nullablilty when calling an Objective C instance method on a nullable receiver
7 years ago
Jeremy Dubreil d4c81a7798 [infer][nullable checker] model NSDictionary initialization as crashing on nil keys or nil values
7 years ago
Dulma Churchill 1d0b6050a6 [retain cycle] Move the code about retain cycle detection to a dedicated module
7 years ago
Dulma Churchill d25754597d [memory leaks] Adding model for CVPixelBufferRelease
7 years ago
Dulma Churchill 306a0a9182 [liveness] Do not report on variables with block attribute
7 years ago
Dulma Churchill 71fde88950 [IR] Adding support for variable attributes, adding __block for ObjC variables
7 years ago
Dulma Churchill 68beca1523 [objc] Refactor modeling of CoreFoundation and CoreGraphics libraries
7 years ago
Dulma Churchill c0f250c45e [liveness] Change the model of assert functions to include the handle failure function to avoid dead store fps
7 years ago
Jeremy Dubreil a991b98d02 [infer][nullable checker] also report a null dereference error when adding nil key or value to NSDictionary
7 years ago
Dulma Churchill c90bcf1320 [objc] Model dispatch functions
7 years ago
Dino Distefano ba422a8ad8 Remove FPs for struct in ObjC
7 years ago
Dulma Churchill 45df254a99 [infer][PR] [C/C++] Encode filename into the Procname of global initializers
7 years ago
Jeremy Dubreil 354b46f8ca [infer][nullable checker] no report for objects created by URLWithString:
7 years ago
Jeremy Dubreil a4428a4cae [infer][nullable checker] report an error when a nullable value is stored into an NSArray without being checked for null
7 years ago
Jeremy Dubreil 956d6d0a1d [infer][nullable checker] better error messages for nullable violations involving Clang materialized variables
7 years ago
Dulma Churchill a1010fb9fc [linters] Ading predicate is_in_objc_class_named and make a verbose rule more targeted
7 years ago
Vivek Dhiman d8be5e0874 Added 'is_method_called_by_superclass'. A new predicate that checks if the caller name is super class in a 'method call'.
7 years ago
Dino Distefano aa54b1b035 Extending uninit analysis to struct
7 years ago
Dulma Churchill 18782be7c9 [linters] Adding a new predicate for in an ObjC class that is subclass of some class
7 years ago
Dino Distefano 979c476fa3 Do not report when defining an array
7 years ago
Dulma Churchill 5902f6363b [objc] Add a new call flag for calls with objc blocks as parameters
7 years ago
Dominic Cooney c542b65a42 Add a lint rule warning about ObjC custom setters for weak properties
7 years ago
Jeremy Dubreil ebea2a6ba1 [infer][clang] the nullable checker should not warn on pointer re-assignment
7 years ago
Jeremy Dubreil 8274453277 [infer][clang] the nullable checker should not warn on Objective C method call when the receiver is nullable
7 years ago
Dino Distefano c98570f899 do not report on captured vars in objc blocks
7 years ago
Mehdi Bouaziz 6047264e4a [bug hash] Attempt for a better hash
7 years ago
Dulma Churchill 3a3e1893d6 [objc] Fix bad footprint caused by incorrect translation of blocks as arguments
7 years ago
Dulma Churchill 3799dfa4bb [dead store objc] Do not report dead store in a captured variable of an objc block
7 years ago
Dulma Churchill b95c4e34d6 [dead store objc] Whitelisting macro variables in dead stored checker for Objective-C
7 years ago
Dulma Churchill e7907032bf [clang] Remove allocating blocks
7 years ago
Jeremy Dubreil 55c585e1e0 [infer][biabduction] remove the bi-abduction based check for uninitialized values
7 years ago
Dulma Churchill 08c4c33e7d [clang] Remove the translation of enumerateWithBlocks that causes FPs dead store.
7 years ago
Dulma Churchill 2f8b749045 [objc] Better names for the block translation and using temp variables
7 years ago
Dulma Churchill 01219a0298 [cleanup] Remove the retain count implementation from ObjC that is unused.
7 years ago
Jules Villard b95f29c8d1 various minor improvements
7 years ago
Jeremy Dubreil 923a15fa60 [infer][clang] initial version of a nullable checker for Clang languages
7 years ago
Dulma Churchill 3304160790 [tests] Remove frontend test that depends on header macro.
7 years ago
Jeremy Dubreil f81aafc9cf Fix ObjC frontend tests
7 years ago
Dino Distefano 86bfe674ff Fix ObjC frontend tests
7 years ago
Dulma Churchill 21c7b7dda3 [linters] Do not lint implicit declarations
7 years ago
Dulma Churchill 4769c481ad [linters] Add a linter for checking const pointers to Objective-C classes
7 years ago
Jules Villard 94e7a7b141 [siof] one access per sink, better report deduplication
7 years ago
Dulma Churchill 67b08f666f [objc] Translate ObjCAvailabilityExpr
7 years ago