This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
internal compiler error (egcs-1.1.1 & egcs-1.1.2), cc1
- To: egcs-bugs at egcs dot cygnus dot com
- Subject: internal compiler error (egcs-1.1.1 & egcs-1.1.2), cc1
- From: Paul Lai <plai at Lynx dot COM>
- Date: Tue, 30 Mar 1999 11:39:49 -0800
The attached simple testcase causes an internal compiler error.
egcs-1.1.1 & egcs-1.1.2 are both being tested under i386-pc-linux
(redhat 5.1).
FSF 2.8.1 does not emit an error with this testcase.
The problem appears to be in
egcs-1.1.2/gcc/expr.c:expand_expr() lines 6189 -- 6216
These lines do not appear in FSF 281 and when removed, seem to make
the compiler happier.
But, what is lost if these lines are removed (besides the compiler
internal error)?
struct fdentry { };
struct pssentry {
struct fdentry* fds[64];
struct fdentry* ifds[64];
};
foo(int fd)
{
register struct fdentry *fdp;
if (( fd ) < 64 ) {
fdp = ((struct pssentry *)(0xdb000000 -4096) )->fds[ fd ];
} else {
if ( fdp = ((struct pssentry *)(0xdb000000 -4096) ) ->ifds[(( fd )- 64 ) >> 9 ])
fdp += (( fd )- 64 ) & 0x1ff ;
}
}