From: Martin Sebor <msebor@gmail.com>
To: David Malcolm <dmalcolm@redhat.com>,
Nathan Sidwell <nathan@acm.org>,
GCC Patches <gcc-patches@gcc.gnu.org>,
polacek@redhat.com
Cc: msebor@redhat.com
Subject: Re: lambda-switch regression
Date: Wed, 15 Nov 2017 21:31:00 -0000 [thread overview]
Message-ID: <3680fe9d-350c-a77b-bc97-51faae80908c@gmail.com> (raw)
In-Reply-To: <1510767528.15212.72.camel@redhat.com>
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.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
>
> Actually, 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
next prev parent reply other threads:[~2017-11-15 20:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-15 13:08 Nathan Sidwell
2017-11-15 17:10 ` David Malcolm
2017-11-15 17:38 ` David Malcolm
2017-11-15 17:51 ` David Malcolm
2017-11-15 21:31 ` Martin Sebor [this message]
2017-11-15 17:38 ` Martin Sebor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3680fe9d-350c-a77b-bc97-51faae80908c@gmail.com \
--to=msebor@gmail.com \
--cc=dmalcolm@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=msebor@redhat.com \
--cc=nathan@acm.org \
--cc=polacek@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).