I wonder how this happened?

John David Anglin dave@hiauly1.hia.nrc.ca
Wed Oct 4 13:57:00 GMT 2000


The following build failure occurs building gcc-2.97 with the cvs source
as Sep 29 14:23:

stage1/xgcc -Bstage1/ -B/usr/local/vax-dec-ultrix4.3/bin/  -DIN_GCC    -g -O3 -W -Wall -Wtraditional -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long  -DHAVE_CONFIG_H  -o gencodes \
 gencodes.o rtl.o bitmap.o ggc-none.o gensupport.o print-rtl.o errors.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo  ;; esac ` ` case "-lmalloc" in ?*) echo -lmalloc ;; esac ` ` case "" in ?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac ` 
./gencodes ../../gcc/config/vax/vax.md > tmp-codes.h
../../gcc/config/vax/vax.md:36: expected character `(', found `s'
../../gcc/config/vax/vax.md:36: following context is `et (cc0)'

The problem is that the call to ungetc at line 1023 of rtl.c is partially gone.
Here is the C code from rtl.c:

          while ((c = read_skip_spaces (infile)) && c != ']')
            {
              ungetc (c, infile);
              list_counter++;

Here is the corresponding snipit of assembler code generated by the stage1
compiler for rtl.c:

	.stabd	68,0,1021
L294:
	pushl r8
	calls $1,_read_skip_spaces
	movl r0,r6
	jeql L295
	cmpl r6,$93
	jeql L295
	.stabd	68,0,1023
	pushl r8
	pushl r6
	.stabd	68,0,1024
	incl r9

The two argument pushes are present for the ungetc call.  But what happened
to the call itself?  The other calls to ungetc in the file are ok.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)


More information about the Gcc-bugs mailing list