------- 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. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]