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