This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/31550] [regression] f951: segfault in fold-const.c:1963
- From: "pault at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Apr 2007 18:37:04 -0000
- Subject: [Bug fortran/31550] [regression] f951: segfault in fold-const.c:1963
- References: <bug-31550-13648@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from pault at gcc dot gnu dot org 2007-04-12 19:37 -------
What is really odd is that the same code (see below) is produced, with or
without the ONLY... It looks fine in either case and identical to that produced
by 4.2. *sigh*
Is this a problem with the backend?
Paul
dummy_atom_list_init_copy (this, other)
{
int8 D.1373;
int8 D.1372;
struct dummy_atom[0:] * D.1371;
int8 D.1370;
int8 D.1369;
struct dummy_atom[0:] * D.1368;
D.1368 = (struct dummy_atom[0:] *) other->table.data;
D.1369 = other->table.offset;
D.1370 = (int8) other->nused;
D.1371 = (struct dummy_atom[0:] *) this->table.data;
D.1372 = this->table.offset;
D.1373 = (int8) this->nused;
{
int8 D.1376;
int8 D.1375;
int8 S.0;
D.1375 = other->table.dim[0].stride;
D.1376 = this->table.dim[0].stride;
S.0 = 1;
while (1)
{
if (S.0 > (int8) other->nused) goto L.1;
(*D.1371)[S.0 * D.1376 + D.1372] = (*D.1368)[S.0 * D.1375 + D.1369];
S.0 = S.0 + 1;
}
L.1:;
}
}
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31550