hanchenye-llvm-project/clang/lib/Analysis
Erich Keane 5c2c60d2fc Teach CallGraph to look into Generic Lambdas.
CallGraph visited LambdaExpr by getting the Call Operator from
CXXRecordDecl (LambdaExpr::getCallOperator calls
CXXRecordDecl::getLambdaCallOperator), which replaced generic lambda
call operators with the non-instantiated FunctionDecl.  The result was
that the CallGraph would only pick up non-dependent calls.

This patch does a few things:
1- Extend CXXRecordDecl to have a getDependentLambdaCallOperator, which
will get the FunctionTemplateDecl, rather than immediately getting the
TemplateDecl.
2- Define getLambdaCallOperator and getDependentLambdaCallOperator in
terms of a common function.
3- Extend LambdaExpr with a getDependentCallOperator, which just calls
the above function.
4- Changes CallGraph to handle Generic LambdaExprs.

llvm-svn: 373247
2019-09-30 19:12:29 +00:00
..
plugins Don't install example analyzer plugins 2019-09-28 13:28:50 +00:00
AnalysisDeclContext.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
BodyFarm.cpp [analyzer] Fix more analyzer warnings on analyzer and libAnalysis. 2019-08-28 21:19:58 +00:00
CFG.cpp Merge and improve code that detects same value in comparisons. 2019-09-21 03:02:26 +00:00
CFGReachabilityAnalysis.cpp
CFGStmtMap.cpp [CFG] NFC: Remove implicit conversion from CFGTerminator to Stmt *. 2019-05-24 01:34:22 +00:00
CMakeLists.txt [analyzer] NFC: Move PathDiagnostic classes to libAnalysis. 2019-09-11 20:54:27 +00:00
CallGraph.cpp Teach CallGraph to look into Generic Lambdas. 2019-09-30 19:12:29 +00:00
CloneDetection.cpp [clang] Use the new Regex::isValid() with no parameter 2019-08-20 16:07:31 +00:00
CocoaConventions.cpp [analyzer] Fix more analyzer warnings on analyzer and libAnalysis. 2019-08-28 21:19:58 +00:00
CodeInjector.cpp
ConstructionContext.cpp
Consumed.cpp Revert r373034 2019-09-27 01:58:31 +00:00
Dominators.cpp Make a buildbot using a buggy gcc happy 2019-07-03 12:06:10 +00:00
ExprMutationAnalyzer.cpp [analyzer] handle modification of vars inside an expr with comma operator 2019-03-07 15:50:52 +00:00
LiveVariables.cpp [CFG] NFC: Remove implicit conversion from CFGTerminator to Stmt *. 2019-05-24 01:34:22 +00:00
ObjCNoReturn.cpp
PathDiagnostic.cpp [analyzer] PR43102: Fix an assertion and an out-of-bounds error for diagnostic location construction 2019-09-18 22:24:26 +00:00
PostOrderCFGView.cpp
ProgramPoint.cpp [analyzer] exploded-graph-rewriter: Improve source location dumps. 2019-07-12 02:10:33 +00:00
ReachableCode.cpp Improve -Wtautological-overlap-compare 2019-09-21 02:37:10 +00:00
RetainSummaryManager.cpp [analyzer] Fix more analyzer warnings on analyzer and libAnalysis. 2019-08-28 21:19:58 +00:00
ThreadSafety.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
ThreadSafetyCommon.cpp Thread Safety: also look at ObjC methods 2019-03-25 20:06:32 +00:00
ThreadSafetyLogical.cpp
ThreadSafetyTIL.cpp
UninitializedValues.cpp [OPENMP]Initial fix PR42392: Improve -Wuninitialized warnings for OpenMP programs. 2019-07-11 14:54:17 +00:00