This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]