llvm-project/clang/lib/StaticAnalyzer/Checkers
Ted Kremenek 9625048278 [analyzer] tracking stores/constraints now works for ObjC ivars or struct fields.
This required more changes than I originally expected:

- ObjCIvarRegion implements "canPrintPretty" et al
- DereferenceChecker indicates the null pointer source is an ivar
- bugreporter::trackNullOrUndefValue() uses an alternate algorithm
  to compute the location region to track by scouring the ExplodedGraph.
  This allows us to get the actual MemRegion for variables, ivars,
  fields, etc.  We only hand construct a VarRegion for C++ references.
- ExplodedGraph no longer drops nodes for expressions that are marked
  'lvalue'.  This is to facilitate the logic in the previous bullet.
  This may lead to a slight increase in size in the ExplodedGraph,
  which I have not measured, but it is likely not to be a big deal.

I have validated each of the changed plist output.

Fixes <rdar://problem/12114812>

llvm-svn: 175988
2013-02-24 07:21:01 +00:00
..
AnalyzerStatsChecker.cpp Remove the CFGElement "Invalid" state. 2013-02-23 00:29:34 +00:00
ArrayBoundChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
ArrayBoundCheckerV2.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
AttrNonNullChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
BasicObjCFoundationChecks.cpp Avoid implicit conversions of Optional<T> to bool. 2013-02-21 06:05:05 +00:00
BoolAssignmentChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
BuiltinFunctionChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
CMakeLists.txt Alphabetize source files, just like they have been before. 2012-12-04 22:17:32 +00:00
CStringChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
CStringSyntaxChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
CallAndMessageChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
CastSizeChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
CastToStructChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
CheckObjCDealloc.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
CheckObjCInstMethSignature.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
CheckSecuritySyntaxOnly.cpp [analyzer] Move DefaultBool so that all checkers can share it. 2013-02-08 23:55:50 +00:00
CheckSizeofPointer.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
CheckerDocumentation.cpp [analyzer] Add pointer escape type param to checkPointerEscape callback 2013-02-07 23:05:43 +00:00
Checkers.td [analyzer] Split IvarInvalidation into two checkers 2013-02-08 23:55:47 +00:00
ChrootChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
ClangCheckers.cpp [analyzer] Overhaul of checker registration in preparation for basic plugin support. Removes support for checker groups (we can add them back in later if we decide they are still useful), and -analyzer-checker-help output is a little worse for the time being (no packages). 2011-08-16 21:24:21 +00:00
ClangSACheckers.h Don't include the header outside the include guards, it defeats the purpose of the include guards. 2012-12-17 20:10:49 +00:00
CommonBugCategories.cpp Require that all static analyzer issues have a category. As part of this change, 2012-04-05 20:43:28 +00:00
DeadStoresChecker.cpp Disable dead stores checker for template instantations. Fixes <rdar://problem/13213575>. 2013-02-18 07:18:28 +00:00
DebugCheckers.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
DereferenceChecker.cpp [analyzer] tracking stores/constraints now works for ObjC ivars or struct fields. 2013-02-24 07:21:01 +00:00
DirectIvarAssignment.cpp [analyzer] DirectIvarAssignment: allow suppression annotation on Ivars. 2013-01-17 23:24:58 +00:00
DivZeroChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
DynamicTypePropagation.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
ExprInspectionChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
FixedAddressChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
GenericTaintChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
IdempotentOperationChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
InterCheckerAPI.h [analyzer] Fix another false positive in the Malloc Checker, by making 2012-02-17 22:35:31 +00:00
IvarInvalidationChecker.cpp objective-C: synthesize properties in order of their 2013-02-14 22:33:34 +00:00
LLVMConventionsChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
MacOSKeychainAPIChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
MacOSXAPIChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
Makefile Clang-side build system infrastructure for multiple tblgens. 2011-10-06 01:52:10 +00:00
MallocChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
MallocOverflowSecurityChecker.cpp Remove the CFGElement "Invalid" state. 2013-02-23 00:29:34 +00:00
MallocSizeofChecker.cpp Remove useless 'llvm::' qualifier from names like StringRef and others that are 2013-01-12 19:30:44 +00:00
NSAutoreleasePoolChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
NSErrorChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
NoReturnFunctionChecker.cpp Add missing null check. Not sure why my tests passed before. 2013-01-23 21:12:49 +00:00
ObjCAtSyncChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
ObjCContainersASTChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
ObjCContainersChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
ObjCMissingSuperCallChecker.cpp [analyzer] Fix doc error (wrong param name) in ObjCSuperCallChecker. 2012-12-13 18:26:05 +00:00
ObjCSelfInitChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
ObjCUnusedIVarsChecker.cpp Rework the traversal of Objective-C categories and extensions to 2013-01-16 23:00:23 +00:00
PointerArithChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
PointerSubChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
PthreadLockChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
RetainCountChecker.cpp Add back implicitly dropped const. 2013-02-21 22:37:44 +00:00
ReturnPointerRangeChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
ReturnUndefChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
SimpleStreamChecker.cpp [analyzer] Add pointer escape type param to checkPointerEscape callback 2013-02-07 23:05:43 +00:00
StackAddrEscapeChecker.cpp [analyzer] Rename callback EndPath -> EndFunction 2013-01-03 00:25:29 +00:00
StreamChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
TaintTesterChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
TraversalChecker.cpp [analyzer] Rename callback EndPath -> EndFunction 2013-01-03 00:25:29 +00:00
UndefBranchChecker.cpp Replace ProgramPoint llvm::cast support to be well-defined. 2013-02-21 22:23:56 +00:00
UndefCapturedBlockVarChecker.cpp Add "KnownSVal" to represent SVals that cannot be UnknownSVal. 2013-02-24 07:20:53 +00:00
UndefResultChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
UndefinedArraySubscriptChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
UndefinedAssignmentChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
UnixAPIChecker.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
UnreachableCodeChecker.cpp Remove the CFGElement "Invalid" state. 2013-02-23 00:29:34 +00:00
VLASizeChecker.cpp Replace SVal llvm::cast support to be well-defined. 2013-02-20 05:52:05 +00:00
VirtualCallChecker.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00