hanchenye-llvm-project/clang/test/Analysis
Artem Dergachev 7a0088bbae [analyzer] Make CloneDetector recognize different variable patterns.
CloneDetector should be able to detect clones with renamed variables.
However, if variables are referenced multiple times around the code sample,
the usage patterns need to be recognized.

For example, (x < y ? y : x) and (y < x ? y : x) are no longer clones,
however (a < b ? b : a) is still a clone of the former.

Variable patterns are computed and compared during a separate filtering pass.

Patch by Raphael Isemann!

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

llvm-svn: 277757
2016-08-04 19:37:00 +00:00
..
Inputs [analyzer] Suppress false positives in std::shared_ptr 2016-07-06 21:52:55 +00:00
copypaste [analyzer] Make CloneDetector recognize different variable patterns. 2016-08-04 19:37:00 +00:00
diagnostics [analyzer] Suppress false positives in std::shared_ptr 2016-07-06 21:52:55 +00:00
engine
inlining [analyzer] Suppress false positives in std::shared_ptr 2016-07-06 21:52:55 +00:00
objc
CFContainers-invalid.c
CFContainers.mm [analyzer] Remove ObjCContainersChecker size information when a CFMutableArrayRef escapes 2015-06-15 01:00:42 +00:00
CFDateGC.m
CFNumber.c
CFRetainRelease_NSAssertionHandler.m
CGColorSpace.c
CheckNSError.m
DeallocMissingRelease.m [analyzer] Teach ObjCDeallocChecker about XCTestCase 2016-06-22 17:03:10 +00:00
DeallocUseAfterFreeErrors.m [analyzer] Move ObjCSuperDeallocChecker out of the alpha package. 2016-03-02 22:01:03 +00:00
DynamicTypePropagation.m [analyzer] Move the ObjCGenericsChecker out of the alpha package. 2015-11-03 19:38:03 +00:00
MPIMock.h [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
Malloc+MismatchedDeallocator+NewDelete.cpp Detect uses of mismatching forms of 'new' and 'delete' 2015-05-18 19:59:11 +00:00
Malloc+MismatchedDeallocator_intersections.cpp [analyzer] This implements potential undefbehavior.ZeroAllocDereference checker. 2015-04-14 14:18:04 +00:00
Malloc+NewDelete_intersections.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
MemRegion.cpp [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
MismatchedDeallocator-checker-test.mm Detect uses of mismatching forms of 'new' and 'delete' 2015-05-18 19:59:11 +00:00
MismatchedDeallocator-path-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
MissingDealloc.m [analyzer] Move ObjCDeallocChecker out of the alpha package. 2016-03-02 21:50:54 +00:00
NSContainers.m [static analyzer] Don't flag nil storage into NSMutableDictionary. 2015-11-11 00:49:22 +00:00
NSPanel.m
NSString.m [analyzer] Use BodyFarm-synthesized body even when actual body available. 2016-03-28 23:55:58 +00:00
NSWindow.m
NewDelete+MismatchedDeallocator_intersections.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDelete-checker-test.cpp [analyzer] This implements potential undefbehavior.ZeroAllocDereference checker. 2015-04-14 14:18:04 +00:00
NewDelete-custom.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDelete-intersections.mm [analyzer] This implements potential undefbehavior.ZeroAllocDereference checker. 2015-04-14 14:18:04 +00:00
NewDelete-path-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
NewDelete-variadic.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDeleteLeaks-PR18394.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDeleteLeaks-PR19102.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NoReturn.m [analyzer] Handle another Android assert function. 2015-12-30 00:08:59 +00:00
OSAtomic_mac.cpp
ObjCProperties.m
ObjCRetSigs.m [Static Analyzer] Some tests do not turn on core checkers. Running the analyzers without the core checkers is not supported. 2015-07-24 03:25:13 +00:00
PR2599.m Update tests touched by r249656 2015-10-08 06:31:22 +00:00
PR2978.m [analyzer] Move ObjCDeallocChecker out of the alpha package. 2016-03-02 21:50:54 +00:00
PR3991.m
PR7218.c
PR9741.cpp
PR12905.c
PR24184.cpp [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
additive-folding-range-constraints.c
additive-folding.cpp
analyzeOneFunction.m
analyze_display_progress.cpp [analyzer] AnalysisConsumer: print fully-qualified function name while displaying progress 2016-02-03 13:35:33 +00:00
analyzer-checker-config.c [Static Analyzer] Basic per checker command line option validation. 2015-07-09 21:43:45 +00:00
analyzer-config.c Reapply r251621 "[Analyzer] Widening loops which do not exit" 2015-10-30 15:23:57 +00:00
analyzer-config.cpp Reapply r251621 "[Analyzer] Widening loops which do not exit" 2015-10-30 15:23:57 +00:00
analyzer-stats.c
array-struct-region.c
array-struct-region.cpp
array-struct.c [analyzer] Relax an assertion in VisitLvalArraySubscriptExpr 2015-02-05 01:02:59 +00:00
atomics.c [analyzer] Add rudimentary handling of AtomicExpr. 2016-07-08 00:53:18 +00:00
auto-obj-dtors-cfg-output.cpp
base-init.cpp
bitwise-ops.c
blocks-no-inline.c
blocks.m [analyzer] Find ObjC 'self' decl even when block captures local named 'self'. 2016-02-23 22:26:04 +00:00
blocks.mm [analyzer] Include block capture copy expressions in the CFG. 2015-11-25 22:35:37 +00:00
bool-assignment.c [analyzer] Fix an off-by-one in evalIntegralCast() 2016-01-18 10:17:16 +00:00
bstring.c
bstring.cpp [analyzer] Invalidate destination of std::copy() and std::copy_backward(). 2016-02-07 16:55:44 +00:00
bug_hash_test.cpp [analyzer] Fix IssueHash generation. 2015-12-01 09:00:41 +00:00
bug_hash_test.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
builtin-functions.cpp
builtin_signbit.cpp Fix __builtin_signbit for ppcf128 type 2015-11-06 14:52:46 +00:00
call-invalidation.cpp [analyzer] Let TK_PreserveContents span across the whole base region. 2016-04-25 14:44:25 +00:00
casts.c
casts.cpp
casts.m
cfg.cpp
cfref_PR2519.c
cfref_rdar6080742.c
check-deserialization.cpp
checker-plugins.c
chroot.c
comparison-implicit-casts.cpp
complex-init-list.cpp
complex.c
concrete-address.c
conditional-operator.cpp
conditional-path-notes.c [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
const-method-call.cpp [analyzer] Fix assertion failure invalidating on const member function calls (PR25392). 2015-11-09 19:50:29 +00:00
constant-folding.c
coverage.c
crash-trace.c Fix REQUIRES lines on tests from r228735. Thanks Kristof for pointing out the missing commas 2015-02-11 19:45:13 +00:00
cstring-syntax-cxx.cpp
cstring-syntax.c
ctor.mm
cxx-crashes.cpp
cxx-for-range-cfg.cpp
cxx-for-range.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
cxx-method-names.cpp
cxx11-crashes.cpp P0188R1: add support for standard [[fallthrough]] attribute. This is almost 2016-03-08 00:32:55 +00:00
dead-stores.c DeadStoresChecker: Don't warn about dead stores into volatile variables 2016-06-24 16:26:43 +00:00
dead-stores.cpp [analyzer] Skip checking blocks in dependent contexts. 2015-11-18 22:46:52 +00:00
dead-stores.m Update mailing list references to lists.llvm.org 2015-08-05 03:55:23 +00:00
debug-CallGraph.c [CallGraph] Make sure the edges are not missed due to re-declarations 2014-12-17 00:34:07 +00:00
default-analyze.m
default-diagnostic-visitors.c
delayed-template-parsing-crash.cpp Do not crash when static analysis encounters a FunctionDecl that has a delayed template parse of its body. 2015-08-20 21:27:35 +00:00
delegates.m
derived-to-base.cpp
designated-initializer.c Implementing C99 partial re-initialization behavior (DR-253) 2015-06-10 00:27:52 +00:00
disable-all-checks.c
div-zero.cpp
division-by-zero.c Fix a crash by division by zero in analyzer 2015-06-25 14:06:02 +00:00
domtest.c
dtor-cxx11.cpp
dtor.cpp Analyzer: Teach analyzer how to handle TypeTraitExpr 2015-09-22 19:33:15 +00:00
dtors-in-dtor-cfg-output.cpp
dynamic-cast.cpp
dynamic_type_check.m [Static Analyzer] Fixed a false positive case in DynamicTypeChecker when dealing with forward declarations. 2015-09-18 23:38:57 +00:00
edges-new.mm [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
elementtype.c
enum.cpp
exceptions.mm
exercise-ps.c
explain-svals.cpp [analyzer] Provide .def-files and visitors for SVal/SymExpr/MemRegion, v2. 2016-01-15 15:22:05 +00:00
fields.c [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
free.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
func.c
generics.m [analyzer] Fix crash in ObjCGenericsChecker 2016-05-11 20:28:41 +00:00
global-region-invalidation.c
global_region_invalidation.mm
html-diags-multifile.c
html-diags-multifile.h
html-diags.c Remove shell requirements from tests that use 'cd' 2015-03-02 22:42:58 +00:00
identical-expressions.cpp [Static Analyzer] Warn when inner and outer conditions are identical. The inner condition is always true. 2015-08-10 07:18:29 +00:00
index-type.c [analyzer] Use a wider integer type for an array index. 2016-02-01 09:29:17 +00:00
initializer.cpp [analyzer] Better detect when C++ object was constructed into existing region. 2015-12-17 00:28:33 +00:00
initializers-cfg-output.cpp Make Sema::getPrintingPolicy less ridiculously expensive. This used to perform 2016-05-19 01:39:10 +00:00
inline-not-supported.c
inline-plist.c [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
inline-unique-reports.c [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
inline.c
inline.cpp [analyzer] Improve modeling of static initializers. 2015-11-19 01:25:28 +00:00
inline2.c
inline3.c
inline4.c
ivars.m
keychainAPI-diagnostic-visitor.m
keychainAPI.m
kmalloc-linux.c
lambda-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
lambdas-generalized-capture.cpp [analyzer] Add tests for generalized lambda capture (C++14). NFC. 2015-11-26 00:11:23 +00:00
lambdas.cpp [analyzer] Fix crash when lambda captures a variable-length array. 2015-12-07 23:01:53 +00:00
lambdas.mm [analyzer] Find ObjC 'self' decl even when block captures local named 'self'. 2016-02-23 22:26:04 +00:00
lit.local.cfg
live-variables.cpp
live-variables.m
localization-aggressive.m [analyzer] Add 'optin' checker package and move localizability checkers into it. 2015-11-04 21:33:41 +00:00
localization.m [analyzer] Add path note for localizability checker. 2016-04-28 19:44:40 +00:00
logical-ops.c [Sema]. Warn when logical expression is a pointer 2014-11-14 17:12:50 +00:00
loop-widening.c Reapply r251621 "[Analyzer] Widening loops which do not exit" 2015-10-30 15:23:57 +00:00
lvalue.cpp
malloc-annotations.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
malloc-interprocedural.c
malloc-overflow.c [analyzer] Discard malloc-overflow bug-report when a known size is malloc'ed. 2015-09-23 23:27:55 +00:00
malloc-overflow.cpp
malloc-overflow2.c clang/test/Analysis/malloc-overflow2.c: Appease 32-bit targets. 2015-09-24 02:49:00 +00:00
malloc-plist.c [analyzer] Update RegionStoreManager::getBinding to handle BlockDataRegions 2015-11-05 18:56:42 +00:00
malloc-protoype.c
malloc-sizeof.c
malloc-sizeof.cpp
malloc-three-arg.c
malloc.c [analyzer] Let TK_PreserveContents span across the whole base region. 2016-04-25 14:44:25 +00:00
malloc.cpp
malloc.m
malloc.mm
member-expr.cpp
method-arg-decay.m
method-call-intra-p.cpp
method-call-path-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
method-call.cpp
misc-ps-64.m
misc-ps-arm.m
misc-ps-cxx0x.cpp
misc-ps-eager-assume.m
misc-ps-ranges.m
misc-ps-region-store-i386.m
misc-ps-region-store-x86_64.m
misc-ps-region-store.cpp
misc-ps-region-store.m
misc-ps-region-store.mm
misc-ps.c
misc-ps.m
model-file.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
mpichecker.cpp [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
mpicheckernotes.cpp [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
new-with-exceptions.cpp
new.cpp
nil-receiver-undefined-larger-than-voidptr-ret-region.m
nil-receiver-undefined-larger-than-voidptr-ret.m
no-exit-cfg.c
no-outofbounds.c
no-unreachable-dtors.cpp CFG: Delay creating Dtors for CompoundStmts which end in ReturnStmt 2015-11-14 00:36:50 +00:00
nonnull.m
null-deref-path-notes.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
null-deref-ps-region.c
null-deref-ps.c [analyzer] Don't report null dereferences on address_space annotated memory 2016-01-06 00:32:49 +00:00
nullability-no-arc.mm [analyzer] Nullability: Don't warn along paths where null returned from non-null. 2016-03-28 20:30:25 +00:00
nullability.mm [analyzer] Nullability: Suppress diagnostic on bind with cast. 2016-04-13 17:59:24 +00:00
nullability_nullonly.mm [analyzer] Nullability: add option to not report on calls to system headers. 2016-03-05 01:32:43 +00:00
nullptr.cpp [analyzer] Don't report null dereferences on address_space annotated memory 2016-01-06 00:32:49 +00:00
objc-arc.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
objc-bool.m
objc-boxing.m [Sema]. Warn when logical expression is a pointer 2014-11-14 17:12:50 +00:00
objc-for.m
objc-message.m [analyzer] Skip Pre/Post handlers for ObjC calls when receiver is nil. 2015-09-15 01:13:53 +00:00
objc-method-coverage.m
objc-properties.m
objc-radar17039661.m [analyzer] Look for allocation site in the parent frames as well as the current one. 2015-02-05 01:02:53 +00:00
objc-string.mm
objc-subscript.m
objc_invalidation.m
operator-calls.cpp
out-of-bounds.c
outofbound-notwork.c
outofbound.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
override-werror.c
padding_c.c clang/test/Analysis/padding_c.c: Suppress a test incompatible to i686-linux. 2015-12-15 09:37:01 +00:00
padding_cpp.cpp [PATCH] Adding checker to detect excess padding in records 2015-12-14 21:38:59 +00:00
padding_message.cpp [PATCH] Adding checker to detect excess padding in records 2015-12-14 21:38:59 +00:00
plist-html-macros.c
plist-macros.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
plist-output-alternate.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
plist-output.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
pointer-to-member.cpp
pr4209.m
pr22954.c [analyzer] When memcpy'ing into a fixed-size array, do not invalidate entire region. 2015-09-24 16:52:56 +00:00
pr_2542_rdar_6793404.m
pr_4164.c
properties.m [analyzer] Add tests for Objective-C class properties 2016-05-06 18:24:50 +00:00
properties.mm
pthreadlock.c
ptr-arith.c [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
ptr-arith.cpp [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
qt_malloc.cpp [analyzer] Fix false warning about memory leak for QApplication::postEvent 2016-01-06 00:32:56 +00:00
range_casts.c [analyzer] Fix RangeConstraintManager's pinning of single value ranges. 2016-01-12 10:40:45 +00:00
rdar-6442306-1.m [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
rdar-6540084.m [Static Analyzer] Some tests do not turn on core checkers. Running the analyzers without the core checkers is not supported. 2015-07-24 03:25:13 +00:00
rdar-6541136-region.c
rdar-6562655.m
rdar-6600344-nil-receiver-undefined-struct-ret.m
rdar-7168531.m
redefined_system.c [analyzer] Do not crash in the KeychainAPI checker on user defined 'free()'. 2015-02-05 01:02:56 +00:00
refcnt_naming.m
reference.cpp
reference.mm
region-1.m
region-store.c
region-store.cpp
reinterpret-cast.cpp [analyzer] Fix MemRegion crash casting non-struct to derived struct (PR25426). 2015-12-05 00:22:36 +00:00
retain-release-cache-out.m
retain-release-cf-audited.m
retain-release-gc-only.m Update tests touched by r249656 2015-10-08 06:31:22 +00:00
retain-release-inline.m
retain-release-path-notes-gc.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
retain-release-path-notes.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
retain-release-region-store.m Update tests touched by r249656 2015-10-08 06:31:22 +00:00
retain-release.m Replace __double_underscored type nullability qualifiers with _Uppercase_underscored 2015-06-24 22:02:08 +00:00
retain-release.mm
return-ptr-range.cpp [analyzer] Fix symbolic element index lifetime. 2015-12-10 09:28:06 +00:00
security-syntax-checks-no-emit.c
security-syntax-checks.m Enable security checks for arc4random() on CloudABI as well. 2015-03-11 08:48:55 +00:00
self-assign.cpp [analyzer] Add checker modeling potential C++ self-assignment 2016-07-21 23:42:31 +00:00
self-init.m
shallow-mode.m
simple-stream-checks.c
sizeofpointer.c
stack-addr-ps.c Register parameters have local storage. 2015-02-04 07:15:12 +00:00
stack-addr-ps.cpp
stack-block-returned.cpp
stackaddrleak.c [Analyzer] Correct stack address escape diagnostic 2016-05-26 14:02:17 +00:00
static_local.m
stats.c
stream.c
string-fail.c
string.c [analyzer] Fix for PR23790 : constrain return value of strcmp() rather than returning a concrete value. 2016-05-19 23:03:49 +00:00
superclass.m [analyzer] Don't issue alarm in ObjCSuperCallChecker for the super class itself. 2015-08-08 01:31:51 +00:00
svalbuilder-logic.c
switch-case.c [analyzer] Create one state for a range switch case instead of multiple. 2015-09-22 20:31:19 +00:00
symbol-reaper.c [analyzer] Fix symbolic element index lifetime. 2015-12-10 09:28:06 +00:00
taint-generic.c
taint-tester.c
taint-tester.cpp
taint-tester.m
temp-obj-dtors-cfg-output.cpp Make Sema::getPrintingPolicy less ridiculously expensive. This used to perform 2016-05-19 01:39:10 +00:00
templates.cpp
temporaries.cpp [Static Analyzer] Lambda support. 2015-09-11 16:55:01 +00:00
test-after-div-zero.c
test-include-cpp.cpp [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-include-cpp.h [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-include.c [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-include.h [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-objc-non-nil-return-value-checker.m
test-variably-modified-types.c
traversal-algorithm.mm
traversal-begin-end-function.c [analyzer] Add checker callback for beginning of function. 2016-02-19 01:35:10 +00:00
traversal-path-unification.c [analyzer] Add checker callback for beginning of function. 2016-02-19 01:35:10 +00:00
ubigraph-viz.cpp Analyzer: Fix a crasher in UbigraphViz 2015-09-18 21:54:47 +00:00
undef-buffers.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
uninit-const.c
uninit-const.cpp
uninit-msg-expr.m
uninit-ps-rdar6145427.m
uninit-sometimes.cpp
uninit-vals-ps-region.m
uninit-vals-ps.c
uninit-vals.m
unions-region.m
unions.cpp
unix-api.c
unix-fns.c [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
unreachable-code-path.c
unused-ivars.m
variadic-method-types.m
vfork.c [analyzer] Add VforkChecker to find unsafe code in vforked process. 2015-11-06 11:16:31 +00:00
virtualcall.cpp
virtualcall.h
vla.c
weak-functions.c