hanchenye-llvm-project/clang/test/Analysis
John McCall fe96e0b6be Change the AST representation of operations on Objective-C
property references to use a new PseudoObjectExpr
expression which pairs a syntactic form of the expression
with a set of semantic expressions implementing it.
This should significantly reduce the complexity required
elsewhere in the compiler to deal with these kinds of
expressions (e.g. IR generation's special l-value kind,
the static analyzer's Message abstraction), at the lower
cost of specifically dealing with the odd AST structure
of these expressions.  It should also greatly simplify
efforts to implement similar language features in the
future, most notably Managed C++'s properties and indexed
properties.

Most of the effort here is in dealing with the various
clients of the AST.  I've gone ahead and simplified the
ObjC rewriter's use of properties;  other clients, like
IR-gen and the static analyzer, have all the old
complexity *and* all the new complexity, at least
temporarily.  Many thanks to Ted for writing and advising
on the necessary changes to the static analyzer.

I've xfailed a small diagnostics regression in the static
analyzer at Ted's request.

llvm-svn: 143867
2011-11-06 09:01:30 +00:00
..
CFDateGC.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
CFNumber.c [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
CFRetainRelease_NSAssertionHandler.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
CGColorSpace.c [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
CheckNSError.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
MissingDealloc.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
NSPanel.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
NSString.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
NSWindow.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
NoReturn.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
OSAtomic_mac.cpp Allow 'Environment::getSVal()' to allow an optional way for checkers to do a direct lookup to values bound to expressions, without 2011-04-27 05:34:09 +00:00
ObjCProperties.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
ObjCRetSigs.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
PR2599.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
PR2978.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
PR3991.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
PR7218.c
PR9741.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
additive-folding-range-constraints.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
additive-folding.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +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-stats.c
array-struct-region.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
array-struct.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
auto-obj-dtors-cfg-output.cpp [analyzer] Overhaul how the static analyzer expects CFGs by forcing CFGs to be linearized only when used by the static analyzer. This required a rewrite of LiveVariables, and exposed a ton of subtle bugs. 2011-07-28 23:07:59 +00:00
base-init.cpp
blocks.m
bstring.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
casts.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
casts.m Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
cfref_PR2519.c [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
cfref_rdar6080742.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
chroot.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
complex.c 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
concrete-address.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
constant-folding.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
cxx-crashes.cpp
dead-stores.c 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
dead-stores.cpp 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
dead-stores.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
default-diagnostic-visitors.c Add a test for checking that custom diagnostic visitors are working. 2011-08-18 19:02:46 +00:00
delegates.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
derived-to-base.cpp
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 Add source-level dominators analysis. Patch by Guoping Long! 2011-10-25 00:25:24 +00:00
dtor.cpp
dtors-in-dtor-cfg-output.cpp
elementtype.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
exercise-ps.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
fields.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
free.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
func.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
idempotent-operations-limited-loops.c
idempotent-operations.c
idempotent-operations.cpp
idempotent-operations.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
initializer.cpp
initializers-cfg-output.cpp [analyzer] Overhaul how the static analyzer expects CFGs by forcing CFGs to be linearized only when used by the static analyzer. This required a rewrite of LiveVariables, and exposed a ton of subtle bugs. 2011-07-28 23:07:59 +00:00
inline.c
inline2.c
inline3.c Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. 2011-10-24 01:32:45 +00:00
inline4.c
iterators.cpp Switch these two tests to use the Clang driver instead of CC1. They want 2011-11-05 10:15:30 +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 Fix: Bug 10798 - [analyzer] Crash when analyzing ICU. (A slight improvement on the previous commit.) 2011-08-29 20:43:37 +00:00
lvalue.cpp
malloc-overflow.c [analyzer] Remove target triple from the malloc overflow test. 2011-09-27 20:41:53 +00:00
malloc-overflow.cpp Fix a crash in MallocOverflowSecurityChecker. Patch by Lei Zhang. 2011-09-27 22:25:01 +00:00
malloc.c If size was equal to 0, either NULL or a pointer suitable to be passed to 2011-09-01 04:53:59 +00:00
method-arg-decay.m
method-call.cpp
misc-ps-64.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps-cxx0x.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
misc-ps-eager-assume.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps-ranges.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps-region-store-i386.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps-region-store-x86_64.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps-region-store.cpp Fix crash when analyzing C++ code involving constant enums and switch statements (<rdar://problem/10202899>). 2011-09-30 03:51:54 +00:00
misc-ps-region-store.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps-region-store.mm [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
misc-ps.c [analyzer] Fix PR11282 - an assert in markAsSink 2011-11-01 22:41:14 +00:00
misc-ps.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
new.cpp
nil-receiver-undefined-larger-than-voidptr-ret-region.m [analyzer] ObjC message sends to nil receivers that return structs are now okay (compiler zeroes out the data). Fixes <rdar://problem/9151319>. 2011-10-28 19:05:10 +00:00
nil-receiver-undefined-larger-than-voidptr-ret.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
no-exit-cfg.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
no-outofbounds.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
null-deref-ps-region.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
null-deref-ps.c [analyzer] Add -analyzer-purge option which can take on multiple values, remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.) 2011-09-30 02:03:00 +00:00
nullptr.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
objc-arc.m Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
operator-calls.cpp [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
out-of-bounds.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
outofbound-notwork.c Fix regression in -Wuninitialized involving VLAs. It turns out that we were modeling sizeof(VLAs) 2011-08-23 20:30:50 +00:00
outofbound.c Fix regression in -Wuninitialized involving VLAs. It turns out that we were modeling sizeof(VLAs) 2011-08-23 20:30:50 +00:00
override-werror.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
plist-output-alternate.m [analyzer] Fix a bug in RetainReleaseChecker diagnostics. It gives more precise error message on the modified test case (and prevents duplicate diagnostics when we purge at block granularity). 2011-09-30 02:19:19 +00:00
plist-output.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
pr4209.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
pr_2542_rdar_6793404.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
pr_4164.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
properties.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
pthreadlock.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
ptr-arith.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
rdar-6442306-1.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
rdar-6540084.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
rdar-6541136-region.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
rdar-6562655.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
rdar-6600344-nil-receiver-undefined-struct-ret.m [analyzer] ObjC message sends to nil receivers that return structs are now okay (compiler zeroes out the data). Fixes <rdar://problem/9151319>. 2011-10-28 19:05:10 +00:00
rdar-7168531.m Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
refcnt_naming.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
reference.cpp [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
region-1.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
retain-release-gc-only.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
retain-release-path-notes-gc.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
retain-release-path-notes.m Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
retain-release-region-store.m [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine. 2011-09-02 05:55:19 +00:00
retain-release.m Fix major regression in RetainCountChecker. DefaultSummaries were not being used when they were meant to be. Fixes <rdar://problem/10241614>. 2011-10-05 23:54:29 +00:00
retain-release.mm Tweak the interface for analyzing the CF conventions for a name 2011-10-01 00:48:56 +00:00
security-syntax-checks-no-emit.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
security-syntax-checks.m Fix the signatures of vfork, __sigsetjmp and sigsetjmp. 2011-10-19 14:50:34 +00:00
self-init.m [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
sizeofpointer.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
stack-addr-ps.c 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
stack-addr-ps.cpp Fix LiveVariables analysis bug with MaterializeTemporaryExpr and fix handling in ExprEngine. Fixes <rdar://problem/10201666>. 2011-10-02 00:54:48 +00:00
stack-block-returned.cpp Handle CXXTempObjectRegion in StackAddrEscapeChecker. 2011-08-26 00:41:31 +00:00
stackaddrleak.c
stream.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
string-fail.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
string.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
temp-obj-dtors-cfg-output.cpp Per discussion with John McCall, don't add OpaqueValueExprs to the CFG. 2011-11-05 00:10:15 +00:00
undef-buffers.c [analyzer] Fix a failure encountered while analyzing bind (radar://10105448). 2011-09-12 18:07:30 +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-vals-ps-region.m [analyzer] Use UnknownVal when default-initializing arrays whose element types we don't model, to distinguish them from uninitialized arrays (PR10163). 2011-06-27 20:36:38 +00:00
uninit-vals-ps.c 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-vals.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
unions-region.m
unix-fns.c 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
unreachable-code-path.c [analyzer] rename all experimental checker packages to have 'experimental' be the common root package. 2011-08-03 23:14:55 +00:00
unused-ivars.m Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
variadic-method-types.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