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] |
On 11/15/2017 10:38 AM, David Malcolm wrote:
On Wed, 2017-11-15 at 12:25 -0500, David Malcolm wrote: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.CIt 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? nathanThe 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. DaveSearching 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 DaveActually, https://gcc.gnu.org/ml/gcc-regression/2017-11/msg00157.html has a tighter range: r254628 vs r254635. Looking at: svn log -r r254628:r254635 |less I see msebor's r254630 ("PR c/81117 - Improve buffer overflow checking in strncpy") has: * gimple.c (gimple_build_call_from_tree): Set call location. with: + gimple_set_location (call, EXPR_LOCATION (t)); Maybe that's it? (nothing else in that commit range seems to affect locations).
Yes, that's it. Before the change there would be no location associated with a GIMPLE call seen in gimple-fold. The location would only get added later, after folding. The purpose of the lambda-switch.C test is to verify GCC doesn't ICE on the ill-formed code. The warning is incidental to the test case so I've adjusted it to filter it out. Martin
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |