llvm-project/clang/lib/StaticAnalyzer/Checkers
Gabor Marton 96ec9b6ff2 [Analyzer] ConversionChecker: track back the cast expression
Adding trackExpressionValue to the checker so it tracks the value of the
implicit cast's DeclRefExpression up to initialization/assignment. This
way the report becomes cleaner.

Differential Revision: https://reviews.llvm.org/D109836
2021-09-16 11:42:54 +02:00
..
MPI-Checker [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
RetainCountChecker [analyzer] Change FindLastStoreBRVisitor to use Tracker 2021-06-11 12:49:03 +03:00
UninitializedObject [NFC] Use hasAnyName matcher in place of anyOf(hasName()...) 2020-07-07 14:31:04 +01:00
WebKit [Analyzer][WebKit] Use tri-state types for relevant predicates 2020-09-22 21:57:24 -07:00
cert [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
AllocationState.h
AnalysisOrderChecker.cpp [analyzer] Enable constructor support in evalCall event. 2020-06-25 09:47:13 -07:00
AnalyzerStatsChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ArrayBoundChecker.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
ArrayBoundCheckerV2.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
BasicObjCFoundationChecks.cpp [analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait 2020-09-11 15:58:48 +02:00
BlockInCriticalSectionChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
BoolAssignmentChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
BuiltinFunctionChecker.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
CMakeLists.txt [Analyzer][WebKit] UncountedLocalVarsChecker 2020-09-22 11:05:04 -07:00
CStringChecker.cpp [clang] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
CStringSyntaxChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
CXXSelfAssignmentChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
CallAndMessageChecker.cpp [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
CastSizeChecker.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
CastToStructChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
CastValueChecker.cpp [analyzer] pr47037: CastValueChecker: Support for the new variadic isa<>. 2020-08-27 12:15:25 -07:00
CheckObjCDealloc.cpp [analyzer] Simplify function SVal::getAsSymbolicExpression and similar ones 2020-08-03 15:03:35 +03:00
CheckObjCInstMethSignature.cpp Reapply commit b7425e956 2021-08-16 12:18:40 -07:00
CheckPlacementNew.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
CheckSecuritySyntaxOnly.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
CheckSizeofPointer.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
CheckerDocumentation.cpp
ChrootChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
CloneChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ContainerModeling.cpp [clang] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
ConversionChecker.cpp [Analyzer] ConversionChecker: track back the cast expression 2021-09-16 11:42:54 +02:00
DeadStoresChecker.cpp [analyzer] Fix dead store checker false positive 2021-04-08 16:12:42 +03:00
DebugCheckers.cpp [analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist 2020-09-15 17:43:02 +02:00
DebugContainerModeling.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
DebugIteratorModeling.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
DeleteWithNonVirtualDtorChecker.cpp [analyzer][NFC] Introduce CXXDeallocatorCall, deploy it in MallocChecker 2020-05-19 00:18:38 +02:00
DereferenceChecker.cpp PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
DirectIvarAssignment.cpp [analyzer][DirectIvarAssignment] Turn DirectIvarAssignmentForAnnotatedFunctions into a checker option 2020-05-19 15:41:43 +02:00
DivZeroChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
DynamicTypeChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
DynamicTypePropagation.cpp [analyzer][ObjCGenerics] Don't emit diagnostics under the name core.DynamicTypePropagation 2020-05-20 00:19:20 +02:00
EnumCastOutOfRangeChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ExprInspectionChecker.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
FixedAddressChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
FuchsiaHandleChecker.cpp [analyzer] Update Fuchsia checker to catch releasing unowned handles. 2021-01-06 16:23:49 -08:00
GCDAntipatternChecker.cpp [clang] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
GTestChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
GenericTaintChecker.cpp Make LLVM build in C++20 mode 2020-12-17 10:44:10 +00:00
IdenticalExprChecker.cpp [OPENMP50]Add initial support for OpenMP 5.0 iterator. 2020-04-02 08:28:15 -04:00
InnerPointerChecker.cpp [analyzer] Fix false positives in inner pointer checker (PR49628) 2021-04-08 20:30:12 +03:00
InterCheckerAPI.h [analyzer][MallocChecker][NFC] Communicate the allocation family to auxiliary functions with parameters 2020-02-25 11:17:32 +01:00
InvalidatedIteratorChecker.cpp [Analyzer] Handle pointer implemented as iterators in iterator checkers 2020-07-01 09:04:28 +02:00
Iterator.cpp [clang] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
Iterator.h [Analyzer] Handle pointer implemented as iterators in iterator checkers 2020-07-01 09:04:28 +02:00
IteratorModeling.cpp [analyzer] Model iterator random incrementation symmetrically 2020-08-04 11:04:12 +02:00
IteratorRangeChecker.cpp [analyzer] Crash fix for alpha.cplusplus.IteratorRange 2021-03-10 12:42:24 +01:00
IvarInvalidationChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
LLVMConventionsChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
LocalizationChecker.cpp clang/StaticAnalyzer: Stop using SourceManager::getBuffer 2020-10-15 00:34:24 -04:00
MIGChecker.cpp [analyzer] Refactor trackExpressionValue to accept TrackingOptions 2021-06-11 12:49:04 +03:00
MacOSKeychainAPIChecker.cpp [analyzer] Simplify function SVal::getAsSymbolicExpression and similar ones 2020-08-03 15:03:35 +03:00
MacOSXAPIChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
MallocChecker.cpp [analyzer] MallocChecker: Add notes from NoOwnershipChangeVisitor only when a function "intents", but doesn't change ownership, enable by default 2021-09-13 15:01:20 +02:00
MallocOverflowSecurityChecker.cpp [analyzer] MallocOverflow should consider comparisons only preceding malloc 2021-08-27 14:41:26 +02:00
MallocSizeofChecker.cpp [analyzer] MallocSizeof: sizeof pointer type is compatible with void* 2021-05-30 09:51:41 +08:00
MismatchedIteratorChecker.cpp [Analyzer] Handle pointer implemented as iterators in iterator checkers 2020-07-01 09:04:28 +02:00
MmapWriteExecChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
Move.h [analyzer] PR41269: Add a bit of C++ smart pointer modeling. 2019-04-23 02:45:42 +00:00
MoveChecker.cpp [clang] NFC: Rename rvalue to prvalue 2021-06-09 12:27:10 +02:00
NSAutoreleasePoolChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
NSErrorChecker.cpp Reapply commit b7425e956 2021-08-16 12:18:40 -07:00
NoReturnFunctionChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
NonNullParamChecker.cpp [analyzer] Fix crash for non-pointers annotated as nonnull 2020-05-13 13:36:49 +03:00
NonnullGlobalConstantsChecker.cpp Correct Doxygen syntax for inline code 2021-03-16 15:17:45 +01:00
NullabilityChecker.cpp [analyzer] Add forwarding `addVisitor` method 2021-06-03 17:10:16 +03:00
NumberObjectConversionChecker.cpp [clang][NFC] Add 'override' keyword to virtual function overrides 2020-07-14 08:59:57 -07:00
OSObjectCStyleCast.cpp [analyzer] Support allocClassWithName in OSObjectCStyleCast checker 2021-03-30 15:58:06 +03:00
ObjCAtSyncChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ObjCAutoreleaseWriteChecker.cpp Correct Doxygen syntax for inline code 2021-03-16 15:17:45 +01:00
ObjCContainersASTChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ObjCContainersChecker.cpp [analyzer] Refactor trackExpressionValue to accept TrackingOptions 2021-06-11 12:49:04 +03:00
ObjCMissingSuperCallChecker.cpp Upgrade SmallSets of pointer-like types to SmallPtrSet 2020-07-20 16:54:29 +02:00
ObjCPropertyChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ObjCSelfInitChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ObjCSuperDeallocChecker.cpp [analyzer] Track runtime types represented by Obj-C Class objects 2020-04-29 13:35:53 +03:00
ObjCUnusedIVarsChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
PaddingChecker.cpp [analyzer] Fix calculating offset for fields with an empty type 2021-07-04 06:57:11 +03:00
PointerArithChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
PointerIterationChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
PointerSortingChecker.cpp Add some explicit use of TK_AsIs 2020-05-23 01:04:44 +01:00
PointerSubChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
PthreadLockChecker.cpp [clang][Checkers] Fix PthreadLockChecker state cleanup at dead symbol. 2021-04-06 11:15:29 +02:00
ReturnPointerRangeChecker.cpp [clang][analyzer] Improve bug report in alpha.security.ReturnPtrRange 2021-08-11 13:04:55 +02:00
ReturnUndefChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
ReturnValueChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
RunLoopAutoreleaseLeakChecker.cpp Correct Doxygen syntax for inline code 2021-03-16 15:17:45 +01:00
STLAlgorithmModeling.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
SimpleStreamChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
SmartPtr.h [analyzer] Handle std::swap for std::unique_ptr 2021-07-18 14:38:55 +05:30
SmartPtrChecker.cpp [Analyzer] Support note tags for smart ptr checker 2020-08-11 23:27:16 +02:00
SmartPtrModeling.cpp [analyzer] Fix for faulty namespace test in SmartPtrModelling 2021-07-21 18:23:35 +05:30
StackAddrEscapeChecker.cpp [analyzer] Catch leaking stack addresses via stack variables 2021-08-27 11:31:16 +02:00
StdLibraryFunctionsChecker.cpp [analyzer][StdLibraryFunctionsChecker] Track dependent arguments 2021-04-27 15:35:58 +02:00
StreamChecker.cpp [clang][analyzer] Improve report of file read at EOF condition (alpha.unix.Stream checker). 2021-07-21 08:54:11 +02:00
Taint.cpp [analyzer] Simplify function SVal::getAsSymbolicExpression and similar ones 2020-08-03 15:03:35 +03:00
Taint.h [analyzer] Add custom filter functions for GenericTaintChecker 2019-11-23 20:12:15 +01:00
TaintTesterChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
TestAfterDivZeroChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
TraversalChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
TrustNonnullChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
UndefBranchChecker.cpp [analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait 2020-09-11 15:58:48 +02:00
UndefCapturedBlockVarChecker.cpp [analyzer] Change FindLastStoreBRVisitor to use Tracker 2021-06-11 12:49:03 +03:00
UndefResultChecker.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
UndefinedArraySubscriptChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
UndefinedAssignmentChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
UnixAPIChecker.cpp Remove llvm::Error include form Diagnostic.h 2020-04-06 10:42:17 -07:00
UnreachableCodeChecker.cpp [analyzer] Introduce common bug category "Unused code". 2021-03-17 20:58:27 -07:00
VLASizeChecker.cpp [analyzer] DynamicSize: Rename 'size' to 'extent' 2021-04-05 19:20:43 +02:00
ValistChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
VforkChecker.cpp [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions 2020-03-27 14:34:09 +01:00
VirtualCallChecker.cpp [clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString 2020-08-05 13:54:37 +01:00
Yaml.h Add some missing header dependencies 2020-02-27 14:32:12 -08:00