From: Axel Naumann Date: Tue, 23 Sep 2014 10:05:20 +0000 (+0200) Subject: Even fwd decl outside TU context. Visit tmplt arg types. X-Git-Tag: v6-02-00-rc1~30 X-Git-Url: https://root.cern.ch/gitweb?p=root.git;a=commitdiff_plain;h=5f0b6df640a7d591a410cc0403a386ef4ba99204 Even fwd decl outside TU context. Visit tmplt arg types. --- diff --git a/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp b/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp index bc5ce85..54d3d3e 100644 --- a/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp +++ b/interpreter/cling/lib/Interpreter/ForwardDeclPrinter.cpp @@ -90,8 +90,8 @@ namespace cling { //This condition should ideally never be triggered //But is needed in case of generating fwd decls for // c++ header. - if (!(*dit)->getDeclContext()->isTranslationUnit()) - continue; + //if (!(*dit)->getDeclContext()->isTranslationUnit()) + // continue; Visit(*dit); skipCurrentDecl(false); @@ -819,6 +819,11 @@ namespace cling { if (!ArgQT.isNull()) { QualType ArgFQQT = utils::TypeName::GetFullyQualifiedType(ArgQT, m_Ctx); + Visit(ArgFQQT); + if (m_SkipFlag) { + skipCurrentDecl(true); + return; + } Out() << " = "; ArgFQQT.print(Out(), m_Policy); } @@ -839,6 +844,7 @@ namespace cling { if (DeclRefExpr* DRE = dyn_cast(DefArg)) { Visit(DRE->getFoundDecl()); if (m_SkipFlag) { + skipCurrentDecl(true); return; } } @@ -1164,7 +1170,7 @@ namespace cling { } bool ForwardDeclPrinter::shouldSkipImpl(VarDecl *D) { - if (D->getType().isConstQualified()) { + if (D->getType().isConstant(m_Ctx)) { Log() << D->getName() <<" Var : Const\n"; m_Visited[D->getCanonicalDecl()] = false; return true;