lambda-switch regression

David Malcolm dmalcolm@redhat.com
Wed Nov 15 17:38:00 GMT 2017


On Wed, 2017-11-15 at 12:06 -0500, David Malcolm wrote:
> On Wed, 2017-11-15 at 08:03 -0500, Nathan Sidwell wrote:
> > g++.dg/lambda/lambda-switch.C Has recently regressed.  
> 
> g++.dg/cpp0x/lambda/lambda-switch.C
> 
> > It appears the 
> > location of a warning message has moved.
> > 
> > 	  l = []()		// { dg-warning "statement will never
> > be executed" }
> > 	    {
> > 	    case 3:		// { dg-error "case" }
> > 	      break;		// { dg-error "break" }
> > 	    };  <--- warning now here
> > 
> > We seem to be diagnosing the last line of the statement, not the
> > first. 
> > That seems not a useful.
> > 
> > I've not investigated what patch may have caused this, on the
> > chance 
> > someone might already know?
> > 
> > nathan
> 
> The warning was added in r236597 (aka
> 1398da0f786e120bb0b407e84f412aa9fc6d80ee):
> 
> +2016-05-23  Marek Polacek  <polacek@redhat.com>
> +
> +       PR c/49859
> +       * common.opt (Wswitch-unreachable): New option.
> +       * doc/invoke.texi: Document -Wswitch-unreachable.
> +       * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-
> unreachable
> +       warning.
> 
> which had it at there (23:7).
> 
> r244705 (aka 3ef7eab185e1463c7dbfa2a8d1af5d0120cf9f76) moved the
> warning from 23:7 up to the "[] ()" at 19:6 in:
> 
> +2017-01-20  Marek Polacek  <polacek@redhat.com>
> +
> +       PR c/64279
> [...snip...]
> +       * g++.dg/cpp0x/lambda/lambda-switch.C: Move dg-warning.
> 
> I tried it with some working copies I have to hand:
> - works for me with r254387 (2017-11-03)
> - fails for me with r254700 (2017-11-13)
> 
> so hopefully that helps track it down.
> 
> Dave

Searching in the November archives of the gcc-regression ML for
"lambda-switch.c":

https://gcc.gnu.org/cgi-bin/search.cgi?wm=wrd&form=extended&m=all&s=D&q=lambda-switch.c&ul=%2Fml%2Fgcc-regression%2F2017-11%2F%25

showed e.g.:
  https://gcc.gnu.org/ml/gcc-regression/2017-11/msg00173.html
   "Regressions on trunk at revision 254648 vs revision 254623"

which says this is a new failure somewhere in that range; so it
presumably happened sometime on 2017-11-10 after r254623 and up to
(maybe ==) r254648.

Looking at:
   svn log -r r254623:r254648 |less
nothing jumps out at me as being related.

Hope this is helpful
Dave



More information about the Gcc-patches mailing list