From: Axel Naumann Date: Fri, 19 Sep 2014 14:54:23 +0000 (+0200) Subject: Skip if needed when visiting template args. X-Git-Tag: v6-02-00-rc1~38 X-Git-Url: https://root.cern.ch/gitweb?p=root.git;a=commitdiff_plain;h=e45ab6d7ae356c3a901208313a3545612b3804ef Skip if needed when visiting template args. --- diff --git a/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp b/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp index e2a5701..6edc818 100644 --- a/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp +++ b/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp @@ -867,6 +867,10 @@ namespace cling { StreamRAII Stream(*this); PrintTemplateParameters(D->getTemplateParameters()); + if (m_SkipFlag) { + skipCurrentDecl(true); + return; + } if (const TemplateTemplateParmDecl *TTP = dyn_cast(D)) { @@ -886,12 +890,24 @@ namespace cling { void ForwardDeclPrinter::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { if (m_PrintInstantiation) { + StreamRAII stream(*this); TemplateParameterList *Params = D->getTemplateParameters(); for (FunctionTemplateDecl::spec_iterator I = D->spec_begin(), E = D->spec_end(); I != E; ++I) { PrintTemplateParameters(Params, (*I)->getTemplateSpecializationArgs()); + if (m_SkipFlag) { + skipCurrentDecl(true); + return; + } + Visit(*I); } + if (m_SkipFlag) { + skipCurrentDecl(true); + return; + } + std::string output = stream.take(true); + Out() << output; } return VisitRedeclarableTemplateDecl(D); @@ -900,11 +916,22 @@ namespace cling { void ForwardDeclPrinter::VisitClassTemplateDecl(ClassTemplateDecl *D) { if (m_PrintInstantiation) { + StreamRAII stream(*this); TemplateParameterList *Params = D->getTemplateParameters(); for (ClassTemplateDecl::spec_iterator I = D->spec_begin(), E = D->spec_end(); I != E; ++I) { PrintTemplateParameters(Params, &(*I)->getTemplateArgs()); + if (m_SkipFlag) { + skipCurrentDecl(true); + return; + } Visit(*I); + if (m_SkipFlag) { + skipCurrentDecl(true); + return; + } + std::string output = stream.take(true); + Out() << output; Out() << '\n'; } }