[cfe-dev] address_space pragma
John McCall via cfe-dev
cfe-dev at lists.llvm.org
Thu Aug 2 15:38:47 PDT 2018
> On Aug 2, 2018, at 5:41 PM, Leonard Chan <leonardchan at google.com> wrote:
>
> On Thu, Aug 2, 2018 at 2:33 PM John McCall <rjmccall at apple.com> wrote:
>>
>>> On Aug 2, 2018, at 5:28 PM, Leonard Chan <leonardchan at google.com> wrote:
>>>
>>> Ok. So we will no longer use the pragma. We will instead opt for your
>>> suggestion of printing the macro. So the new goals are now:
>>>
>>> - Having address_space() accept strings in addition to integers to
>>> represent unique address spaces
>>
>> Is this still important if you get the diagnostic improvement? If you were declaring address
>> spaces somehow, this seems fine, but I don't really want to make address_space("whatever")
>> implicitly declare an address space with specific semantics when it's not hard to imagine
>> wanting that for other purposes in the future.
>
> Not entirely. This was something that's still remnant of when we were
> using pragma. It's something that would be nice for us now, but could
> also be discussed later down the line.
>
>>> - Changing the type printer to print the macro instead of the whole
>>> attribute if the attribute was passed a string instead of an int.
>>
>> I don't know that the latter needs to be restricted; it seems like a nice usability improvement
>> for all address-space users.
>
> Ok, so in general if address_space is used in a macro, then print the macro.
Yeah. You'll need to record this spelling information in the AttributedType, since
the Type won't otherwise have a source location attached.
I'm not sure we actually make an AttributedType for address_space, but doing
so is reasonable.
We should do a quick parse of the macro's token sequence to verify that it's just
an attribute. Unfortunately, I'm not really sure how to do that.
John.
More information about the cfe-dev
mailing list