On Mon, Jul 03, 2017 at 03:50:06PM -0400, Jason Merrill wrote: > On Mon, Jul 3, 2017 at 12:02 PM, Jakub Jelinek <ja...@redhat.com> wrote: > > So like this? > > Looks good, except... > > > case sc_auto: > > - error_at (loc, "decomposition declaration cannot be declared " > > + error_at (loc, "structured binding declaration cannot be " > > "C++98 %<auto%>"); > > break; > > default: > > This case should just fall into the default gcc_unreachable, we aren't > going to get C++98 auto in C++17 mode.
We actually support structured bindings (with a pedwarn that they are only available in -std=c++1z) in older std modes (of course, it doesn't make much sense in -std=c++98, because you always get either the above error or error that the type of the structured binding is not appropriate; but for -std=gnu++11 and above it works well). If I remove the above error_at and fall through into gcc_unreachable, we'll ICE. Jakub