526 Commits (e4426acb8aae43941bd5393a90601196083f5ae5)

Author SHA1 Message Date
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.
6 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
Jeremy Dubreil 37bdf46967 [infer][objc] example of HIL translation using Objective C closure
7 years ago
Jeremy Dubreil 3c09ae953d [infer][objc] Run the biabduction test using the checkers analyzer
7 years ago
Dulma Churchill 652af47da7 [linters] Add transition to parameters by position in the parameters list
7 years ago
Jeremy Dubreil 14d01620d2 [infer][objc] example of nullable annotation suggestion on Objective C
7 years ago
Dulma Churchill 234d3627b6 [clang] Support the new @available expression in ObjC in the unavailable API check
7 years ago
Jules Villard 72b1ac4b5a Turn off --keep-going by default
7 years ago
Dino Distefano f3b158a158 Fix use of SEL in AL
7 years ago
Jeremy Dubreil 919b9268d4 [infer][clang] simplify the translation of the prune nodes
7 years ago
Dulma Churchill d8765d1d44 [linters] Include only base name of ObjC methods in the linters bug hash
7 years ago
Dulma Churchill 5f176f40e3 [linters] Add linters_doc_url flag for custom doc_urls for linters
7 years ago
Dulma Churchill 7e3298711c [AL] Compute a witness child node when computing formulas to be used for more precise bug hashing
7 years ago
Dulma Churchill d5be23f1b6 [backend] Do not add return annotations to parameters of functions that are skipped
7 years ago
Jeremy Dubreil a03f765d8f [infer][biabduction] no longer drop the atoms that are referring to footprint variables
7 years ago
Daiva Naudziuniene 19d1b25919 Adding changes to objc issues to fix tests.
7 years ago
Roy Li 76bc7d686c Add predicate for enum constants of a particular enum
7 years ago
Dulma Churchill 30d2822846 [linters] Restrict the remove observer check to when target ios sdk version is greater or equal than 9.0
7 years ago
Dulma Churchill 673f2b6917 [linters] Add option to specify iphone sdk version by path
7 years ago
Dulma Churchill a6f8850617 [linters] Provide predicate for checking the current method in the context
7 years ago
Dulma Churchill 3da5908728 [linters] Remove unavailable api class false positives and turn it on
7 years ago
Meng Zhang cdc54563d4 [Infer] Write a has_visibility_attribute predicate for AL
7 years ago
Andrzej Kotulski 88b74d524d [C++] Rewrite initListExpr_trans
7 years ago
Jeremy Dubreil 2a8e192280 [infer][biabduction] disable the reporting of return value ignored
7 years ago
Dulma Churchill 00c1b354e1 [linters] Improve to_string method for boxed values
7 years ago
Dulma Churchill d0858c7770 [linters] Improve the to_string method for string constants
7 years ago
Jules Villard fe01f47e41 [clang] correct sizeof info
7 years ago
Jeremy Dubreil bf11a27158 [infer] merge --failures-allowed and --keep-going
7 years ago
Jeremy Dubreil ff30afac8b [infer][al] fix the linters test output
7 years ago
Dino Distefano a386ef5e83 Adding predicate for identify a selector with a particular name
7 years ago
Jeremy Dubreil f49d292c3b [infer][backend] remove the bi-abduction based code for taint analysis
7 years ago
Jia Chen a8897c2412 Properly model the copy semantics of NSString.stringWithUTF8String and NSString.stringWithString.
7 years ago
Jia Chen acb0650e96 Preserve the name of abduced by-ref logical variables in re-execution phase
7 years ago
Dulma Churchill 416478d453 [linters] Predicate for checking enum constants
7 years ago
Andrzej Kotulski e366b0d9b5 [clang] Fix expression statement with conditional inside
7 years ago
Jia Chen 0b641edaac Do not assign the hidden field when processing init list initialization for objective c
7 years ago
Dulma Churchill 7c384669eb [linters] Add a new linter UNAVAILABLE_CLASS_IN_SUPPORTED_IOS_SDK for checking unavailable classes in supported ios sdk
7 years ago
Dulma Churchill 144e062684 [linters] Take instancesRespondToSelector into account to avoid FPs
8 years ago
Jia Chen 7c41d3ee48 [infer][backend] Invalidate by-ref parameters for logical variables as well as program variables when calling undefined functions
8 years ago
Jia Chen 89de9504bb Fixed a (supposed) typo in objc test
8 years ago
Dulma Churchill 431b5c6ede [linters] Disable filtering by path in debug or no-filtering mode
8 years ago
Dino Distefano 4a5d0e0b55 Adding ability to express properties on the hierachy of protocols
8 years ago
Dulma Churchill 7d680b3b0c [linters] Add an optional doc_url field to linters to specify the url to some documentation online.
8 years ago
Dulma Churchill 72802024b3 [linters] Fix unavailable api check to take the avaiability attribute into account when it's not the first one in the list.
8 years ago
Jia Chen a6757be036 Force emitting prune node for C++ comparison expressions
8 years ago
Dulma Churchill 47f1c6ffac [linters] Global paths
8 years ago
Dulma Churchill 99a0f894b6 [linters] Add option to blacklist the unavailable api check for some files
8 years ago
Dulma Churchill dfca0cdcf7 [linters] Introduce whitelist and blacklist path, also multiple paths
8 years ago
Don Stewart 35ac57c378 Typo in message.
8 years ago
Dulma Churchill 57dd45dd82 [linters] Improve the error message in implicit cast error
8 years ago
Dino Distefano 55da0055c9 Predicate for `using namespace`
8 years ago
Dulma Churchill 03bdf0fe2c [linters] Cast from pointer to integer
8 years ago
Martino Luca 2e8e5733f6 [AL] Load AL files from a directory
8 years ago
Dino Distefano 0809279b3b Extending type parser to deal with typedefs
8 years ago
Dulma Churchill 46a539df82 [linters] Specify path in linters
8 years ago
Dulma Churchill f5d3870485 [linters] Adding a new error type like
8 years ago
Dino Distefano 4e7c7f30c1 Extended transitions to universal quantified operators
8 years ago
Dino Distefano e77ca182a5 Added a lint for namespace
8 years ago
Dino Distefano bdd2395be6 Adding ability to get type of paramters.
8 years ago
Dino Distefano cfd0a9b038 Extending type parser to parse ObjC classes.
8 years ago
Jules Villard 93ec47a5f4 [IR] add stride to array type
8 years ago
Jules Villard 801c605c26 [CLI] switch to infer-<command> (symlinks) executables
8 years ago
Dino Distefano 99552edd7b Extending type parser to parse pointer types.
8 years ago
Dulma Churchill c9670d215d [linters] Add new predicate has_type and check for implicit cast
8 years ago
Dino Distefano c6a29e5e8a Adding more builtin type to parser
8 years ago
Dulma Churchill 1a141eddca [ObjC capture] Model functions related to dispatch sources
8 years ago
Dulma Churchill 6097c05d88 [clang] Add a preanalysis to compute nullability annotations
8 years ago
Dino Distefano 5bb41cc18c Removing predicates _strict
8 years ago
Dino Distefano 3c6f53c896 Adding predicate to get return type of a method and start a new parser for types
8 years ago
Andrzej Kotulski 462220ce3e [typ] Print type qualifiers in Typ.pp_full
8 years ago
Jules Villard 1b0ee6fbc3 [clang] add sizeof static value to translation
8 years ago