Veto fwd decl of complex template default argument expressions.

Works around issue with ATLAS forward decl of

namespace Eigen{
  namespace internal{
    template <typename T, int Size, int MatrixOrArrayOptions,
              int Alignment = (MatrixOrArrayOptions & DontAlign) ? 0 : (((Size * sizeof(T)) % 16) == 0) ? 16 : 0>
    struct plain_array;
}}
This commit is contained in:
Axel Naumann 2015-01-09 14:51:58 +01:00 committed by sftnight
parent cb18d9bc09
commit 4f217d95b3

View File

@ -858,10 +858,18 @@ namespace cling {
skipDecl(0, "expression template param default failed");
return;
}
} else if (isa<IntegerLiteral>(DefArg)
|| isa<CharacterLiteral>(DefArg)
|| isa<CXXBoolLiteralExpr>(DefArg)
|| isa<CXXNullPtrLiteralExpr>(DefArg)
|| isa<FloatingLiteral>(DefArg)
|| isa<StringLiteral>(DefArg)) {
Stream << " = ";
DefArg->printPretty(Stream, 0, m_Policy, m_Indentation);
} else {
skipDecl(0, "expression template param default not a literal");
return;
}
Stream << " = ";
DefArg->printPretty(Stream, 0, m_Policy, m_Indentation);
}
}
else if (TemplateTemplateParmDecl *TTPD =