Tied to version 3.4.5, unable to try with current build. Here is the output, followed by part of the preprocessed source:
Output: [EMAIL PROTECTED] flt]$ /usr/users/bonomo/gnu/cross/m6809/bin/gcc -v -save-temps -Wall -B/usr/users/bonomo/gnu/cros s/m6809/bin/ -S -c test.c^M Reading specs from /usr/users/bonomo/gnu/cross/lib/gcc/m6809/3.4.5/specs Configured with: ../../src/gcc-3.4.5/configure --target=m6809 --program-suffix=09 --nfp --enable-obsolete --sr cdir=../../src/gcc-3.4.5 --disable-threads --disable-multilib --disable-nls --enable-languages=c Thread model: single gcc version 3.4.5 /usr/users/bonomo/gnu/cross/libexec/gcc/m6809/3.4.5/cc1 -E -quiet -v -iprefix /usr/users/bonomo/gnu/cross/m68 09/bin/../lib/gcc/m6809/3.4.5/ -isystem /usr/users/bonomo/gnu/cross/m6809/bin/include test.c -Wall -o test.i ignoring nonexistent directory "/usr/users/bonomo/gnu/cross/m6809/bin/include" ignoring nonexistent directory "/usr/users/bonomo/gnu/cross/m6809/bin/../lib/gcc/m6809/3.4.5/include" ignoring nonexistent directory "/usr/users/bonomo/gnu/cross/m6809/bin/../lib/gcc/m6809/3.4.5/../../../../m6809 /sys-include" ignoring nonexistent directory "/usr/users/bonomo/gnu/cross/m6809/bin/../lib/gcc/m6809/3.4.5/../../../../m6809 /include" ignoring nonexistent directory "/usr/users/bonomo/gnu/cross/lib/gcc/m6809/3.4.5/../../../../m6809/sys-include" ignoring nonexistent directory "/usr/users/bonomo/gnu/cross/lib/gcc/m6809/3.4.5/../../../../m6809/include" #include "..." search starts here: #include <...> search starts here: /usr/users/bonomo/gnu/cross/lib/gcc/m6809/3.4.5/include End of search list. /usr/users/bonomo/gnu/cross/libexec/gcc/m6809/3.4.5/cc1 -fpreprocessed test.i -quiet -dumpbase test.c -auxbas e test -Wall -version -o test.s GNU C version 3.4.5 (m6809) compiled by GNU C version 4.0.1 20050727 (Red Hat 4.0.1-5). GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64349 In file included from global.h:19, from test.c:29: clib.h:23: warning: conflicting types for built-in function 'bcopy' clib.h:24: warning: conflicting types for built-in function 'bzero' clib.h:26: warning: conflicting types for built-in function 'fputs' clib.h:35: warning: conflicting types for built-in function 'strlen' In file included from global.h:20, from test.c:29: wisplib.h:28: warning: conflicting types for built-in function 'exit' test.c:82: warning: return type defaults to `int' test.c: In function `main': test.c:88: warning: overflow in implicit constant conversion test.c:92: warning: control reaches end of non-void function test.c: At top level: test.c:98: warning: return type defaults to `int' test.c: In function `do_wisp': test.c:113: warning: implicit declaration of function `init_wp' test.c:114: warning: implicit declaration of function `init_fil' test.c:115: warning: implicit declaration of function `cam_init' test.c:124: warning: implicit declaration of function `do_cmd' test.c: At top level: test.c:138: warning: return type defaults to `int' test.c: In function `do_cmd': test.c:147: warning: overflow in implicit constant conversion test.c:151: warning: implicit declaration of function `do_pmt' test.c:154: warning: implicit declaration of function `do_cam' test.c:157: warning: implicit declaration of function `do_discrete' test.c:160: warning: implicit declaration of function `do_filter' test.c:163: warning: implicit declaration of function `do_focus' test.c:166: warning: implicit declaration of function `do_pfa' test.c:172: warning: implicit declaration of function `do_shutter' test.c:175: warning: implicit declaration of function `do_wvplt' test.c: At top level: test.c:193: warning: return type defaults to `int' test.c: In function `do_cam': test.c:201: warning: implicit declaration of function `printf' test.c:211: warning: implicit declaration of function `cam_parrd' test.c:214: warning: control reaches end of non-void function test.c: At top level: test.c:220: warning: return type defaults to `int' test.c: In function `do_filter': test.c:224: warning: implicit declaration of function `mv_filter' test.c:231: warning: control reaches end of non-void function test.c: At top level: test.c:237: warning: return type defaults to `int' test.c: In function `do_focus': test.c:242: warning: comparison is always true due to limited range of data type test.c:242: warning: comparison is always true due to limited range of data type test.c:243: warning: implicit declaration of function `mv_focus' test.c:248: warning: control reaches end of non-void function test.c: At top level: test.c:254: warning: return type defaults to `int' test.c: In function `do_shutter': test.c:258: warning: implicit declaration of function `mv_shutter' test.c:265: warning: control reaches end of non-void function test.c: At top level: test.c:271: warning: return type defaults to `int' test.c: In function `do_wvplt': test.c:276: warning: implicit declaration of function `rotate' test.c:287: warning: control reaches end of non-void function test.c: At top level: test.c:293: warning: return type defaults to `int' test.c: In function `do_pmt': test.c:258: warning: implicit declaration of function `mv_shutter' test.c:265: warning: control reaches end of non-void function test.c: At top level: test.c:271: warning: return type defaults to `int' test.c: In function `do_wvplt': test.c:276: warning: implicit declaration of function `rotate' test.c:287: warning: control reaches end of non-void function test.c: At top level: test.c:293: warning: return type defaults to `int' test.c: In function `do_pmt': test.c:298: warning: control reaches end of non-void function test.c: At top level: test.c:304: warning: return type defaults to `int' test.c: In function `do_discrete': test.c:322: warning: control reaches end of non-void function test.c: At top level: test.c:426: warning: return type defaults to `int' test.c: In function `do_pfa': test.c:442: warning: implicit declaration of function `display' test.c:489: warning: implicit declaration of function `mv_to_raw' test.c:507: warning: control reaches end of non-void function test.c: At top level: test.c:523: warning: return type defaults to `int' test.c: In function `loop_dpy': test.c:533: warning: unused variable `vstate' test.c:568: warning: control reaches end of non-void function test.c: At top level: test.c:574: warning: return type defaults to `int' test.c: In function `display': test.c:646: warning: control reaches end of non-void function test.c:646: error: unable to generate reloads for: (insn 88 87 90 3 (set (mem/f:QI (plus:HI (reg/f:HI 3 u) (const_int -4 [0xfffffffc])) [0 psi+0 S1 A8]) (plus:QI (subreg:QI (reg:HI 40) 1) (subreg:QI (reg:HI 0 d [42]) 1))) 13 {addqi3} (nil) (expr_list:REG_DEAD (reg:HI 40) (expr_list:REG_DEAD (reg:HI 0 d [42]) (nil)))) test.c:646: internal compiler error: in find_reloads, at reload.c:3690 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. Parital preprocessed source: # 1 "test.c" # 1 "<built-in>" # 1 "<command line>" # 1 "test.c" # 29 "test.c" # 1 "global.h" 1 # 19 "global.h" # 1 "clib.h" 1 # 21 "clib.h" extern int atoh (char *p); extern int atoi (char *p); extern void bcopy (char *b1, char *b2, int length); extern void bzero (char *b1, int length); extern int getc (int i); extern int fputs (char *p, int f); extern int getchar (); extern char *gets (char *buffer); extern int putc (char *c, int i); extern int putchar (char c); extern int puts (char *p); extern int sleep (int n); extern int strcmp (char *s, char *t); extern char *strcpy (char *s1, char *s2); extern int strlen (char *s); # 20 "global.h" 2 # 1 "wisplib.h" 1 # 18 "wisplib.h" # 1 "../sys/kernel.h" 1 # 24 "../sys/kernel.h" typedef char Bool; typedef struct qent *qid; typedef struct pentry *pid; typedef struct sentry *sid; # 107 "../sys/kernel.h" extern qid rdyhead; extern char preempt; # 19 "wisplib.h" 2 # 1 "../sys/proc.h" 1 # 46 "../sys/proc.h" struct pentry { char pstate; char pprio; short pregs[1]; pid plink; sid psem; int pcnt; char *p_wchan; int *pbase; short pstklen; int (*paddr)(); }; extern struct pentry proctab[]; extern int numproc; extern int nextproc; extern pid current; extern qid rdyhead; extern pid act_list; extern pid create(); struct rt_proc { int rt_cnt; int (*rt_func)(); }; # 20 "wisplib.h" 2 extern int atoh (char *s); extern int chprio (pid process, int newprio); extern int close (int dev); extern pid create (int (*func)(), int stksiz, int prio); extern int exit (); extern struct sys_flags *flag_ptr (); extern int flagptr (); extern int getprio (pid process); extern int ioctl (int dev, int func, char *addr); extern int kill (pid process); extern int mssleep (int i); extern int open (int dev, char *buf, char *mode); extern int read (int dev, char *buf, int count); extern int resume (pid process); extern int rtp (); extern int sdelete (sid sem); extern int signal (sid sem); extern int suspend (pid process); extern unsigned short *time (); extern int wait (sid sem); extern int write (int dev, char *buf, int count); # 21 "global.h" 2 # 77 "global.h" typedef unsigned char u_char; typedef unsigned short u_short; extern struct edmf mf; # 102 "global.h" # 1 "ed_format.h" 1 # 50 "ed_format.h" struct hr { u_char in_port_a; u_char in_port_b; u_char out_port; u_char error; u_short pmt_a; u_short pmt_b; u_short shutter; u_char hr_audio; u_char n_takes; u_char n_errors; u_char next_cmd; u_short execute_time; u_short replanned_time; u_short strain_a; u_char mech_current; u_char total_current; u_char fil_sh_stat; u_char wp_foc_stat; }; struct edmf { u_char sync [3]; u_char format; u_short time; u_char serial; u_char resv1; struct hr hr; u_char subcom_data [(32)]; }; # 106 "ed_format.h" extern struct tm_d tm_d; extern struct tm_e tm_e; extern struct tm_f tm_f; extern u_char adata[16], bdata[16], ddata[32]; extern short cdata[16]; extern u_short camparm[32]; # 179 "ed_format.h" struct tm_d { u_short systime; int fil_step_cnt; int wp_step_cnt; u_short foc_offset; u_short xc_mean; u_short xc_max; u_short xc_fsum[2]; int pfa_offset; int pfa_pressure; int xc_maxy; int xc_maxx; int xc_off1; int xc_off2; int xc_diff; u_char reserv1[2]; }; struct tm_e { u_char n_pics; u_char cam_wait; u_char fil_ctrl; u_char fil_stat; u_char fil_state; u_char wp_ctrl; u_char wp_stat; u_char wp_state; u_char mech_state; u_char mech_flags; u_char port_state; u_char pfa_gauge; u_char tl_sour; u_char dig_out; u_char tl_type; u_char next_cmd; u_char primary_gauge; u_char secondary_gauge; u_char fil_wait; u_char wp_wait; u_char tl_flags; u_char n_takes; u_char synch_clks; u_char hwclk_crashed; u_char sw_id[4]; u_char exp_t_rem[4]; }; # 240 "ed_format.h" struct tm_f { u_short execute_time; u_short replanned_time; u_short exposure_MSH; u_short exposure_LSH; u_short stdpress[8]; u_short lead_time; u_short extension; char *tl_ptr; u_short clk_diff; }; extern u_short *tptr; extern u_short sw_clk; extern volatile union hw_clk hw_clk; union hw_clk { u_short word; u_char byte[2]; }; # 103 "global.h" 2 # 1 "errors.h" 1 # 104 "global.h" 2 # 30 "test.c" 2 # 1 "ioports.h" 1 # 118 "ioports.h" struct dio_reg { u_char inport_A; u_char inport_B; u_char outport; u_char latch; u_short cnt_a; u_short cnt_b; }; # 33 "test.c" 2 static int get_text (); static void do_msg (); static void stop_rtp(); <snip> static int run_flag; extern u_char dig_out; static char valstr[40]; main (argc, argv) int argc; char *argv[]; { int do_wisp(); run_flag = 1; resume (create (do_wisp, (1024), (20))); while (run_flag) { mssleep (40); } } <snip> display () { extern u_char dig_out; static void prt_dig(); static void cvt8bit(); static void cvt12bit(); int volts; int mv; int cv; int psi; int ddata[2]; char *vstate; char gauge_label[4] = "ACDB"; cvt12bit (req_offset, &volts, &mv); printf ("Gauge %c Offset=%d.%03dV ", gauge_label[tm_e.pfa_gauge], volts, mv); cvt12bit (req_press, &volts, &mv); printf ("Requested pressure %d.%03dV ", volts, mv); puts ( (dig_out & 0x02) ? "ENABLED" : "DISABLED" ); cvt8bit ((int)bdata[(13)], &volts, &cv); printf ("%d.%02d V ", volts, cv); psi = 500 * (volts - 1) + (5 * cv); printf ("Tank pressure %4d psi.\n", psi); cvt8bit ((int)adata[(13)], &volts, &cv); printf ("%d.%02d V ", volts, cv); psi = 250 * (volts - 1) + (2 * cv) + (cv/2); printf ("Inlet pressure %4d psi.\n", psi); cvt8bit ((int)adata[(14)], &volts, &cv); printf ("%d.%02d V ", volts, cv); psi = 250 * (volts - 1) + (2 * cv) + (cv/2); printf ("Outlet pressure %4d psi.\n", psi); puts ("\nStrains:"); cvt12bit (cdata[(3)], &volts, &mv); printf ("A %d.%03dV ", volts, mv); cvt12bit (cdata[(4)], &volts, &mv); printf ("B %d.%03dV ", volts, mv); cvt12bit (cdata[(5)], &volts, &mv); printf ("C %d.%03dV ", volts, mv); cvt12bit (cdata[(6)], &volts, &mv); printf ("D %d.%03dV ", volts, mv); puts (" "); cvt12bit (cdata[(7)], &volts, &mv); printf ("Monitor %d.%03d V\n", volts, mv); ddata[0] = (*((u_char *) (0x0f00))); ddata[1] = (*((u_char *) (0x0f01))); printf ("\nDiscretes: %02x %02x = ", ddata[0], ddata[1]); prt_dig (ddata[0]); prt_dig (ddata[1]); puts (" "); vstate = ((ddata[0]) & 0x01) ? "closed" : "open"; printf ("Inlet valve: %s\n", vstate); vstate = ((ddata[0]) & 0x02) ? "closed" : "open"; printf ("Exhaust valve: %s\n", vstate); puts ("---------------"); <snip and end> If you need the complete preprocessed source, please have the assignee contact me to arrange for me to e-mail it directly. I am not sure if the author of this software would want me posting this in a public or semi-public place. Thank you. -- Summary: internal compiler error: in find_reloads, at reload.c:3690 Product: gcc Version: 3.4.5 Status: UNCONFIRMED Severity: major Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bonomo at sal dot wisc dot edu GCC build triplet: <not sure what is meant> GCC host triplet: Linux Fedora Core 4 2.6.13-1.1532_FC4 #1 Thu Oct 20 01:30:08 ED GCC target triplet: Motorola 6809 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28668