llvm-project/clang/lib/StaticAnalyzer/Checkers
Artem Dergachev db65f969f2 [analyzer] CStringChecker: pr34460: Avoid a crash when a cast is not modeled.
The checker used to crash when a mempcpy's length argument is symbolic. In this
case the cast from 'void *' to 'char *' failed because the respective
ElementRegion that represents cast is hard to add on top of the existing
ElementRegion that represents the offset to the last copied byte, while
preseving a sane memory region structure.

Additionally, a few test cases are added (to casts.c) which demonstrate problems
caused by existing sloppy work we do with multi-layer ElementRegions. If said
cast would be modeled properly in the future, these tests would need to be
taken into account.

Differential Revision: https://reviews.llvm.org/D38797

llvm-svn: 315742
2017-10-13 20:11:00 +00:00
..
MPI-Checker [analyzer] Enforce super-region classes for various memory regions. 2017-04-13 09:56:07 +00:00
AllocationDiagnostics.cpp
AllocationDiagnostics.h
AnalysisOrderChecker.cpp [analyzer] When creating a temporary object, properly copy the value into it. 2017-03-28 15:43:26 +00:00
AnalyzerStatsChecker.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:27:06 +00:00
ArrayBoundChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
ArrayBoundCheckerV2.cpp [analyzer] Calculate extent size for memory regions allocated by new expression. 2016-09-19 20:39:52 +00:00
BasicObjCFoundationChecks.cpp Suppress all uses of LLVM_END_WITH_NULL. NFC. 2017-05-09 19:31:30 +00:00
BlockInCriticalSectionChecker.cpp [analyzer] Extend block in critical section check with C11 and Pthread APIs. 2017-03-10 14:50:12 +00:00
BoolAssignmentChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
BuiltinFunctionChecker.cpp [analyzer] Do not continue to analyze a path if the constraints contradict with builtin assume 2017-06-22 10:09:40 +00:00
CMakeLists.txt [Analyzer] Assume that CFBooleanRef const globals are non-null 2017-10-13 00:51:41 +00:00
CStringChecker.cpp [analyzer] CStringChecker: pr34460: Avoid a crash when a cast is not modeled. 2017-10-13 20:11:00 +00:00
CStringSyntaxChecker.cpp [CSA] [NFC] Move AnalysisContext.h to AnalysisDeclContext.h 2017-09-06 21:45:03 +00:00
CXXSelfAssignmentChecker.cpp [analyzer] Add LocationContext as a parameter to checkRegionChanges 2017-01-13 00:50:57 +00:00
CallAndMessageChecker.cpp [analyzer] Clarify 'uninitialized function argument' messages 2017-03-08 15:22:24 +00:00
CastSizeChecker.cpp [analyzer] pr31226: Disable CastSizeChecker in C++ because it's not quite ready. 2016-12-07 16:12:26 +00:00
CastToStructChecker.cpp [analyzer] Fix crashes in CastToStruct checker for undefined structs 2017-03-07 19:20:48 +00:00
CheckObjCDealloc.cpp Revert "[analyzer] Re-apply r283093 "Add extra notes to ObjCDeallocChecker"" 2016-10-16 00:30:08 +00:00
CheckObjCInstMethSignature.cpp
CheckSecuritySyntaxOnly.cpp [CSA] [NFC] Move AnalysisContext.h to AnalysisDeclContext.h 2017-09-06 21:45:03 +00:00
CheckSizeofPointer.cpp [analyzer] Apply whitespace cleanups by Honggyu Kim. 2015-09-08 03:50:52 +00:00
CheckerDocumentation.cpp [analyzer] Add LocationContext as a parameter to checkRegionChanges 2017-01-13 00:50:57 +00:00
ChrootChecker.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
ClangCheckers.cpp [analyzer] Move Checkers.inc to clang/include/... 2016-04-28 01:09:09 +00:00
ClangSACheckers.h [analyzer] Move Checkers.inc to clang/include/... 2016-04-28 01:09:09 +00:00
CloneChecker.cpp [analyzer] Increase minimum complexity filter of the CloneChecker. 2017-09-04 05:56:36 +00:00
ConversionChecker.cpp [Analyzer] Clarify error messages for undefined result 2017-10-11 14:49:35 +00:00
DeadStoresChecker.cpp Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC. 2017-06-03 06:26:27 +00:00
DebugCheckers.cpp [analyzer] Fix IssueHash generation. 2015-12-01 09:00:41 +00:00
DeleteWithNonVirtualDtorChecker.cpp [analyzer] Add new delete with non-virtual destructor check 2017-09-22 10:16:33 +00:00
DereferenceChecker.cpp [analyzer] Don't dereference the array value when binding it to a reference. 2017-01-12 18:00:03 +00:00
DirectIvarAssignment.cpp Use instance_properties instead of properties. NFC. 2016-01-26 18:05:23 +00:00
DivZeroChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
DynamicTypeChecker.cpp Migrate PathDiagnosticPiece to std::shared_ptr 2017-01-05 17:26:53 +00:00
DynamicTypePropagation.cpp Migrate PathDiagnosticPiece to std::shared_ptr 2017-01-05 17:26:53 +00:00
ExprInspectionChecker.cpp [StaticAnalyzer] Completely unrolling specific loops with known bound option 2017-07-25 19:23:23 +00:00
FixedAddressChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
GTestChecker.cpp [analyzer] Update GTestChecker to tighten API detection 2016-12-22 17:52:57 +00:00
GenericTaintChecker.cpp [analyzer] Support partially tainted records. 2017-05-29 15:42:56 +00:00
IdenticalExprChecker.cpp Refactor: Simplify boolean conditional return statements in lib/StaticAnalyzer/Checkers 2015-12-28 13:06:58 +00:00
InterCheckerAPI.h
IteratorChecker.cpp [analyzer] Initial commit for the upcoming refactoring of the IteratorChecker. 2017-05-29 15:03:20 +00:00
IvarInvalidationChecker.cpp Remove redundant conditions of the form (A || (!A && B)) -> (A || B) 2016-04-11 08:26:13 +00:00
LLVMConventionsChecker.cpp
LocalizationChecker.cpp [analyzer] Add annotation for functions taking user-facing strings 2017-07-14 10:24:36 +00:00
MacOSKeychainAPIChecker.cpp [analyzer] Fix false positives in Keychain API checker 2017-01-13 00:50:41 +00:00
MacOSXAPIChecker.cpp [analyzer] Fix MacOSXAPIChecker fp with static locals seen from nested blocks. 2017-01-25 10:21:45 +00:00
MallocChecker.cpp [analyzer] Fix memory error bug category capitalization. 2017-05-03 11:47:13 +00:00
MallocOverflowSecurityChecker.cpp [analyzer] Older version of GCC 4.7 crash on lambdas in default arguments. 2016-07-09 12:16:58 +00:00
MallocSizeofChecker.cpp [analyzer] Apply whitespace cleanups by Honggyu Kim. 2015-09-08 03:50:52 +00:00
MisusedMovedObjectChecker.cpp [analyzer] MisusedMovedObject: Fix state-resetting a base-class sub-object. 2017-10-10 11:55:56 +00:00
NSAutoreleasePoolChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
NSErrorChecker.cpp Use more ArrayRefs 2016-06-24 04:05:48 +00:00
NoReturnFunctionChecker.cpp Suppress all uses of LLVM_END_WITH_NULL. NFC. 2017-05-09 19:31:30 +00:00
NonNullParamChecker.cpp Spelling mistakes in comments. NFCI. (PR27635) 2017-03-30 14:13:19 +00:00
NonnullGlobalConstantsChecker.cpp [Analyzer] Assume that CFBooleanRef const globals are non-null 2017-10-13 00:51:41 +00:00
NullabilityChecker.cpp [analyzer] Nullability: fix notes around synthesized ObjC property accessors. 2017-06-05 12:40:03 +00:00
NumberObjectConversionChecker.cpp [analyzer] NumberObjectConversion: Workaround for a linker error with modules. 2016-11-15 22:22:57 +00:00
ObjCAtSyncChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
ObjCContainersASTChecker.cpp [CSA] [NFC] Move AnalysisContext.h to AnalysisDeclContext.h 2017-09-06 21:45:03 +00:00
ObjCContainersChecker.cpp Fix some Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-10 19:11:58 +00:00
ObjCMissingSuperCallChecker.cpp [analyzer] Apply whitespace cleanups by Honggyu Kim. 2015-09-08 03:50:52 +00:00
ObjCPropertyChecker.cpp [Analyzer] Fix crash in ObjCPropertyChecker on protocol property 2017-03-01 01:47:37 +00:00
ObjCSelfInitChecker.cpp Refactor: Simplify boolean conditional return statements in lib/StaticAnalyzer/Checkers 2015-12-28 13:06:58 +00:00
ObjCSuperDeallocChecker.cpp Migrate PathDiagnosticPiece to std::shared_ptr 2017-01-05 17:26:53 +00:00
ObjCUnusedIVarsChecker.cpp
PaddingChecker.cpp StaticAnalyzer: Report found fields order in PaddingChecker 2016-08-15 20:16:13 +00:00
PointerArithChecker.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
PointerSubChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
PthreadLockChecker.cpp [analyzer] PthreadLockChecker: Add printState() method for self-debugging. 2017-10-10 11:49:09 +00:00
RetainCountChecker.cpp [analyzer] RetainCount: Ignore annotations on user-made CFRetain wrappers. 2017-10-13 19:10:42 +00:00
ReturnPointerRangeChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
ReturnUndefChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
SelectorExtras.h Use clang++-3.5 compatible initializer_list constructor 2017-05-10 13:22:11 +00:00
SimpleStreamChecker.cpp Apply clang-tidy's misc-move-constructor-init throughout Clang. 2016-05-27 14:27:13 +00:00
StackAddrEscapeChecker.cpp [Analyzer] Correct stack address escape diagnostic 2016-05-26 14:02:17 +00:00
StdLibraryFunctionsChecker.cpp [analyzer] Avoid an allocation in Std C function modelling 2017-05-12 06:53:55 +00:00
StreamChecker.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
TaintTesterChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
TestAfterDivZeroChecker.cpp Migrate PathDiagnosticPiece to std::shared_ptr 2017-01-05 17:26:53 +00:00
TraversalChecker.cpp [analyzer] Add checker callback for beginning of function. 2016-02-19 01:35:10 +00:00
UndefBranchChecker.cpp Apply clang-tidy's misc-move-constructor-init throughout Clang. 2016-05-27 14:27:13 +00:00
UndefCapturedBlockVarChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
UndefResultChecker.cpp [Analyzer] Clarify error messages for undefined result 2017-10-11 14:49:35 +00:00
UndefinedArraySubscriptChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
UndefinedAssignmentChecker.cpp [analyzer] Add generateErrorNode() APIs to CheckerContext. 2015-09-16 22:03:05 +00:00
UnixAPIChecker.cpp [analyzer] Move zero-size allocation checks to optin.portability. 2017-06-27 11:14:39 +00:00
UnreachableCodeChecker.cpp [StaticAnalyzer] Fix false positives for unreachable code in macros. 2017-08-02 08:26:56 +00:00
VLASizeChecker.cpp Fix some Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-10 19:11:58 +00:00
ValistChecker.cpp [analyzer] Fix memory error bug category capitalization. 2017-05-03 11:47:13 +00:00
VforkChecker.cpp Fix Clang-tidy modernize-use-nullptr warnings; other minor fixes. 2016-01-26 19:01:06 +00:00
VirtualCallChecker.cpp [analyzer] Fix an assertion fail in VirtualCallChecker 2017-09-21 08:18:59 +00:00