[Bug target/35100] [4.1/4.2/4.3 regression] internal compiler error: in extract_insn, at recog.c:1990
------- Comment #6 from manus at eiffel dot com 2008-04-28 22:34 -------
I can reproduce this problem with gcc 4.2.3 that comes with Ubuntu 8.04 on
PowerPC with the following command line:
gcc -Wall -mlongcall -fPIC -c foo.c
Removing either `-fPIC' or `-mlongcall' succeeds, it is when used together that
it fails with:
lisbon [Manu] : gcc -Wall -mlongcall -fPIC -c foo.c
foo.c: In function 'idrf_reset_pos':
foo.c:23: error: unrecognizable insn:
(call_insn 10 9 12 3 (parallel [
(call (mem:SI (symbol_ref:SI ("idr_setpos") [flags 0x1]
<function_decl 0x48169700 idr_setpos>) [0 S4 A8])
(const_int 0 [0x0]))
(use (const_int 8 [0x8]))
(clobber (scratch:SI))
]) -1 (nil)
(nil)
(expr_list:REG_DEP_TRUE (use (reg:SI 30 30))
(expr_list:REG_DEP_TRUE (use (reg:SI 4 4))
(expr_list:REG_DEP_TRUE (use (reg:SI 3 3))
(nil)))))
foo.c:23: internal compiler error: in extract_insn, at recog.c:2077
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see <URL:file:///usr/share/doc/gcc-4.2/README.Bugs>.
where foo.c is simply:
#include <stdlib.h>
typedef struct idr {
int i_op;
size_t i_size;
char *i_buf;
char *i_ptr;
} IDR;
typedef struct idrs {
IDR i_encode;
IDR i_decode;
} IDRF;
void idr_setpos(IDR *idrs, size_t pos)
{
}
void idrf_reset_pos(IDRF *idrf)
{
idr_setpos(&idrf->i_encode, 0);
idr_setpos(&idrf->i_decode, 0);
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35100
------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
Reply to: