This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Regression
- From: Mark Mitchell <mark at codesourcery dot com>
- To: gcc-bugs at gcc dot gnu dot org
- Cc: kenner at vlsi1 dot ultra dot nyu dot ed
- Date: Sun, 28 Apr 2002 22:46:35 -0700
- Subject: Regression
This code:
void f(char const volatile c) {}
Causes an ICE on i686-pc-linux-gnu when compiled with -O:
bash-2.05$ ~/dev/gcc-3.1/objdir/gcc/cc1 -O test.c
f
test.c: In function `f':
test.c:1: Internal compiler error in change_address_1, at emit-rtl.c:1910
This is caused by Kenner's change:
revision 1.318
date: 2001/12/29 21:35:01; author: kenner; state: Exp; lines: +1 -8
branches: 1.318.2;
* expr.c (store_field): Use adjust_address, not PUT_MODE.
(expand_expr, case VIEW_CONVERT_EXPR): Likewise.
* reload1.c (eliminate_regs, case SUBREG): Likewise, but use
adjust_address_nv.
* varasm.c (make_decl_rtl): Likewise.
* integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use
replace_equiv_address_nv.
We end up passing a SUBREG to adjust_address_nv.
I cannot seem to file a new GNATS bug from Mozilla at the moment; the
server times out. I have confirmed this is a regression from GCC 3.0.
Kenner, we need a fix for this ASAP.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com