Mosfet wrote: > We are trying to build a language D cross compiler for arm smartphone > running under Windows Ce. It is based on gcc 4.1.x and we have used a patch > to add the D front end (http://dgcc.sourceforge.net/). It seems that we > successed in building the D cross compiler, but we have troubles with the > phobos library, which is the basic library of the D language. Here is the > first error that we got : > > /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d: In member > function 'AddRef': > /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d:225: error: > unrecognizable insn: > (call_insn/j 13 12 14 0 > /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d:223 (parallel [ > (set (reg:SI 0 r0) > (call (mem:SI (reg/f:SI 105) [0 S4 A32]) > (const_int 0 [0x0]))) > (return) > (use (const_int 0 [0x0])) > ]) -1 (nil) > (nil) > (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0)) > (nil))) > /home/baptiste/cegcc/src/gcc/libphobos/std/c/windows/com.d:225: internal > compiler error: in extract_insn, at recog.c:2084 > > We have tried to comment the line 225, of course it temporary solved this > problem but we got similar errors at other lines. > > Can anybody explains me what means the "unrecognizable insn" error ? It simply means that this pattern doesn't correspond to a machine instruction. It's a call in parallel with a return, which for ARM corresponds to a sibcall. However, it is very weird in that the return value of the function is written to register zero even though it isn't used. Is this a constructor, by any chance? Try -fno-optimize-sibling-calls Andrew.