diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-07-04 00:13:48 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-07-04 00:13:48 +0000 |
commit | cde3fd87e05cbf1e4f46efce6f8d22105d6f879a (patch) | |
tree | 4e46c3f40c0df4a09c10dbe15a37c9037cd50f5a /llvm/lib/CodeGen/SelectionDAG | |
parent | 5b2ef2b1a6d6d29c590c8fee1fac0d49068d9b41 (diff) | |
download | bcm5719-llvm-cde3fd87e05cbf1e4f46efce6f8d22105d6f879a.tar.gz bcm5719-llvm-cde3fd87e05cbf1e4f46efce6f8d22105d6f879a.zip |
PR16480: Reimplement token-caching for constructor initializer lists. This
previously didn't work if a mem-initializer-id had a template argument which
contained parentheses or braces.
We now implement a simple rule: just look for a ') {' or '} {' that is not
nested. The '{' is assumed to start the function-body. There are still two
cases which we misparse, where the ') {' comes from a compound literal or
from a lambda. The former case is not valid C++, and the latter will probably
not be valid C++ once DR1607 is resolved, so these seem to be of low value,
and we do not regress on them with this change. EDG and g++ also misparse
both of these cases.
llvm-svn: 185598
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
0 files changed, 0 insertions, 0 deletions