[PATCH] Expose name mangling to libclang

Argyrios Kyrtzidis kyrtzidis at apple.com
Tue Jul 29 17:44:46 PDT 2014


> On Jul 29, 2014, at 5:21 PM, Eli Bendersky <eliben at google.com> wrote:
> 
> On Tue, Jul 29, 2014 at 5:08 PM, Argyrios Kyrtzidis <kyrtzidis at apple.com> wrote:
> Hi Eli,
> 
> +/**
> + * \brief Represents the different available ABIs for name mangling.
> + */
> +typedef enum { CXMangleABI_Itanium = 0, CXMangleABI_Microsoft = 1 } CXMangleABI;
> +
> +/**
> + * \brief Retrieve the CXString representing the mangled name of the cursor.
> + */
> +CINDEX_LINKAGE CXString clang_Cursor_getMangling(CXCursor, CXMangleABI);
> 
> Why aren’t you just using that appropriate ABI of the translation unit that was created ? So to get the MangleContext you can just call ASTContext::createMangleContext().
> 
> Hi Argyrios,
> 
> Thanks for the suggestion. This is an interesting idea - I guess I have been looking at it from a different angle, thinking mostly about a simple tool that uses Clang to mangle all kinds of names (think a web interface). So I was detaching standalone symbols from their containers/TUs. 
> 
> So, I suppose the same thing can be simulated with the approach you proposing, e.g. by passing a triple flag in the cmdline options to clang_createTranslationUnitFromSourceFile or something of the sort. What do you think?

Yes, sounds good to me.

> 
> Eli
> 
> 
> 
> 
>  
> 
>> On Jul 28, 2014, at 6:19 AM, Eli Bendersky <eliben at google.com> wrote:
>> 
>> 
>> 
>> 
>> On Thu, Jul 24, 2014 at 5:48 PM, Eli Bendersky <eliben at google.com> wrote:
>> Hi rsmith, rengolin,
>> 
>> Exposes a C API to name mangling for a given cursor.
>> 
>> This is loosely based on https://gist.github.com/tritao/2766291, and was previously discussed on cfe-dev: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-June/037577.html
>> 
>> Adding testing capability via c-index-test.
>> 
>> http://reviews.llvm.org/D4663
>> 
>> Files:
>>   include/clang-c/Index.h
>>   test/Index/print-mangled-name.cpp
>>   tools/c-index-test/c-index-test.c
>>   tools/libclang/CIndex.cpp
>>   tools/libclang/libclang.exports
>> 
>> Ping ?
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140729/68263080/attachment.html>


More information about the cfe-commits mailing list