[cfe-dev] Get "real" type name.
Stephan Bergmann via cfe-dev
cfe-dev at lists.llvm.org
Mon Jan 25 08:48:54 PST 2016
On 01/25/2016 05:15 PM, Guillaume Maudoux (Layus) via cfe-dev wrote:
> I am currently fighting with clang libs to get the "real" type name of a
> template parameter.
> My current code obtains the "resolved" name of the type.
>
> For example, with a `typedef int myInt;`,
> templateArgs[0].getAsType().getAsString() returns "int" instead of "myInt".
>
> const TemplateArgumentList& templateArgs = specDecl->getTemplateArgs();
>
> assert(templateArgs.size() == 1);
> assert(templateArgs[0].getKind() == TemplateArgument::Type);
> return
> templateArgs[0].getAsType().getAsString(context->getPrintingPolicy());
>
> Is there some way to extract the type string used in the source code,
> not the type infered by clang ?
Asked something similar two years ago,
<http://lists.llvm.org/pipermail/cfe-dev/2014-February/035161.html>
"SubstTemplateTypeParmType and non-canonical replacement type." But
never found an answer.
More information about the cfe-dev
mailing list