[llvm-dev] Question about __NSConstantString and __NSConstantString_tag
Ben Langmuir via llvm-dev
llvm-dev at lists.llvm.org
Fri Feb 19 07:35:11 PST 2016
> On Feb 19, 2016, at 7:16 AM, Brad King <brad.king at kitware.com> wrote:
> On 02/18/2016 05:51 PM, Michka Popoff wrote:
>> Our problem is that the AST contains some declarations which were not there before.
>> __NSConstantString and __NSConstantString_tag are now exposed.
>> Maybe someone could enlighten us about this change.
>> If it’s not a bug, we would like to know more about these structures.
This struct/typedef are for __builtin___CFStringMakeConstantString (and the NS variant) and are predefined to make these builtins behave correctly with modules. Adding them was intentional :-)
> To clarify, this is not so much about the appearance of new builtins
> but that the structure has fields with no name. Other builtin
> structures like __va_list_tag have names on their fields. FieldDecl
> derives (indirectly) from NamedDecl.
> Our concern is that AST processing tools expect to find a name on
> fields, and the changes in question introduced fields without names.
> Can they be given names, if only for AST consistency?
Yes, sounds like a good idea. I’ll take a look at this later today.
More information about the llvm-dev