This revision was automatically updated to reflect the committed changes.
Closed by commit rL289273: Remove special error recovery for ::(id) (authored
by rnk).
Changed prior to commit:
https://reviews.llvm.org/D25882?vs=75509&id=80946#toc
Repository:
rL LLVM
https://reviews.llvm.org/D25882
rnk added a comment.
I think the last time we discussed this, we decided that to truly fix this we
need to audit all calls to PP.EnterToken(Stream) from the parser. They are
probably broken in token caching mode. I haven't been able to find the time to
do that. Should we commit this in the mean
rnk updated this revision to Diff 75509.
rnk added a comment.
- Remove unused diagnostic
https://reviews.llvm.org/D25882
Files:
include/clang/Basic/DiagnosticParseKinds.td
include/clang/Parse/Parser.h
lib/Parse/ParseExprCXX.cpp
test/Parser/colon-colon-parentheses.cpp
Index: test/Parser
rnk added inline comments.
Comment at: lib/Parse/ParseExprCXX.cpp:73-75
PP.EnterToken(ColonToken);
if (!AtDigraph)
PP.EnterToken(DigraphToken);
rsmith wrote:
> This seems to mess up the cached token buffer in the same way; it's a little
> surprising w
rsmith added a comment.
Can you also remove the corresponding diagnostic?
Comment at: lib/Parse/ParseExprCXX.cpp:73-75
PP.EnterToken(ColonToken);
if (!AtDigraph)
PP.EnterToken(DigraphToken);
This seems to mess up the cached token buffer in the same w
rnk created this revision.
rnk added reviewers: rsmith, rtrieu.
rnk added a subscriber: cfe-commits.
The code pattern used to implement the token rewriting hack doesn't
interact well with token caching in the pre-processor. As a result,
clang would crash on 'int f(::(id));' while doing a tenative