[cfe-dev] Type of enum constants

Phil King phil_king at rocketmail.com
Fri Feb 24 14:35:44 PST 2012


On 24 Feb 2012, at 21:46, Eli Friedman <eli.friedman at gmail.com> wrote:

> On Fri, Feb 24, 2012 at 1:23 PM, Phil King <phil_king at rocketmail.com> wrote:
>> 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.
> 
> Try TagDecl::getTypedefNameForAnonDecl .

That does the job. Thanks.

How do I do the same if there is a tag name?

Phil



More information about the cfe-dev mailing list