400 Commits (2da8940a806dd9cc8e7f893a541baa50e4720721)

Author SHA1 Message Date
jrm 082ca6a90a Initial support for lazy dynamic dispatch
9 years ago
Dino Distefano b7d6f2a3bd Fixed problem with null pointer dereference in c library models.
9 years ago
jrm 761902afad for the @PerformanceCritical checker, skip allocations reports on subtypes of java.lang.Throwable instead of only java.lang.Exceptions
9 years ago
Cristiano Calcagno e0d5847eb8 Deprecate incremental
9 years ago
Dino Distefano c868f51b2d Introducing checker for observer of notification centers
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
jrm 697778cc3b Add the annotation @IgnoreAllocations to stop tracking allocations whenever useless
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
jrm 1f5529c67e The @NoAllocation checker should not report on created exceptions
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
Sam Blackshear cd002e5c46 fixing angelic mode for struct values passed by reference
9 years ago
Andrzej Kotulski e4a0e9bbf7 Translate CXXDefaultInitExpr
9 years ago
Andrzej Kotulski 49bf38c56f Fix symbolic links in cpp tests after formatting diff (part 2)
9 years ago
Andrzej Kotulski 1fdead5958 Fix symbolic links in cpp tests after formatting diff (part 1)
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
jrm c6d8cdc8ee Add support for @NoAllocation in the performance critical checker
9 years ago
jrm 14d4f862eb @Performance critical checker: compute the expensive call stack lazily when reporting errors
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
jrm 4af130bf8d remove subtyping rule for the @PerformanceCritical annotation
9 years ago
Andrzej Kotulski 3320043217 Fix further problems with forward declarations in C/C++
9 years ago
Dulma Rodriguez bf90a64fb5 Fix the typing implication in the bi-abduction for non Java types
9 years ago
Andrzej Kotulski 8c832142b4 Don't add process type redeclaration unless it has definition
9 years ago
Dino Distefano c41cba92ea Fixed test for taint analysis
9 years ago
Sam Blackshear 5e9a21573b preventing Bad_footprint when passing struct value by reference
9 years ago
jrm 904151888c fix treatment of linked list in Java
9 years ago
Dulma Rodriguez ac7959f2df Adding subtyping to ObjC
9 years ago
Dino Distefano c65947439f Implementing translation of CXXForRangeStmt
9 years ago
Jeremy Dubreil 6389cb9bd0 revert on-demand for the checkers now that the hash for long filename is fixed
9 years ago
Sam Blackshear 0fbd333cab Checker that complains when Fragments don't nullify their Views
9 years ago
jrm 3ece750c15 disable on-demand for the checkers while we fix the filename too long issue
9 years ago
Andrzej Kotulski 49d7bdb6bd Translate CXXScalarValueInitExpr
9 years ago
Andrzej Kotulski 359ad9dd4b Translate constructor initializer
9 years ago
Andrzej Kotulski 7cabc86f77 Pass return parameter type in context
9 years ago
Andrzej Kotulski 8545a0310e Treat xvalues as they were lvalues
9 years ago
Andrzej Kotulski 36fb1f202c Deal with empty parameter names
9 years ago
Andrzej Kotulski da3a106541 Always translate CXXRecordDecl as Sil.Class
9 years ago
Andrzej Kotulski 75f4947cb1 Ignore type change in DerivedToBase cast
9 years ago
Dulma Rodriguez f4bbd44212 Translate dynamic cast for C++
9 years ago
Dulma Rodriguez 10fe998c12 Extending subtyping to C++
9 years ago
Andrzej Kotulski 9d7ab4b9c2 Translate conversion operators
9 years ago
Sam Blackshear 14e934205f implementing dynamic dispatch support for Java interfaces
9 years ago
Andrzej Kotulski bdab22a093 Support temporary objects (CXXTemporaryObjectExpr)
9 years ago
Andrzej Kotulski 44a6ec4f10 Fix return parameter handling
9 years ago
Andrzej Kotulski ec80d40bdd Populate return parameter when returning + turn on new feature for C/C++
9 years ago
Andrzej Kotulski a317ac38f2 Use init_exp in InitListExpr and CompoundLiteralExpr
9 years ago
Andrzej Kotulski 5eb7d9e994 Add init_pvar to trans_state and use it in c++ constructor
9 years ago
jrm ad2a9064c3 No longer overwrite the attributes in the summary if already existing
9 years ago
Jules Villard 59a3b9c22a add temp var from compoundLiteralExpr to the function locals
9 years ago
Jules Villard 7b9b6841d2 translate CompoundLiteralExpr
9 years ago
Dulma Rodriguez 7855d6ecfa Fix the order of the translated stmts inside compound stmt
9 years ago
Sam Blackshear f1c424e1d4 fixing accidental change to Child.java
9 years ago
Dino Distefano 377893637a Direct property access should not fire on dealloc methods
9 years ago
Dino Distefano d4d5c3bb2f Implemented new check CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK
9 years ago
Sam Blackshear 43daa760ee adding InferJava flags for classpath and class-source map, along with associated Python boilerplate
9 years ago
Andrzej Kotulski bd935c2347 Add destructor calls on delete expression
9 years ago
jrm 6d91199be7 Generalize the detection of assertion failures to any kind of custom errors defined programatically in the orginal source code
9 years ago
Andrzej Kotulski 70b003696f Translate bodies of destructors
9 years ago
Dino Distefano 4feb93e91c Fixed FP for blocks used in loops generated by join operator
9 years ago
Sam Blackshear 6b9e1fc9d7 Stop reporting false alarms due to __nullable on Obj-C property getters and setters
9 years ago
Dulma Rodriguez 96a5cf58e5 Nullify variables with objc flags if they appear in conditions
9 years ago
jrm 0def5c4111 No longer enforce the subtyping rule for the @PerformanceCritical annotation
9 years ago
Josh Berdine 63b57790f9 Fix indentation of multiline copyright comment
9 years ago
Josh Berdine b729c93dd5 Add model of java.lang.Class.getResource
9 years ago
Dino Distefano c8b80f2435 Extended framework for taint analysis
9 years ago
Cristiano Calcagno 1666d7f353 Model Map.put() alongside Map.containsKey().
9 years ago
Sam Blackshear 99f79587cd adding ContentValues as sink
9 years ago
Josh Berdine d66261a1f4 Do not reuse Undef function values
9 years ago
Dulma Rodriguez 1e5b8aeee7 Adding builtin setters and using them by skip
9 years ago
Andrzej Kotulski 173ee91844 Support template methods
9 years ago
Andrzej Kotulski 84549f691d Support decl_stmt in switch stmt
9 years ago
jrm 61e457b1f6 Run the @PerformanceCritical checker by default with the other checkers
9 years ago
Dulma Rodriguez c02b3ca034 Add correct ivar name to the getters and save the ivar to the tenv if not available
9 years ago
Andrzej Kotulski 6d7521809b Update fcp to get automatic location visitor
9 years ago
Andrzej Kotulski eeb7c33230 Update fcp
9 years ago
Andrzej Kotulski 92690551a6 Handle lvalues inside conditional operator right + fix init_expr_trans to fix materializeTempExpr not connecting nodes
9 years ago
Dulma Rodriguez 9c9504ba51 Using the link from method decl to property to determine whether the method is accessor
9 years ago
jrm 5a218a6d02 treat guava preconditions checks as assume instead of exeption throwing assertions
9 years ago
Dulma Rodriguez 4b82e208ff Update facebook clang plugin after adding more info about ObjC properties
9 years ago
Sam Blackshear 8e8772f1aa make tainting work properly for skip functions
9 years ago
Dino Distefano dd5b3dfd83 Making the checker not report on init methods
9 years ago
Andrzej Kotulski a1c1b10862 Use priority node for branches inside coditional operator
9 years ago
Andrzej Kotulski 96b659bb6e fix cpp frontend tests
9 years ago
Andrzej Kotulski 0bf7e46579 Translate C++ function templates
9 years ago
Sam Blackshear 4dc9dac9e9 getting started on a Nullable annotation checker for obj-c
9 years ago
Andrzej Kotulski 71482fb472 Refactor CompoundBinaryOperator to use same code as BinaryOperator
9 years ago
Dino Distefano 99c491e8c7 Introducing the DIRECT_ATOMIC_PROPERTY_ACCESS
9 years ago
Dulma Rodriguez 12d21c73dd Adding builtins for getters and calling them by skip
9 years ago
jrm a49b0965ef Model `android.view.View.findViewById` as an expensive method
9 years ago
Andrzej Kotulski 35bb8a9a26 Change order in which ids get generated for objcMessageExpr_trans
9 years ago
Andrzej Kotulski 3f9a08f99c Defer cfg node creation for returnStmt and init_expr_trans
9 years ago
Andrzej Kotulski 9353c7bbfd Use qualified names for global variables
9 years ago
Andrzej Kotulski a06ce9ca0e Don't report null dereference on 'this' in C++ methods
9 years ago
Andrzej Kotulski 1eecdacea6 Ignore type change in UncheckedDerivedToBase cast
9 years ago
jrm d712635feb Automatically infer the @PerformanceCritical annotations from the overriden methods
9 years ago
Sam Blackshear dcdebbd811 creating a framework for adding src/sink models based on method names/signatures alone
9 years ago
Andrzej Kotulski ddbf4d9c47 Support template classes
9 years ago
Dulma Rodriguez 0441919a42 Using clang's method resolution if possible
9 years ago
Sam Blackshear 29ea879930 eliminating precondition not met in taint analysis
9 years ago
Andrzej Kotulski 47f973660e Turn off compiler all warnings to avoid compilation failures
9 years ago
Andrzej Kotulski 81337ce2cb Support MaterializeTemporaryExpr
9 years ago
Andrzej Kotulski 04e4546a91 Major update of facebook-clang-plugins
9 years ago
Sam Blackshear 8eb668f668 deleting string models/tests
9 years ago
jrm 646c9dbb61 Report error message with call stacks for @PerformanceCritical checker
9 years ago
Dulma Rodriguez 369de5880e Add variable to locals in dispatch functions as usual
9 years ago
Sam Blackshear c7c8d58334 fixing taint analysis so it doesn't prevent postcondition inference
9 years ago
Andrzej Kotulski 16cb8e3f30 Translate CXXOperatorCallExpr
9 years ago
Sam Blackshear 8e9ed5eb6b adding model for verifying sockets before reading from them
9 years ago
Dino Distefano 761e4acc08 Adding models of CADisplayLink for catching retain cycles.
9 years ago
Andrzej Kotulski cb42fdcc31 Use fully qualified names for functions
9 years ago
Andrzej Kotulski 9748502a1a Handle C++ static methods
9 years ago
jrm 2e01d3402f adding some tests to outline the behaviour of the @Expensive checker with inheritance
9 years ago
Andrzej Kotulski 71e424d6ba Use qual_name to extract class name from method decl
9 years ago
Dulma Rodriguez 87a3d693e1 Adding static variables to blocks class to get retain cycles
9 years ago
jrm 930eaba2d5 model Inflater and Deflater as resources
9 years ago
Dino Distefano 316ad95659 Fixing Bad pointer comparison checker in fast iteration
9 years ago
Josh Berdine 53a32848d5 Model and test FileChannel.tryLock throws
9 years ago
Andrzej Kotulski 55f9fb9d5e Add base class fields to C++ classes
9 years ago
Josh Berdine bf408a1d03 Add models of FileChannel.tryLock methods.
9 years ago
Jules Villard 2367b1c9ff cleanup two c tests that were causing clang warnings
9 years ago
Andrzej Kotulski c4b237e9f6 Fix type of CXXThisExpr_trans
9 years ago
Andrzej Kotulski 3262640214 Move translation of init_expr to general function
9 years ago
Sam Blackshear db7dd5aebe fixing angelic in case where unknown function is called indirectly
9 years ago
Josh Berdine f2ba1b1c76 Add model for java.io.File.listFiles
9 years ago
Dulma Rodriguez de1a627335 Translate enums as ints and not add them to the tenv
9 years ago
jrm 0cd533f892 Enforcing subtyping rules for @Expensive and @PerformanceCritical
9 years ago
jrm 6b6b4d1949 Detecting if methods annotated with @PerformanceCritical transitively call methods annotated with @Expensive
9 years ago
Andrzej Kotulski db35afef1e Handle variable declaration inside condition expression correctly
9 years ago
Dulma Rodriguez 0db83eb5dd Adding the no progress bar option to the tests
9 years ago
jrm f5ddb983fe Initial version of the @Expensive checker
9 years ago
Dino Distefano 00e97afdf8 First version of taint analysis.
9 years ago
Andrzej Kotulski a9bdf2b291 Translate c++ constructor calls in var initialization
9 years ago
Dino Distefano ae49cacee8 Framework to emit warning from frontend
9 years ago
Andrzej Kotulski 088293b6c2 Add pointer type to argument of method call
9 years ago
jrm 859b816e95 No longer report context leak on private methods
9 years ago
jrm d8e74e456c report leaks on all context, not only activities
9 years ago
jrm 6f3873aa99 Adding inferconfig support to skip the translation of generated source code
9 years ago
Andrzej Kotulski a7a332ea51 add different handling for C++ increment/decrement operators
9 years ago
Dulma Rodriguez 982616148e Adding endtoend test that shows that dispatch once works well
9 years ago
Dulma Rodriguez 1371ca96e9 Added endtoend test that shows that we can release objects inside a block
9 years ago
Dulma Rodriguez f1716988ec Adding endtoend test that shows the correct use of self inside a block
9 years ago
Dulma Rodriguez 042bcaf3e6 Adding endtoend test for blocks that shows proper handling of global variables and captured variables.
9 years ago
Andrzej Kotulski 453924f303 Add basic translation of constructors
9 years ago
Andrzej Kotulski 87dfcdeb99 Replace '/' in anonymous type names
9 years ago
Andrzej Kotulski a5e1743382 Fix failing C++ frontend test
9 years ago
Andrzej Kotulski 5a07f767bb Handle assignment operations correctly
9 years ago
Andrzej Kotulski b86af1e5d1 Fix type information about reference types in CFGs
9 years ago
Jules Villard 2af1687cd4 add builtin for dictionary literals
9 years ago
Andrzej Kotulski bfe10e3829 Fix handling of C++ references
9 years ago
Dulma Rodriguez ba00f08f00 Remove variable resolution and use pointers to declarations instead
9 years ago
Dulma Rodriguez 6278b779df Adding memory leak bucket for cpp
9 years ago
jrm 3095b68127 Add a test case with @SuppressWarnings on a Buck project
9 years ago
Andrzej Kotulski f63582893f Add basic e2e tests for C++
9 years ago
Andrzej Kotulski 7ac5a5c308 Refactor C frontend tests
9 years ago
Andrzej Kotulski d4c3d39fb9 Refactor C++ frontend tests
9 years ago
Andrzej Kotulski 4d10c8d9f4 Add support for C++ this expression
9 years ago
Andrzej Kotulski b78d6f623a Split methods.cpp test into multiple ones
9 years ago
Andrzej Kotulski a045886eba Get better language information about functions/methods
9 years ago
Sam Blackshear 30a7a2fd8e Fixing Symexec_memory error that occurs when dereferencing the return value of an undefined function
9 years ago
Andrzej Kotulski e8949d16e4 [Frontend][C++] Use Sil.class for C++ class/struct/union types
9 years ago
Dulma Rodriguez 79df8d2b3c [clang] Fix tests so that they pass with xcode 7
9 years ago
Andrzej Kotulski 6606df245c [CFrontend] Upgrade frontend tests to xcode 7
9 years ago
Cristiano Calcagno f1c5cb337e [Eradicate] Add support for modeling boolean functions that check if the argument is null.
9 years ago
Dulma Rodriguez a4cbf94de5 [clang] Replacing type void by type void star . Fixing bug in commit 41e0128cf71a399ddc183a7d12fd43dfdc493985
9 years ago
Andrzej Kotulski bc050c4188 [C++] Add inheritance information for C++ classes
9 years ago
Dulma Rodriguez 65f4280d6e [clang] [3 of 3] Changes to the translation of record, classes and enums
9 years ago
Sam Blackshear 2e2673df66 [Infer][ios] Reporting error when NSNumber * is coerced to boolean in a comparison
9 years ago
Cristiano Calcagno 629b09307f [Models] Add model for System.getProperty for Infer and Eradicate
9 years ago
Cristiano Calcagno 401109b4eb [Eradicate] Allow assigning null to fields marked @InjectView to support ButterKnife.
9 years ago
Cristiano Calcagno 1e6247c872 [frontend] generate fresh ids separately for different procedures in the cfg
9 years ago
Sam Blackshear 7911e7e54d [Infer][filtering] Implementing SuppressWarnings filtering and adding tests
9 years ago
Cristiano Calcagno 78f65b6dd7 [eradicate] handle methods overridden in other files
9 years ago
Sam Blackshear cc2fda8165 [Infer][incremental] Preventing --changed-only incremental mode from corrupting the future
9 years ago
Sam Blackshear bdbc524f53 [Infer][tests] Adding tests for --changed-only incremental mode
9 years ago
Sam Blackshear 7987d1a2a6 [Infer][tests] Adding tests for incremental functionality
9 years ago
Rohan Jacob-Rao 6f51b8c54b Handle source location metadata generated by clang wrapper.
9 years ago
Rohan Jacob-Rao 37a4709a0f Translate call instruction and construct call graph.
9 years ago
jrm 0a2571c10a [infer][java] Infer now reports errors with relative paths on Ant and Gradle projects
9 years ago
martinoluca 721cc1957c Specify to clang to use x86_64 to build models and tests for ObjectiveCxx
9 years ago
Sam Blackshear c92bfc1093 [Infer][models] Modeling Handler.postDelayed and similar to detect more Activity leaks
9 years ago
jrm 204c585abf [infer][java] revive the small example of Ant project
9 years ago
Sam Blackshear 7821266c8f [Infer][Nullables] Eliminating some false positives from Nullable checker
9 years ago
jrm fcc0c72ecb [infer][eradicate] add support for butterknife @Bind annotation
9 years ago
jrm c0446276a1 [eradicate] add support for the Android support v4 @NonNull annotation
9 years ago
jrm 9e5cee2444 [infer][eradicate] Fix eradicate tests for field not initialized
9 years ago
Andrzej Kotulski 394a3b4c29 [CFrontend] Sizeof should have ulong type
9 years ago
Andrzej Kotulski 198c3c82e1 [C++ frontend] Handle calling c++ methods
9 years ago
Andrzej Kotulski 7a839984da [C++] Add cpp methods signatures and implementations
9 years ago
Rohan Jacob-Rao 06f6e349c7 Replace null_deref.ll with annotated version generated using -g flag.
9 years ago
Rohan Jacob-Rao 3c0e698671 Moved LLVM examples and added licence headers.
9 years ago
Andrzej Kotulski 1d6873f471 [C++] Handle simple new cases
9 years ago
jrm 2dc796542a [infer][java] the detection of a resource leak should not prevent the symbolic execution to proceed
9 years ago
Sam Blackshear 257bdd18f1 [Infer][tests] Adding missing copyright to ActivityLeaks
9 years ago
Sam Blackshear 9cf74e0ce5 [infer][backend] basic Activity leak checking
9 years ago
Dulma Rodriguez 732d23ce4d [clang] Add is_instance as part of the type of objc methods
9 years ago
Dino Distefano 7002d0d24c Adding a test in symbolic execution when a dangling uninitialized pointer is dereferenced
9 years ago