From: Michael Matz <matz@suse.de>
To: Jeff Law <jeffreyalaw@gmail.com>
Cc: Aldy Hernandez <aldyh@redhat.com>, gcc-patches <gcc-patches@gcc.gnu.org>
Subject: Re: Regression with recent change
Date: Mon, 13 Sep 2021 14:18:40 +0000 (UTC) [thread overview]
Message-ID: <alpine.LSU.2.20.2109131414170.12583@wotan.suse.de> (raw)
In-Reply-To: <3af2aac4-1b26-ff97-b73a-fa7c086b8dd6@gmail.com>
Hello,
On Mon, 13 Sep 2021, Jeff Law via Gcc-patches wrote:
> > So it looks like there's some undefined behavior going on, even before
> > my patch. I'd like to get some feedback, because this is usually the
> > type of problems I see in the presence of a smarter threader... things
> > get shuffled around, problematic code gets isolated, and warning
> > passes have an easier time (or sometimes harder time) diagnosing
> > things.
> The original issue was PRE hanging, so I'd lean towards keeping the test as-is
> and instead twiddling any warning flags we can to make the diagnostics go
> away.
Or use this changed test avoiding the issues that I see with -W -Wall on
this testcase. I've verified that it still hangs before r194358 and is
fixed by that revision.
Generally I think, our testsuite, even for ICEs or these kinds of hangs,
should make an effort to try to write conforming code; if at all possible.
Here it is possible.
(I don't know if the new threader causes additional warnings, of course,
but at least the problems with sequence points and uninitialized use of
'j' aren't necessary to reproduce the bug)
Ciao,
Michael.
/* { dg-do compile } */
/* { dg-additional-options "-fno-split-loops" } */
typedef unsigned short uint16_t;
uint16_t a, b;
int *j_global;
uint16_t f(void)
{
int c, **p;
short d = 2, e = 4;
for (;; b++)
{
int *j = j_global, k = 0;
for (; *j; j++)
{
for(; c; c++)
for(; k < 1; k++)
{
short *f = &d;
if(b)
return *f;
}
}
if(!c)
d *= e;
a = d;
if ((a ? b = 0 : (**p ? : 1) != (d != 1 ? 1 : (b = 0))) != ((k ? a : 0)
< (a * (c = k))))
**p = 0;
}
}
next prev parent reply other threads:[~2021-09-13 14:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <889cbb03-3a02-65e4-7790-c903293bacf7@gmail.com>
2021-09-13 13:29 ` Aldy Hernandez
2021-09-13 13:40 ` Jeff Law
2021-09-13 14:18 ` Michael Matz [this message]
2021-09-13 14:33 ` Jeff Law
2021-09-13 17:03 ` Aldy Hernandez
2021-09-14 14:13 ` Michael Matz
2021-09-14 14:53 ` Aldy Hernandez
2021-09-14 15:59 ` Jeff Law
2021-04-29 15:52 Jeff Law
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=alpine.LSU.2.20.2109131414170.12583@wotan.suse.de \
--to=matz@suse.de \
--cc=aldyh@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jeffreyalaw@gmail.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).