Prevent module import inside @implementation
Douglas Gregor
dgregor at apple.com
Tue Feb 4 08:48:43 PST 2014
On Feb 4, 2014, at 8:19 AM, Ben Langmuir <blangmuir at apple.com> wrote:
>
> On Feb 3, 2014, at 4:51 PM, Douglas Gregor <dgregor at apple.com> wrote:
>
>>
>> On Feb 3, 2014, at 2:32 PM, Ben Langmuir <blangmuir at apple.com> wrote:
>>
>>> Based on a suggestion from Jordan I’ve dropped the extra note, which will be on the same location anyway, and added that information into the error diagnostic. I would have liked to say "treating #include ...” instead of "treating directive …", but after the preprocessor/lexer this information is lost and I don’t see a nice way to pass it on to the parser.
>>
>> There’s an ugly way to pass it on to the parser… you have a couple low bits in the token’s annotation value to record #include vs. #import vs. #include_next.
>
> To be clear, are you suggesting making Token::PtrData a PointerIntPair?
Token::PtrData is an opaque pointer with different meanings for different annotation token kinds. For a module import token, that could be PointerIntPair<Module *, 2, IncludeDirectiveKind>.
- Doug
More information about the cfe-commits
mailing list