diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/egcs/gcc/configure | 196 | ||||
-rw-r--r-- | gnu/egcs/gcc/configure.in | 11 | ||||
-rw-r--r-- | gnu/egcs/gcc/cse.c | 61 | ||||
-rw-r--r-- | gnu/egcs/gcc/function.c | 59 | ||||
-rw-r--r-- | gnu/egcs/gcc/invoke.texi | 57 | ||||
-rw-r--r-- | gnu/egcs/gcc/toplev.c | 8 |
6 files changed, 223 insertions, 169 deletions
diff --git a/gnu/egcs/gcc/configure b/gnu/egcs/gcc/configure index 87dac50665f..0e7b6e2adba 100644 --- a/gnu/egcs/gcc/configure +++ b/gnu/egcs/gcc/configure @@ -3750,11 +3750,10 @@ for machine in $build $host $target; do i[34567]86-*-solaris2*) xm_file="xm-siglist.h xm-alloca.h ${xm_file}" xm_defines="USG POSIX SMALL_ARG_MAX" + tm_file=i386/sol2.h if test x$gas = xyes; then # Only needed if gas does not support -s - tm_file=i386/sol2gas.h - else - tm_file=i386/sol2.h + tm_file="i386/sol2gas.h ${tm_file}" fi tmake_file=i386/t-sol2 extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" @@ -4016,7 +4015,7 @@ for machine in $build $host $target; do extra_headers=math-68881.h ;; m68000-hp-hpux*) # HP 9000 series 300 - xm_file="xm_alloca.h ${xm_file}" + xm_file="xm-alloca.h ${xm_file}" xm_defines="USG NO_SYS_SIGLIST" if test x$gas = xyes then @@ -4217,7 +4216,7 @@ for machine in $build $host $target; do extra_headers=math-68881.h ;; m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7. - xm_file="xm_alloca.h ${xm_file}" + xm_file="xm-alloca.h ${xm_file}" xm_defines="USG NO_SYS_SIGLIST" if test x$gas = xyes then @@ -4233,7 +4232,7 @@ for machine in $build $host $target; do float_format=m68k ;; m68k-hp-hpux*) # HP 9000 series 300 - xm_file="xm_alloca.h ${xm_file}" + xm_file="xm-alloca.h ${xm_file}" xm_defines="USG NO_SYS_SIGLIST" if test x$gas = xyes then @@ -6048,7 +6047,7 @@ fi echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 -echo "configure:6052: checking for strerror in -lcposix" >&5 +echo "configure:6051: checking for strerror in -lcposix" >&5 ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6056,7 +6055,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcposix $LIBS" cat > conftest.$ac_ext <<EOF -#line 6060 "configure" +#line 6059 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6067,7 +6066,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:6071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6090,12 +6089,12 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:6094: checking for working const" >&5 +echo "configure:6093: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6099 "configure" +#line 6098 "configure" #include "confdefs.h" int main() { @@ -6144,7 +6143,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:6148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -6165,21 +6164,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:6169: checking for inline" >&5 +echo "configure:6168: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <<EOF -#line 6176 "configure" +#line 6175 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:6183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -6205,12 +6204,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:6209: checking for off_t" >&5 +echo "configure:6208: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6214 "configure" +#line 6213 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -6238,12 +6237,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:6242: checking for size_t" >&5 +echo "configure:6241: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6247 "configure" +#line 6246 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -6273,19 +6272,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:6277: checking for working alloca.h" >&5 +echo "configure:6276: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6282 "configure" +#line 6281 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:6289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -6306,12 +6305,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:6310: checking for alloca" >&5 +echo "configure:6309: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6315 "configure" +#line 6314 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -6339,7 +6338,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:6343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -6371,12 +6370,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:6375: checking whether alloca needs Cray hooks" >&5 +echo "configure:6374: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6380 "configure" +#line 6379 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -6401,12 +6400,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6405: checking for $ac_func" >&5 +echo "configure:6404: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6410 "configure" +#line 6409 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6429,7 +6428,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6456,7 +6455,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:6460: checking stack direction for C alloca" >&5 +echo "configure:6459: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6464,7 +6463,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 6468 "configure" +#line 6467 "configure" #include "confdefs.h" find_stack_direction () { @@ -6483,7 +6482,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:6487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -6508,17 +6507,17 @@ for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6512: checking for $ac_hdr" >&5 +echo "configure:6511: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6517 "configure" +#line 6516 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6547,12 +6546,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6551: checking for $ac_func" >&5 +echo "configure:6550: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6556 "configure" +#line 6555 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6575,7 +6574,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6600,7 +6599,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:6604: checking for working mmap" >&5 +echo "configure:6603: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6608,7 +6607,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 6612 "configure" +#line 6611 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -6748,7 +6747,7 @@ main() } EOF -if { (eval echo configure:6752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -6776,17 +6775,17 @@ unistd.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6780: checking for $ac_hdr" >&5 +echo "configure:6779: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6785 "configure" +#line 6784 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6790: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6816,12 +6815,12 @@ done strdup __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6820: checking for $ac_func" >&5 +echo "configure:6819: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6825 "configure" +#line 6824 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6844,7 +6843,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6848: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6873,12 +6872,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6877: checking for $ac_func" >&5 +echo "configure:6876: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6882 "configure" +#line 6881 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6901,7 +6900,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6935,19 +6934,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:6939: checking for LC_MESSAGES" >&5 +echo "configure:6938: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6944 "configure" +#line 6943 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:6951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -6968,7 +6967,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:6972: checking whether NLS is requested" >&5 +echo "configure:6971: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -6988,7 +6987,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:6992: checking whether included gettext is requested" >&5 +echo "configure:6991: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -7007,17 +7006,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:7011: checking for libintl.h" >&5 +echo "configure:7010: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7016 "configure" +#line 7015 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7034,19 +7033,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:7038: checking for gettext in libc" >&5 +echo "configure:7037: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7043 "configure" +#line 7042 "configure" #include "confdefs.h" #include <libintl.h> int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:7050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -7062,7 +7061,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:7066: checking for bindtextdomain in -lintl" >&5 +echo "configure:7065: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7070,7 +7069,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 7074 "configure" +#line 7073 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7081,7 +7080,7 @@ int main() { bindtextdomain() ; return 0; } EOF -if { (eval echo configure:7085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7097,12 +7096,12 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:7101: checking for gettext in libintl" >&5 +echo "configure:7100: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:7106: checking for gettext in -lintl" >&5 +echo "configure:7105: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7110,7 +7109,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 7114 "configure" +#line 7113 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7121,7 +7120,7 @@ int main() { gettext() ; return 0; } EOF -if { (eval echo configure:7125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7160,7 +7159,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7164: checking for $ac_word" >&5 +echo "configure:7163: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7194,12 +7193,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7198: checking for $ac_func" >&5 +echo "configure:7197: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7203 "configure" +#line 7202 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7222,7 +7221,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7249,7 +7248,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7253: checking for $ac_word" >&5 +echo "configure:7252: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7285,7 +7284,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7289: checking for $ac_word" >&5 +echo "configure:7288: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7317,7 +7316,7 @@ else fi cat > conftest.$ac_ext <<EOF -#line 7321 "configure" +#line 7320 "configure" #include "confdefs.h" int main() { @@ -7325,7 +7324,7 @@ extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:7329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -7348,7 +7347,7 @@ fi if test "$CATOBJEXT" = "NONE"; then echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 -echo "configure:7352: checking whether catgets can be used" >&5 +echo "configure:7351: checking whether catgets can be used" >&5 # Check whether --with-catgets or --without-catgets was given. if test "${with_catgets+set}" = set; then withval="$with_catgets" @@ -7361,7 +7360,7 @@ fi if test "$nls_cv_use_catgets" = "yes"; then echo $ac_n "checking for main in -li""... $ac_c" 1>&6 -echo "configure:7365: checking for main in -li" >&5 +echo "configure:7364: checking for main in -li" >&5 ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7369,14 +7368,14 @@ else ac_save_LIBS="$LIBS" LIBS="-li $LIBS" cat > conftest.$ac_ext <<EOF -#line 7373 "configure" +#line 7372 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:7380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7404,12 +7403,12 @@ else fi echo $ac_n "checking for catgets""... $ac_c" 1>&6 -echo "configure:7408: checking for catgets" >&5 +echo "configure:7407: checking for catgets" >&5 if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7413 "configure" +#line 7412 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char catgets(); below. */ @@ -7432,7 +7431,7 @@ catgets(); ; return 0; } EOF -if { (eval echo configure:7436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_catgets=yes" else @@ -7454,7 +7453,7 @@ EOF # Extract the first word of "gencat", so it can be a program name with args. set dummy gencat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7458: checking for $ac_word" >&5 +echo "configure:7457: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7490,7 +7489,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7494: checking for $ac_word" >&5 +echo "configure:7493: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7527,7 +7526,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7531: checking for $ac_word" >&5 +echo "configure:7530: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7562,7 +7561,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7566: checking for $ac_word" >&5 +echo "configure:7565: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7620,7 +7619,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7624: checking for $ac_word" >&5 +echo "configure:7623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7654,7 +7653,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7658: checking for $ac_word" >&5 +echo "configure:7657: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7690,7 +7689,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7694: checking for $ac_word" >&5 +echo "configure:7693: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7783,7 +7782,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:7787: checking for catalogs to be installed" >&5 +echo "configure:7786: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -7811,17 +7810,17 @@ echo "configure:7787: checking for catalogs to be installed" >&5 if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:7815: checking for linux/version.h" >&5 +echo "configure:7814: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7820 "configure" +#line 7819 "configure" #include "confdefs.h" #include <linux/version.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7825: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7824: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8055,7 +8054,7 @@ fi # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 -echo "configure:8059: checking assembler alignment features" >&5 +echo "configure:8058: checking assembler alignment features" >&5 gcc_cv_as= gcc_cv_as_alignment_features= gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas @@ -8176,7 +8175,7 @@ fi echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 -echo "configure:8180: checking assembler subsection support" >&5 +echo "configure:8179: checking assembler subsection support" >&5 gcc_cv_as_subsections= if test x$gcc_cv_as != x; then # Check if we have .subsection @@ -8216,7 +8215,7 @@ fi echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 -echo "configure:8220: checking assembler instructions" >&5 +echo "configure:8219: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_as != x; then set "filds fists" "filds mem; fists mem" @@ -9123,7 +9122,6 @@ done EOF cat >> $CONFIG_STATUS <<EOF - host='${host}' build='${build}' target='${target}' diff --git a/gnu/egcs/gcc/configure.in b/gnu/egcs/gcc/configure.in index bdf4348a2fe..1addb4c12d2 100644 --- a/gnu/egcs/gcc/configure.in +++ b/gnu/egcs/gcc/configure.in @@ -1399,11 +1399,10 @@ changequote(,)dnl changequote([,])dnl xm_file="xm-siglist.h xm-alloca.h ${xm_file}" xm_defines="USG POSIX SMALL_ARG_MAX" + tm_file=i386/sol2.h if test x$gas = xyes; then # Only needed if gas does not support -s - tm_file=i386/sol2gas.h - else - tm_file=i386/sol2.h + tm_file="i386/sol2gas.h ${tm_file}" fi tmake_file=i386/t-sol2 extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" @@ -1689,7 +1688,7 @@ changequote([,])dnl extra_headers=math-68881.h ;; m68000-hp-hpux*) # HP 9000 series 300 - xm_file="xm_alloca.h ${xm_file}" + xm_file="xm-alloca.h ${xm_file}" xm_defines="USG NO_SYS_SIGLIST" if test x$gas = xyes then @@ -1890,7 +1889,7 @@ changequote([,])dnl extra_headers=math-68881.h ;; m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7. - xm_file="xm_alloca.h ${xm_file}" + xm_file="xm-alloca.h ${xm_file}" xm_defines="USG NO_SYS_SIGLIST" if test x$gas = xyes then @@ -1906,7 +1905,7 @@ changequote([,])dnl float_format=m68k ;; m68k-hp-hpux*) # HP 9000 series 300 - xm_file="xm_alloca.h ${xm_file}" + xm_file="xm-alloca.h ${xm_file}" xm_defines="USG NO_SYS_SIGLIST" if test x$gas = xyes then diff --git a/gnu/egcs/gcc/cse.c b/gnu/egcs/gcc/cse.c index 35dfaa79028..8b87c72fb1e 100644 --- a/gnu/egcs/gcc/cse.c +++ b/gnu/egcs/gcc/cse.c @@ -1,5 +1,5 @@ /* Common subexpression elimination for GNU compiler. - Copyright (C) 1987, 88, 89, 92-7, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 89, 92-99, 2000 Free Software Foundation, Inc. This file is part of GNU CC. @@ -42,12 +42,14 @@ Boston, MA 02111-1307, USA. */ expressions encountered with the cheapest equivalent expression. It is too complicated to keep track of the different possibilities - when control paths merge; so, at each label, we forget all that is - known and start fresh. This can be described as processing each - basic block separately. Note, however, that these are not quite - the same as the basic blocks found by a later pass and used for - data flow analysis and register packing. We do not need to start fresh - after a conditional jump instruction if there is no label there. + when control paths merge in this code; so, at each label, we forget all + that is known and start fresh. This can be described as processing each + extended basic block separately. We have a separate pass to perform + global CSE. + + Note CSE can turn a conditional or computed jump into a nop or + an unconditional jump. When this occurs we arrange to run the jump + optimizer after CSE to delete the unreachable code. We use two data structures to record the equivalent expressions: a hash table for most expressions, and several vectors together @@ -7496,7 +7498,6 @@ cse_insn (insn, libcall_insn) rtx new = emit_jump_insn_before (gen_jump (XEXP (src, 0)), insn); JUMP_LABEL (new) = XEXP (src, 0); LABEL_NUSES (XEXP (src, 0))++; - delete_insn (insn); insn = new; } else @@ -7507,42 +7508,11 @@ cse_insn (insn, libcall_insn) Until the right place is found, might as well do this here. */ INSN_CODE (insn) = -1; - /* Now that we've converted this jump to an unconditional jump, - there is dead code after it. Delete the dead code until we - reach a BARRIER, the end of the function, or a label. Do - not delete NOTEs except for NOTE_INSN_DELETED since later - phases assume these notes are retained. */ - - p = insn; - - while (NEXT_INSN (p) != 0 - && GET_CODE (NEXT_INSN (p)) != BARRIER - && GET_CODE (NEXT_INSN (p)) != CODE_LABEL) - { - /* Note, we must update P with the return value from - delete_insn, otherwise we could get an infinite loop - if NEXT_INSN (p) had INSN_DELETED_P set. */ - if (GET_CODE (NEXT_INSN (p)) != NOTE - || NOTE_LINE_NUMBER (NEXT_INSN (p)) == NOTE_INSN_DELETED) - p = PREV_INSN (delete_insn (NEXT_INSN (p))); - else - p = NEXT_INSN (p); - } - - /* If we don't have a BARRIER immediately after INSN, put one there. - Much code assumes that there are no NOTEs between a JUMP_INSN and - BARRIER. */ - - if (NEXT_INSN (insn) == 0 - || GET_CODE (NEXT_INSN (insn)) != BARRIER) - emit_barrier_before (NEXT_INSN (insn)); - - /* We might have two BARRIERs separated by notes. Delete the second - one if so. */ - - if (p != insn && NEXT_INSN (p) != 0 - && GET_CODE (NEXT_INSN (p)) == BARRIER) - delete_insn (NEXT_INSN (p)); + /* Now emit a BARRIER after the unconditional jump. Do not bother + deleting any unreachable code, let jump/flow do that. */ + if (NEXT_INSN (insn) != 0 + && GET_CODE (NEXT_INSN (insn)) != BARRIER) + emit_barrier_after (insn); cse_jumps_altered = 1; sets[i].rtl = 0; @@ -9035,9 +9005,6 @@ cse_basic_block (from, to, next_branch, around_loop) insn = NEXT_INSN (to); - if (LABEL_NUSES (to) == 0) - insn = delete_insn (to); - /* If TO was the last insn in the function, we are done. */ if (insn == 0) return 0; diff --git a/gnu/egcs/gcc/function.c b/gnu/egcs/gcc/function.c index 5592e482e2f..60afafa9c19 100644 --- a/gnu/egcs/gcc/function.c +++ b/gnu/egcs/gcc/function.c @@ -6695,7 +6695,10 @@ void thread_prologue_and_epilogue_insns (f) rtx f ATTRIBUTE_UNUSED; { - int insertted = 0; + int inserted = 0; +#ifdef HAVE_prologue + rtx prologue_end = NULL_RTX; +#endif prologue = 0; #ifdef HAVE_prologue @@ -6712,7 +6715,7 @@ thread_prologue_and_epilogue_insns (f) seq = get_insns (); prologue = record_insns (seq); - emit_note (NULL, NOTE_INSN_PROLOGUE_END); + prologue_end = emit_note (NULL, NOTE_INSN_PROLOGUE_END); seq = gen_sequence (); end_sequence (); @@ -6725,7 +6728,7 @@ thread_prologue_and_epilogue_insns (f) abort (); insert_insn_on_edge (seq, ENTRY_BLOCK_PTR->succ); - insertted = 1; + inserted = 1; } else emit_insn_after (seq, f); @@ -6857,8 +6860,56 @@ thread_prologue_and_epilogue_insns (f) } #endif - if (insertted) + if (inserted) commit_edge_insertions (); + +#ifdef HAVE_prologue + if (prologue_end) + { + rtx insn, prev; + + /* GDB handles `break f' by setting a breakpoint on the first + line note *after* the prologue. Which means (1) that if + there are line number notes before where we inserted the + prologue we should move them, and (2) if there is no such + note, then we should generate one at the prologue. */ + + for (insn = prologue_end; insn ; insn = prev) + { + prev = PREV_INSN (insn); + if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0) + { + /* Note that we cannot reorder the first insn in the + chain, since rest_of_compilation relies on that + remaining constant. Do the next best thing. */ + if (prev == NULL) + { + emit_line_note_after (NOTE_SOURCE_FILE (insn), + NOTE_LINE_NUMBER (insn), + prologue_end); + NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; + } + else + reorder_insns (insn, insn, prologue_end); + } + } + + insn = NEXT_INSN (prologue_end); + if (! insn || GET_CODE (insn) != NOTE || NOTE_LINE_NUMBER (insn) <= 0) + { + for (insn = next_active_insn (f); insn ; insn = PREV_INSN (insn)) + { + if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0) + { + emit_line_note_after (NOTE_SOURCE_FILE (insn), + NOTE_LINE_NUMBER (insn), + prologue_end); + break; + } + } + } + } + #endif } /* Reposition the prologue-end and epilogue-begin notes after instruction diff --git a/gnu/egcs/gcc/invoke.texi b/gnu/egcs/gcc/invoke.texi index 230174c036c..b7faa6b78c8 100644 --- a/gnu/egcs/gcc/invoke.texi +++ b/gnu/egcs/gcc/invoke.texi @@ -93,7 +93,7 @@ in the following sections. @item C Language Options @xref{C Dialect Options,,Options Controlling C Dialect}. @smallexample --ansi -flang-isoc9x -fallow-single-precision -fcond-mismatch -fno-asm +-ansi -fstd -fallow-single-precision -fcond-mismatch -fno-asm -fno-builtin -ffreestanding -fhosted -fsigned-bitfields -fsigned-char -funsigned-bitfields -funsigned-char -fwritable-strings -traditional -traditional-cpp -trigraphs @@ -667,14 +667,37 @@ programs that might use these names for other things. The functions @code{alloca}, @code{abort}, @code{exit}, and @code{_exit} are not builtin functions when @samp{-ansi} is used. -@item -flang-isoc9x -Enable support for features found in the C9X standard. In particular, -enable support for the C9X @code{restrict} keyword. +@item -fstd= +Determine the language standard. A value for this option must be provided; +possible values are -Even when this option is not specified, you can still use some C9X -features in so far as they do not conflict with previous C standards. -For example, you may use @code{__restrict__} even when -flang-isoc9x -is not specified. +@itemize @minus +@item iso9899:1990 +Same as -ansi + +@item iso9899:199409 +ISO C as modified in amend. 1 + +@item iso9899:199x +ISO C 9x + +@item c89 +same as -std=iso9899:1990 + +@item c9x +same as -std=iso9899:199x + +@item gnu89 +default, iso9899:1990 + gnu extensions + +@item gnu9x +iso9899:199x + gnu extensions +@end itemize + +Even when this option is not specified, you can still use some of the +features of newer standards in so far as they do not conflict with +previous C standards. For example, you may use @code{__restrict__} even +when -fstd=c9x is not specified. @item -fno-asm Do not recognize @code{asm}, @code{inline} or @code{typeof} as a @@ -1163,7 +1186,7 @@ anachronism. Therefore, by default it is invalid to assign to type @samp{X *}. However, for backwards compatibility, you can make it valid with @samp{-fthis-is-variable}. -@item -fvtable-thunks +@item -fvtable-thunks=@var{thunks-version} Use @samp{thunks} to implement the virtual function dispatch table (@samp{vtable}). The traditional (cfront-style) approach to implementing vtables was to store a pointer to the function and two @@ -1171,13 +1194,27 @@ offsets for adjusting the @samp{this} pointer at the call site. Newer implementations store a single pointer to a @samp{thunk} function which does any necessary adjustment and then calls the target function. +The original implementation of thunks (version 1) had a bug regarding +virtual base classes; this bug is fixed with version 2 of the thunks +implementation. With setting the version to 2, compatibility to the +version 1 thunks is provided, at the cost of extra machine code. Version +3 does not include this compatibility. + This option also enables a heuristic for controlling emission of vtables; if a class has any non-inline virtual functions, the vtable will be emitted in the translation unit containing the first one of those. Like all options that change the ABI, all C++ code, @emph{including -libgcc.a} must be built with the same setting of this option. +libgcc.a} must be built with the same setting of this option. Since +version 1 and version 2 are also incompatible (for classes with virtual +bases defining virtual functions), all code must also be compiled with +the same version. + +On some targets (e.g. Linux/GNU), version 2 thunks are the default. On these +targets, no option or -fvtable-thunks will produce version 2 thunks. On +all other targets, not giving the option will use the traditional +implementation, and -fvtable-thunks will produce version 2 thunks. @item -nostdinc++ Do not search for header files in the standard directories specific to diff --git a/gnu/egcs/gcc/toplev.c b/gnu/egcs/gcc/toplev.c index 9dac1fdbd9c..99e0b719ba3 100644 --- a/gnu/egcs/gcc/toplev.c +++ b/gnu/egcs/gcc/toplev.c @@ -1,5 +1,5 @@ /* Top level of GNU C compiler - Copyright (C) 1987, 88, 89, 92-98, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 89, 92-99, 2000 Free Software Foundation, Inc. This file is part of GNU CC. @@ -3870,13 +3870,15 @@ rest_of_compilation (decl) TIMEVAR (cse_time, tem = cse_main (insns, max_reg_num (), 0, rtl_dump_file)); - TIMEVAR (cse_time, delete_trivially_dead_insns (insns, max_reg_num ())); - if (tem || optimize > 1) TIMEVAR (jump_time, jump_optimize (insns, !JUMP_CROSS_JUMP, !JUMP_NOOP_MOVES, !JUMP_AFTER_REGSCAN)); + /* Run this after jump optmizations remove all the unreachable code + so that unreachable code will not keep values live. */ + TIMEVAR (cse_time, delete_trivially_dead_insns (insns, max_reg_num ())); + /* Dump rtl code after cse, if we are doing that. */ if (cse_dump) |