------- Comment #3 from kkojima at gcc dot gnu dot org 2008-07-01 23:59 ------- A reduced testcase:
typedef int (proc) (int *interp, void *data); typedef struct { void *func; void *data; } InterStruct; extern InterStruct simple; extern int simple_interactor (); static proc *interactor = simple_interactor; InterStruct Interactor(void *interp, proc inter_proc) { InterStruct tmp = simple; interactor = (inter_proc ? inter_proc : simple_interactor); return tmp; } -- kkojima at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kkojima at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|middle-end |target Ever Confirmed|0 |1 GCC host triplet|sh4-redhat-linux | GCC target triplet|sh4-redhat-linux |sh4-*-linux Keywords| |ice-on-valid-code Known to fail| |4.3.1 4.4.0 Known to work| |4.1.3 4.2.4 Last reconfirmed|0000-00-00 00:00:00 |2008-07-01 23:59:06 date| | Summary|[4.3 Regression] compile |[4.3/4.4 Regression] spill |failure with message "unable|failure for class 'R0_REGS' |to find a register to spill |on sh4 with -fPIC -O2 |in class 'R0_REGS'" | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36684