llvm-project/clang/test/Analysis
Jordan Rose 3720e2f006 [analyzer] "Force" LazyCompoundVals on bind when they are simple enough.
The analyzer uses LazyCompoundVals to represent rvalues of aggregate types,
most importantly structs and arrays. This allows us to efficiently copy
around an entire struct, rather than doing a memberwise load every time a
struct rvalue is encountered. This can also keep memory usage down by
allowing several structs to "share" the same snapshotted bindings.

However, /lookup/ through LazyCompoundVals can be expensive, especially
since they can end up chaining back to the original value. While we try
to reuse LazyCompoundVals whenever it's safe, and cache information about
this transitivity, the fact is it's sometimes just not a good idea to
perpetuate LazyCompoundVals -- the tradeoffs just aren't worth it.

This commit changes RegionStore so that binding a LazyCompoundVal to struct
will do a memberwise copy if the struct is simple enough. Today's definition
of "simple enough" is "up to N scalar members" (see below), but that could
easily be changed in the future. This is enough to bring the test case in
PR15697 back down to a manageable analysis time (within 20% of its original
time, in an unfair test where the new analyzer is not compiled with LTO).

The actual value of "N" is controlled by a new -analyzer-config option,
'region-store-small-struct-limit'. It defaults to "2", meaning structs with
zero, one, or two scalar members will be considered "simple enough" for
this code path.

It's worth noting that a more straightforward implementation would do this
on load, not on bind, and make use of the structure we already have for this:
CompoundVal. A long time ago, this was actually how RegionStore modeled
aggregate-to-aggregate copies, but today it's only used for compound literals.
Unfortunately, it seems that we've special-cased LazyCompoundVal in certain
places (such as liveness checks) but failed to similarly special-case
CompoundVal in all of them. Until we're confident that CompoundVal is
handled properly everywhere, this solution is safer, since the entire
optimization is just an implementation detail of RegionStore.

<rdar://problem/13599304>

