[cfe-dev] Tracing Typedef Chain

Yaron Keren via cfe-dev cfe-dev at lists.llvm.org
Wed Nov 25 13:49:48 PST 2015


Maybe

Type *T = QT.getTypePtr();
TypedefType *TT = cast<TypedefType>(T);
TT->getDecl()->dumpColor();


2015-11-25 23:42 GMT+02:00 Régis Portalez <cfe-dev at lists.llvm.org>:

> At what level are you working? Once in llvm IR, you can cast your type to
> derived type, and then get the element type
> ------------------------------
> De : Daniel Dilts via cfe-dev <cfe-dev at lists.llvm.org>
> Envoyé : ‎25/‎11/‎2015 22:13
> À : cfe-dev <cfe-dev at lists.llvm.org>
> Objet : Re: [cfe-dev] Tracing Typedef Chain
>
> I'm struggling to make this work.  Could you possibly give me a more
> complete example?
>
> On Mon, Nov 23, 2015 at 9:05 AM, mats petersson <mats at planetcatfish.com>
> wrote:
>
>> If you call `getTypePtr` it should give you the "next" type.
>>
>> --
>> Mats
>>
>> On 23 November 2015 at 16:27, Daniel Dilts via cfe-dev <
>> cfe-dev at lists.llvm.org> wrote:
>>
>>> If I have code like this:
>>>
>>> typedef int X;
>>> typedef X Y;
>>> typedef Y Z;
>>>
>>> Z i = 0;
>>>
>>> I have the QualType for i.  getAsString() returns "Z".
>>> getCanonicalType().getAsString() returns "int".
>>>
>>> Is there some way to trace the typedef chain such that I get "Z", "Y",
>>> "X", and "int"?  Order is not particularly important to me, but it would be
>>> nice to get them in that order.
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>
>>>
>>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20151125/acad5249/attachment.html>


More information about the cfe-dev mailing list