merge GCC 4.1.2-20070110.

This commit is contained in:
mrg 2007-01-11 06:59:53 +00:00
parent 8fb29141e0
commit d84579c1c7
16 changed files with 2140 additions and 1670 deletions

View File

@ -1293,7 +1293,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
bfin-*-*)
noconfigdirs="$noconfigdirs target-libgloss gdb"
noconfigdirs="$noconfigdirs gdb"
if test x${is_cross_compiler} != xno ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
@ -2158,7 +2158,6 @@ acx_cv_cc_gcc_supports_ada=no
# given a .adb file, but produce no object file. So we must check
# if an object file was really produced to guard against this.
errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
echo $errors
if test x"$errors" = x && test -f conftest.$ac_objext; then
acx_cv_cc_gcc_supports_ada=yes
fi
@ -2219,7 +2218,13 @@ fi
if test "x$with_mpfr_dir" != x; then
gmpinc="-I$with_mpfr_dir"
gmplibs="$with_mpfr_dir/libmpfr.a"
if test -f "$with_mpfr_dir/.libs/libmpfr.a"; then
gmplibs="$with_mpfr_dir/.libs/libmpfr.a"
elif test -f "$with_mpfr_dir/_libs/libmpfr.a"; then
gmplibs="$with_mpfr_dir/_libs/libmpfr.a"
else
gmplibs="$with_mpfr_dir/libmpfr.a"
fi
else
gmplibs="-lmpfr"
fi
@ -2272,9 +2277,9 @@ saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $gmpinc"
# Check GMP actually works
echo $ac_n "checking for correct version of gmp.h""... $ac_c" 1>&6
echo "configure:2275: checking for correct version of gmp.h" >&5
echo "configure:2281: checking for correct version of gmp.h" >&5
cat > conftest.$ac_ext <<EOF
#line 2277 "configure"
#line 2283 "configure"
#include "confdefs.h"
#include "gmp.h"
int main() {
@ -2285,7 +2290,7 @@ choke me
; return 0; }
EOF
if { (eval echo configure:2288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
@ -2298,12 +2303,12 @@ rm -f conftest*
if test x"$have_gmp" = xyes; then
echo $ac_n "checking for MPFR""... $ac_c" 1>&6
echo "configure:2301: checking for MPFR" >&5
echo "configure:2307: checking for MPFR" >&5
saved_LIBS="$LIBS"
LIBS="$LIBS $gmplibs"
cat > conftest.$ac_ext <<EOF
#line 2306 "configure"
#line 2312 "configure"
#include "confdefs.h"
#include <gmp.h>
#include <mpfr.h>
@ -2311,7 +2316,7 @@ int main() {
mpfr_t n; mpfr_init(n);
; return 0; }
EOF
if { (eval echo configure:2314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
@ -3310,7 +3315,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3313: checking for $ac_word" >&5
echo "configure:3319: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3350,7 +3355,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3353: checking for $ac_word" >&5
echo "configure:3359: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3389,7 +3394,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3392: checking for $ac_word" >&5
echo "configure:3398: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_M4'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3428,7 +3433,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3431: checking for $ac_word" >&5
echo "configure:3437: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3468,7 +3473,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3471: checking for $ac_word" >&5
echo "configure:3477: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3507,7 +3512,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3510: checking for $ac_word" >&5
echo "configure:3516: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3560,7 +3565,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3563: checking for $ac_word" >&5
echo "configure:3569: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_EXPECT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3601,7 +3606,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3604: checking for $ac_word" >&5
echo "configure:3610: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RUNTEST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3649,7 +3654,7 @@ test -n "$target_alias" && ncn_target_tool_prefix=$target_alias-
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3652: checking for $ac_word" >&5
echo "configure:3658: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3680,7 +3685,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3683: checking for $ac_word" >&5
echo "configure:3689: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3724,7 +3729,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3727: checking for $ac_word" >&5
echo "configure:3733: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3755,7 +3760,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3758: checking for $ac_word" >&5
echo "configure:3764: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3799,7 +3804,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3802: checking for $ac_word" >&5
echo "configure:3808: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3830,7 +3835,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3833: checking for $ac_word" >&5
echo "configure:3839: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3874,7 +3879,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3877: checking for $ac_word" >&5
echo "configure:3883: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3905,7 +3910,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3908: checking for $ac_word" >&5
echo "configure:3914: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3949,7 +3954,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3952: checking for $ac_word" >&5
echo "configure:3958: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3980,7 +3985,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3983: checking for $ac_word" >&5
echo "configure:3989: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4024,7 +4029,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4027: checking for $ac_word" >&5
echo "configure:4033: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4055,7 +4060,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4058: checking for $ac_word" >&5
echo "configure:4064: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4099,7 +4104,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4102: checking for $ac_word" >&5
echo "configure:4108: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4130,7 +4135,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4133: checking for $ac_word" >&5
echo "configure:4139: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4169,7 +4174,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4172: checking for $ac_word" >&5
echo "configure:4178: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4200,7 +4205,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4203: checking for $ac_word" >&5
echo "configure:4209: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4239,7 +4244,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4242: checking for $ac_word" >&5
echo "configure:4248: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4270,7 +4275,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4273: checking for $ac_word" >&5
echo "configure:4279: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4314,7 +4319,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4317: checking for $ac_word" >&5
echo "configure:4323: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4345,7 +4350,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4348: checking for $ac_word" >&5
echo "configure:4354: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4389,7 +4394,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4392: checking for $ac_word" >&5
echo "configure:4398: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4420,7 +4425,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4423: checking for $ac_word" >&5
echo "configure:4429: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4471,7 +4476,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4474: checking for $ac_word" >&5
echo "configure:4480: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4502,7 +4507,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4505: checking for $ac_word" >&5
echo "configure:4511: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4546,7 +4551,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4549: checking for $ac_word" >&5
echo "configure:4555: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4577,7 +4582,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4580: checking for $ac_word" >&5
echo "configure:4586: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4621,7 +4626,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4624: checking for $ac_word" >&5
echo "configure:4630: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4652,7 +4657,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4655: checking for $ac_word" >&5
echo "configure:4661: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4696,7 +4701,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4699: checking for $ac_word" >&5
echo "configure:4705: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4727,7 +4732,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4730: checking for $ac_word" >&5
echo "configure:4736: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4771,7 +4776,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4774: checking for $ac_word" >&5
echo "configure:4780: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4802,7 +4807,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4805: checking for $ac_word" >&5
echo "configure:4811: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4846,7 +4851,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4849: checking for $ac_word" >&5
echo "configure:4855: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GCC_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4877,7 +4882,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4880: checking for $ac_word" >&5
echo "configure:4886: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GCC_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4916,7 +4921,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4919: checking for $ac_word" >&5
echo "configure:4925: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GCJ_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4947,7 +4952,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4950: checking for $ac_word" >&5
echo "configure:4956: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GCJ_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4991,7 +4996,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4994: checking for $ac_word" >&5
echo "configure:5000: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5022,7 +5027,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5025: checking for $ac_word" >&5
echo "configure:5031: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5066,7 +5071,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5069: checking for $ac_word" >&5
echo "configure:5075: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5097,7 +5102,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5100: checking for $ac_word" >&5
echo "configure:5106: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5141,7 +5146,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5144: checking for $ac_word" >&5
echo "configure:5150: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5172,7 +5177,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5175: checking for $ac_word" >&5
echo "configure:5181: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5216,7 +5221,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5219: checking for $ac_word" >&5
echo "configure:5225: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5247,7 +5252,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5250: checking for $ac_word" >&5
echo "configure:5256: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5291,7 +5296,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5294: checking for $ac_word" >&5
echo "configure:5300: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5322,7 +5327,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5325: checking for $ac_word" >&5
echo "configure:5331: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5366,7 +5371,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5369: checking for $ac_word" >&5
echo "configure:5375: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5397,7 +5402,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5400: checking for $ac_word" >&5
echo "configure:5406: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5436,7 +5441,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5439: checking for $ac_word" >&5
echo "configure:5445: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5467,7 +5472,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5470: checking for $ac_word" >&5
echo "configure:5476: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5511,7 +5516,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5514: checking for $ac_word" >&5
echo "configure:5520: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5542,7 +5547,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5545: checking for $ac_word" >&5
echo "configure:5551: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5585,7 +5590,7 @@ fi
RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
echo $ac_n "checking where to find the target ar""... $ac_c" 1>&6
echo "configure:5588: checking where to find the target ar" >&5
echo "configure:5594: checking where to find the target ar" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5610,7 +5615,7 @@ else
fi
fi
echo $ac_n "checking where to find the target as""... $ac_c" 1>&6
echo "configure:5613: checking where to find the target as" >&5
echo "configure:5619: checking where to find the target as" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5635,7 +5640,7 @@ else
fi
fi
echo $ac_n "checking where to find the target cc""... $ac_c" 1>&6
echo "configure:5638: checking where to find the target cc" >&5
echo "configure:5644: checking where to find the target cc" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5660,7 +5665,7 @@ else
fi
fi
echo $ac_n "checking where to find the target c++""... $ac_c" 1>&6
echo "configure:5663: checking where to find the target c++" >&5
echo "configure:5669: checking where to find the target c++" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5688,7 +5693,7 @@ else
fi
fi
echo $ac_n "checking where to find the target c++ for libstdc++""... $ac_c" 1>&6
echo "configure:5691: checking where to find the target c++ for libstdc++" >&5
echo "configure:5697: checking where to find the target c++ for libstdc++" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5716,7 +5721,7 @@ else
fi
fi
echo $ac_n "checking where to find the target dlltool""... $ac_c" 1>&6
echo "configure:5719: checking where to find the target dlltool" >&5
echo "configure:5725: checking where to find the target dlltool" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5741,7 +5746,7 @@ else
fi
fi
echo $ac_n "checking where to find the target gcc""... $ac_c" 1>&6
echo "configure:5744: checking where to find the target gcc" >&5
echo "configure:5750: checking where to find the target gcc" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5766,7 +5771,7 @@ else
fi
fi
echo $ac_n "checking where to find the target gcj""... $ac_c" 1>&6
echo "configure:5769: checking where to find the target gcj" >&5
echo "configure:5775: checking where to find the target gcj" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5794,7 +5799,7 @@ else
fi
fi
echo $ac_n "checking where to find the target gfortran""... $ac_c" 1>&6
echo "configure:5797: checking where to find the target gfortran" >&5
echo "configure:5803: checking where to find the target gfortran" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5822,7 +5827,7 @@ else
fi
fi
echo $ac_n "checking where to find the target ld""... $ac_c" 1>&6
echo "configure:5825: checking where to find the target ld" >&5
echo "configure:5831: checking where to find the target ld" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5847,7 +5852,7 @@ else
fi
fi
echo $ac_n "checking where to find the target lipo""... $ac_c" 1>&6
echo "configure:5850: checking where to find the target lipo" >&5
echo "configure:5856: checking where to find the target lipo" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5862,7 +5867,7 @@ else
fi
fi
echo $ac_n "checking where to find the target nm""... $ac_c" 1>&6
echo "configure:5865: checking where to find the target nm" >&5
echo "configure:5871: checking where to find the target nm" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5887,7 +5892,7 @@ else
fi
fi
echo $ac_n "checking where to find the target objdump""... $ac_c" 1>&6
echo "configure:5890: checking where to find the target objdump" >&5
echo "configure:5896: checking where to find the target objdump" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5912,7 +5917,7 @@ else
fi
fi
echo $ac_n "checking where to find the target ranlib""... $ac_c" 1>&6
echo "configure:5915: checking where to find the target ranlib" >&5
echo "configure:5921: checking where to find the target ranlib" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5937,7 +5942,7 @@ else
fi
fi
echo $ac_n "checking where to find the target strip""... $ac_c" 1>&6
echo "configure:5940: checking where to find the target strip" >&5
echo "configure:5946: checking where to find the target strip" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -5962,7 +5967,7 @@ else
fi
fi
echo $ac_n "checking where to find the target windres""... $ac_c" 1>&6
echo "configure:5965: checking where to find the target windres" >&5
echo "configure:5971: checking where to find the target windres" >&5
if test "x${build}" != "x${host}" ; then
# Canadian cross, just use what we found
echo "$ac_t""pre-installed" 1>&6
@ -6015,7 +6020,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:6018: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:6024: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@ -6062,7 +6067,7 @@ esac
# gcc for stageN-gcc and stagePREV-gcc for stage(N-1). In case this is not
# possible, however, we can resort to mv.
echo $ac_n "checking if symbolic links between directories work""... $ac_c" 1>&6
echo "configure:6065: checking if symbolic links between directories work" >&5
echo "configure:6071: checking if symbolic links between directories work" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_ln_s_dir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6176,34 +6181,15 @@ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
#
# If the first sed substitution is executed (which looks for macros that
# take arguments), then we branch to the quote section. Otherwise,
# look for a macro that doesn't take arguments.
cat >confdef2opt.sed <<\_ACEOF
t clear
: clear
s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
t quote
s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
t quote
d
: quote
s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
s,\[,\\&,g
s,\],\\&,g
s,\$,$$,g
p
_ACEOF
# We use echo to avoid assuming a particular line-breaking character.
# The extra dot is to prevent the shell from consuming trailing
# line-breaks from the sub-command output. A line-break within
# single-quotes doesn't work because, if this script is created in a
# platform that uses two characters for line-breaks (e.g., DOS), tr
# would break.
ac_LF_and_DOT=`echo; echo .`
DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
rm -f confdef2opt.sed
cat > conftest.defs <<\EOF
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
s%\[%\\&%g
s%\]%\\&%g
s%\$%$$%g
EOF
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
rm -f conftest.defs
# Without the "./", some shells look in PATH for config.status.

View File

@ -501,7 +501,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
bfin-*-*)
noconfigdirs="$noconfigdirs target-libgloss gdb"
noconfigdirs="$noconfigdirs gdb"
if test x${is_cross_compiler} != xno ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
@ -1065,7 +1065,13 @@ AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH Specify source directory for MP
if test "x$with_mpfr_dir" != x; then
gmpinc="-I$with_mpfr_dir"
gmplibs="$with_mpfr_dir/libmpfr.a"
if test -f "$with_mpfr_dir/.libs/libmpfr.a"; then
gmplibs="$with_mpfr_dir/.libs/libmpfr.a"
elif test -f "$with_mpfr_dir/_libs/libmpfr.a"; then
gmplibs="$with_mpfr_dir/_libs/libmpfr.a"
else
gmplibs="$with_mpfr_dir/libmpfr.a"
fi
else
gmplibs="-lmpfr"
fi

View File

@ -1,13 +1,516 @@
2007-01-09 Nicolas Pitre <nico@cam.org>
PR target/30173
* arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
2007-01-08 Nick Clifton <nickc@redhat.com>
* config/frv/predicates.md (reg_or_0_operand): Accept
CONST_DOUBLEs.
2007-01-06 Richard Sandiford <richard@codesourcery.com>
Backport from mainline:
2006-05-23 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/27736
* combine.c (replaced_rhs_value): New variable.
(combine_instructions): Set it.
(distribute_notes): When distributing a note in replaced_rhs_insn,
check whether the value was used in replaced_rhs_value.
2006-05-22 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/25514
* combine.c (replaced_rhs_insn): New variable.
(combine_instructions): Set replaced_rhs_insn when trying to replace
a SET_SRC with a REG_EQUAL note.
(distribute_notes): Use replaced_rhs_insn when determining the live
range of a REG_DEAD register.
2007-01-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/30212
* tree-vrp.c (adjust_range_with_scev): Do not adjust invalid
ranges by using TYPE_MIN_VALUE or TYPE_MAX_VALUE.
2007-01-05 Richard Guenther <rguenther@suse.de>
PR middle-end/27826
* tree.c (get_narrower): Do not construct COMPONENT_REFs
with mismatched types. Instead explicitly build a
conversion NOP_EXPR.
2007-01-05 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-06-24 Jan Hubicka <jh@suse.cz>
PR c/25795
PR c++/27369
* craph.c (cgraph_varpool_nodes): Export.
(decide_is_variable_needed): Do not worry about "used" attribute.
* cgraph.h (cgraph_varpool_nodes): Declare.
* cgraphunit.c (decide_is_function_needed): Do not worry about "used"
attribute.
(process_function_and_variable_attributes): New function.
(cgraph_finalize_compilation_unit): Call it.
* c-decl.c (finish_decl): Do not worry about used attribute.
* c-common.c (handle_externally_visible_attribute): Only validate.
2007-01-05 Joel Brobecker <brobecker@adacore.com>
* doc/install.texi (Final install): Document the fact that
the GNAT runtime should not be stripped.
2007-01-05 Jakub Jelinek <jakub@redhat.com>
PR c/30360
* libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
denom against 0.0.
Backport from mainline:
2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
PR c/25993
* c-opts.c (c_common_handle_option): Ignore the -std options
if the input language is assembly.
2007-01-05 Richard Guenther <rguenther@suse.de>
PR middle-end/28116
* tree-inline.c (copy_body_r): Mark argument of ADDR_EXPR
addressable.
2007-01-05 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-10-15 Jan Hubicka <jh@suse.cz>
PR middle-end/29241
* cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
declared always_inline even when not inlining.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
PR middle-end/30286
* fold-const.c (negate_expr): Don't call fold_build1
for INTEGER_CST or REAL_CST.
2006-12-27 Ian Lance Taylor <iant@google.com>
PR debug/26964
* dwarf2out.c (gen_type_die): Don't write out a DIE for
ENUMERAL_TYPE if it was already written out.
2006-12-23 Eric Botcazou <ebotcazou@adacore.com>
* dwarf2out.c (dbx_reg_number): Do leaf register remapping
only if the function is leaf.
(multiple_reg_loc_descriptor): Likewise.
Backport from mainline:
2006-05-13 Nick Clifton <nickc@redhat.com>
* dwarf2out.c (dbx_reg_number): Check return value from
LEAF_REG_REMAP and only use it if it is valid.
(multiple_reg_loc_descriptor): Likewise.
2006-12-21 Jakub Jelinek <jakub@redhat.com>
PR target/30230
* config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
(bundling): Use it.
2006-12-17 Matthias Klose <doko@debian.org>
PR libstdc++/11953
* gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
2006-12-16 Joseph Myers <joseph@codesourcery.com>
David Edelsohn <edelsohn@gnu.org>
PR target/24036
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
Use new macros to detect modes with holes; do not look at integer
units.
(subreg_offset_representable_p): Check for and disallow cases
where the modes use different numbers of bits from registers.
* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
constant for soft-float.
(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
containing doubles.
(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
in E500 double case.
* config/rs6000/rs6000.md (movtf): Allow soft-float.
(movtf_softfloat): New.
2006-12-15 Jakub Jelinek <jakub@redhat.com>
PR target/30185
* config/rs6000/rs6000.md (div<mode>3): Use correct mode in
force_reg call.
2006-12-12 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/11953
* gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
* config/ia64/linux.h (CPP_SPEC): Define.
* config/s390/linux.h (CPP_SPEC): Define.
2006-12-12 Jim Wilson <wilson@specifix.com>
Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/27761
* combine.c (try_combine): Don't create a useless garbage SET
if PATTERN (i2) is a PARALLEL. If added_sets_1, save
PATTERN (i1) resp. SET from i1src to i1dest in i1pat
and use it to prevent accidental modification of i1src.
2006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/30039
* pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
patterns. Correct length of high:DI instruction sequence.
2006-11-29 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/predicates.md (gpc_reg_operand): Check
invalid_e500_subreg.
* config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
SImode subregs of SPE vectors.
* config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
* jump.c (true_regnum): Require subregs to satisfy
subreg_offset_representable_p.
2006-11-29 Jie Zhang <jie.zhang@analog.com>
* doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
2006-11-29 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
STRICT_ALIGNMENT and the type is more aligned than the saved
registers, copy via a temporary.
2006-11-28 Joseph Myers <joseph@codesourcery.com>
* function.c (instantiate_virtual_regs_in_insn): Call force_reg
inside start_sequence / end_sequence pair.
2006-11-27 Michael Matz <matz@suse.de>
Andreas Krebbel <krebbel1@de.ibm.com>
PR target/29319
* config/s390/predicates.md (larl_operand): Check addend of larl
operand to be in range of -/+2GB.
* config/s390/s390.c (legitimize_pic_address): Likewise.
Changed type of variable even to HOST_WIDE_INT.
2006-11-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29964
* ipa-pure-const.c (check_tree): If the original tree
is volatile return early and say the function is not pure
nor const. Remove the volatile check for writes.
(analyze_function): Print out the result of the local
analysis pass.
2006-11-24 Jakub Jelinek <jakub@redhat.com>
PR c/29736
* c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
or UNION_TYPE inner types.
2006-11-24 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/eabispe.h (TARGET_DEFAULT): Include
MASK_STRICT_ALIGN.
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
* config/rs6000/rs6000.c (rs6000_override_options): Use
MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to
POWERPC_MASKS.
2006-11-24 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390.c (s390_emit_compare_and_swap): New function.
(s390_expand_cs_hqi, s390_expand_atomic): Call
s390_emit_compare_and_swap.
2006-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
2006-11-22 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/spe.md (SPE64): New mode macro.
(mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0. Add
memory load.
(mov_si<mode>_e500_subreg0_2): New.
(mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4. Add
memory load.
(mov_si<mode>_e500_subreg4_2): New.
* config/rs6000/predicates.md (input_operand): Do not allow
invalid E500 subregs.
(rs6000_nonimmediate_operand): Check for invalid E500 subregs also
if TARGET_SPE.
* config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
involving DFmode if TARGET_E500_DOUBLE. Check for subregs
involving vector modes if TARGET_SPE.
2006-11-20 Anatoly Sokolov <aesok@post.ru>
PR target/18553
PR target/29449
* config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
* config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/29114
* pa.c (emit_move_sequence): Don't split constants with PLUS for modes
larger than BITS_PER_WORD.
2006-11-19 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-11-15 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/29753
* gimplify.c (fold_indirect_ref_rhs): Use
STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
2006-11-19 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/28888
* tree-if-conv.c (combine_blocks): Rewritten.
* tree-cfg.c (tree_verify_flow_info): Check that edges with
EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
2006-11-18 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/spe.md (movv4hi_internal): Add alternative for
easy vector constant loads.
2006-11-18 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
__NO_LWSYNC__ if TARGET_NO_LWSYNC.
* config/rs6000/sync.md (lwsync): Emit plain sync if
TARGET_NO_LWSYNC.
2006-11-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29788
* fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
to what is the const decl is a place holder for.
2006-11-17 Jakub Jelinek <jakub@redhat.com>
PR middle-end/29584
* tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Don't
optimize if DEF doesn't have integral type.
2006-11-17 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_function_sseregparm): Fix comment:
number of arguments passed to local functions in SSE registers is 3.
* doc/invoke.texi (Function Attributes) [sseregparm]: Correct
number of arguments passed in SSE registers to 3.
2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/26306
* gimplify.c (gimplify_expr): Only force a load for references to
non-BLKmode volatile values.
* doc/implement-c.texi (Qualifiers implementation): Document the
interpretation of what a volatile access is.
* doc/extend.texi (C++ Extensions): Rework same documentation.
2006-11-16 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
memory operand.
2006-11-15 Steve Ellcey <sje@cup.hp.com>
* config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
routines for integer division.
2006-11-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/29581
* lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
REPLACEMENTS, FIRSTBSI arguments. If initial condition or
type is different between Y and USE, create a temporary
variable, initialize it at the beginning of the body bb
and use it as replacement instead of Y.
2006-11-15 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-11-12 Michael Matz <matz@suse.de>
Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/29797
* ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
BITS_BIG_ENDIAN targets.
2006-11-13 Jakub Jelinek <jakub@redhat.com>
* configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
style versions.
* configure: Rebuilt.
2006-11-13 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-10-23 Richard Guenther <rguenther@suse.de>
PR middle-end/21032
* convert.c (convert_to_real): Fold (float)-x to -(float)x
only if not flag_rounding_math.
2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/28545
* tree-vrp.c (replace_uses_by_vrp): New function.
(remove_range_assertions): Use it.
2006-11-12 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
instead of builtin_define for bfin and BFIN.
2006-11-11 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
(NO_PROFILE_COUNTERS): Define as 1.
2006-11-09 Janis Johnson <janis187@us.ibm.com>
Backports from mainline.
* doc/sourcebuild.texi (Test Directives): Document dg-shouldfail,
output-exists and output-exists-not.
2006-11-07 Richard Guenther <rguenther@suse.de>
PR tree-optimization/29610
* tree-cfgcleanup.c (cleanup_control_flow): Honor return value
of tree_purge_dead_eh_edges as it may free dominators.
* g++.dg/other/pr29610.C: New testcase.
2006-11-07 Jie Zhang <jie.zhang@analog.com>
* gcc.c (process_command): Treat -b as normal switch if its argument
has no dash.
2006-11-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/29695
* fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
simplification.
2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
* doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
instructions.
(sparc64-sun-solaris2*): Likewise.
2006-11-02 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/27891
* tree-ssa-loop-ivopts.c (rewrite_use_outer): Do not insert code
on abnormal edge.
2006-11-01 David Edelsohn <edelsohn@gnu.org>
Ian Lance Taylor <ian@airs.com>
PR middle-end/29250
* expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
recursing.
2006-11-01 Chris Johns <chris@contemporary.net.au>
PR bootstrap/28400
* Makefile.in (install-driver): Use exeext when installing
$target-gcc-$version.
2006-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/28970
* loop.c (loop_giv_reduce_benefit): Take the max of the addition
cost on all the increments of the BIV.
2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/29631
* loop.c (basic_induction_var): Add new parameter inner_mode.
<PLUS>: If set, convert the increment to it before sign-extending.
<CONST_INT>: Likewise.
<SUBREG>: Set it.
<ASHIFTRT>: Likewise. Return 0 if flag_wrapv.
(check_insn_for_bivs): Pass VOIDmode as inner_mode to above.
2006-10-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/29637
* tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
of the innertype is the innertype itself.
2006-10-28 Uros Bizjak <uros@kss-loka.si>
PR target/29377
* config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
argument to HOST_WIDE_INT. Update function prototype.
(round_frame_size): Change return type to HOST_WIDE_INT. Change
"size" argument to HOST_WIDE_INT. Update function prototype.
2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_init_frame_layout): Check positive
frame_size.
2006-10-25 Steve Ellcey <sje@cup.hp.com>
* config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
Add unix98.o to link line.
2006-10-25 Paolo Bonzini <bonzini@gnu.org>
PR c/29092
* c-typeck.c (digest_init): Always allow initializing vectors
that have static storage duration with compound literals.
* tree.c (build_type_attribute_qual_variant): New, based on
build_type_attribute_variant.
(build_type_attribute_variant): Rewrite using the former.
(make_vector_type): Use build_type_attribute_qual_variant to build
type variants. Use type_hash_canon on the others.
2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/predicates.md ("bras_sym_operand"): Do not accept
nonlocal function symbols if flag_pic.
2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
* fold-const.c (add_double): Rename to add_double_with_sign.
@ -24,12 +527,12 @@
2006-10-19 Ira Rosen <irar@il.ibm.com>
Backport from mainline:
2006-08-07 Victor Kaplansky <victork@il.ibm.com>
Backport from mainline:
2006-08-07 Victor Kaplansky <victork@il.ibm.com>
PR tree-optimization/26969
* tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
with an empty list of PHIs.
PR tree-optimization/26969
* tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
with an empty list of PHIs.
2006-10-18 Richard Guenther <rguenther@suse.de>
@ -147,7 +650,7 @@
2006-09-15 Jim Wilson <wilson@specifix.com>
2006-09-19 Steve Ellcey <sje@cup.hp.com>
* config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
pointers as legitimate constants. Handle symbol offsets same as
pointers as legitimate constants. Handle symbol offsets same as
they are handled in ia64_expand_move and move_operand.
2006-10-06 Jakub Jelinek <jakub@redhat.com>
@ -680,7 +1183,7 @@
Backport from mainline
2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
PR target/27287
PR target/27287
* config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2006-07-06 David Edelsohn <edelsohn@gnu.org>
@ -788,9 +1291,9 @@
2006-07-20 Richard Henderson <rth@redhat.com>
PR 27889
* tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
if needed.
PR 27889
* tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
if needed.
2006-07-20 Paul Brook <paul@codesourcery.com>
@ -918,11 +1421,11 @@
2006-06-21 Richard Henderson <rth@redhat.com>
PR target/26347
PR target/27082
* config/alpha/predicates.md (small_symbolic_operand): Deny weak
symbols.
(global_symbolic_operand): Allow weak symbols, even if local_p.
PR target/26347
PR target/27082
* config/alpha/predicates.md (small_symbolic_operand): Deny weak
symbols.
(global_symbolic_operand): Allow weak symbols, even if local_p.
2006-06-21 Richard Guenther <rguenther@suse.de>
@ -990,10 +1493,10 @@
2006-06-13 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/27733
* expmed.c (struct alg_hash_entry): Fix type of field T
to match synth_mult argument.
(NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
PR middle-end/27733
* expmed.c (struct alg_hash_entry): Fix type of field T
to match synth_mult argument.
(NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>

View File

@ -3633,9 +3633,9 @@ install-common: native $(EXTRA_PARTS) lang.install-common installdirs
install-driver: installdirs xgcc$(exeext)
-rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
-$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
-rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)
-rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)$(exeext)
-( cd $(DESTDIR)$(bindir) && \
$(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version) )
$(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version)$(exeext) )
-if [ -f gcc-cross$(exeext) ] ; then \
if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \

View File

@ -266,6 +266,10 @@ c_common_handle_option (size_t scode, const char *arg, int value)
enum opt_code code = (enum opt_code) scode;
int result = 1;
/* Prevent resetting the language standard to a C dialect when the driver
has already determined that we're looking at assembler input. */
bool preprocessing_asm_p = (cpp_get_options (parse_in)->lang == CLK_ASM);
switch (code)
{
default:
@ -901,29 +905,34 @@ c_common_handle_option (size_t scode, const char *arg, int value)
case OPT_std_c__98:
case OPT_std_gnu__98:
set_std_cxx98 (code == OPT_std_c__98 /* ISO */);
if (!preprocessing_asm_p)
set_std_cxx98 (code == OPT_std_c__98 /* ISO */);
break;
case OPT_std_c89:
case OPT_std_iso9899_1990:
case OPT_std_iso9899_199409:
set_std_c89 (code == OPT_std_iso9899_199409 /* c94 */, true /* ISO */);
if (!preprocessing_asm_p)
set_std_c89 (code == OPT_std_iso9899_199409 /* c94 */, true /* ISO */);
break;
case OPT_std_gnu89:
set_std_c89 (false /* c94 */, false /* ISO */);
if (!preprocessing_asm_p)
set_std_c89 (false /* c94 */, false /* ISO */);
break;
case OPT_std_c99:
case OPT_std_c9x:
case OPT_std_iso9899_1999:
case OPT_std_iso9899_199x:
set_std_c99 (true /* ISO */);
if (!preprocessing_asm_p)
set_std_c99 (true /* ISO */);
break;
case OPT_std_gnu99:
case OPT_std_gnu9x:
set_std_c99 (false /* ISO */);
if (!preprocessing_asm_p)
set_std_c99 (false /* ISO */);
break;
case OPT_trigraphs:

View File

@ -1135,9 +1135,11 @@ rs6000_override_options (const char *default_cpu)
{"801", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"821", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"823", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"8540", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"8540", PROCESSOR_PPC8540,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_STRICT_ALIGN},
/* 8548 has a dummy entry for now. */
{"8548", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"8548", PROCESSOR_PPC8540,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_STRICT_ALIGN},
{"860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"970", PROCESSOR_POWER4,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64},
@ -1186,7 +1188,7 @@ rs6000_override_options (const char *default_cpu)
enum {
POWER_MASKS = MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING,
POWERPC_MASKS = (POWERPC_BASE_MASK | MASK_PPC_GPOPT
POWERPC_MASKS = (POWERPC_BASE_MASK | MASK_PPC_GPOPT | MASK_STRICT_ALIGN
| MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_ALTIVEC
| MASK_MFCRF | MASK_POPCNTB | MASK_FPRND)
};
@ -2532,18 +2534,28 @@ build_mask64_2_operands (rtx in, rtx *out)
bool
invalid_e500_subreg (rtx op, enum machine_mode mode)
{
/* Reject (subreg:SI (reg:DF)). */
if (GET_CODE (op) == SUBREG
if (TARGET_E500_DOUBLE)
{
/* Reject (subreg:SI (reg:DF)). */
if (GET_CODE (op) == SUBREG
&& mode == SImode
&& REG_P (SUBREG_REG (op))
&& GET_MODE (SUBREG_REG (op)) == DFmode)
return true;
/* Reject (subreg:DF (reg:DI)). */
if (GET_CODE (op) == SUBREG
&& mode == DFmode
&& REG_P (SUBREG_REG (op))
&& GET_MODE (SUBREG_REG (op)) == DImode)
return true;
}
if (TARGET_SPE
&& GET_CODE (op) == SUBREG
&& mode == SImode
&& REG_P (SUBREG_REG (op))
&& GET_MODE (SUBREG_REG (op)) == DFmode)
return true;
/* Reject (subreg:DF (reg:DI)). */
if (GET_CODE (op) == SUBREG
&& mode == DFmode
&& REG_P (SUBREG_REG (op))
&& GET_MODE (SUBREG_REG (op)) == DImode)
&& SPE_VECTOR_MODE (GET_MODE (SUBREG_REG (op))))
return true;
return false;
@ -3561,9 +3573,6 @@ rs6000_hard_regno_nregs (int regno, enum machine_mode mode)
if (FP_REGNO_P (regno))
return (GET_MODE_SIZE (mode) + UNITS_PER_FP_WORD - 1) / UNITS_PER_FP_WORD;
if (TARGET_E500_DOUBLE && mode == DFmode)
return 1;
if (SPE_SIMD_REGNO_P (regno) && TARGET_SPE && SPE_VECTOR_MODE (mode))
return (GET_MODE_SIZE (mode) + UNITS_PER_SPE_WORD - 1) / UNITS_PER_SPE_WORD;
@ -3571,6 +3580,14 @@ rs6000_hard_regno_nregs (int regno, enum machine_mode mode)
return
(GET_MODE_SIZE (mode) + UNITS_PER_ALTIVEC_WORD - 1) / UNITS_PER_ALTIVEC_WORD;
/* The value returned for SCmode in the E500 double case is 2 for
ABI compatibility; storing an SCmode value in a single register
would require function_arg and rs6000_spe_function_arg to handle
SCmode so as to pass the value correctly in a pair of
registers. */
if (TARGET_E500_DOUBLE && FLOAT_MODE_P (mode) && mode != SCmode)
return (GET_MODE_SIZE (mode) + UNITS_PER_FP_WORD - 1) / UNITS_PER_FP_WORD;
return (GET_MODE_SIZE (mode) + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
}
@ -3939,8 +3956,7 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
/* 128-bit constant floating-point values on Darwin should really be
loaded as two parts. */
if (!TARGET_IEEEQUAD
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128
if (!TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
&& mode == TFmode && GET_CODE (operands[1]) == CONST_DOUBLE)
{
/* DImode is used, not DFmode, because simplify_gen_subreg doesn't
@ -5955,6 +5971,27 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
append_to_statement_list (t, pre_p);
}
if (STRICT_ALIGNMENT
&& (TYPE_ALIGN (type)
> (unsigned) BITS_PER_UNIT * (align < 4 ? 4 : align)))
{
/* The value (of type complex double, for example) may not be
aligned in memory in the saved registers, so copy via a
temporary. (This is the same code as used for SPARC.) */
tree tmp = create_tmp_var (type, "va_arg_tmp");
tree dest_addr = build_fold_addr_expr (tmp);
tree copy = build_function_call_expr
(implicit_built_in_decls[BUILT_IN_MEMCPY],
tree_cons (NULL_TREE, dest_addr,
tree_cons (NULL_TREE, addr,
tree_cons (NULL_TREE, size_int (rsize * 4),
NULL_TREE))));
gimplify_and_add (copy, pre_p);
addr = dest_addr;
}
addr = fold_convert (ptrtype, addr);
return build_va_arg_indirect_ref (addr);
}
@ -12365,6 +12402,8 @@ rs6000_split_multireg_move (rtx dst, rtx src)
reg_mode = DFmode;
else if (ALTIVEC_REGNO_P (reg))
reg_mode = V16QImode;
else if (TARGET_E500_DOUBLE && mode == TFmode)
reg_mode = DFmode;
else
reg_mode = word_mode;
reg_mode_size = GET_MODE_SIZE (reg_mode);

View File

@ -14144,7 +14144,7 @@ else
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p'`
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ -].*$,\1,p'`
ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`

View File

@ -2000,7 +2000,7 @@ changequote(,)dnl
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p'`
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ -].*$,\1,p'`
ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`

View File

@ -1,11 +1,156 @@
2006-11-21 Richard Guenther <rguenther@suse.de>
2007-01-05 Jakub Jelinek <jakub@redhat.com>
Revert this change:
2006-10-13 Mark Mitchell <mark@codesourcery.com>
PR c++/28506
* parser.c (function_declarator_p): New function.
(cp_parser_init_declarator): Use it.
(cp_parser_member_declaration): Likewise.
PR c++/30382
Backported from mainline
2006-06-29 Jason Merrill <jason@redhat.com>
* parser.c (cp_parser_enum_specifier): Return early if
type is error_mark_node.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2006-07-12 Jason Merrill <jason@redhat.com>
PR c++/28217
* semantics.c (note_decl_for_pch): Don't premangle templates.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
PR c++/29054
* decl.c (revert_static_member_fn): Don't remove first
argument without checking it is "this".
PR c++/29535
Backported from mainline
2006-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/28261
* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
function.
(cp_parser_constructor_declarator_p): Use it.
(cp_parser_check_type_definition): Return a value indicating
whether or not the definition is valid.
(cp_parser_enum_specifier): Skip invalid enum definitions.
2006-12-10 Mark Mitchell <mark@codesourcery.com>
PR c++/29732
* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
(explicit_class_specialization_p): Declare.
* pt.c (explicit_class_specialization_p): New function.
* parser.c (cp_parser_init_declarator): Check correct number of
template parameters for in-class function definitions.
(cp_parser_check_declarator_template_parameters): Stop looking for
template classes when we find an explicit specialization.
2006-12-06 Mark Mitchell <mark@codesourcery.com>
PR c++/29730
* parser.c (cp_parser_init_declarator): Reject initialization of
functions.
2006-12-05 Mark Mitchell <mark@codesourcery.com>
PR c++/29729
* decl2.c (check_member_template): Move check for member
templates in local classes to ...
* parser.c (cp_parser_template_declaration_after_export):
... here.
2006-12-05 Mark Mitchell <mark@codesourcery.com>
PR c++/29728
* decl.c (check_array_designated_initializer): New function.
(maybe_deduce_size_from_array_init): Use it.
(reshape_init_array): Likewise.
2006-12-05 Richard Henderson <rth@redhat.com>
Andrew Pinski <pinskia@gmail.com>
PR C++/14329
* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2006-12-04 Mark Mitchell <mark@codesourcery.com>
PR c++/29632
* call.c (add_builtin_candidate): Do not permit NULL pointer
constants to be compared with template parameters.
PR c++/29733
* pt.c (tsubst_decl): Disallow variables of function type.
2006-12-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
Backport:
2006-08-27 Simon Martin <simartin@users.sourceforge.net>
PR c++/28284
* pt.c (fold_non_dependent_expr): Make sure expr is not dereferenced if it
is NULL.
2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/30022
* typeck.c (type_after_usual_arithmetic_conversions):
Fix assertion for vector types.
(build_binary_op): Use temporary for inner type of vector types.
2006-11-29 Lee Millward <lee.millward@codesourcery.com>
PR c++/29022
* parser.c (cp_parser_class_head): Move processing
of any base classes to...
(cp_parser_class_specifier) ...here. Take an extra
tree* parameter for any base classes. Only process
them if the opening brace was found.
2006-11-28 Jakub Jelinek <jakub@redhat.com>
PR c++/29735
* decl.c (grokfndecl): Check main's type after applying
attributes, not before.
2006-11-26 Mark Mitchell <mark@codesourcery.com>
PR c++/29886
* parser.c (cp_parser): Add in_function_body.
(cp_parser_new): Initialize it.
(cp_parser_primary_expression): Use parser->in_function_body
instead of at_function_scope_p.
(cp_parser_asm_definition): Likewise.
(cp_parser_direct_declarator): Likewise.
(cp_parser_class_specifier): Clear parser->in_function_body.
(cp_parser_constructor_declarator_p): Use parser->in_function_body
instead of at_function_scope_p.
(cp_parser_function_body_after_declarator): Set
parser->in_function_body.
2006-11-21 Jakub Jelinek <jakub@redhat.com>
PR c++/29570
* decl.c (cp_finish_decl): Check for value dependent brace enclosed
scalar initializer.
PR c++/29734
* cp-tree.h (WANT_VECTOR): Define.
(WANT_ARITH): Add WANT_VECTOR.
* cvt.c (build_expr_type_conversion): Handle vector types.
* typeck.c (build_unary_op): Add WANT_VECTOR to
build_expr_type_conversion flags.
2006-11-13 Mark Mitchell <mark@codesourcery.com>
PR c++/29106
* init.c (constant_value_1): Treat a DECL_INITIAL of
error_mark_node as meaning that the variable is uninitialized,
rather than erroneously initialized.
PR c++/29518
* pt.c (coerce_template_parms): Do not skip_evaluation while
substituting template arguments.
2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
PR c++/20647
* rtti.c (tinfo_base_init): The type info string is always global.
2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
@ -564,10 +709,6 @@
2006-06-16 Mark Mitchell <mark@codesourcery.com>
PR c++/28016
* decl.c (cp_finsh_decl): Do not emit uninstantiated static data
members.
PR c++/27884
* decl.c (have_extern_spec): Remove.
(start_decl): Do not check have_extern_spec.

View File

@ -3990,6 +3990,28 @@ grok_reference_init (tree decl, tree type, tree init, tree *cleanup)
return NULL_TREE;
}
/* Designated initializers in arrays are not supported in GNU C++.
The parser cannot detect this error since it does not know whether
a given brace-enclosed initializer is for a class type or for an
array. This function checks that CE does not use a designated
initializer. If it does, an error is issued. Returns true if CE
is valid, i.e., does not have a designated initializer. */
static bool
check_array_designated_initializer (const constructor_elt *ce)
{
/* Designated initializers for array elements arenot supported. */
if (ce->index)
{
if (TREE_CODE (ce->index) == IDENTIFIER_NODE)
error ("name %qD used in a GNU-style designated "
"initializer for an array", ce->index);
return false;
}
return true;
}
/* When parsing `int a[] = {1, 2};' we don't know the size of the
array until we finish parsing the initializer. If that's the
situation we're in, update DECL accordingly. */
@ -4007,32 +4029,52 @@ maybe_deduce_size_from_array_init (tree decl, tree init)
But let's leave it here to ease the eventual merge. */
int do_default = !DECL_EXTERNAL (decl);
tree initializer = init ? init : DECL_INITIAL (decl);
int failure = cp_complete_array_type (&TREE_TYPE (decl), initializer,
do_default);
int failure = 0;
if (failure == 1)
/* Check that there are no designated initializers in INIT, as
those are not supported in GNU C++, and as the middle-end
will crash if presented with a non-numeric designated
initializer. */
if (initializer && TREE_CODE (initializer) == CONSTRUCTOR)
{
error ("initializer fails to determine size of %qD", decl);
TREE_TYPE (decl) = error_mark_node;
VEC(constructor_elt,gc) *v = CONSTRUCTOR_ELTS (initializer);
constructor_elt *ce;
HOST_WIDE_INT i;
for (i = 0;
VEC_iterate (constructor_elt, v, i, ce);
++i)
if (!check_array_designated_initializer (ce))
failure = 1;
}
else if (failure == 2)
if (!failure)
{
if (do_default)
failure = cp_complete_array_type (&TREE_TYPE (decl), initializer,
do_default);
if (failure == 1)
{
error ("array size missing in %qD", decl);
error ("initializer fails to determine size of %qD", decl);
TREE_TYPE (decl) = error_mark_node;
}
else if (failure == 2)
{
if (do_default)
{
error ("array size missing in %qD", decl);
TREE_TYPE (decl) = error_mark_node;
}
/* If a `static' var's size isn't known, make it extern as
well as static, so it does not get allocated. If it's not
`static', then don't mark it extern; finish_incomplete_decl
will give it a default size and it will get allocated. */
else if (!pedantic && TREE_STATIC (decl) && !TREE_PUBLIC (decl))
DECL_EXTERNAL (decl) = 1;
}
else if (failure == 3)
{
error ("zero-size array %qD", decl);
TREE_TYPE (decl) = error_mark_node;
}
/* If a `static' var's size isn't known, make it extern as
well as static, so it does not get allocated. If it's not
`static', then don't mark it extern; finish_incomplete_decl
will give it a default size and it will get allocated. */
else if (!pedantic && TREE_STATIC (decl) && !TREE_PUBLIC (decl))
DECL_EXTERNAL (decl) = 1;
}
else if (failure == 3)
{
error ("zero-size array %qD", decl);
TREE_TYPE (decl) = error_mark_node;
}
cp_apply_type_quals_to_decl (cp_type_quals (TREE_TYPE (decl)), decl);
@ -4244,18 +4286,7 @@ reshape_init_array_1 (tree elt_type, tree max_index, reshape_iter *d)
{
tree elt_init;
if (d->cur->index)
{
/* Handle array designated initializers (GNU extension). */
if (TREE_CODE (d->cur->index) == IDENTIFIER_NODE)
{
error ("name %qD used in a GNU-style designated "
"initializer for an array", d->cur->index);
}
else
gcc_unreachable ();
}
check_array_designated_initializer (d->cur);
elt_init = reshape_init_r (elt_type, d, /*first_initializer_p=*/false);
if (elt_init == error_mark_node)
return error_mark_node;
@ -4977,7 +5008,14 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
|| !DECL_CLASS_SCOPE_P (decl)
|| !DECL_INTEGRAL_CONSTANT_VAR_P (decl)
|| type_dependent_p
|| value_dependent_expression_p (init))
|| value_dependent_expression_p (init)
/* Check also if initializer is a value dependent
{ integral_constant_expression }. */
|| (TREE_CODE (init) == CONSTRUCTOR
&& VEC_length (constructor_elt, CONSTRUCTOR_ELTS (init)) == 1
&& value_dependent_expression_p
(VEC_index (constructor_elt,
CONSTRUCTOR_ELTS (init), 0)->value)))
{
if (init && DECL_INITIAL (decl))
DECL_INITIAL (decl) = init;
@ -5905,16 +5943,6 @@ grokfndecl (tree ctype,
error ("cannot declare %<::main%> to be inline");
if (!publicp)
error ("cannot declare %<::main%> to be static");
if (!same_type_p (TREE_TYPE (TREE_TYPE (decl)),
integer_type_node))
{
tree oldtypeargs = TYPE_ARG_TYPES (TREE_TYPE (decl));
tree newtype;
error ("%<::main%> must return %<int%>");
newtype = build_function_type (integer_type_node,
oldtypeargs);
TREE_TYPE (decl) = newtype;
}
inlinep = 0;
publicp = 1;
}
@ -6018,6 +6046,18 @@ grokfndecl (tree ctype,
*attrlist = NULL_TREE;
}
/* Check main's type after attributes have been applied. */
if (ctype == NULL_TREE && DECL_MAIN_P (decl)
&& !same_type_p (TREE_TYPE (TREE_TYPE (decl)),
integer_type_node))
{
tree oldtypeargs = TYPE_ARG_TYPES (TREE_TYPE (decl));
tree newtype;
error ("%<::main%> must return %<int%>");
newtype = build_function_type (integer_type_node, oldtypeargs);
TREE_TYPE (decl) = newtype;
}
if (ctype != NULL_TREE
&& (! TYPE_FOR_JAVA (ctype) || check_java_method (decl))
&& check)
@ -11371,7 +11411,11 @@ revert_static_member_fn (tree decl)
tmp = build_exception_variant (tmp,
TYPE_RAISES_EXCEPTIONS (function));
TREE_TYPE (decl) = tmp;
if (DECL_ARGUMENTS (decl))
if (DECL_ARGUMENTS (decl)
/* revert_static_member_fn might be called before grokclassfn
had time to add the "this" argument. */
&& DECL_ARTIFICIAL (DECL_ARGUMENTS (decl))
&& DECL_NAME (DECL_ARGUMENTS (decl)) == this_identifier)
DECL_ARGUMENTS (decl) = TREE_CHAIN (DECL_ARGUMENTS (decl));
DECL_STATIC_FUNCTION_P (decl) = 1;
}

View File

@ -501,6 +501,49 @@ cp_lexer_next_token_is_keyword (cp_lexer* lexer, enum rid keyword)
return token->keyword == keyword;
}
static bool
cp_lexer_next_token_is_decl_specifier_keyword (cp_lexer *lexer)
{
cp_token *token;
token = cp_lexer_peek_token (lexer);
switch (token->keyword)
{
/* Storage classes. */
case RID_AUTO:
case RID_REGISTER:
case RID_STATIC:
case RID_EXTERN:
case RID_MUTABLE:
case RID_THREAD:
/* Elaborated type specifiers. */
case RID_ENUM:
case RID_CLASS:
case RID_STRUCT:
case RID_UNION:
case RID_TYPENAME:
/* Simple type specifiers. */
case RID_CHAR:
case RID_WCHAR:
case RID_BOOL:
case RID_SHORT:
case RID_INT:
case RID_LONG:
case RID_SIGNED:
case RID_UNSIGNED:
case RID_FLOAT:
case RID_DOUBLE:
case RID_VOID:
/* GNU extensions. */
case RID_ATTRIBUTE:
case RID_TYPEOF:
return true;
default:
return false;
}
}
/* Return a pointer to the Nth token in the token stream. If N is 1,
then this is precisely equivalent to cp_lexer_peek_token (except
that it is not inline). One would like to disallow that case, but
@ -982,6 +1025,24 @@ make_parameter_declarator (cp_decl_specifier_seq *decl_specifiers,
return parameter;
}
/* Returns true iff DECLARATOR is a declaration for a function. */
static bool
function_declarator_p (const cp_declarator *declarator)
{
while (declarator)
{
if (declarator->kind == cdk_function
&& declarator->declarator->kind == cdk_id)
return true;
if (declarator->kind == cdk_id
|| declarator->kind == cdk_error)
return false;
declarator = declarator->declarator;
}
return false;
}
/* The parser. */
/* Overview
@ -1337,6 +1398,10 @@ typedef struct cp_parser GTY(())
character set. */
bool translate_strings_p;
/* TRUE if we are presently parsing the body of a function, but not
a local class. */
bool in_function_body;
/* If non-NULL, then we are parsing a construct where new type
definitions are not permitted. The string stored here will be
issued as an error message if a type is defined. */
@ -1583,7 +1648,7 @@ static tree cp_parser_class_name
static tree cp_parser_class_specifier
(cp_parser *);
static tree cp_parser_class_head
(cp_parser *, bool *, tree *);
(cp_parser *, bool *, tree *, tree *);
static enum tag_types cp_parser_class_key
(cp_parser *);
static void cp_parser_member_specification_opt
@ -1806,7 +1871,7 @@ static void cp_parser_name_lookup_error
(cp_parser *, tree, tree, const char *);
static bool cp_parser_simulate_error
(cp_parser *);
static void cp_parser_check_type_definition
static bool cp_parser_check_type_definition
(cp_parser *);
static void cp_parser_check_for_definition_in_return_type
(cp_declarator *, tree);
@ -2005,14 +2070,18 @@ cp_parser_check_decl_spec (cp_decl_specifier_seq *decl_specs)
definitions are forbidden at this point, an error message is
issued. */
static void
static bool
cp_parser_check_type_definition (cp_parser* parser)
{
/* If types are forbidden here, issue a message. */
if (parser->type_definition_forbidden_message)
/* Use `%s' to print the string in case there are any escape
characters in the message. */
error ("%s", parser->type_definition_forbidden_message);
{
/* Use `%s' to print the string in case there are any escape
characters in the message. */
error ("%s", parser->type_definition_forbidden_message);
return false;
}
return true;
}
/* This function is called when the DECLARATOR is processed. The TYPE
@ -2544,6 +2613,9 @@ cp_parser_new (void)
/* String literals should be translated to the execution character set. */
parser->translate_strings_p = true;
/* We are not parsing a function body. */
parser->in_function_body = false;
/* The unparsed function queue is empty. */
parser->unparsed_functions_queues = build_tree_list (NULL_TREE, NULL_TREE);
@ -2899,7 +2971,7 @@ cp_parser_primary_expression (cp_parser *parser,
int i = ({ int j = 3; j + 1; });
at class or namespace scope. */
if (!at_function_scope_p ())
if (!parser->in_function_body)
error ("statement-expressions are allowed only inside functions");
/* Start the statement-expression. */
expr = begin_stmt_expr ();
@ -3603,6 +3675,17 @@ cp_parser_nested_name_specifier_opt (cp_parser *parser,
{
/* Grab the nested-name-specifier and continue the loop. */
cp_parser_pre_parsed_nested_name_specifier (parser);
/* If we originally encountered this nested-name-specifier
with IS_DECLARATION set to false, we will not have
resolved TYPENAME_TYPEs, so we must do so here. */
if (is_declaration
&& TREE_CODE (parser->scope) == TYPENAME_TYPE)
{
new_scope = resolve_typename_type (parser->scope,
/*only_current_p=*/false);
if (new_scope != error_mark_node)
parser->scope = new_scope;
}
success = true;
continue;
}
@ -10220,16 +10303,23 @@ cp_parser_enum_specifier (cp_parser* parser)
identifier = make_anon_name ();
/* Issue an error message if type-definitions are forbidden here. */
cp_parser_check_type_definition (parser);
/* Create the new type. We do this before consuming the opening brace
so the enum will be recorded as being on the line of its tag (or the
'enum' keyword, if there is no tag). */
type = start_enum (identifier);
if (!cp_parser_check_type_definition (parser))
type = error_mark_node;
else
/* Create the new type. We do this before consuming the opening
brace so the enum will be recorded as being on the line of its
tag (or the 'enum' keyword, if there is no tag). */
type = start_enum (identifier);
/* Consume the opening brace. */
cp_lexer_consume_token (parser->lexer);
if (type == error_mark_node)
{
cp_parser_skip_to_end_of_block_or_statement (parser);
return error_mark_node;
}
/* If the next token is not '}', then there are some enumerators. */
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_BRACE))
cp_parser_enumerator_list (parser, type);
@ -10704,7 +10794,7 @@ cp_parser_asm_definition (cp_parser* parser)
too. Doing that means that we have to treat the `::' operator as
two `:' tokens. */
if (cp_parser_allow_gnu_extensions_p (parser)
&& at_function_scope_p ()
&& parser->in_function_body
&& (cp_lexer_next_token_is (parser->lexer, CPP_COLON)
|| cp_lexer_next_token_is (parser->lexer, CPP_SCOPE)))
{
@ -10770,7 +10860,7 @@ cp_parser_asm_definition (cp_parser* parser)
cp_parser_require (parser, CPP_SEMICOLON, "`;'");
/* Create the ASM_EXPR. */
if (at_function_scope_p ())
if (parser->in_function_body)
{
asm_stmt = finish_asm_stmt (volatile_p, string, outputs,
inputs, clobbers);
@ -10884,6 +10974,10 @@ cp_parser_init_declarator (cp_parser* parser,
if (declarator == cp_error_declarator)
return error_mark_node;
/* Check that the number of template-parameter-lists is OK. */
if (!cp_parser_check_declarator_template_parameters (parser, declarator))
return error_mark_node;
if (declares_class_or_enum & 2)
cp_parser_check_for_definition_in_return_type (declarator,
decl_specifiers->type);
@ -11003,10 +11097,6 @@ cp_parser_init_declarator (cp_parser* parser,
/* Check to see whether or not this declaration is a friend. */
friend_p = cp_parser_friend_p (decl_specifiers);
/* Check that the number of template-parameter-lists is OK. */
if (!cp_parser_check_declarator_template_parameters (parser, declarator))
return error_mark_node;
/* Enter the newly declared entry in the symbol table. If we're
processing a declaration in a class-specifier, we wait until
after processing the initializer. */
@ -11056,10 +11146,23 @@ cp_parser_init_declarator (cp_parser* parser,
is_non_constant_init = true;
if (is_initialized)
{
if (declarator->kind == cdk_function
&& declarator->declarator->kind == cdk_id
&& initialization_kind == CPP_EQ)
initializer = cp_parser_pure_specifier (parser);
if (function_declarator_p (declarator))
{
if (initialization_kind == CPP_EQ)
initializer = cp_parser_pure_specifier (parser);
else
{
/* If the declaration was erroneous, we don't really
know what the user intended, so just silently
consume the initializer. */
if (decl != error_mark_node)
error ("initializer provided for function");
cp_parser_skip_to_closing_parenthesis (parser,
/*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
}
}
else
initializer = cp_parser_initializer (parser,
&is_parenthesized_init,
@ -11451,7 +11554,7 @@ cp_parser_direct_declarator (cp_parser* parser,
/* Normally, the array bound must be an integral constant
expression. However, as an extension, we allow VLAs
in function scopes. */
else if (!at_function_scope_p ())
else if (!parser->in_function_body)
{
error ("array bound is not an integer constant");
bounds = error_mark_node;
@ -12821,15 +12924,18 @@ cp_parser_class_specifier (cp_parser* parser)
int has_trailing_semicolon;
bool nested_name_specifier_p;
unsigned saved_num_template_parameter_lists;
bool saved_in_function_body;
tree old_scope = NULL_TREE;
tree scope = NULL_TREE;
tree bases = NULL_TREE;
push_deferring_access_checks (dk_no_deferred);
/* Parse the class-head. */
type = cp_parser_class_head (parser,
&nested_name_specifier_p,
&attributes);
&attributes,
&bases);
/* If the class-head was a semantic disaster, skip the entire body
of the class. */
if (!type)
@ -12846,6 +12952,9 @@ cp_parser_class_specifier (cp_parser* parser)
return error_mark_node;
}
/* Process the base classes. */
xref_basetypes (type, bases);
/* Issue an error message if type-definitions are forbidden here. */
cp_parser_check_type_definition (parser);
/* Remember that we are defining one more class. */
@ -12855,6 +12964,9 @@ cp_parser_class_specifier (cp_parser* parser)
saved_num_template_parameter_lists
= parser->num_template_parameter_lists;
parser->num_template_parameter_lists = 0;
/* We are not in a function body. */
saved_in_function_body = parser->in_function_body;
parser->in_function_body = false;
/* Start the class. */
if (nested_name_specifier_p)
@ -12966,7 +13078,8 @@ cp_parser_class_specifier (cp_parser* parser)
/* Put back any saved access checks. */
pop_deferring_access_checks ();
/* Restore the count of active template-parameter-lists. */
/* Restore saved state. */
parser->in_function_body = saved_in_function_body;
parser->num_template_parameter_lists
= saved_num_template_parameter_lists;
@ -13000,7 +13113,8 @@ cp_parser_class_specifier (cp_parser* parser)
static tree
cp_parser_class_head (cp_parser* parser,
bool* nested_name_specifier_p,
tree *attributes_p)
tree *attributes_p,
tree *bases)
{
tree nested_name_specifier;
enum tag_types class_key;
@ -13013,7 +13127,6 @@ cp_parser_class_head (cp_parser* parser,
bool invalid_explicit_specialization_p = false;
tree pushed_scope = NULL_TREE;
unsigned num_templates;
tree bases;
/* Assume no nested-name-specifier will be present. */
*nested_name_specifier_p = false;
@ -13309,14 +13422,11 @@ cp_parser_class_head (cp_parser* parser,
struct A::C : B {};
is valid. */
bases = NULL_TREE;
*bases = NULL_TREE;
/* Get the list of base-classes, if there is one. */
if (cp_lexer_next_token_is (parser->lexer, CPP_COLON))
bases = cp_parser_base_clause (parser);
/* Process the base classes. */
xref_basetypes (type, bases);
*bases = cp_parser_base_clause (parser);
done:
/* Leave the scope given by the nested-name-specifier. We will
@ -13716,8 +13826,7 @@ cp_parser_member_declaration (cp_parser* parser)
for a pure-specifier; otherwise, we look for a
constant-initializer. When we call `grokfield', it will
perform more stringent semantics checks. */
if (declarator->kind == cdk_function
&& declarator->declarator->kind == cdk_id)
if (function_declarator_p (declarator))
initializer = cp_parser_pure_specifier (parser);
else
/* Parse the initializer. */
@ -15002,10 +15111,14 @@ cp_parser_check_declarator_template_parameters (cp_parser* parser,
is correct; there shouldn't be a `template <>' for
the definition of `S<int>::f'. */
if (CLASSTYPE_TEMPLATE_INFO (scope)
&& (CLASSTYPE_TEMPLATE_INSTANTIATION (scope)
|| uses_template_parms (CLASSTYPE_TI_ARGS (scope)))
&& PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (scope)))
if (!CLASSTYPE_TEMPLATE_INFO (scope))
/* If SCOPE does not have template information of any
kind, then it is not a template, nor is it nested
within a template. */
break;
if (explicit_class_specialization_p (scope))
break;
if (PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (scope)))
++num_templates;
scope = TYPE_CONTEXT (scope);
@ -15122,7 +15235,7 @@ cp_parser_constructor_declarator_p (cp_parser *parser, bool friend_p)
/* The common case is that this is not a constructor declarator, so
try to avoid doing lots of work if at all possible. It's not
valid declare a constructor at function scope. */
if (at_function_scope_p ())
if (parser->in_function_body)
return false;
/* And only certain tokens can begin a constructor declarator. */
next_token = cp_lexer_peek_token (parser->lexer);
@ -15199,8 +15312,7 @@ cp_parser_constructor_declarator_p (cp_parser *parser, bool friend_p)
/* A parameter declaration begins with a decl-specifier,
which is either the "attribute" keyword, a storage class
specifier, or (usually) a type-specifier. */
&& !cp_lexer_next_token_is_keyword (parser->lexer, RID_ATTRIBUTE)
&& !cp_parser_storage_class_specifier_opt (parser))
&& !cp_lexer_next_token_is_decl_specifier_keyword (parser->lexer))
{
tree type;
tree pushed_scope = NULL_TREE;
@ -15314,8 +15426,11 @@ cp_parser_function_definition_after_declarator (cp_parser* parser,
tree fn;
bool ctor_initializer_p = false;
bool saved_in_unbraced_linkage_specification_p;
bool saved_in_function_body;
unsigned saved_num_template_parameter_lists;
saved_in_function_body = parser->in_function_body;
parser->in_function_body = true;
/* If the next token is `return', then the code may be trying to
make use of the "named return value" extension that G++ used to
support. */
@ -15363,6 +15478,7 @@ cp_parser_function_definition_after_declarator (cp_parser* parser,
= saved_in_unbraced_linkage_specification_p;
parser->num_template_parameter_lists
= saved_num_template_parameter_lists;
parser->in_function_body = saved_in_function_body;
return fn;
}
@ -15387,6 +15503,15 @@ cp_parser_template_declaration_after_export (cp_parser* parser, bool member_p)
/* And the `<'. */
if (!cp_parser_require (parser, CPP_LESS, "`<'"))
return;
if (at_class_scope_p () && current_function_decl)
{
/* 14.5.2.2 [temp.mem]
A local class shall not have member templates. */
error ("invalid declaration of member template in local class");
cp_parser_skip_to_end_of_block_or_statement (parser);
return;
}
/* [temp]
A template ... shall not have C linkage. */

View File

@ -3634,7 +3634,10 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
switch (c)
{
case 'b':
if (NULL == strchr(argv[i] + 2, '-')) break;
if (NULL == strchr(argv[i] + 2, '-'))
goto normal_switch;
/* Fall through. */
case 'V':
fatal ("'-%c' must come at the start of the command line", c);
break;

View File

@ -1,3 +1,583 @@
2007-01-06 Eric Botcazou <ebotcazou@libertysurf.fr>
* lib/target-supports.exp (check_effective_target_sync_int_long):
Always return 0 for SPARC targets.
(check_effective_target_sync_char_short): Likewise.
2007-01-06 Richard Sandiford <richard@codesourcery.com>
2006-05-22 Richard Sandiford <richard@codesourcery.com>
PR rtl-optimization/25514
* gcc.c-torture/compile/pr25514.c: New test.
2007-01-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/30212
* gcc.dg/torture/pr30212.c: New testcase.
2007-01-05 Richard Guenther <rguenther@suse.de>
PR middle-end/27826
* g++.dg/opt/pr27826.C: New testcase.
2007-01-05 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-06-24 Jan Hubicka <jh@suse.cz>
PR c/25795
PR c++/27369
* gcc.dg/pr25795.c: New testcase.
* gcc.dg/pr25795-1.c: Likewise.
2007-01-05 Jakub Jelinek <jakub@redhat.com>
PR c/30360
* gcc.dg/pr30360.c: New test.
Backported from mainline
2006-10-13 Eric Christopher <echristo@apple.com>
* gcc.dg/pr25993.c: Skip for darwin.
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
PR c/25993
* gcc.dg/pr25993.c: New test.
2007-01-05 Richard Guenther <rguenther@suse.de>
PR middle-end/28116
* g++.dg/opt/pr28116.C: New testcase.
2007-01-05 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-10-15 Jan Hubicka <jh@suse.cz>
PR middle-end/29241
* gcc.c-torture/compile/pr29241.c: New testcase.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
PR c++/28217
* g++.dg/pch/template-1.C: New test.
* g++.dg/pch/template-1.Hs: New file.
PR middle-end/30286
* gcc.dg/pr30286.c: New test.
PR c++/29535
* g++.dg/template/crash66.C: New test.
PR c++/29054
* g++.dg/template/friend49.C: New test.
Backported from mainline
2006-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/28261
* g++.dg/parse/enum3.C: New test.
2006-12-29 Jakub Jelinek <jakub@redhat.com>
PR preprocessor/29612
* gcc.dg/cpp/pr29612-1.c: New test.
* gcc.dg/cpp/pr29612-2.c: New test.
2006-12-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/30145
* gfortran.dg/write_zero_array.f90: New test.
2006-12-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/30200
* gfortran.dg/write_fmt_trim.f90: New test.
2006-12-21 Jakub Jelinek <jakub@redhat.com>
PR target/30230
* g++.dg/eh/ia64-2.C: New test.
2006-12-15 Jakub Jelinek <jakub@redhat.com>
PR target/30185
* gcc.c-torture/execute/pr30185.c: New test.
2006-12-13 Steven G. Kargl <kargl@gcc.gnu.org>
Revert Paul Thomas' commit from 2006-12-09
* gfortran.dg/parameter_array_section_1.f90: Deleted.
* gfortran.dg/char_result_12.f90: Ditto.
* gfortran.dg/array_section_1.f90: Ditto.
* gfortran.dg/used_types_13.f90: Ditto.
* gfortran.dg/host_dummy_index_1.f90: Revert to previous version.
2006-12-13 Lee Millward <lee.millward@codesourcery.com>
PR c++27316
* g++.dg/inherit/error3.C: New test.
PR c++/28740
* g++.dg/inherit/error4.C: New test.
2006-12-12 Richard Sandiford <richard@codesourcery.com>
* lib/gcc-dg.exp (${tool}_load): Fix invocation of
saved_${tool}_load.
2006-12-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29821
* gfortran.dg/parameter_array_section_1.f90: New test.
PR fortran/29912
* gfortran.dg/char_result_12.f90: New test.
PR fortran/29916
* gfortran.dg/host_dummy_index_1.f90: Added additional test.
PR fortran/30003
* gfortran.dg/allocatable_function_1.f90: Increase the number
of expected calls of free to 10; the lhs section reference is
now evaluated so there is another call to bar. Change the
comment appropriately.
* gfortran.dg/array_section_1.f90: New test.
PR fortran/29820
* gfortran.dg/used_types_13.f90: New test.
2006-12-06 Mark Mitchell <mark@codesourcery.com>
PR c++/29730
* g++.dg/template/crash64.C: New test.
* g++.dg/parse/crash27.C: Adjust error markers.
2006-12-05 Mark Mitchell <mark@codesourcery.com>
PR c++/29729
* g++.dg/template/crash63.C: New test.
2006-12-05 Mark Mitchell <mark@codesourcery.com>
PR c++/29728
* g++.dg/template/crash62.C: New test.
* g++.dg/ext/complit3.C: Tweak error markers.
2006-12-05 Richard Henderson <rth@redhat.com>
Andrew Pinski <pinskia@gmail.com>
PR C++/14329
* g++.dg/warn/unit-1.C: New test.
2006-12-04 Mark Mitchell <mark@codesourcery.com>
PR c++/29632
* g++.dg/template/error23.C: New test.
PR c++/29733
* g++.dg/template/crash61.C: New test.
2006-12-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
Backport:
2006-08-27 Simon Martin <simartin@users.sourceforge.net>
PR c++/28284
* g++.dg/template/pr28284.C: New test.
2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/30022
* g++.dg/ext/vector5.C: New test.
2006-11-29 Lee Millward <lee.millward@codesourcery.com>
PR c++/29022
* g++.dg/inherit/virtual1.C: New test.
* g++.dg/inherit/virtual2.C: Likewise.
* g++.old-deja/g++.bugs/900121_05.C: Adjust error markers.
* g++.dg/inherit/error2.C: Likewise.
* g++.dg/template/instantiate1.C: Likewise.
2006-11-28 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/20061124-1.c: Add exit() function prototype.
2006-11-28 Jakub Jelinek <jakub@redhat.com>
PR c++/29735
* g++.dg/warn/main-3.C: New test.
2006-11-27 Michael Matz <matz@suse.de>
Andreas Krebbel <krebbel1@de.ibm.com>
PR target/29319
* gcc.dg/20061127-1.c: New testcase.
2006-11-26 Andrew Pinski <pinskia@gmail.com>
PR fortran/29982
* gfortran.fortran-torture/compile/parameter_3.f90: New
testcase.
2006-11-26 Mark Mitchell <mark@codesourcery.com>
PR c++/29886
* g++.dg/expr/cast8.C: New test.
2006-11-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29964
* gcc.dg/pure-1.c: New test.
2006-11-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
* gcc.dg/20061124-1.c: Add "exit(0);" to the end of main.
2006-11-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/29936
* gfortran.dg/write_check3.f90: New test.
2006-11-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/29391
PR fortran/29489
* gfortran.dg/bound_2.f90: New test.
* gfortran.dg/bound_3.f90: New test.
2006-11-24 Jakub Jelinek <jakub@redhat.com>
PR c/29736
* gcc.dg/pr29736.c: New test.
2006-11-24 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20061124-1.c: New testcase.
2006-11-21 Jakub Jelinek <jakub@redhat.com>
PR c++/29570
* g++.dg/template/static29.C: New test.
PR c++/29734
* g++.dg/conversion/simd4.C: New test.
2006-11-19 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/28888
* gcc.dg/pr28888.c: New test.
2006-11-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29788
* gfortran.fortran-torture/compile/inline_1.f90:
New testcase.
2006-11-17 Jakub Jelinek <jakub@redhat.com>
PR middle-end/29584
* gcc.dg/torture/pr29584.c: New test.
2006-11-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/29581
* gcc.dg/pr29581-1.c: New test.
* gcc.dg/pr29581-2.c: New test.
* gcc.dg/pr29581-3.c: New test.
* gcc.dg/pr29581-4.c: New test.
* gfortran.dg/pr29581.f90: New test.
2006-11-15 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-11-12 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/29797
* gcc.c-torture/execute/pr29797-1.c: New test case.
2006-11-13 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR libfortran/27895
* gcc/testsuite/gfortran.dg/zero_sized_1.f90: Uncomment checks
for RESHAPE.
* gfortran.dg/zero_sized_1.f90: New test.
2006-11-13 Mark Mitchell <mark@codesourcery.com>
PR c++/29106
* g++.dg/init/self1.C: New test.
* g++.dg/other/fold1.C: Adjust error markers.
* g++.dg/init/member1.C: Likewise.
2006-11-13 Janis Johnson <janis187@us.ibm.com>
Backport from mainline:
2006-08-14 Richard Guenther <rguenther@suse.de>
PR testsuite/28703
* gcc.c-torture/execute/pr28651.c: Do not use argc
to avoid optimization, instead forbid inlining.
2006-11-13 Mark Mitchell <mark@codesourcery.com>
PR c++/29518
* g++.dg/template/static28.C: New test.
2006-11-13 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2006-10-23 Richard Guenther <rguenther@suse.de>
PR middle-end/21032
* gcc.dg/pr21032.c: New testcase.
2006-11-10 Paul Thomas <pault@gcc.gnu.org>
Backport from mainline.
PR fortran/29371
* gfortran.dg/nullify_3.f90: New test.
PR fortran/29392
* gfortran.dg/data_char_3.f90: New test.
PR fortran/29216
* gfortran.dg/result_default_init_1.f90: New test.
PR fortran/29314
* gfortran.dg/automatic_default_init_1.f90: New test.
PR fortran/29387
* trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have
a specific case for EXPR_VARIABLE and, in default, build an ss
to call gfc_conv_expr_descriptor for array expressions..
PR fortran/29490
* trans-expr.c (gfc_set_interface_mapping_bounds): In the case
that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor
values for it and GFC_TYPE_ARRAY_UBOUND.
PR fortran/29641
* trans-types.c (gfc_get_derived_type): If the derived type
namespace has neither a parent nor a proc_name, set NULL for
the search namespace.
PR fortran/29565
* gfortran.dg/gfortran.dg/aliasing_dummy_3.f90: New test.
2006-11-09 Janis Johnson <janis187@us.ibm.com>
Backport from mainline.
2006-11-06 Janis Johnson <janis187@us.ibm.com>
Bernhard Fischer <aldot@gcc.gnu.org>
* lib/gcc-dg.exp (output-exists): New proc.
(output-exists-not): New proc.
* gcc.test-framework/test-framework.awk: Support new directives.
* gcc.test-framework/dg-outexistsnot-exp-F.c: New test.
* gcc.test-framework/dg-outexistsnot-exp-P.c: New test.
* gcc.test-framework/dg-outexists-exp-F.c: New test.
* gcc.test-framework/dg-outexists-exp-XP.c: New test.
* gcc.test-framework/dg-outexistsnot-exp-XF.c: New test.
* gcc.test-framework/dg-outexists-exp-P.c: New test.
2006-10-31 Joseph Myers <joseph@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* lib/target-supports.exp (get_compiler_messages): Append options
as a single list element.
2006-10-30 Joseph Myers <joseph@codesourcery.com>
* lib/target-supports.exp (check_function_available): Declare
function before calling.
2006-09-12 Kazu Hirata <kazu@codesourcery.com>
* lib/c-torture.exp (c-torture-compile, c-torture-execute):
Treat $srcdir as a literal.
* lib/fortran-torture.exp (fortran-torture-compile,
fortran-torture-execute): Likewise.
* lib/objc-torture.exp (objc-torture-compile,
objc-torture-execute): Likewise.
* lib/profopt.exp (profopt-execute): Likewise.
2006-07-13 Janis Johnson <janis187@us.ibm.com>
* lib/gcc-dg.exp (tool_load): Wrapper to support shouldfail tests.
(dg-test): Support shouldfail tests.
* lib/target-supports-dg.exp (dg-shouldfail): New.
* gcc.test-framework/test-framework.awk: Handle shouldfail tests.
2006-06-12 Matthew Sachs <msachs@apple.com>
* lib/target-supports-dg.exp (check-flags): Include TOOL_OPTIONS in
the list of compiler flags; this causes those flags to be checked
for things like dg-skip-if.
2006-06-06 Janis Johnson <janis187@us.ibm.com>
* lib/gcc-dg.exp (gcc-dg-test-1): Detect and report ICE.
* lib/gcc-defs.exp (tool_check_compile): Ditto.
* lib/fortran-torture.exp (fortran-torture-compile,
fortran-torture-execute): Ditto.
2006-05-11 Jason Merrill <jason@redhat.com>
* lib/scanasm.exp (scan-not-hidden): Fix typo.
2006-02-08 Paolo Bonzini <bonzini@gnu.org>
* lib/gcc-dg.exp (cleanup-rtl-dump, cleanup-tree-dump,
cleanup-ipa-dump): Update dump file glob patterns.
* lib/scanipa.exp (scan-ipa-dump, scan-ipa-dump-times,
scan-ipa-dump-not, scan-ipa-dump-dem): Likewise.
* lib/scanrtl.exp: New.
* lib/gcc-dg.exp: Load it.
2006-01-11 Ben Elliston <bje@au1.ibm.com>
* lib/compat.exp (compat_skip_list): Make global, rename.
* lib/c-compat.exp: New file.
* gcc.dg/compat/struct-layout-1.exp: Use c-compat.exp.
* gcc.dg/compat/compat.exp: (compat-use-alt-compiler,
compat-use-tst-compiler): Move to new file.
Make some variables global, prepend "compat_" to their names.
* gcc.dg/compat/struct-layout-1.exp: Ditto.
2005-12-12 Alan Modra <amodra@bigpond.net.au>
* gcc.misc-tests/linkage.exp: Set native_cflags for powerpc*-*-linux*.
2006-11-08 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/29630
PR fortran/29679
* gfortran.dg/initialization_2.f90: Test PRs 29630 and 29679 too.
2006-11-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29373
* gfortran.dg/implicit_9.f90: New test.
PR fortran/29407
* gfortran.dg/namelist_25.f90: New test.
PR fortran/27701
* gfortran.dg/same_name_2.f90: New test.
PR fortran/29232
* gfortran.dg/host_assoc_types_1.f90: New test.
PR fortran/29364
* gfortran.dg/missing_derived_type_1.f90: New test.
* gfortran.dg/implicit_actual.f90: Comment out USE GLOBAL.
PR fortran/29115
* gfortran.dg/derived_constructor_comps_2.f90: New test.
PR fortran/29211
* gfortran.dg/forall_char_dependencies_1.f90: New test.
PR fortran/29098
* gfortran.dg/default_initialization_2.f90: New test.
2006-11-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/29695
* gcc.c-torture/execute/pr29695-1.c: New test.
* gcc.c-torture/execute/pr29695-2.c: New test.
2006-11-04 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/29627
Backport from trunk
* gfortran.dg/unf_short_record_1.f90: New test.
2006-11-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/29067
* gfortran.dg/pr29067.f: New test.
2006-11-02 Zdenek Dvorak <dvorakz@suse.cz>
* gcc++.dg/tree-ssa/pr27891.c: New test.
2006-11-02 Joseph Myers <joseph@codesourcery.com>
* lib/target-supports.exp, gcc.dg/arm-vfp1.c: Revert previous
patch.
2006-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/execute/20061101-1.c: New test.
2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/torture/builtin-attr-1.c: Don't test gamma/lgamma.
* gcc.dg/torture/builtin-convert-1.c: Don't test lgamma.
2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/execute/20061031-1.c: New test.
2006-10-31 Joseph Myers <joseph@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* lib/target-supports.exp (get_compiler_messages): Append options
as a single list element.
(check_effective_target_arm_vfp_ok): New.
* gcc.dg/arm-vfp1.c: Use arm_vfp_ok.
2006-10-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/29637
* gcc.dg/pr29637.c: New test.
2006-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/29563
* gfortran.dg/arrayio_9.f90: New test.
* gfortran.dg/arrayio_19.f90: New test.
2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20061026.c: New testcase.
2006-10-25 Steve Ellcey <sje@cup.hp.com>
* gcc.dg/pthread-init-2.c: Define _POSIX_C_SOURCE on ia64 HP-UX.
2006-10-25 Paolo Bonzini <bonzini@gnu.org>
* gcc.dg/simd-5.c, gcc.dg/simd-6: New testcases.
2006-10-24 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/29393
* gfortran.dg/initialize_2.f90: New.
2006-10-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29284
* gfortran.dg/optional_assumed_charlen_1.f90: New test.
PR fortran/29321
PR fortran/29322
* gfortran.dg/missing_optional_dummy_2.f90: New test.
PR fortran/25091
PR fortran/25092
* gfortran.dg/entry_array_specs_1.f90: New test.
2006-10-23 Mark Mitchell <mark@codesourcery.com>
PR c++/29020
* g++.dg/template/friend48.C: New test.
2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
* g++.dg/other/s390-1.C: New testcase.
2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
PR c++/20647
* g++.dg/abi/rtti3.C: New.
2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/div-compare-1.c: New test.
@ -2450,7 +3030,7 @@
PR c++/26070
* g++.dg/other/virtual1.C: New test.
2006-02-06 Janis Johnson <janis187@us.ibm.com
2006-02-06 Janis Johnson <janis187@us.ibm.com>
Backport from mainline
2005-12-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
@ -9942,7 +10522,7 @@
PR tree-optimization/21021
* gcc.c-torture/compile/pr21021.c: New.
2005-04-14 Janis Johnson <janis187@us.ibm.com
2005-04-14 Janis Johnson <janis187@us.ibm.com>
PR testsuite/21010
* gcc.dg/vect/vect-ifcvt-1.c: Remove dg-do, add cleanup.
@ -13358,7 +13938,7 @@
PR c++/18793
* g++.dg/init/aggr3.C: New test.
2004-12-14 Janis Johnson <janis187@us.ibm.com
2004-12-14 Janis Johnson <janis187@us.ibm.com>
* gcc.dg/altivec-types-1.c: New test.
* gcc.dg/altivec-types-2.c: New test.

View File

@ -3691,6 +3691,19 @@ tree_verify_flow_info (void)
}
}
if (TREE_CODE (stmt) != COND_EXPR)
{
/* Verify that there are no edges with EDGE_TRUE/FALSE_FLAG set
after anything else but if statement. */
FOR_EACH_EDGE (e, ei, bb->succs)
if (e->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE))
{
error ("true/false edge after a non-COND_EXPR in bb %d",
bb->index);
err = 1;
}
}
switch (TREE_CODE (stmt))
{
case COND_EXPR:

File diff suppressed because it is too large Load Diff

View File

@ -238,7 +238,6 @@ case "${host}" in
AC_CHECK_HEADERS([sys/types.h locale.h float.h])
GLIBCXX_CHECK_LINKER_FEATURES
GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
GLIBCXX_CHECK_ICONV_SUPPORT
;;
*-netbsd*)
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/param.h \
@ -363,6 +362,7 @@ case "${host}" in
# os_include_dir="os/solaris/solaris2.6"
# ;;
*-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
GLIBCXX_CHECK_LINKER_FEATURES
AC_DEFINE(HAVE_GETPAGESIZE)
AC_DEFINE(HAVE_SIGSETJMP)
AC_DEFINE(HAVE_MBSTATE_T)