diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2009-05-22 21:09:47 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2009-05-22 21:09:47 +0000 |
commit | f40882a38baf258fa10e362003f6939a590074bb (patch) | |
tree | 383f36c88c28cd971bfcb1cae1f405609a0ddee8 /lib/Frontend/PCHReaderDecl.cpp | |
parent | 6f421f91849418883186592051fce05339ee62e9 (diff) |
The disambiguation process for ambiguous paren expressions is not "side effects free", e.g:
(T(*)(int[x+y]));
is an (invalid) paren expression, but "x+y" will be parsed as part of the (rejected) type-id,
so unnecessary Action calls are made for an unused (and possibly leaked) "x+y".
Use a different scheme, similar to parsing inline methods. The parenthesized tokens are cached,
the context that follows is determined (possibly by parsing a cast-expression),
and then we re-introduce the cached tokens into the token stream and parse them appropriately.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72279 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHReaderDecl.cpp')
0 files changed, 0 insertions, 0 deletions