bnbarham added a comment.

In D148997#4561211 <https://reviews.llvm.org/D148997#4561211>, @v.g.vassilev 
wrote:

>>>> https://github.com/llvm/llvm-project/blob/df6b35e329ebecad6dc3bfb83183e482eb7a0020/clang/lib/Parse/ParseExprCXX.cpp#L4070
>>>
>>> That looks a bit obscure to me. Looks like we are trying to reach some 
>>> error recovery anchor but do you happen to have some use case at hand? In 
>>> principle we could do the same as for the other 3.
>>
>> This was just one I picked at random from my grep over the parser. It's 
>> unclear how often this would be hit, but I have to assume it (and the other 
>> references) can, even if they're obscure/unlikely. My main point is that 
>> `!eof` is being used somewhat frequently to end loops, but with this change 
>> they will now all never end.
>
> Since `eof` there were several `eof`-like tokens that were added: 
> `annot_module_begin`, `annot_module_end`, `tok::annot_module_include` which 
> are commonly handled in `isEofOrEom`. We could update these uses with 
> `isEofOrEom` but I am pretty sure that @rsmith will point out cases where 
> that's not a good very good idea :) We could either experiment with using 
> `isEofOrEom` or have a similar utility function only for the two tokens (say 
> `isEoI` -- end of input whatever that means).

My other concern here is that it seems our use cases are somewhat different, 
eg. we wouldn't want any parsing differences and while I don't know why this is 
yet, the removal of:

  // Skip over the EOF token, flagging end of previous input for incremental
  // processing
  if (PP.isIncrementalProcessingEnabled() && Tok.is(tok::eof))
    ConsumeToken();

is causing issues for us as well.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148997/new/

https://reviews.llvm.org/D148997

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to