If I have:
typedef enum { E } e_t;
and then an expression:
a = E;
is it possible to get back to the typedef name from the DeclRefExpr node for 'E' ?
EnumConstantDecl * EC = dyn_cast< EnumConstantDecl >( DeclRefExpr->getDecl() );
QualType = AC->getASTContext().getEnumType( dyn_cast< EnumDecl >( EC->getDeclContext() ) );
gets me to enum { E } e_t, but not the typedef itself.
Phil.
Try TagDecl::getTypedefNameForAnonDecl .
-Eli
That does the job. Thanks.
How do I do the same if there is a tag name?
Phil
Are you talking about "typedef enum A { B } A;"? If you really need
to find the typedef in that case, I think you're stuck with traversing
the AST to try and find it.
-Eli
Yes, that's what I was after. However, for this case I can get away with knowing if I'm in a declarator, so isEmbeddedInDeclarator() will do.
Phil