This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

branch bootstrap breakage in new DECL_RTL


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 -----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]