[cfe-dev] Issue when Generating a Namespace-qualified TemplateSpecializationType
scott constable via cfe-dev
cfe-dev at lists.llvm.org
Tue Aug 2 17:18:53 PDT 2016
Hi All,
I'm trying to use the getCanonicalTemplateSpecializationType() function
from the ASTContext API to generate a TemplateSpecializationType. The API
works just fine, except in the case where the Template class is qualified,
e.g. with a namespace. For example, if I process the following code:
namespace foo {
template<typename T>bar {};
}
and generate a template specialization with an "int" argument, the result
is "bar<int>" whereas it should be "foo::bar<int>". The reason, it seems,
is an oddity in getCanonicalTemplateSpecializationType()'s implementation:
ASTContext.cpp:
3529 // Look through qualified template names.
3530 if (QualifiedTemplateName *QTN =
Template.getAsQualifiedTemplateName())
3531 Template = TemplateName(QTN->getTemplateDecl());
So essentially the ASTContext is just throwing away the namespace qualifier
(I'm giving it a QualifiedTemplateName as an argument). Is this a bug? Am I
using the wrong api?
Thanks in advance,
Scott Constable
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160802/9dc4db92/attachment.html>
More information about the cfe-dev
mailing list