llvm-project/clang/lib/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
..
AnalysisDeclContext.cpp [analyzer] Use BodyFarm-synthesized body even when actual body available. 2016-03-28 23:55:58 +00:00
BodyFarm.cpp P0305R0: Semantic analysis and code generation for C++17 init-statement for 'if' and 'switch': 2016-07-14 00:11:03 +00:00
BodyFarm.h Make headers self-contained. 2016-02-02 11:06:57 +00:00
CFG.cpp [CFG] Fix crash finding destructor of lifetime-extended temporary. 2016-08-02 21:07:23 +00:00
CFGReachabilityAnalysis.cpp Rework CFG edges to encode potentially unreachable edges, instead of just making them NULL. 2014-02-27 00:24:00 +00:00
CFGStmtMap.cpp [C++11] Use 'nullptr'. Analysis edition. 2014-05-20 04:30:07 +00:00
CMakeLists.txt [analyzer] Add basic capabilities to detect source code clones. 2016-07-26 18:13:12 +00:00
CallGraph.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 19:38:18 +00:00
CloneDetection.cpp [analyzer] Make CloneDetector recognize different variable patterns. 2016-08-04 19:37:00 +00:00
CocoaConventions.cpp Allow the cf_returns_[not_]retained attributes to appear on out-parameters. 2015-06-19 23:17:46 +00:00
CodeInjector.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00
Consumed.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
Dominators.cpp
FormatString.cpp Check 'r' and 'y specifiers of freebsd_kernel_printf format strings on PS4 2016-04-26 23:19:00 +00:00
FormatStringParsing.h [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
LiveVariables.cpp Rewrite users of Stmt::child_begin/end into for-range loops. 2015-07-03 15:12:24 +00:00
ObjCNoReturn.cpp
PostOrderCFGView.cpp Reverting r214064 and r215650 while investigating a pesky performance regression 2014-09-23 08:34:41 +00:00
PrintfFormatString.cpp Enable support for __float128 in Clang and enable it on pertinent platforms 2016-05-09 08:52:33 +00:00
ProgramPoint.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00
PseudoConstantAnalysis.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:27:06 +00:00
ReachableCode.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
ScanfFormatString.cpp [Sema] Handle UTF-8 invalid format string specifiers 2016-03-29 17:35:02 +00:00
ThreadSafety.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
ThreadSafetyCommon.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
ThreadSafetyLogical.cpp Revert r240270 ("Fixed/added namespace ending comments using clang-tidy"). 2015-06-22 23:07:51 +00:00
ThreadSafetyTIL.cpp Hide away implementation details of the ThreadSafetyAnalysis in anonymous namespaces 2015-03-09 14:19:54 +00:00
UninitializedValues.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00