This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
branch bootstrap breakage in new DECL_RTL
- To: gcc at gcc dot gnu dot org
- Subject: branch bootstrap breakage in new DECL_RTL
- From: Robert Lipe <robertl at sco dot com>
- Date: Thu, 15 Mar 2001 11:30:36 -0600
Sometime yesterday, somebody introduced an invalid C construct in
DECL_RTL on the release branch. Looking at the preprocessor output,
thie line in question expands to:
( ( decl ) -> decl . rtl ? ( decl ) -> decl . rtl : ( make_decl_rtl ( dec
l , 0 ) , ( decl ) -> decl . rtl ) ) = eliminate_regs ( ( ( decl ) -> decl . rtl
? ( decl ) -> decl . rtl : ( make_decl_rtl ( decl , 0 ) , ( decl ) -> decl . rt
l ) ) , 0 , ( rtx ) 0 ) ;
I don't think ISO C allows terniary lvalues. All my non-gcc (and gcc
-pedantic) compilers complain about this:
(a ? b : c) = 3;
In all, it highlights the point that the dude from Sun made recently
about it being too easy to acidentally use GNU C-isms in code that needs
to be portable...
RJL
"/play/egcs/gcc/varasm.c", line 733: warning: improper pointer/integer combination: op "="
"/play/egcs/gcc/varasm.c", line 927: warning: improper pointer/integer combination: op "="
"/play/egcs/gcc/varasm.c", line 1201: warning: improper pointer/integer combination: op "="
"/play/egcs/gcc/varasm.c", line 1497: warning: improper pointer/integer combination: op "="
/bin/cc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I. -I/play/egcs/gcc -I/play/egcs/gcc/. -I/play/egcs/gcc/config -I/play/egcs/gcc/../include /play/egcs/gcc/rtlanal.c -o rtlanal.o
/bin/cc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I. -I/play/egcs/gcc -I/play/egcs/gcc/. -I/play/egcs/gcc/config -I/play/egcs/gcc/../include /play/egcs/gcc/emit-rtl.c -o emit-rtl.o
/bin/cc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I. -I/play/egcs/gcc -I/play/egcs/gcc/. -I/play/egcs/gcc/config -I/play/egcs/gcc/../include genrtl.c -o genrtl.o
/bin/cc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I. -I/play/egcs/gcc -I/play/egcs/gcc/. -I/play/egcs/gcc/config -I/play/egcs/gcc/../include /play/egcs/gcc/dbxout.c -o dbxout.o
/bin/cc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I. -I/play/egcs/gcc -I/play/egcs/gcc/. -I/play/egcs/gcc/config -I/play/egcs/gcc/../include /play/egcs/gcc/sdbout.c -o sdbout.o
"/play/egcs/gcc/sdbout.c", line 468: warning: assignment type mismatch
"/play/egcs/gcc/sdbout.c", line 777: error: left operand must be modifiable lvalue: op "="
"/play/egcs/gcc/sdbout.c", line 1311: error: left operand must be modifiable lvalue: op "="
make[2]: *** [sdbout.o] Error 1
make[1]: *** [stage1_build] Error 2
make: *** [bootstrap] Error 2
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
SHLIB_EXT='' \
SHLIB_MULTILIB='' \
SHLIB_MKMAP='' \
SHLIB_MAPFILES='' \
SHLIB_NM_FLAGS='-pg' \
/bin/sh mklibgcc > tmp-libgcc.mk
mv tmp-libgcc.mk libgcc.mk
./xgcc -B./ -B/usr/local/i686-pc-udk/bin/ -isystem /usr/local/i686-pc-udk/include -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -I. -I. -I/play/egcs/gcc -I/play/egcs/gcc/. -I/play/egcs/gcc/config -I/play/egcs/gcc/../include -g0 \
-finhibit-size-directive -fno-inline-functions \
-fno-exceptions -fPIC -fno-omit-frame-pointer \
-c /play/egcs/gcc/crtstuff.c -DCRT_BEGIN -o crtbegin.o
UX:as: ERROR: (EOF):undefined name: .LPR0
make[2]: *** [crtbegin.o] Error 1
make[1]: *** [stage1_build] Error 2
make: *** [bootstrap] Error 2
----- End forwarded message -----