ping? or do you want to leave this dormant until 325 is resolved (which doesn't seem to be any time soon ...)

https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02892.html

On 05/27/15 16:05, Nathan Sidwell wrote:
this patch fixes 52595, which I'd not noticed was actually suspended.  anyway,
when parsing an NSDMI initializer of the form:

   int var = A<T,N>::foo();

we have to figure whether the ',' is ending the initializer or not.  We've
noticed the '<' as a potential template arg list opener.  Currently we
tentatively parse a declarator after the ',', and if successful presume the ','
ends the initializer.

That's not good enough, because, as in this case, 'N' is a perfectly fine
declarator.  This patch extends the tentative parsing to check the token after
the declarator.

If it is a ',' then we repeat, looking for another declarator.

If it is a ';' or '=' we treat the original ',' as ending the initializer.  I
don't think there are other valid alternatives for post-declarator token.

Otherwise we presume the ',' is part of a template-id.

booted and tested on x86_64-linux, ok?

nathan

Reply via email to