llvm-svn: 179767
2013-04-18 16:33:46 +00:00
..
Inputs [analyzer] Re-enable using global regions as a symbolic base. 2013-04-15 20:39:45 +00:00
diagnostics [analyzer] Allow TrackConstraintBRVisitor to work when the value it’s tracking is not live in the last node of the path 2013-04-17 22:29:47 +00:00
engine Add a new -Wundefined-inline warning for inline functions which are used but not 2013-02-01 08:13:20 +00:00
inlining [analyzer] Tweak getDerefExpr more to track DeclRefExprs to references. 2013-04-18 00:15:15 +00:00
objc [analyzer] DirectIvarAssignment: allow suppression annotation on Ivars. 2013-01-17 23:24:58 +00:00
CFContainers-invalid.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
CFContainers.mm Implement GCC's -Wint-to-pointer-cast. 2012-10-16 18:53:14 +00:00
CFDateGC.m Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
CFNumber.c Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
CFRetainRelease_NSAssertionHandler.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
CGColorSpace.c Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
CheckNSError.m Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
Malloc+MismatchedDeallocator+NewDelete.cpp [analyzer] Tests: move system functions into system header simulator files. 2013-04-15 20:39:37 +00:00
Malloc+MismatchedDeallocator_intersections.cpp [analyzer] Reduced the unwanted correlations between checkers living inside MallocChecker.cpp 2013-04-04 23:46:29 +00:00
Malloc+NewDelete_intersections.cpp [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
MismatchedDeallocator-checker-test.mm [analyzer] Better name for the test. 2013-04-05 10:49:41 +00:00
MismatchedDeallocator-path-notes.cpp [analyzer] Keep tracking the pointer after the escape to more aggressively report mismatched deallocator 2013-04-09 00:30:28 +00:00
MissingDealloc.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
NSContainers.m Tweak warning text for nil value in ObjC container warning. 2013-04-08 18:09:16 +00:00
NSPanel.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
NSString.m [analyzer] Place all inlining policy checks into one palce 2013-02-22 02:59:24 +00:00
NSWindow.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
NewDelete+MismatchedDeallocator_intersections.cpp [analyzer] Re-enable cplusplus.NewDelete (but not NewDeleteLeaks). 2013-04-05 17:55:07 +00:00
NewDelete-checker-test.cpp [analyzer] Enable NewDelete checker if NewDeleteLeaks checker is enabled. 2013-04-12 23:25:40 +00:00
NewDelete-custom.cpp [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
NewDelete-intersections.mm [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
NewDelete-path-notes.cpp [analyzer] Improve the malloc checker stack hint message 2013-04-16 00:22:55 +00:00
NewDelete-variadic.cpp [analyzer] Re-enable cplusplus.NewDelete (but not NewDeleteLeaks). 2013-04-05 17:55:07 +00:00
NoReturn.m Add a test case for 'analyzer_noreturn' on category methods. 2013-01-23 21:29:13 +00:00
OSAtomic_mac.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ObjCProperties.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ObjCRetSigs.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
PR2599.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
PR2978.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
PR3991.m Split "incomplete implementation" warnings for ObjC into separate warnings. 2013-03-27 00:02:21 +00:00
PR7218.c [analyzer] Remove '-analyzer-check-objc-mem' flag, the nominee for best misnomer award. 2011-02-28 19:49:42 +00:00
PR9741.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
PR12905.c Analyzer: Fix PR12905, a crash when encountering a call to a function named "C". 2012-05-21 19:40:38 +00:00
additive-folding-range-constraints.c [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
additive-folding.cpp [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
analyzeOneFunction.m [analyzer] Test for -analyze-function on ObjectiveC to accompany r139439. 2011-09-12 17:48:08 +00:00
analyze_display_progress.c
analyzer-config.c [analyzer] "Force" LazyCompoundVals on bind when they are simple enough. 2013-04-18 16:33:46 +00:00
analyzer-config.cpp [analyzer] "Force" LazyCompoundVals on bind when they are simple enough. 2013-04-18 16:33:46 +00:00
analyzer-stats.c [analyzer] Fix scan-build's -stats mode. 2013-03-14 17:18:30 +00:00
array-struct-region.c [analyzer] Tighten up safety in the use of lazy bindings. 2013-02-21 01:34:51 +00:00
array-struct-region.cpp [analyzer] When binding to a ParenExpr, bind to its inner expression instead. 2012-10-17 19:35:44 +00:00
array-struct.c [analyzer] Add a test for PR13927 "offsetof replacement flagged as null deref" 2012-10-01 19:07:19 +00:00
auto-obj-dtors-cfg-output.cpp Remove useless 'XPASS: *' from tests 2013-01-25 22:20:24 +00:00
base-init.cpp [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
bitwise-ops.c [analyzer] Add tests for symbolic expression liveness. 2012-09-25 19:03:09 +00:00
blocks-no-inline.c [analyzer] Try constant-evaluation for all variables, not just globals. 2013-02-14 19:06:11 +00:00
blocks.m Use the BlockDecl captures list to infer the direct captures for a BlockDataRegion. Fixes <rdar://problem/12415065>. 2012-12-06 07:17:26 +00:00
bool-assignment.cpp Fix analyzer tests. 2012-08-24 20:39:55 +00:00
bool-assignment2.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
bstring.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
call-invalidation.cpp [analyzer] Invalidate regions indirectly accessible through const pointers. 2013-03-20 20:35:53 +00:00
casts.c [analyzer] Teach the analyzer to use a symbol for p when evaluating 2013-02-05 19:52:28 +00:00
casts.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cfg.cpp CFG.cpp: Fix wrapping logic when printing block preds/succs. 2013-01-07 09:51:17 +00:00
cfref_PR2519.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cfref_rdar6080742.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
check-deserialization.cpp [analyzer] PCH deserialization optimization. 2012-04-12 22:36:48 +00:00
chroot.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
comparison-implicit-casts.cpp Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
complex-init-list.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
complex.c Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
concrete-address.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
conditional-operator-path-notes.c [analyzer] Use 'MemRegion::printPretty()' instead of assuming the region is a VarRegion. 2013-02-26 19:44:38 +00:00
conditional-operator.cpp [analyzer] Do not crash when processing binary "?:" in C++ 2013-04-15 22:38:07 +00:00
constant-folding.c [analyzer] Convert many existing tests to use clang_analyzer_eval. 2012-05-16 16:01:10 +00:00
coverage.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
cstring-syntax-cxx.cpp [analyzer] Fix a crash in SyntaxCString checker when given a custom strncat. 2013-04-10 22:06:29 +00:00
cstring-syntax.c Turn on strncat-size warning implemented a while ago. 2012-08-07 18:36:58 +00:00
ctor-inlining.mm [analyzer] Better model for copying of array fields in implicit copy ctors. 2013-04-03 01:39:08 +00:00
cxx-crashes.cpp clang/test: [PR8833] Introduce the feature "LP64" to suppress LLP64-incompatible tests. 2012-09-12 10:45:40 +00:00
cxx-for-range-cfg.cpp Teach CFG construction about destructors resulting from references to array types. Fixes crash in <rdar://problem/11671507>. 2012-07-18 04:57:57 +00:00
cxx-method-names.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx11-crashes.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
dead-stores.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
dead-stores.cpp Disable dead stores checker for template instantations. Fixes <rdar://problem/13213575>. 2013-02-18 07:18:28 +00:00
dead-stores.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
debug-CallGraph.c [analyzer] Re-apply r170826 and make the dumping of the GallGraph 2012-12-21 17:27:01 +00:00
default-analyze.m Add test case for <rdar://problem/8808566>, which is now fixed by inlining support. 2012-03-16 04:59:57 +00:00
default-diagnostic-visitors.c [analyzer] Use 'MemRegion::printPretty()' instead of assuming the region is a VarRegion. 2013-02-26 19:44:38 +00:00
delegates.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
derived-to-base.cpp [analyzer] Don't canonicalize the RecordDecl used in CXXBaseObjectRegion. 2013-02-22 19:33:13 +00:00
div-zero.cpp Address PR10616. The crash has already been fixed by Ted in r140725, so just refactor to use existing API + test case. 2011-10-01 06:35:19 +00:00
domtest.c Correct test inovocations to use %clang_cc1 rather than direct invocation (so that it can have additional options set when trying to debug issues causing regressions). 2012-10-25 13:56:30 +00:00
dtor.cpp [analyzer] Correctly handle destructors for lifetime-extended temporaries. 2013-04-03 21:16:58 +00:00
dtors-in-dtor-cfg-output.cpp Remove useless 'XPASS: *' from tests 2013-01-25 22:20:24 +00:00
dynamic-cast.cpp [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
elementtype.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
enum.cpp [analyzer] Replace isIntegerType() with isIntegerOrEnumerationType(). 2013-04-09 02:30:33 +00:00
exceptions.mm [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests. 2012-08-21 21:44:07 +00:00
exercise-ps.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
fields.c [analyzer] Special-case bitfields when finding sub-region bindings. 2013-03-01 23:03:17 +00:00
free.c [analyzer] These implements unix.MismatchedDeallocatorChecker checker. 2013-03-28 17:05:19 +00:00
func.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
global-region-invalidation.c [analyzer] Re-enable using global regions as a symbolic base. 2013-04-15 20:39:45 +00:00
global_region_invalidation.mm [analyzer] Re-enable using global regions as a symbolic base. 2013-04-15 20:39:45 +00:00
html-diags-multifile.c clang/test: Drop "REQUIRES:shell" in three tests. They can run on win32. 2013-01-25 06:02:11 +00:00
html-diags-multifile.h [analyzer diagnostics] Change CompactPathDiagnostic to recursively compact diagnostics in calls into macro pieces. 2012-03-02 01:27:31 +00:00
html-diags.c This test used to fail forever if it failed once, because it does not clean up after itself if it failed. 2012-12-05 06:16:54 +00:00
idempotent-operations-limited-loops.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
idempotent-operations.c Implement GCC's -Wint-to-pointer-cast. 2012-10-16 18:53:14 +00:00
idempotent-operations.cpp Fix analyzer tests. 2012-08-24 20:39:55 +00:00
idempotent-operations.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
initializer.cpp [analyzer] Warn on passing a reference to null pointer as an argument in a call 2013-03-07 03:02:36 +00:00
initializers-cfg-output.cpp Remove useless 'XPASS: *' from tests 2013-01-25 22:20:24 +00:00
inline-not-supported.c [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests. 2012-08-21 21:44:07 +00:00
inline-plist.c [analyzer] Show "Returning from ..." note at caller's depth, not callee's. 2013-04-12 00:44:17 +00:00
inline-unique-reports.c [analyzer] Plist: change the type of issue_hash from int to string. 2013-01-08 00:25:22 +00:00
inline.c [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests. 2012-08-21 21:44:07 +00:00
inline.cpp [analyzer] Adds cplusplus.NewDelete checker that check for memory leaks, double free, and use-after-free problems of memory managed by new/delete. 2013-03-25 01:35:45 +00:00
inline2.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
inline3.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
inline4.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ivars.m [analyzer] Allow ObjC ivar lvalues where the base is nil. 2012-10-01 19:07:22 +00:00
keychainAPI-diagnostic-visitor.m [analyzer] MacOSKeychainAPIChecker: Provide reacher diagnostic trace by pointing to the allocation site when reporting a leak. 2011-08-24 20:52:46 +00:00
keychainAPI.m [analyzer] Fix a false positive in Secure Keychain API checker. 2013-01-07 19:13:00 +00:00
lambdas.cpp Include lambda capture init expressions in CFG. 2012-04-12 20:34:52 +00:00
logical-ops.c [analyzer] The result of && or || is always a 1 or 0. 2012-08-20 17:04:45 +00:00
lvalue.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
malloc-annotations.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
malloc-interprocedural.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
malloc-overflow.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
malloc-overflow.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
malloc-plist.c [analyzer] Improve the malloc checker stack hint message 2013-04-16 00:22:55 +00:00
malloc-sizeof.c [analyzer] Address John's code review for r163407. 2012-09-08 00:09:02 +00:00
malloc.c [analyzer] Keep tracking the pointer after the escape to more aggressively report mismatched deallocator 2013-04-09 00:30:28 +00:00
malloc.cpp [analyzer] Teach invalidateRegions that regions within LazyCompoundVal need to be invalidated 2013-04-02 01:28:24 +00:00
malloc.m Adjust some analyzer tests to place widely shared inputs inside of an 2012-09-12 01:11:10 +00:00
malloc.mm [analyzer] Switched to checkPreCall interface for detecting usage after free. 2013-04-10 22:21:41 +00:00
member-expr.cpp [analyzer] Handle 'SomeVar.SomeEnumConstant', which is legal in C++. 2012-10-23 23:59:08 +00:00
method-arg-decay.m Split "incomplete implementation" warnings for ObjC into separate warnings. 2013-03-27 00:02:21 +00:00
method-call-intra-p.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
method-call-path-notes.cpp [analyzer] Use 'MemRegion::printPretty()' instead of assuming the region is a VarRegion. 2013-02-26 19:44:38 +00:00
method-call.cpp [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
misc-ps-64.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-arm.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-cxx0x.cpp [analyzer] Track null/uninitialized C++ objects used in method calls. 2012-08-03 23:08:49 +00:00
misc-ps-eager-assume.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-ranges.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
misc-ps-region-store-i386.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-region-store-x86_64.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-region-store.cpp Add test case for PR 12921. 2013-03-22 21:30:22 +00:00
misc-ps-region-store.m Fixes a typo in my last patch. 2013-03-27 21:33:52 +00:00
misc-ps-region-store.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps.c [analyzer] When creating a trimmed graph, preserve whether a node is a sink. 2013-04-06 01:42:02 +00:00
misc-ps.m Remove OSAtomicChecker. 2012-10-11 20:58:21 +00:00
new-with-exceptions.cpp [analyzer] Assume 'new' never returns NULL if it could throw an exception. 2012-10-20 02:32:51 +00:00
new.cpp [analyzer] Switched to checkPreCall interface for detecting usage after free. 2013-04-10 22:21:41 +00:00
nil-receiver-undefined-larger-than-voidptr-ret-region.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
nil-receiver-undefined-larger-than-voidptr-ret.m Attempt (again) to stabilize the order of the emission of diagnostics 2012-09-08 04:26:37 +00:00
no-exit-cfg.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
no-outofbounds.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
nonnull.m [analyzer] Convert existing checkers to use check::preCall and check::postCall. 2012-07-02 19:28:21 +00:00
null-deref-path-notes.m [analyzer] Teach FindLastStoreBRVisitor to understand stores of the same value. 2013-02-27 18:49:57 +00:00
null-deref-ps-region.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
null-deref-ps.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
nullptr.cpp Revert "[analyzer] Check that a member expr is valid even when the result is an lvalue." 2012-10-01 19:07:15 +00:00
objc-arc.m "Teach" RetainCountChecker about dispatch_set_context, which can indirectly free its argument later. Fixes <rdar://problem/11059275>. 2012-03-22 06:29:41 +00:00
objc-bool.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
objc-boxing.m [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
objc-for.m Fix two more tests that didn't do anything. 2012-09-26 09:09:17 +00:00
objc-method-coverage.m Partly revert "Move clang tests that depend on llvm/ADT/Statistic.h to a subdir". 2013-03-11 17:48:03 +00:00
objc-properties.m [analyzer] Do not warn on direct ivar assignments within copy methods. 2012-10-15 22:48:14 +00:00
objc-subscript.m [analyzer] Combine all ObjC message CallEvents into ObjCMethodCall. 2012-07-18 21:59:51 +00:00
objc_invalidation.m [analyzer] Invalidation checker: move the "missing implementation" check 2013-02-09 01:09:27 +00:00
operator-calls.cpp [analyzer] Don't crash if we cache out after making a temporary region. 2013-04-18 16:33:40 +00:00
out-of-bounds.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
outofbound-notwork.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
outofbound.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
override-werror.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
plist-html-macros.c [analyzer] Ensure that PathDiagnostics profile the same regardless of path. 2012-08-31 00:36:26 +00:00
plist-output-alternate.m [analyzer] Use 'MemRegion::printPretty()' instead of assuming the region is a VarRegion. 2013-02-26 19:44:38 +00:00
plist-output.m [analyzer] Handle Objc Fast enumeration for "loop is executed 0 times". 2013-03-13 20:03:31 +00:00
pointer-to-member.cpp [analyzer] Don't assert on a temporary of pointer-to-member type. 2013-04-15 22:03:38 +00:00
pr4209.m Split "incomplete implementation" warnings for ObjC into separate warnings. 2013-03-27 00:02:21 +00:00
pr_2542_rdar_6793404.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
pr_4164.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
properties.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
pthreadlock.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
ptr-arith.c [analyzer] Also transform "a < b" to "(b - a) > 0" in the constraint manager. 2013-03-23 01:21:23 +00:00
rdar-6442306-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar-6540084.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
rdar-6541136-region.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
rdar-6562655.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar-6600344-nil-receiver-undefined-struct-ret.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar-7168531.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
redefined_system.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
refcnt_naming.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
reference.cpp [analyzer] Tweak getDerefExpr more to track DeclRefExprs to references. 2013-04-18 00:15:15 +00:00
reference.mm [analyzer] Warn when nil receiver results in forming null reference 2013-04-03 19:28:19 +00:00
region-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
region-store.c [analyzer] Set concrete offset bindings to UnknownVal when processing symbolic offset binding, even if no bindings are present. 2013-03-25 20:43:24 +00:00
region-store.cpp [analyzer] Do not believe lazy binding when symbolic region types do not match 2013-03-19 22:38:09 +00:00
reinterpret-cast.cpp [analyzer] Base regions may be invalid when layered on symbolic regions. 2013-02-25 18:36:15 +00:00
retain-release-cf-audited.m [analyzer] Don't let cf_audited_transfer override CFRetain semantics. 2013-03-04 23:21:32 +00:00
retain-release-gc-only.m [analyzer] More tests for "release and stop tracking". 2012-08-20 22:15:44 +00:00
retain-release-inline.m [analyzer] Better test for r178063. 2013-03-26 23:58:52 +00:00
retain-release-path-notes-gc.m [analyzer] Plist: change the type of issue_hash from int to string. 2013-01-08 00:25:22 +00:00
retain-release-path-notes.m [analyzer] Show "Returning from ..." note at caller's depth, not callee's. 2013-04-12 00:44:17 +00:00
retain-release-region-store.m Change RetainCountChecker to eagerly "escape" retained objects when they are 2012-03-27 01:12:45 +00:00
retain-release.m [analyzer] Cleanup leak warnings: do not print the names of variables from other functions. 2013-04-10 21:42:02 +00:00
retain-release.mm [analyzer] Add static initializer test case (from <rdar://problem/13227740>). 2013-03-29 00:32:36 +00:00
security-syntax-checks-no-emit.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
security-syntax-checks.m Allow multiple PathDiagnosticConsumers to be used with a BugReporter at the same time. 2012-08-16 17:45:23 +00:00
self-init.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
shallow-mode.m [analyzer] Add "-analyzer-config mode=[deep|shallow] ". 2013-01-24 23:15:34 +00:00
simple-stream-checks.c [analyzer] Track malloc'd memory into struct fields. 2013-03-20 20:35:57 +00:00
sizeofpointer.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
stack-addr-ps.c Teach analyzer that blocks with no captures are globals. Fixes <rdar://problem/10348049>. 2012-02-18 22:41:01 +00:00
stack-addr-ps.cpp [analyzer] Make sure a materialized temporary matches its bindings. 2013-02-22 01:51:15 +00:00
stack-block-returned.cpp Handle CXXTempObjectRegion in StackAddrEscapeChecker. 2011-08-26 00:41:31 +00:00
stackaddrleak.c [analyzer] Report leaks at the closing brace of a function body. 2012-11-15 19:11:43 +00:00
static_local.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
stats.c Partly revert "Move clang tests that depend on llvm/ADT/Statistic.h to a subdir". 2013-03-11 17:48:03 +00:00
stream.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
string-fail.c [analyzer] Convert many existing tests to use clang_analyzer_eval. 2012-05-16 16:01:10 +00:00
string.c [analyzer] Don't invalidate globals when there's no call involved. 2013-03-20 20:36:01 +00:00
superclass.m [analyzer] Generalize ObjCMissingSuperCallChecker. 2012-12-13 03:06:45 +00:00
svalbuilder-logic.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
taint-generic.c [analyzer] Teach ConstraintManager to ignore NonLoc <> NonLoc comparisons. 2013-03-24 20:25:22 +00:00
taint-tester.c [analyzer] Tests: move system functions into system header simulator files. 2013-04-15 20:39:37 +00:00
taint-tester.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
taint-tester.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
temp-obj-dtors-cfg-output.cpp Change subexpressions to be visited in the CFG from left-to-right. 2013-02-05 22:00:19 +00:00
templates.cpp [analyzer] For now, don't inline C++ standard library functions. 2012-09-10 21:27:35 +00:00
temporaries.cpp [analyzer] Don't look through casts when creating pointer temporaries. 2013-02-26 01:21:27 +00:00
test-objc-non-nil-return-value-checker.m [analyzer] Add osx.cocoa.NonNilReturnValue checker. 2012-08-22 21:19:56 +00:00
test-variably-modified-types.c [analyzer] Test variable modified types. 2012-05-11 23:34:14 +00:00
traversal-algorithm.mm Make this test invariant to future changes of the max loop unrolling count. 2012-07-02 21:02:22 +00:00
traversal-path-unification.c [analyzer] Rename callback EndPath -> EndFunction 2013-01-03 00:25:29 +00:00
undef-buffers.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
uninit-msg-expr.m Really remove FlatStoreManager and BasicStoreManager, this time from the driver. Also remove associated tests. Sorry for the messy commits; this is the result of a botched Git merge. 2011-07-28 23:08:16 +00:00
uninit-ps-rdar6145427.m Really remove FlatStoreManager and BasicStoreManager, this time from the driver. Also remove associated tests. Sorry for the messy commits; this is the result of a botched Git merge. 2011-07-28 23:08:16 +00:00
uninit-sometimes.cpp Use some heuristics so that when a fixit removes a source range, we try 2012-12-20 21:05:53 +00:00
uninit-vals-ps-region.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
uninit-vals-ps.c [analyzer] Don't warn for returning void expressions in void blocks. 2013-04-17 18:03:48 +00:00
uninit-vals.m [analyzer] "Force" LazyCompoundVals on bind when they are simple enough. 2013-04-18 16:33:46 +00:00
unions-region.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
unions.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
unix-fns.c [analyzer] Rename “Mac OS X API”, “Mac OS API” -> “API Misuse (Apple)” 2013-04-03 19:28:22 +00:00
unreachable-code-path.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
unused-ivars.m [analyzer] Fix a regression in ObjCUnusedIVars checker. 2012-05-15 22:31:56 +00:00
variadic-method-types.m Allow multiple PathDiagnosticConsumers to be used with a BugReporter at the same time. 2012-08-16 17:45:23 +00:00
virtualcall.cpp [analyzer] Don't run non-path-sensitive checks on system headers... 2012-10-10 17:55:40 +00:00
virtualcall.h [analyzer] Don't run non-path-sensitive checks on system headers... 2012-10-10 17:55:40 +00:00