[C++ PATCH] "decomposition declaration" -> "structured binding" in C++ diagnostics

Jason Merrill jason@redhat.com
Mon Jul 3 21:01:00 GMT 2017


On Mon, Jul 3, 2017 at 3:59 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Mon, Jul 03, 2017 at 03:50:06PM -0400, Jason Merrill wrote:
>> On Mon, Jul 3, 2017 at 12:02 PM, Jakub Jelinek <jakub@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.

Ah, OK.

Jason



More information about the Gcc-patches mailing list