On Mon, 23 Mar 2009 18:51:50 +0000, Dave Korn <dave.korn.cyg...@googlemail.com> wrote: > Vincent R. wrote: > >> vinc...@vincent-pc:~/projects$ arm-mingw32ce-gcc -std=gnu99 -save-temps >> -I/home/vincent/local/wince/include -DNDEBUG -O3 -c cegcc-errno-bug.c >> -DDLL_EXPORT -DPIC -o libeet_la-eet_lib.o >> cegcc-errno-bug.c: In function 'eet_close': >> cegcc-errno-bug.c:134: error: unrecognizable insn: >> (insn 6 5 7 3 cegcc-errno-bug.c:114 (set (reg/f:SI 138) >> (symbol_ref:SI ("errno") [flags 0x4c0] <var_decl 0xb7db26e0 >> errno>)) -1 (nil)) >> cegcc-errno-bug.c:134: internal compiler error: in extract_insn, at >> recog.c:2048 > >> Of course I could report a bug but since original sources are patched the >> bug might be due to one of the modifications. >> And here is the testcase : > > You could probably have cut that down just to the definition of errno, > Eet_Error and eet_flush2. Which actual definition of EAPI were you using? > >> If I comment the errno variable inside the switch and replace it by 1 for >> instance, it compiles fine. >> Where should I start ? > > First thing would be to try and figure out why the insn isn't being > recognized. This is rather odd unless your patch has affected the movsi > definition in the .md file. Does the error go away if you make sure there > is > no dllimport/export attribute? > > cheers, > DaveK
Yes I think I forgot to apply some patch about dllimport/export. That's the problem when maintaining something outside gcc trunk. I will try to add the modification and test again.