[cfe-users] libclang: Spelling on typedefs lacks namespaces

Zac Hansen via cfe-users cfe-users at lists.llvm.org
Tue Sep 27 15:00:12 PDT 2016


While it generates some ugly code I found it easier to simply use the
canonical names for all types.   I spent tens of hours fighting this and
never found a good way.

On Tuesday, September 27, 2016, Michael via cfe-users <
cfe-users at lists.llvm.org> wrote:

> Nobody? Wrong list? Any insight in this would be greatly appreciated.
>
> Thanks
>
> Michael
>
> On 08/30/2016 07:00 PM, Michael via cfe-users wrote:
>
>> Hi
>>
>> Hope I picked the right place for this kind of problem, if not please let
>> me know.
>>
>> I'm using libclang to parse header files and generate code from them. I
>> found that clang_getTypeSpelling() usually includes the namespace(s) a type
>> was declared in. However with the exception being typedefs (and same for
>> "using A = B"). Not sure if this is a bug or intended behavior, but it
>> seems at least inconsistent. I also couldn't really find a good workaround
>> for this. I'd have to manually figure out all typedefs (not just pure
>> typedefs, they could also be template parameters or whatever) and then
>> their originating namespaces. This sounds a bit cumbersome and not really
>> straight forward.
>>
>> Minimal example:
>>
>> namespace foo {
>> class Bar {
>> };
>> typedef Bar BarDef;
>> }
>>
>> clang_getTypeSpelling on "Bar" (kind "Record") gives: "foo::Bar"
>> clang_getTypeSpelling on "BarDef" (kind "Typedef") gives: "BarDef" (<==
>> missing "foo::")
>>
>> Any idea how to solve this problem? Am I missing something?
>>
>> Thanks
>>
>> Michael
>> _______________________________________________
>> cfe-users mailing list
>> cfe-users at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>>
>
> _______________________________________________
> cfe-users mailing list
> cfe-users at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20160927/36f76844/attachment.html>


More information about the cfe-users mailing list