aboutsummaryrefslogtreecommitdiff
path: root/lib/Checker/AnalysisConsumer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Checker/AnalysisConsumer.cpp')
-rw-r--r--lib/Checker/AnalysisConsumer.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Checker/AnalysisConsumer.cpp b/lib/Checker/AnalysisConsumer.cpp
index f902124613..e1591a6a64 100644
--- a/lib/Checker/AnalysisConsumer.cpp
+++ b/lib/Checker/AnalysisConsumer.cpp
@@ -211,8 +211,10 @@ void AnalysisConsumer::HandleTranslationUnit(ASTContext &C) {
case Decl::CXXMethod:
case Decl::Function: {
FunctionDecl* FD = cast<FunctionDecl>(D);
-
- if (FD->isThisDeclarationADefinition()) {
+ // We skip function template definitions, as their semantics is
+ // only determined when they are instantiated.
+ if (FD->isThisDeclarationADefinition() &&
+ !FD->isDependentContext()) {
if (!Opts.AnalyzeSpecificFunction.empty() &&
FD->getDeclName().getAsString() != Opts.AnalyzeSpecificFunction)
break;