From 67dc168cac6f8fb93f3f5615bb6ee1042a5801c5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pawe=C5=82=20Sikora?= Date: Mon, 25 Jun 2007 21:58:51 +0000 Subject: [PATCH] - updated. Changed files: gcc-branch.diff -> 1.5 --- gcc-branch.diff | 3487 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 3134 insertions(+), 353 deletions(-) diff --git a/gcc-branch.diff b/gcc-branch.diff index 37a8af1..e6d6b35 100644 --- a/gcc-branch.diff +++ b/gcc-branch.diff @@ -1,9 +1,934 @@ Index: configure =================================================================== ---- configure (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ configure (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -7337,6 +7337,12 @@ - #line 7338 "configure" +--- configure (.../tags/gcc_4_2_0_release) (revision 126002) ++++ configure (.../branches/gcc-4_2-branch) (revision 126002) +@@ -4769,12 +4769,14 @@ + else + CC_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ CC_FOR_TARGET="$ac_cv_prog_CC_FOR_TARGET" + fi + + if test -n "$with_build_time_tools"; then + for ncn_progname in c++ g++ cxx gxx; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:4778: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:4780: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_CXX_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -4791,7 +4793,7 @@ + # 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:4795: checking for $ac_word" >&5 ++echo "configure:4797: 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 +@@ -4822,7 +4824,7 @@ + # 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:4826: checking for $ac_word" >&5 ++echo "configure:4828: 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 +@@ -4860,12 +4862,14 @@ + else + CXX_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ CXX_FOR_TARGET="$ac_cv_prog_CXX_FOR_TARGET" + fi + + if test -n "$with_build_time_tools"; then + for ncn_progname in gcc; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:4869: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:4873: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_GCC_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -4882,7 +4886,7 @@ + # 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:4886: checking for $ac_word" >&5 ++echo "configure:4890: 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 +@@ -4913,7 +4917,7 @@ + # 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:4917: checking for $ac_word" >&5 ++echo "configure:4921: 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 +@@ -4946,12 +4950,14 @@ + + if test -z "$ac_cv_prog_GCC_FOR_TARGET" ; then + GCC_FOR_TARGET="${CC_FOR_TARGET}" ++else ++ GCC_FOR_TARGET="$ac_cv_prog_GCC_FOR_TARGET" + fi + + if test -n "$with_build_time_tools"; then + for ncn_progname in gcj; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:4955: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:4961: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_GCJ_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -4968,7 +4974,7 @@ + # 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:4972: checking for $ac_word" >&5 ++echo "configure:4978: 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 +@@ -4999,7 +5005,7 @@ + # 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:5003: checking for $ac_word" >&5 ++echo "configure:5009: 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 +@@ -5037,12 +5043,14 @@ + else + GCJ_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ GCJ_FOR_TARGET="$ac_cv_prog_GCJ_FOR_TARGET" + fi + + if test -n "$with_build_time_tools"; then + for ncn_progname in gfortran; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5046: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:5054: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_GFORTRAN_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -5059,7 +5067,7 @@ + # 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:5063: checking for $ac_word" >&5 ++echo "configure:5071: 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 +@@ -5090,7 +5098,7 @@ + # 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:5094: checking for $ac_word" >&5 ++echo "configure:5102: 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 +@@ -5128,6 +5136,8 @@ + else + GFORTRAN_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ GFORTRAN_FOR_TARGET="$ac_cv_prog_GFORTRAN_FOR_TARGET" + fi + + +@@ -5197,7 +5207,7 @@ + if test -z "$ac_cv_path_AR_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for ar in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5201: checking for ar in $with_build_time_tools" >&5 ++echo "configure:5211: checking for ar in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/ar; then + AR_FOR_TARGET=`cd $with_build_time_tools && pwd`/ar + ac_cv_path_AR_FOR_TARGET=$AR_FOR_TARGET +@@ -5208,14 +5218,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + AR_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=ar` + test $AR_FOR_TARGET=ar && AR_FOR_TARGET= +- ac_cv_path_AR_FOR_TARGET=$AR_FOR_TARGET ++ test -n "$AR_FOR_TARGET" && ac_cv_path_AR_FOR_TARGET=$AR_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_AR_FOR_TARGET" ; then + # Extract the first word of "ar", so it can be a program name with args. + set dummy ar; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:5219: checking for $ac_word" >&5 ++echo "configure:5229: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5252,7 +5262,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in ar; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5256: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:5266: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_AR_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -5269,7 +5279,7 @@ + # 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:5273: checking for $ac_word" >&5 ++echo "configure:5283: 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 +@@ -5300,7 +5310,7 @@ + # 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:5304: checking for $ac_word" >&5 ++echo "configure:5314: 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 +@@ -5338,6 +5348,8 @@ + else + AR_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ AR_FOR_TARGET="$ac_cv_prog_AR_FOR_TARGET" + fi + + else +@@ -5350,7 +5362,7 @@ + if test -z "$ac_cv_path_AS_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for as in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5354: checking for as in $with_build_time_tools" >&5 ++echo "configure:5366: checking for as in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/as; then + AS_FOR_TARGET=`cd $with_build_time_tools && pwd`/as + ac_cv_path_AS_FOR_TARGET=$AS_FOR_TARGET +@@ -5361,14 +5373,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + AS_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=as` + test $AS_FOR_TARGET=as && AS_FOR_TARGET= +- ac_cv_path_AS_FOR_TARGET=$AS_FOR_TARGET ++ test -n "$AS_FOR_TARGET" && ac_cv_path_AS_FOR_TARGET=$AS_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_AS_FOR_TARGET" ; then + # Extract the first word of "as", so it can be a program name with args. + set dummy as; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:5372: checking for $ac_word" >&5 ++echo "configure:5384: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5405,7 +5417,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in as; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5409: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:5421: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_AS_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -5422,7 +5434,7 @@ + # 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:5426: checking for $ac_word" >&5 ++echo "configure:5438: 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 +@@ -5453,7 +5465,7 @@ + # 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:5457: checking for $ac_word" >&5 ++echo "configure:5469: 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 +@@ -5491,6 +5503,8 @@ + else + AS_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ AS_FOR_TARGET="$ac_cv_prog_AS_FOR_TARGET" + fi + + else +@@ -5503,7 +5517,7 @@ + if test -z "$ac_cv_path_DLLTOOL_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for dlltool in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5507: checking for dlltool in $with_build_time_tools" >&5 ++echo "configure:5521: checking for dlltool in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/dlltool; then + DLLTOOL_FOR_TARGET=`cd $with_build_time_tools && pwd`/dlltool + ac_cv_path_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET +@@ -5514,14 +5528,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + DLLTOOL_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=dlltool` + test $DLLTOOL_FOR_TARGET=dlltool && DLLTOOL_FOR_TARGET= +- ac_cv_path_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET ++ test -n "$DLLTOOL_FOR_TARGET" && ac_cv_path_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_DLLTOOL_FOR_TARGET" ; then + # Extract the first word of "dlltool", so it can be a program name with args. + set dummy dlltool; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:5525: checking for $ac_word" >&5 ++echo "configure:5539: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5558,7 +5572,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in dlltool; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5562: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:5576: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_DLLTOOL_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -5575,7 +5589,7 @@ + # 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:5579: checking for $ac_word" >&5 ++echo "configure:5593: 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 +@@ -5606,7 +5620,7 @@ + # 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:5610: checking for $ac_word" >&5 ++echo "configure:5624: 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 +@@ -5644,6 +5658,8 @@ + else + DLLTOOL_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ DLLTOOL_FOR_TARGET="$ac_cv_prog_DLLTOOL_FOR_TARGET" + fi + + else +@@ -5656,7 +5672,7 @@ + if test -z "$ac_cv_path_LD_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for ld in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5660: checking for ld in $with_build_time_tools" >&5 ++echo "configure:5676: checking for ld in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/ld; then + LD_FOR_TARGET=`cd $with_build_time_tools && pwd`/ld + ac_cv_path_LD_FOR_TARGET=$LD_FOR_TARGET +@@ -5667,14 +5683,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + LD_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=ld` + test $LD_FOR_TARGET=ld && LD_FOR_TARGET= +- ac_cv_path_LD_FOR_TARGET=$LD_FOR_TARGET ++ test -n "$LD_FOR_TARGET" && ac_cv_path_LD_FOR_TARGET=$LD_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_LD_FOR_TARGET" ; then + # Extract the first word of "ld", so it can be a program name with args. + set dummy ld; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:5678: checking for $ac_word" >&5 ++echo "configure:5694: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5711,7 +5727,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in ld; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5715: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:5731: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_LD_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -5728,7 +5744,7 @@ + # 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:5732: checking for $ac_word" >&5 ++echo "configure:5748: 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 +@@ -5759,7 +5775,7 @@ + # 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:5763: checking for $ac_word" >&5 ++echo "configure:5779: 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 +@@ -5797,6 +5813,8 @@ + else + LD_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ LD_FOR_TARGET="$ac_cv_prog_LD_FOR_TARGET" + fi + + else +@@ -5809,7 +5827,7 @@ + if test -z "$ac_cv_path_LIPO_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for lipo in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5813: checking for lipo in $with_build_time_tools" >&5 ++echo "configure:5831: checking for lipo in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/lipo; then + LIPO_FOR_TARGET=`cd $with_build_time_tools && pwd`/lipo + ac_cv_path_LIPO_FOR_TARGET=$LIPO_FOR_TARGET +@@ -5820,14 +5838,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + LIPO_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=lipo` + test $LIPO_FOR_TARGET=lipo && LIPO_FOR_TARGET= +- ac_cv_path_LIPO_FOR_TARGET=$LIPO_FOR_TARGET ++ test -n "$LIPO_FOR_TARGET" && ac_cv_path_LIPO_FOR_TARGET=$LIPO_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_LIPO_FOR_TARGET" ; then + # Extract the first word of "lipo", so it can be a program name with args. + set dummy lipo; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:5831: checking for $ac_word" >&5 ++echo "configure:5849: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_LIPO_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5864,7 +5882,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in lipo; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5868: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:5886: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_LIPO_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -5881,7 +5899,7 @@ + # 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:5885: checking for $ac_word" >&5 ++echo "configure:5903: 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 +@@ -5912,7 +5930,7 @@ + # 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:5916: checking for $ac_word" >&5 ++echo "configure:5934: 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 +@@ -5950,6 +5968,8 @@ + else + LIPO_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ LIPO_FOR_TARGET="$ac_cv_prog_LIPO_FOR_TARGET" + fi + + else +@@ -5962,7 +5982,7 @@ + if test -z "$ac_cv_path_NM_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for nm in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:5966: checking for nm in $with_build_time_tools" >&5 ++echo "configure:5986: checking for nm in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/nm; then + NM_FOR_TARGET=`cd $with_build_time_tools && pwd`/nm + ac_cv_path_NM_FOR_TARGET=$NM_FOR_TARGET +@@ -5973,14 +5993,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + NM_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=nm` + test $NM_FOR_TARGET=nm && NM_FOR_TARGET= +- ac_cv_path_NM_FOR_TARGET=$NM_FOR_TARGET ++ test -n "$NM_FOR_TARGET" && ac_cv_path_NM_FOR_TARGET=$NM_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_NM_FOR_TARGET" ; then + # Extract the first word of "nm", so it can be a program name with args. + set dummy nm; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:5984: checking for $ac_word" >&5 ++echo "configure:6004: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6017,7 +6037,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in nm; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6021: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:6041: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_NM_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -6034,7 +6054,7 @@ + # 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:6038: checking for $ac_word" >&5 ++echo "configure:6058: 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 +@@ -6065,7 +6085,7 @@ + # 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:6069: checking for $ac_word" >&5 ++echo "configure:6089: 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 +@@ -6103,6 +6123,8 @@ + else + NM_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ NM_FOR_TARGET="$ac_cv_prog_NM_FOR_TARGET" + fi + + else +@@ -6115,7 +6137,7 @@ + if test -z "$ac_cv_path_OBJDUMP_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for objdump in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6119: checking for objdump in $with_build_time_tools" >&5 ++echo "configure:6141: checking for objdump in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/objdump; then + OBJDUMP_FOR_TARGET=`cd $with_build_time_tools && pwd`/objdump + ac_cv_path_OBJDUMP_FOR_TARGET=$OBJDUMP_FOR_TARGET +@@ -6126,14 +6148,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + OBJDUMP_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=objdump` + test $OBJDUMP_FOR_TARGET=objdump && OBJDUMP_FOR_TARGET= +- ac_cv_path_OBJDUMP_FOR_TARGET=$OBJDUMP_FOR_TARGET ++ test -n "$OBJDUMP_FOR_TARGET" && ac_cv_path_OBJDUMP_FOR_TARGET=$OBJDUMP_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_OBJDUMP_FOR_TARGET" ; then + # Extract the first word of "objdump", so it can be a program name with args. + set dummy objdump; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:6137: checking for $ac_word" >&5 ++echo "configure:6159: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6170,7 +6192,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in objdump; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6174: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:6196: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_OBJDUMP_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -6187,7 +6209,7 @@ + # 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:6191: checking for $ac_word" >&5 ++echo "configure:6213: 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 +@@ -6218,7 +6240,7 @@ + # 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:6222: checking for $ac_word" >&5 ++echo "configure:6244: 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 +@@ -6256,6 +6278,8 @@ + else + OBJDUMP_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ OBJDUMP_FOR_TARGET="$ac_cv_prog_OBJDUMP_FOR_TARGET" + fi + + else +@@ -6268,7 +6292,7 @@ + if test -z "$ac_cv_path_RANLIB_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for ranlib in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6272: checking for ranlib in $with_build_time_tools" >&5 ++echo "configure:6296: checking for ranlib in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/ranlib; then + RANLIB_FOR_TARGET=`cd $with_build_time_tools && pwd`/ranlib + ac_cv_path_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET +@@ -6279,14 +6303,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + RANLIB_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=ranlib` + test $RANLIB_FOR_TARGET=ranlib && RANLIB_FOR_TARGET= +- ac_cv_path_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET ++ test -n "$RANLIB_FOR_TARGET" && ac_cv_path_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_RANLIB_FOR_TARGET" ; then + # Extract the first word of "ranlib", so it can be a program name with args. + set dummy ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:6290: checking for $ac_word" >&5 ++echo "configure:6314: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6323,7 +6347,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in ranlib; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6327: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:6351: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_RANLIB_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -6340,7 +6364,7 @@ + # 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:6344: checking for $ac_word" >&5 ++echo "configure:6368: 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 +@@ -6371,7 +6395,7 @@ + # 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:6375: checking for $ac_word" >&5 ++echo "configure:6399: 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 +@@ -6409,6 +6433,8 @@ + else + RANLIB_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ RANLIB_FOR_TARGET="$ac_cv_prog_RANLIB_FOR_TARGET" + fi + + else +@@ -6421,7 +6447,7 @@ + if test -z "$ac_cv_path_STRIP_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for strip in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6425: checking for strip in $with_build_time_tools" >&5 ++echo "configure:6451: checking for strip in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/strip; then + STRIP_FOR_TARGET=`cd $with_build_time_tools && pwd`/strip + ac_cv_path_STRIP_FOR_TARGET=$STRIP_FOR_TARGET +@@ -6432,14 +6458,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + STRIP_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=strip` + test $STRIP_FOR_TARGET=strip && STRIP_FOR_TARGET= +- ac_cv_path_STRIP_FOR_TARGET=$STRIP_FOR_TARGET ++ test -n "$STRIP_FOR_TARGET" && ac_cv_path_STRIP_FOR_TARGET=$STRIP_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_STRIP_FOR_TARGET" ; then + # Extract the first word of "strip", so it can be a program name with args. + set dummy strip; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:6443: checking for $ac_word" >&5 ++echo "configure:6469: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_STRIP_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6476,7 +6502,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in strip; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6480: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:6506: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_STRIP_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -6493,7 +6519,7 @@ + # 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:6497: checking for $ac_word" >&5 ++echo "configure:6523: 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 +@@ -6524,7 +6550,7 @@ + # 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:6528: checking for $ac_word" >&5 ++echo "configure:6554: 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 +@@ -6562,6 +6588,8 @@ + else + STRIP_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ STRIP_FOR_TARGET="$ac_cv_prog_STRIP_FOR_TARGET" + fi + + else +@@ -6574,7 +6602,7 @@ + if test -z "$ac_cv_path_WINDRES_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + echo $ac_n "checking for windres in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6578: checking for windres in $with_build_time_tools" >&5 ++echo "configure:6606: checking for windres in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/windres; then + WINDRES_FOR_TARGET=`cd $with_build_time_tools && pwd`/windres + ac_cv_path_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET +@@ -6585,14 +6613,14 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + WINDRES_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=windres` + test $WINDRES_FOR_TARGET=windres && WINDRES_FOR_TARGET= +- ac_cv_path_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET ++ test -n "$WINDRES_FOR_TARGET" && ac_cv_path_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_WINDRES_FOR_TARGET" ; then + # Extract the first word of "windres", so it can be a program name with args. + set dummy windres; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:6596: checking for $ac_word" >&5 ++echo "configure:6624: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_WINDRES_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6629,7 +6657,7 @@ + if test -n "$with_build_time_tools"; then + for ncn_progname in windres; do + echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 +-echo "configure:6633: checking for ${ncn_progname} in $with_build_time_tools" >&5 ++echo "configure:6661: checking for ${ncn_progname} in $with_build_time_tools" >&5 + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_WINDRES_FOR_TARGET=$with_build_time_tools/${ncn_progname} + echo "$ac_t""yes" 1>&6 +@@ -6646,7 +6674,7 @@ + # 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:6650: checking for $ac_word" >&5 ++echo "configure:6678: 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 +@@ -6677,7 +6705,7 @@ + # 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:6681: checking for $ac_word" >&5 ++echo "configure:6709: 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 +@@ -6715,6 +6743,8 @@ + else + WINDRES_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi ++else ++ WINDRES_FOR_TARGET="$ac_cv_prog_WINDRES_FOR_TARGET" + fi + + else +@@ -6725,7 +6755,7 @@ + RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET" + + echo $ac_n "checking where to find the target ar""... $ac_c" 1>&6 +-echo "configure:6729: checking where to find the target ar" >&5 ++echo "configure:6759: checking where to find the target ar" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$AR_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6758,7 +6788,7 @@ + fi + fi + echo $ac_n "checking where to find the target as""... $ac_c" 1>&6 +-echo "configure:6762: checking where to find the target as" >&5 ++echo "configure:6792: checking where to find the target as" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$AS_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6791,7 +6821,7 @@ + fi + fi + echo $ac_n "checking where to find the target cc""... $ac_c" 1>&6 +-echo "configure:6795: checking where to find the target cc" >&5 ++echo "configure:6825: checking where to find the target cc" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$CC_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6824,7 +6854,7 @@ + fi + fi + echo $ac_n "checking where to find the target c++""... $ac_c" 1>&6 +-echo "configure:6828: checking where to find the target c++" >&5 ++echo "configure:6858: checking where to find the target c++" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6860,7 +6890,7 @@ + fi + fi + echo $ac_n "checking where to find the target c++ for libstdc++""... $ac_c" 1>&6 +-echo "configure:6864: checking where to find the target c++ for libstdc++" >&5 ++echo "configure:6894: checking where to find the target c++ for libstdc++" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6896,7 +6926,7 @@ + fi + fi + echo $ac_n "checking where to find the target dlltool""... $ac_c" 1>&6 +-echo "configure:6900: checking where to find the target dlltool" >&5 ++echo "configure:6930: checking where to find the target dlltool" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$DLLTOOL_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6929,7 +6959,7 @@ + fi + fi + echo $ac_n "checking where to find the target gcc""... $ac_c" 1>&6 +-echo "configure:6933: checking where to find the target gcc" >&5 ++echo "configure:6963: checking where to find the target gcc" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$GCC_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6962,7 +6992,7 @@ + fi + fi + echo $ac_n "checking where to find the target gcj""... $ac_c" 1>&6 +-echo "configure:6966: checking where to find the target gcj" >&5 ++echo "configure:6996: checking where to find the target gcj" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$GCJ_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -6998,7 +7028,7 @@ + fi + fi + echo $ac_n "checking where to find the target gfortran""... $ac_c" 1>&6 +-echo "configure:7002: checking where to find the target gfortran" >&5 ++echo "configure:7032: checking where to find the target gfortran" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$GFORTRAN_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7034,7 +7064,7 @@ + fi + fi + echo $ac_n "checking where to find the target ld""... $ac_c" 1>&6 +-echo "configure:7038: checking where to find the target ld" >&5 ++echo "configure:7068: checking where to find the target ld" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$LD_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7067,7 +7097,7 @@ + fi + fi + echo $ac_n "checking where to find the target lipo""... $ac_c" 1>&6 +-echo "configure:7071: checking where to find the target lipo" >&5 ++echo "configure:7101: checking where to find the target lipo" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$LIPO_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7090,7 +7120,7 @@ + fi + fi + echo $ac_n "checking where to find the target nm""... $ac_c" 1>&6 +-echo "configure:7094: checking where to find the target nm" >&5 ++echo "configure:7124: checking where to find the target nm" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$NM_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7123,7 +7153,7 @@ + fi + fi + echo $ac_n "checking where to find the target objdump""... $ac_c" 1>&6 +-echo "configure:7127: checking where to find the target objdump" >&5 ++echo "configure:7157: checking where to find the target objdump" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$OBJDUMP_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7156,7 +7186,7 @@ + fi + fi + echo $ac_n "checking where to find the target ranlib""... $ac_c" 1>&6 +-echo "configure:7160: checking where to find the target ranlib" >&5 ++echo "configure:7190: checking where to find the target ranlib" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$RANLIB_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7189,7 +7219,7 @@ + fi + fi + echo $ac_n "checking where to find the target strip""... $ac_c" 1>&6 +-echo "configure:7193: checking where to find the target strip" >&5 ++echo "configure:7223: checking where to find the target strip" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$STRIP_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7222,7 +7252,7 @@ + fi + fi + echo $ac_n "checking where to find the target windres""... $ac_c" 1>&6 +-echo "configure:7226: checking where to find the target windres" >&5 ++echo "configure:7256: checking where to find the target windres" >&5 + if test "x${build}" != "x${host}" ; then + if expr "x$WINDRES_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path +@@ -7283,7 +7313,7 @@ + + + echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +-echo "configure:7287: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++echo "configure:7317: 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" +@@ -7332,16 +7362,22 @@ + # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it. + CFLAGS="$CFLAGS -fkeep-inline-functions" + echo $ac_n "checking whether -fkeep-inline-functions is supported""... $ac_c" 1>&6 +-echo "configure:7336: checking whether -fkeep-inline-functions is supported" >&5 ++echo "configure:7366: checking whether -fkeep-inline-functions is supported" >&5 + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:7381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6; stage1_cflags="$stage1_cflags -fkeep-inline-functions" + else +Index: libgomp/ChangeLog +=================================================================== +--- libgomp/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgomp/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,10 @@ ++2007-06-21 Jakub Jelinek ++ ++ PR middle-end/32362 ++ * testsuite/libgomp.c/pr32362-1.c: New test. ++ * testsuite/libgomp.c/pr32362-2.c: New test. ++ * testsuite/libgomp.c/pr32362-3.c: New test. ++ + 2007-05-13 Release Manager + + * GCC 4.2.0 released. +Index: libgomp/testsuite/libgomp.c/pr32362-1.c +=================================================================== +--- libgomp/testsuite/libgomp.c/pr32362-1.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ libgomp/testsuite/libgomp.c/pr32362-1.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,32 @@ ++/* PR middle-end/32362 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++#include ++#include ++ ++int ++main () ++{ ++ int n[4] = { -1, -1, -1, -1 }; ++ static int a = 2, b = 4; ++ omp_set_num_threads (4); ++ omp_set_dynamic (0); ++ omp_set_nested (1); ++#pragma omp parallel private(b) ++ { ++ b = omp_get_thread_num (); ++#pragma omp parallel firstprivate(a) ++ { ++ a = (omp_get_thread_num () + a) + 1; ++ if (b == omp_get_thread_num ()) ++ n[omp_get_thread_num ()] = a + (b << 4); ++ } ++ } ++ if (n[0] != 3) ++ abort (); ++ if (n[3] != -1 ++ && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36)) ++ abort (); ++ return 0; ++} +Index: libgomp/testsuite/libgomp.c/pr32362-3.c +=================================================================== +--- libgomp/testsuite/libgomp.c/pr32362-3.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ libgomp/testsuite/libgomp.c/pr32362-3.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,34 @@ ++/* PR middle-end/32362 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++#include ++#include ++ ++int a = 2; ++ ++int ++main () ++{ ++ int n[4] = { -1, -1, -1, -1 }; ++ int b = 4; ++ omp_set_num_threads (4); ++ omp_set_dynamic (0); ++ omp_set_nested (1); ++#pragma omp parallel private(b) ++ { ++ b = omp_get_thread_num (); ++#pragma omp parallel firstprivate(a) ++ { ++ a = (omp_get_thread_num () + a) + 1; ++ if (b == omp_get_thread_num ()) ++ n[omp_get_thread_num ()] = a + (b << 4); ++ } ++ } ++ if (n[0] != 3) ++ abort (); ++ if (n[3] != -1 ++ && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36)) ++ abort (); ++ return 0; ++} +Index: libgomp/testsuite/libgomp.c/pr32362-2.c +=================================================================== +--- libgomp/testsuite/libgomp.c/pr32362-2.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ libgomp/testsuite/libgomp.c/pr32362-2.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,33 @@ ++/* PR middle-end/32362 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++#include ++#include ++ ++int a = 2, b = 4; ++ ++int ++main () ++{ ++ int n[4] = { -1, -1, -1, -1 }; ++ omp_set_num_threads (4); ++ omp_set_dynamic (0); ++ omp_set_nested (1); ++#pragma omp parallel private(b) ++ { ++ b = omp_get_thread_num (); ++#pragma omp parallel firstprivate(a) ++ { ++ a = (omp_get_thread_num () + a) + 1; ++ if (b == omp_get_thread_num ()) ++ n[omp_get_thread_num ()] = a + (b << 4); ++ } ++ } ++ if (n[0] != 3) ++ abort (); ++ if (n[3] != -1 ++ && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36)) ++ abort (); ++ return 0; ++} Index: gcc/tree-vrp.c =================================================================== ---- gcc/tree-vrp.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/tree-vrp.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/tree-vrp.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/tree-vrp.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -195,7 +195,28 @@ || operand_equal_p (val, TYPE_MIN_VALUE (TREE_TYPE (val)), 0))); } @@ -150,7 +1210,16 @@ Index: gcc/tree-vrp.c else set_value_range_to_varying (&vr0); -@@ -2393,7 +2409,10 @@ +@@ -2091,6 +2107,8 @@ + && is_gimple_val (new_max) + && tree_int_cst_equal (new_min, orig_min) + && tree_int_cst_equal (new_max, orig_max) ++ && (!is_overflow_infinity (new_min) ++ || !is_overflow_infinity (new_max)) + && compare_values (new_min, new_max) <= 0 + && compare_values (new_min, new_max) >= -1) + { +@@ -2393,7 +2411,10 @@ its type may be different from _Bool. Convert VAL to EXPR's type. */ val = fold_convert (TREE_TYPE (expr), val); @@ -162,7 +1231,7 @@ Index: gcc/tree-vrp.c } else set_value_range_to_varying (vr); -@@ -2424,7 +2443,7 @@ +@@ -2424,7 +2445,7 @@ else if (TREE_CODE_CLASS (code) == tcc_comparison) extract_range_from_comparison (vr, expr); else if (is_gimple_min_invariant (expr)) @@ -171,7 +1240,7 @@ Index: gcc/tree-vrp.c else set_value_range_to_varying (vr); -@@ -2545,6 +2564,13 @@ +@@ -2545,6 +2566,13 @@ if (compare_values (min, max) == 1) return; } @@ -185,7 +1254,7 @@ Index: gcc/tree-vrp.c } else { -@@ -2557,13 +2583,62 @@ +@@ -2557,13 +2585,62 @@ if (compare_values (min, max) == 1) return; } @@ -248,7 +1317,7 @@ Index: gcc/tree-vrp.c /* Given two numeric value ranges VR0, VR1 and a comparison code COMP: - Return BOOLEAN_TRUE_NODE if VR0 COMP VR1 always returns true for -@@ -4156,7 +4231,7 @@ +@@ -4156,7 +4233,7 @@ t = retval = NULL_TREE; EXECUTE_IF_SET_IN_BITMAP (e2, 0, i2, bi2) { @@ -257,7 +1326,7 @@ Index: gcc/tree-vrp.c value_range_t vr2 = *(vr_value[i2]); -@@ -4773,7 +4848,8 @@ +@@ -4773,7 +4850,8 @@ if (vrp_val_is_max (vr_result.max)) goto varying; @@ -267,7 +1336,7 @@ Index: gcc/tree-vrp.c vr_result.min = TYPE_MIN_VALUE (TREE_TYPE (vr_result.min)); else if (supports_overflow_infinity (TREE_TYPE (vr_result.min))) vr_result.min = -@@ -4791,7 +4867,8 @@ +@@ -4791,7 +4869,8 @@ if (vrp_val_is_min (vr_result.min)) goto varying; @@ -277,7 +1346,7 @@ Index: gcc/tree-vrp.c vr_result.max = TYPE_MAX_VALUE (TREE_TYPE (vr_result.max)); else if (supports_overflow_infinity (TREE_TYPE (vr_result.max))) vr_result.max = -@@ -4971,6 +5048,8 @@ +@@ -4971,6 +5050,8 @@ { tree one = build_int_cst (TREE_TYPE (op0), 1); max = fold_build2 (MINUS_EXPR, TREE_TYPE (op0), max, one); @@ -286,7 +1355,7 @@ Index: gcc/tree-vrp.c } } else if (cond_code == GE_EXPR || cond_code == GT_EXPR) -@@ -4984,6 +5063,8 @@ +@@ -4984,6 +5065,8 @@ { tree one = build_int_cst (TREE_TYPE (op0), 1); min = fold_build2 (PLUS_EXPR, TREE_TYPE (op0), min, one); @@ -297,15 +1366,38 @@ Index: gcc/tree-vrp.c Index: gcc/DATESTAMP =================================================================== ---- gcc/DATESTAMP (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/DATESTAMP (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/DATESTAMP (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/DATESTAMP (.../branches/gcc-4_2-branch) (revision 126002) @@ -1 +1 @@ -20070514 -+20070609 ++20070625 +Index: gcc/reload.c +=================================================================== +--- gcc/reload.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/reload.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1180,7 +1180,7 @@ + + /* If IN appears in OUT, we can't share any input-only reload for IN. */ + if (in != 0 && out != 0 && MEM_P (out) +- && (REG_P (in) || MEM_P (in)) ++ && (REG_P (in) || MEM_P (in) || GET_CODE (in) == PLUS) + && reg_overlap_mentioned_for_reload_p (in, XEXP (out, 0))) + dont_share = 1; + +@@ -6540,7 +6540,8 @@ + if (REG_P (in)) + return 0; + else if (GET_CODE (in) == PLUS) +- return (reg_overlap_mentioned_for_reload_p (x, XEXP (in, 0)) ++ return (rtx_equal_p (x, in) ++ || reg_overlap_mentioned_for_reload_p (x, XEXP (in, 0)) + || reg_overlap_mentioned_for_reload_p (x, XEXP (in, 1))); + else return (reg_overlap_mentioned_for_reload_p (XEXP (x, 0), in) + || reg_overlap_mentioned_for_reload_p (XEXP (x, 1), in)); Index: gcc/pointer-set.c =================================================================== ---- gcc/pointer-set.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/pointer-set.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/pointer-set.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/pointer-set.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -22,13 +22,12 @@ #include "system.h" #include "pointer-set.h" @@ -529,8 +1621,8 @@ Index: gcc/pointer-set.c +} Index: gcc/pointer-set.h =================================================================== ---- gcc/pointer-set.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/pointer-set.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/pointer-set.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/pointer-set.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -22,11 +22,21 @@ #define POINTER_SET_H @@ -556,8 +1648,8 @@ Index: gcc/pointer-set.h #endif /* POINTER_SET_H */ Index: gcc/fold-const.c =================================================================== ---- gcc/fold-const.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fold-const.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/fold-const.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fold-const.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -4450,13 +4450,24 @@ { low = range_successor (high1); @@ -617,17 +1709,117 @@ Index: gcc/fold-const.c } /* We don't know sign of `t', so be conservative and return false. */ +Index: gcc/omp-low.c +=================================================================== +--- gcc/omp-low.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/omp-low.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1505,9 +1505,9 @@ + for (up = ctx->outer, t = NULL; up && t == NULL; up = up->outer) + t = maybe_lookup_decl (decl, up); + +- gcc_assert (t); ++ gcc_assert (t || is_global_var (decl)); + +- return t; ++ return t ? t : decl; + } + + Index: gcc/DEV-PHASE =================================================================== ---- gcc/DEV-PHASE (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/DEV-PHASE (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/DEV-PHASE (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/DEV-PHASE (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1 @@ +prerelease Index: gcc/ChangeLog =================================================================== ---- gcc/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -1,3 +1,201 @@ +--- gcc/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,285 @@ ++2007-06-21 H.J. Lu ++ ++ * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_VEC_EXT_V16QI. ++ (ix86_init_mmx_sse_builtins): Add __builtin_ia32_vec_ext_v16qi. ++ (ix86_expand_builtin): Handle IX86_BUILTIN_VEC_EXT_V16QI. ++ ++2007-06-21 Jakub Jelinek ++ ++ PR middle-end/32362 ++ * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL, ++ but decl is a global var, instead return decl. ++ * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses ++ even for is_global_var decls, if they are private in some outer ++ context. ++ ++2007-06-21 Uros Bizjak ++ ++ PR target/32389 ++ * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL. ++ * config/i386/i386.c (assign_386_stack_local): Assert that ++ SLOT_VIRTUAL is valid only before virtual regs are instantiated. ++ (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]: ++ Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP. ++ * config/i386/i386.md (truncdfsf2, truncxfsf2, truncxfdf2): Ditto. ++ ++2007-06-20 Jakub Jelinek ++ ++ PR inline-asm/32109 ++ * gimplify.c (gimplify_asm_expr): Issue error if type is addressable ++ and !allows_mem. ++ ++ PR middle-end/32285 ++ * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments ++ if ACCUMULATE_OUTGOING_ARGS. ++ ++2007-06-20 Kaz Kojima ++ ++ PR rtl-optimization/28011 ++ Backport from mainline. ++ * reload.c (push_reload): Set dont_share if IN appears in OUT ++ also when IN is a PLUS rtx. ++ (reg_overlap_mentioned_for_reload_p): Return true if X and IN ++ are same PLUS rtx. ++ ++2007-06-19 Richard Guenther ++ Michael Matz ++ ++ PR tree-optimization/30252 ++ * tree-ssa-structalias.c (solution_set_add): Make sure to ++ preserve all relevant vars. ++ (handle_ptr_arith): Make sure to only handle positive ++ offsets. ++ (push_fields_onto_fieldstack): Create fields for empty ++ bases. ++ ++2007-06-19 Jakub Jelinek ++ ++ PR tree-optimization/32353 ++ * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL. ++ ++2007-06-17 Eric Botcazou ++ ++ * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the ++ return mode from the builtin itself. ++ (sparc_fold_builtin): Fix cast of zero constant. ++ ++2007-06-15 Diego Novillo ++ ++ PR 32327 ++ * tree-ssa-operands.c (build_ssa_operands): Initially assume ++ that the statement does not take any addresses. ++ ++2007-06-13 Eric Botcazou ++ ++ * config/sparc/sparc.c (sparc_override_options): Initialize ++ fpu mask correctly. ++ ++2007-06-09 Ian Lance Taylor ++ ++ PR tree-optimization/32169 ++ * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and ++ CONVERT_EXPR, check whether min and max both converted to an ++ overflow infinity representation. ++ +2007-06-08 Kaz Kojima + + PR target/32163 @@ -829,7 +2021,7 @@ Index: gcc/ChangeLog 2007-05-13 Release Manager * GCC 4.2.0 released. -@@ -307,7 +505,8 @@ +@@ -307,7 +589,8 @@ 2007-04-03 Stuart Hastings PR 31281 @@ -839,10 +2031,48 @@ Index: gcc/ChangeLog * cse.c (record_jump_equiv): Bail out on CCmode comparisons. 2007-04-03 Jakub Jelinek +Index: gcc/testsuite/gcc.c-torture/execute/20070614-1.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/execute/20070614-1.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.c-torture/execute/20070614-1.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,33 @@ ++extern void abort (void); ++ ++_Complex v = 3.0 + 1.0iF; ++ ++void ++foo (_Complex z, int *x) ++{ ++ if (z != v) ++ abort (); ++} ++ ++_Complex bar (_Complex z) __attribute__ ((pure)); ++_Complex ++bar (_Complex z) ++{ ++ return v; ++} ++ ++int ++baz (void) ++{ ++ int a, i; ++ for (i = 0; i < 6; i++) ++ foo (bar (1.0iF * i), &a); ++ return 0; ++} ++ ++int ++main () ++{ ++ baz (); ++ return 0; ++} Index: gcc/testsuite/gcc.c-torture/execute/vrp-7.c =================================================================== ---- gcc/testsuite/gcc.c-torture/execute/vrp-7.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.c-torture/execute/vrp-7.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.c-torture/execute/vrp-7.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.c-torture/execute/vrp-7.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,20 @@ + +void abort (void); @@ -866,8 +2096,8 @@ Index: gcc/testsuite/gcc.c-torture/execute/vrp-7.c +} Index: gcc/testsuite/gcc.c-torture/execute/20070517-1.c =================================================================== ---- gcc/testsuite/gcc.c-torture/execute/20070517-1.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.c-torture/execute/20070517-1.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.c-torture/execute/20070517-1.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.c-torture/execute/20070517-1.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,41 @@ +/* PR rtl-optimization/31691 */ +/* Origin: Chi-Hua Chen */ @@ -910,10 +2140,32 @@ Index: gcc/testsuite/gcc.c-torture/execute/20070517-1.c + example(10); + return 0; +} +Index: gcc/testsuite/gcc.c-torture/compile/pr32169.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/compile/pr32169.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.c-torture/compile/pr32169.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,17 @@ ++void f(char); ++static inline ++void * __memset_generic(char c) ++{ ++ f(c); ++} ++int prepare_startup_playback_urb( ++ int b, ++ int c ++) ++{ ++ char d; ++ if (b) ++ __memset_generic(c == ( 1) ? 0x80 : 0); ++ else ++ __memset_generic (c == ( 1) ? 0x80 : 0); ++} Index: gcc/testsuite/gcc.c-torture/compile/pr31953.c =================================================================== ---- gcc/testsuite/gcc.c-torture/compile/pr31953.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.c-torture/compile/pr31953.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.c-torture/compile/pr31953.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.c-torture/compile/pr31953.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,14 @@ +struct WView +{ @@ -929,10 +2181,171 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr31953.c + view->hexedit_mode = !view->hexedit_mode; + } +} +Index: gcc/testsuite/gcc.target/sparc/combined-2.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/combined-2.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/combined-2.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,7 +1,7 @@ + /* { dg-do compile } */ + /* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */ +-typedef char pixel __attribute__((vector_size(4))); +-typedef char vec8 __attribute__((vector_size(8))); ++typedef unsigned char pixel __attribute__((vector_size(4))); ++typedef unsigned char vec8 __attribute__((vector_size(8))); + typedef short vec16 __attribute__((vector_size(8))); + + vec16 foo (pixel a, pixel b) { +Index: gcc/testsuite/gcc.target/sparc/fpmul.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/fpmul.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/fpmul.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -2,9 +2,9 @@ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ + typedef int vec32 __attribute__((vector_size(8))); + typedef short vec16 __attribute__((vector_size(8))); +-typedef char pixel __attribute__((vector_size(4))); ++typedef unsigned char pixel __attribute__((vector_size(4))); + typedef short pixel16 __attribute__((vector_size(4))); +-typedef char vec8 __attribute__((vector_size(8))); ++typedef unsigned char vec8 __attribute__((vector_size(8))); + + vec16 foo1 (pixel a, vec16 b) { + return __builtin_vis_fmul8x16 (a, b); +Index: gcc/testsuite/gcc.target/sparc/pdist.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/pdist.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/pdist.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,8 +1,7 @@ + /* { dg-do compile } */ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ +- + typedef long long int64_t; +-typedef char vec8 __attribute__((vector_size(8))); ++typedef unsigned char vec8 __attribute__((vector_size(8))); + + int64_t foo (vec8 a, vec8 b) { + int64_t d = 0; +Index: gcc/testsuite/gcc.target/sparc/fexpand.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/fexpand.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/fexpand.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,7 +1,7 @@ + /* { dg-do compile } */ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ + typedef short vec16 __attribute__((vector_size(8))); +-typedef char vec8 __attribute__((vector_size(4))); ++typedef unsigned char vec8 __attribute__((vector_size(4))); + + vec16 foo (vec8 a) { + return __builtin_vis_fexpand (a); +Index: gcc/testsuite/gcc.target/sparc/fnot.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/fnot.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/fnot.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,8 +1,8 @@ + /* { dg-do compile } */ + /* { dg-options "-O -mcpu=ultrasparc -mvis" } */ +-typedef char vec8 __attribute__((vector_size(8))); ++typedef unsigned char vec8 __attribute__((vector_size(8))); + typedef short vec16 __attribute__((vector_size(8))); +-typedef int vec32 __attribute__((vector_size(8))); ++typedef int vec32 __attribute__((vector_size(8))); + + extern vec8 foo1_8(void); + extern void foo2_8(vec8); +@@ -21,7 +21,7 @@ + #endif + + extern vec16 foo1_16(void); +-extern void foo2_16(vec8); ++extern void foo2_16(vec16); + + + vec16 fun16(void) +@@ -38,7 +38,7 @@ + #endif + + extern vec32 foo1_32(void); +-extern void foo2_32(vec8); ++extern void foo2_32(vec32); + + vec32 fun32(void) + { +Index: gcc/testsuite/gcc.target/sparc/mfpu.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/mfpu.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/sparc/mfpu.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,11 @@ ++/* Reported by Peter A. Krauss */ ++ ++/* { dg-do compile } */ ++/* { dg-options "-mfpu" } */ ++ ++float square(float x) ++{ ++ return x * x; ++} ++ ++/* { dg-final { scan-assembler "fmuls" } } */ +Index: gcc/testsuite/gcc.target/sparc/noresult.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/noresult.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/noresult.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,7 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ + typedef short vec16 __attribute__((vector_size(8))); +-typedef char vec8 __attribute__((vector_size(4))); + + void foo (vec16 a) { + __builtin_vis_fpack16 (a); +Index: gcc/testsuite/gcc.target/sparc/fpmerge.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/fpmerge.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/fpmerge.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,7 +1,7 @@ + /* { dg-do compile } */ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ +-typedef char pixel __attribute__((vector_size(8))); +-typedef char vec8 __attribute__((vector_size(4))); ++typedef unsigned char pixel __attribute__((vector_size(8))); ++typedef unsigned char vec8 __attribute__((vector_size(4))); + + pixel foo (vec8 a, vec8 b) { + return __builtin_vis_fpmerge (a, b); +Index: gcc/testsuite/gcc.target/sparc/align.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/align.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/align.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,10 +1,9 @@ + /* { dg-do compile } */ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ +- + typedef long long int64_t; + typedef int vec32 __attribute__((vector_size(8))); + typedef short vec16 __attribute__((vector_size(8))); +-typedef char vec8 __attribute__((vector_size(8))); ++typedef unsigned char vec8 __attribute__((vector_size(8))); + + vec16 foo1 (vec16 a, vec16 b) { + return __builtin_vis_faligndatav4hi (a, b); +Index: gcc/testsuite/gcc.target/sparc/fpack16.c +=================================================================== +--- gcc/testsuite/gcc.target/sparc/fpack16.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gcc.target/sparc/fpack16.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,7 +1,7 @@ + /* { dg-do compile } */ + /* { dg-options "-mcpu=ultrasparc -mvis" } */ + typedef short vec16 __attribute__((vector_size(8))); +-typedef char vec8 __attribute__((vector_size(4))); ++typedef unsigned char vec8 __attribute__((vector_size(4))); + + vec8 foo (vec16 a) { + return __builtin_vis_fpack16 (a); Index: gcc/testsuite/gcc.target/i386/sse2-vec-3.c =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,37 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ @@ -971,10 +2384,25 @@ Index: gcc/testsuite/gcc.target/i386/sse2-vec-3.c + if (res[i] != val1.i [masks[i]]) + abort (); +} +Index: gcc/testsuite/gcc.target/i386/pr32389.c +=================================================================== +--- gcc/testsuite/gcc.target/i386/pr32389.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/pr32389.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,10 @@ ++/* Testcase by Mike Frysinger */ ++ ++/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ ++/* { dg-options "-msse" } */ ++ ++double f1(); ++int f2() { ++ __builtin_ia32_stmxcsr(); ++ return f1(); ++} Index: gcc/testsuite/gcc.target/i386/pr31167.c =================================================================== ---- gcc/testsuite/gcc.target/i386/pr31167.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/pr31167.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/pr31167.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/pr31167.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,20 @@ +/* { dg-do compile { target x86_64-*-* } } */ +/* { dg-options "-O" } */ @@ -998,8 +2426,8 @@ Index: gcc/testsuite/gcc.target/i386/pr31167.c +} Index: gcc/testsuite/gcc.target/i386/sse2-vec-4.c =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,41 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ @@ -1044,8 +2472,8 @@ Index: gcc/testsuite/gcc.target/i386/sse2-vec-4.c +} Index: gcc/testsuite/gcc.target/i386/sse2-check.h =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-check.h (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-check.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-check.h (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-check.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,20 @@ +#include +#include @@ -1069,8 +2497,8 @@ Index: gcc/testsuite/gcc.target/i386/sse2-check.h +} Index: gcc/testsuite/gcc.target/i386/sse2-vec-1.c =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,35 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ @@ -1109,8 +2537,8 @@ Index: gcc/testsuite/gcc.target/i386/sse2-vec-1.c +} Index: gcc/testsuite/gcc.target/i386/sse2-vec-5.c =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,49 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ @@ -1163,8 +2591,8 @@ Index: gcc/testsuite/gcc.target/i386/sse2-vec-5.c +} Index: gcc/testsuite/gcc.target/i386/sse2-vec-2.c =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,35 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ @@ -1203,8 +2631,8 @@ Index: gcc/testsuite/gcc.target/i386/sse2-vec-2.c +} Index: gcc/testsuite/gcc.target/i386/sse2-vec-6.c =================================================================== ---- gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,69 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ @@ -1277,8 +2705,8 @@ Index: gcc/testsuite/gcc.target/i386/sse2-vec-6.c +} Index: gcc/testsuite/gcc.dg/Wstrict-overflow-18.c =================================================================== ---- gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ @@ -1304,8 +2732,8 @@ Index: gcc/testsuite/gcc.dg/Wstrict-overflow-18.c +} Index: gcc/testsuite/gcc.dg/Wstrict-overflow-19.c =================================================================== ---- gcc/testsuite/gcc.dg/Wstrict-overflow-19.c (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gcc.dg/Wstrict-overflow-19.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gcc.dg/Wstrict-overflow-19.c (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gcc.dg/Wstrict-overflow-19.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ @@ -1324,9 +2752,75 @@ Index: gcc/testsuite/gcc.dg/Wstrict-overflow-19.c +} Index: gcc/testsuite/ChangeLog =================================================================== ---- gcc/testsuite/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/testsuite/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -1,3 +1,124 @@ +--- gcc/testsuite/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,190 @@ ++2007-06-21 Uros Bizjak ++ ++ PR target/32389 ++ * gcc.target/i386/pr32389.c New test. ++ ++2007-06-20 Daniel Franke ++ ++ Backport from trunk: ++ PR fortran/32002 ++ * gfortran.dg/compliant_elemental_intrinsics_2.f90: New test. ++ ++2007-06-20 Jakub Jelinek ++ ++ PR inline-asm/32109 ++ * g++.dg/ext/asm10.C: New test. ++ ++ PR middle-end/32285 ++ * gcc.c-torture/execute/20070614-1.c: New test. ++ ++2007-06-20 Paul Thomas ++ ++ PR fortran/32302 ++ * gfortran.dg/common_resize_1.f90: New test. ++ ++2007-06-19 Richard Guenther ++ Michael Matz ++ ++ PR tree-optimization/30252 ++ * g++.dg/opt/pr30252.C: New testcase. ++ ++2007-06-19 Jakub Jelinek ++ ++ PR tree-optimization/32353 ++ * g++.dg/opt/nrv13.C: New test. ++ ++2007-06-15 Mark Mitchell ++ ++ * g++.dg/lookup/anon6.C: New test. ++ ++2007-06-17 Eric Botcazou ++ ++ * gcc.target/sparc/align.c: Use 'unsigned char' as element type. ++ * gcc.target/sparc/combined-2.c: Likewise. ++ * gcc.target/sparc/fexpand.c : Likewise. ++ * gcc.target/sparc/fnot.c: Likewise. Fix a couple of prototypes. ++ * gcc.target/sparc/fpack16.c : Likewise. ++ * gcc.target/sparc/fpmerge.c : Likewise. ++ * gcc.target/sparc/fpmul.c : Likewise. ++ * gcc.target/sparc/noresult.c : Likewise. ++ * gcc.target/sparc/pdist.c: Likewise. ++ ++2007-06-15 Diego Novillo ++ ++ PR 32327 ++ * g++.dg/tree-ssa/pr32327-1.C: New test. ++ * g++.dg/tree-ssa/pr32327.C: New test. ++ ++2007-06-13 Eric Botcazou ++ ++ * gcc.target/sparc/mfpu.c: New test. ++ ++2007-06-09 Ian Lance Taylor ++ ++ PR tree-optimization/32169 ++ * gcc.c-torture/compile/pr32169.c: New test. ++ +2007-06-08 Dirk Mueller + + PR c++/31809 @@ -1453,8 +2947,8 @@ Index: gcc/testsuite/ChangeLog * GCC 4.2.0 released. Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 =================================================================== ---- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -8,7 +8,8 @@ i = 2 j = 3 @@ -1472,10 +2966,174 @@ Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_bitops.f90 + if (ishftc (a, 1, bit_size(a)) .ne. 10) call abort + if (ishftc (1, 1, 32) .ne. 2) call abort end program +Index: gcc/testsuite/g++.dg/tree-ssa/pr32327-1.C +=================================================================== +--- gcc/testsuite/g++.dg/tree-ssa/pr32327-1.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/tree-ssa/pr32327-1.C (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,70 @@ ++// { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } ++// { dg-options "-O2" } ++ ++// Endian sensitive. This is a little-endian redux. ++ ++typedef long long int64; ++typedef unsigned long long uint64; ++typedef __SIZE_TYPE__ size_t; ++ ++extern "C" { ++extern void *memcpy (void *__restrict __dest, ++ __const void *__restrict __src, size_t __n) /*throw ()*/; ++extern void abort (void); ++} ++ ++inline uint64 Swap64(uint64 ull) { ++ uint64 b0 = (ull >> 0) & 0xff; ++ uint64 b1 = (ull >> 8) & 0xff; ++ uint64 b2 = (ull >> 16) & 0xff; ++ uint64 b3 = (ull >> 24) & 0xff; ++ uint64 b4 = (ull >> 32) & 0xff; ++ uint64 b5 = (ull >> 40) & 0xff; ++ uint64 b6 = (ull >> 48) & 0xff; ++ uint64 b7 = (ull >> 56) & 0xff; ++ return (b0 << 56) | (b1 << 48) | (b2 << 40) | (b3 << 32) | ++ (b4 << 24) | (b5 << 16) | (b6 << 8) | (b7 << 0); ++} ++ ++inline void KeyFromUint64(uint64 ull, unsigned char* key) { ++ uint64 ull_swap = Swap64(ull); ++ memcpy(key, &ull_swap, sizeof(uint64)); ++} ++ ++inline int64 int64_from_double(const double& source) { ++ int64 dest; ++ memcpy(&dest, &source, sizeof(dest)); ++ return dest; ++} ++ ++void KeyFromDouble(double x, unsigned char* key) __attribute__ ((noinline)); ++void KeyFromDouble(double x, unsigned char* key) { ++ int64 n = int64_from_double(x); ++ if (n >= 0) { ++ n += 1ull << 63; ++ } else { ++ n = -n; ++ } ++ KeyFromUint64(n, key); ++} ++ ++ ++void TestKeyFromDouble(uint64 ull) { ++ double d; ++ memcpy(&d, &ull, sizeof(d)); ++ ++ unsigned char key[sizeof(uint64)]; ++ unsigned char expected_key[sizeof(uint64)] = { 0x81, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }; ++ ++ KeyFromDouble(d, key); ++ ++ for (size_t i = 0; i < sizeof(key); ++i) { ++ if ((key[i] & 0xff) != expected_key[i]) ++ abort (); ++ } ++} ++ ++int main() { ++ TestKeyFromDouble(0x0123456789abcdefull); ++ return 0; ++} +Index: gcc/testsuite/g++.dg/tree-ssa/pr32327.C +=================================================================== +--- gcc/testsuite/g++.dg/tree-ssa/pr32327.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/tree-ssa/pr32327.C (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,84 @@ ++// { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } ++// { dg-options "-O2" } ++ ++typedef unsigned long long uint64; ++typedef __SIZE_TYPE__ size_t; ++ ++extern "C" { ++extern void *memcpy (void *__restrict __dest, ++ __const void *__restrict __src, size_t __n) /*throw ()*/; ++extern void abort (void); ++} ++ ++extern void foo (void* p); ++ ++inline uint64 ++ghtonll(uint64 x) ++{ ++ // __r is allocated the same stack slot as dest below ++ union { unsigned long long int __ll; ++ unsigned long int __l[2]; } __w, __r; ++ __w.__ll = x; ++ __r.__l[0] = ( ++ { ++ register unsigned int __v; ++ __asm__ __volatile__ ("bswap %0" : "=r" (__v) : ++ "0" ((unsigned int) (__w.__l[1]))); ++ __v; }); ++ ++ __r.__l[1] = ( ++ { ++ register unsigned int __v; ++ __asm__ __volatile__ ("bswap %0" : "=r" (__v) : ++ "0" ((unsigned int) (__w.__l[0]))); ++ __v; }); ++ ++ return __r.__ll; ++} ++ ++inline uint64 ++double_2_uint64 (const double *source) ++{ ++ uint64 dest; // allocated the same stack slot as __r above ++ memcpy(&dest, source, sizeof(dest)); ++ return dest; ++} ++ ++inline void ++KeyFromUint64(uint64 fp) { ++ uint64 norder; ++ norder = ghtonll (fp); ++ foo((char*)(&norder)); ++} ++ ++void ++KeyFromDouble(double x) { ++ uint64 n = double_2_uint64 (&x); ++ if (n >= 42) { ++ n += 1; ++ } ++ ++ KeyFromUint64(n); ++} ++ ++#define NUM 0x0123456789abcdefll ++#define EXPECTED 0xe0bc9a7856347243ll ++ ++void foo (void *x) ++{ ++ if (*((uint64 *)x) != (uint64) EXPECTED) ++ abort (); ++} ++ ++int main () ++{ ++ if (sizeof (double) != sizeof (uint64)) ++ return 0; ++ ++ if (sizeof (uint64) == sizeof (unsigned long int)) ++ return 0; ++ ++ KeyFromDouble ((double)NUM); ++ ++ return 0; ++} Index: gcc/testsuite/g++.dg/conversion/enum1.C =================================================================== ---- gcc/testsuite/g++.dg/conversion/enum1.C (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/g++.dg/conversion/enum1.C (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/g++.dg/conversion/enum1.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/conversion/enum1.C (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,10 @@ +// { dg-do run } +// { dg-options "-O2 -finline-functions" } @@ -1487,10 +3145,29 @@ Index: gcc/testsuite/g++.dg/conversion/enum1.C +bool valid(E v) { return v >= E_MIN && v <= E_MAX; } + +int main() { return valid(E(2)); } +Index: gcc/testsuite/g++.dg/ext/asm10.C +=================================================================== +--- gcc/testsuite/g++.dg/ext/asm10.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/ext/asm10.C (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,14 @@ ++// PR inline-asm/32109 ++// { dg-do compile } ++// { dg-options "-O2" } ++ ++struct A { int i[3]; ~A (); }; ++struct A a; ++struct B { struct A c; int i; B (); } b; ++ ++B::B () ++{ ++ __asm ("" : : "r" (a)); // { dg-error "impossible constraint|non-memory input" } ++ __asm ("" : : "r" (b.c)); // { dg-error "impossible constraint|non-memory input" } ++ __asm ("" : : "r" (c)); // { dg-error "impossible constraint|non-memory input" } ++} Index: gcc/testsuite/g++.dg/gomp/pr31769.C =================================================================== ---- gcc/testsuite/g++.dg/gomp/pr31769.C (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/g++.dg/gomp/pr31769.C (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/g++.dg/gomp/pr31769.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/gomp/pr31769.C (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,61 @@ +// PR tree-optimization/31769 +// { dg-options "-O2 -fopenmp" } @@ -1553,10 +3230,241 @@ Index: gcc/testsuite/g++.dg/gomp/pr31769.C + { + } +} +Index: gcc/testsuite/g++.dg/opt/pr30252.C +=================================================================== +--- gcc/testsuite/g++.dg/opt/pr30252.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/opt/pr30252.C (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,226 @@ ++/* { dg-do run } */ ++/* { dg-options "-O -fstrict-aliasing" } */ ++ ++extern "C" void abort (void); ++namespace sigc { ++ template ++ struct type_trait ++ { ++ typedef T_type& pass; ++ typedef const T_type& take; ++ typedef T_type* pointer; ++ }; ++ template ++ struct is_base_and_derived ++ { ++ struct big { ++ char memory[64]; ++ }; ++ static big is_base_class_(...); ++ static char is_base_class_(typename type_trait::pointer); ++ static const bool value = ++ sizeof(is_base_class_(reinterpret_cast::pointer>(0))) == ++ sizeof(char); ++ }; ++ struct nil; ++ struct functor_base {}; ++ template ::value> ++ struct functor_trait ++ { ++ }; ++ template ++ struct functor_trait ++ { ++ typedef typename T_functor::result_type result_type; ++ typedef T_functor functor_type; ++ }; ++ template ++ class pointer_functor1 : public functor_base ++ { ++ typedef T_return (*function_type)(T_arg1); ++ function_type func_ptr_; ++ public: ++ typedef T_return result_type; ++ explicit pointer_functor1(function_type _A_func): func_ptr_(_A_func) {} ++ T_return operator()(typename type_trait::take _A_a1) const ++ { return func_ptr_(_A_a1); } ++ }; ++ template ++ inline pointer_functor1 ++ ptr_fun1(T_return (*_A_func)(T_arg1)) ++ { return pointer_functor1(_A_func); } ++ struct adaptor_base : public functor_base {}; ++ template ::value> ++ struct deduce_result_type ++ { typedef typename functor_trait::result_type type; }; ++ template ++ struct adaptor_functor : public adaptor_base ++ { ++ template ++ struct deduce_result_type ++ { typedef typename sigc::deduce_result_type::type type; }; ++ typedef typename functor_trait::result_type result_type; ++ result_type ++ operator()() const; ++ template ++ typename deduce_result_type::type ++ operator()(T_arg1 _A_arg1) const ++ { return functor_(_A_arg1); } ++ explicit adaptor_functor(const T_functor& _A_functor) ++ : functor_(_A_functor) ++ {} ++ mutable T_functor functor_; ++ }; ++ template ++ typename adaptor_functor::result_type ++ adaptor_functor::operator()() const ++ { return functor_(); } ++ template ::value> struct adaptor_trait; ++ template ++ struct adaptor_trait ++ { ++ typedef T_functor adaptor_type; ++ }; ++ template ++ struct adaptor_trait ++ { ++ typedef typename functor_trait::functor_type functor_type; ++ typedef adaptor_functor adaptor_type; ++ }; ++ template ++ struct adapts : public adaptor_base ++ { ++ typedef typename adaptor_trait::adaptor_type adaptor_type; ++ explicit adapts(const T_functor& _A_functor) ++ : functor_(_A_functor) ++ {} ++ mutable adaptor_type functor_; ++ }; ++ template ++ struct reference_wrapper ++ { ++ }; ++ template ++ struct unwrap_reference ++ { ++ typedef T_type type; ++ }; ++ template ++ class bound_argument ++ { ++ public: ++ bound_argument(const T_type& _A_argument) ++ : visited_(_A_argument) ++ {} ++ inline T_type& invoke() ++ { return visited_; } ++ T_type visited_; ++ }; ++ template ++ class bound_argument< reference_wrapper > ++ { ++ }; ++ template ++ struct bind_functor; ++ template ++ struct bind_functor<-1, T_functor, T_type1> : public adapts ++ { ++ typedef typename adapts::adaptor_type adaptor_type; ++ typedef typename adaptor_type::result_type result_type; ++ result_type ++ operator()() ++ { ++ return this->functor_.template operator()::type>::pass> (bound1_.invoke()); ++ } ++ bind_functor(typename type_trait::take _A_func, typename type_trait::take _A_bound1) ++ : adapts(_A_func), bound1_(_A_bound1) ++ {} ++ bound_argument bound1_; ++ }; ++ template ++ inline bind_functor<-1, T_functor, ++ T_type1> ++ bind(const T_functor& _A_func, T_type1 _A_b1) ++ { return bind_functor<-1, T_functor, ++ T_type1> ++ (_A_func, _A_b1); ++ } ++ namespace internal { ++ struct slot_rep; ++ typedef void* (*hook)(slot_rep *); ++ struct slot_rep ++ { ++ hook call_; ++ }; ++ } ++ class slot_base : public functor_base ++ { ++ public: ++ typedef internal::slot_rep rep_type; ++ explicit slot_base(rep_type* rep) ++ : rep_(rep) ++ { ++ } ++ mutable rep_type *rep_; ++ }; ++ namespace internal { ++ template ++ struct typed_slot_rep : public slot_rep ++ { ++ typedef typename adaptor_trait::adaptor_type adaptor_type; ++ adaptor_type functor_; ++ inline typed_slot_rep(const T_functor& functor) ++ : functor_(functor) ++ { ++ } ++ }; ++ template ++ struct slot_call0 ++ { ++ static void *call_it(slot_rep* rep) ++ { ++ typedef typed_slot_rep typed_slot; ++ typed_slot *typed_rep = static_cast(rep); ++ return (typed_rep->functor_)(); ++ } ++ static hook address() ++ { ++ return &call_it; ++ } ++ }; ++ } ++ ++ class slot0 : public slot_base ++ { ++ public: ++ typedef void * (*call_type)(rep_type*); ++ inline void *operator()() const ++ { ++ return slot_base::rep_->call_ (slot_base::rep_); ++ } ++ template ++ slot0(const T_functor& _A_func) ++ : slot_base(new internal::typed_slot_rep(_A_func)) ++ { ++ slot_base::rep_->call_ = internal::slot_call0::address(); ++ } ++ }; ++} ++struct A ++{ ++ static void *foo (void *p) { return p; } ++ typedef sigc::slot0 C; ++ C bar(); ++}; ++A::C A::bar () ++{ ++ return sigc::bind (sigc::ptr_fun1 (&A::foo), (void*)0); ++} ++int main (void) ++{ ++ A a; ++ if (a.bar ()() != 0) ++ abort (); ++} Index: gcc/testsuite/g++.dg/opt/static5.C =================================================================== ---- gcc/testsuite/g++.dg/opt/static5.C (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/g++.dg/opt/static5.C (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/g++.dg/opt/static5.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/opt/static5.C (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,29 @@ +// PR c++/31809 +// { dg-do run } @@ -1587,10 +3495,73 @@ Index: gcc/testsuite/g++.dg/opt/static5.C + abort (); + return 0; +} +Index: gcc/testsuite/g++.dg/opt/nrv13.C +=================================================================== +--- gcc/testsuite/g++.dg/opt/nrv13.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/opt/nrv13.C (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,42 @@ ++// PR tree-optimization/32353 ++// { dg-do run } ++// { dg-options "-O2" } ++ ++extern "C" void abort (); ++ ++struct A ++{ ++ int f; ++ A (int x) : f (x) {} ++}; ++ ++A ++foo (const A &x, const A &y) ++{ ++ A r (0); ++ r = x.f == -111 ? y : (y.f == -111 || x.f > y.f) ? x : y; ++ A s (0); ++ r = r.f == -111 ? s : (r.f > s.f) ? r : s; ++ return r; ++} ++ ++int ++main () ++{ ++ if (foo (A (0), A (1)).f != 1) ++ abort (); ++ if (foo (A (1), A (9)).f != 9) ++ abort (); ++ if (foo (A (9), A (1)).f != 9) ++ abort (); ++ if (foo (A (-4), A (-5)).f != 0) ++ abort (); ++ if (foo (A (-111), A (-111)).f != 0) ++ abort (); ++ if (foo (A (2), A (-111)).f != 2) ++ abort (); ++ if (foo (A (-111), A (6)).f != 6) ++ abort (); ++ if (foo (A (-111), A (-4)).f != 0) ++ abort (); ++} +Index: gcc/testsuite/g++.dg/lookup/anon6.C +=================================================================== +--- gcc/testsuite/g++.dg/lookup/anon6.C (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/g++.dg/lookup/anon6.C (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,11 @@ ++extern int v1; // { dg-error "declared" } ++static union { int v1; }; // { dg-error "redeclaration" } ++ ++static union { int v2; }; // { dg-error "declared" } ++extern int v2; // { dg-error "redeclaration" } ++ ++int v3; // { dg-error "declared" } ++static union { int v3; }; // { dg-error "redeclaration" } ++ ++static union { int v4; }; // { dg-error "declared" } ++static union { int v4; }; // { dg-error "redeclaration" } Index: gcc/testsuite/gfortran.dg/char_length_5.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/char_length_5.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/char_length_5.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/char_length_5.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/char_length_5.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,61 @@ +! { dg-do run } +! Tests the fix for PR31867, in which the interface evaluation @@ -1655,8 +3626,8 @@ Index: gcc/testsuite/gfortran.dg/char_length_5.f90 +! { dg-final { cleanup-modules "util_mod" } } Index: gcc/testsuite/gfortran.dg/array_reference_1.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/array_reference_1.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/array_reference_1.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/array_reference_1.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/array_reference_1.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,35 @@ +! { dg-do run } +! Tests the fix for PR31994, aka 31867, in which the offset @@ -1695,8 +3666,8 @@ Index: gcc/testsuite/gfortran.dg/array_reference_1.f90 +END program main Index: gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,18 @@ +! { dg-do run } +! PR 31196 - reshape of transposed derived types generated @@ -1716,10 +3687,191 @@ Index: gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 + write (unit=line2, fmt="(4I4)") (/ 1, 3, 2, 4 /) + if (line1 /= line2) call abort +END program main +Index: gcc/testsuite/gfortran.dg/common_resize_1.f +=================================================================== +--- gcc/testsuite/gfortran.dg/common_resize_1.f (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/common_resize_1.f (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,176 @@ ++c { dg-do run } ++c { dg-options "-std=legacy" } ++c ++c Tests the fix for PR32302, in which the resizing of 'aux32' would cause ++c misalignment for double precision types and a wrong result would be obtained ++c at any level of optimization except none. ++c ++c Contributed by Dale Ranta ++c ++ subroutine unpki(ixp,nwcon,nmel) ++ parameter(lnv=32) ++ implicit double precision (a-h,o-z) dp ++c ++c unpack connection data ++c ++ common/aux32/kka(lnv),kkb(lnv),kkc(lnv), ++ 1 kk1(lnv),kk2(lnv),kk3(lnv),dxy(lnv), ++ 2 dyx(lnv),dyz(lnv),dzy(lnv),dzx(lnv), ++ 3 dxz(lnv),vx17(lnv),vx28(lnv),vx35(lnv), ++ 4 vx46(lnv),vy17(lnv),vy28(lnv), ++ 5 vy35(lnv),vy46(lnv),vz17(lnv),vz28(lnv),vz35(lnv),vz46(lnv) ++ common/aux33/ix1(lnv),ix2(lnv),ix3(lnv),ix4(lnv),ix5(lnv), ++ 1 ix6(lnv),ix7(lnv),ix8(lnv),mxt(lnv) ++ dimension ixp(nwcon,*) ++c ++ return ++ end ++ subroutine prtal ++ parameter(lnv=32) ++ implicit double precision (a-h,o-z) dp ++ common/aux8/ ++ & x1(lnv),x2(lnv),x3(lnv),x4(lnv), ++ & x5(lnv),x6(lnv),x7(lnv),x8(lnv), ++ & y1(lnv),y2(lnv),y3(lnv),y4(lnv), ++ & y5(lnv),y6(lnv),y7(lnv),y8(lnv), ++ & z1(lnv),z2(lnv),z3(lnv),z4(lnv), ++ & z5(lnv),z6(lnv),z7(lnv),z8(lnv) ++ common/aux9/vlrho(lnv),det(lnv) ++ common/aux10/ ++ 1 px1(lnv),px2(lnv),px3(lnv),px4(lnv), ++ & px5(lnv),px6(lnv),px7(lnv),px8(lnv), ++ 2 py1(lnv),py2(lnv),py3(lnv),py4(lnv), ++ & py5(lnv),py6(lnv),py7(lnv),py8(lnv), ++ 3 pz1(lnv),pz2(lnv),pz3(lnv),pz4(lnv), ++ & pz5(lnv),pz6(lnv),pz7(lnv),pz8(lnv), ++ 4 vx1(lnv),vx2(lnv),vx3(lnv),vx4(lnv), ++ 5 vx5(lnv),vx6(lnv),vx7(lnv),vx8(lnv), ++ 6 vy1(lnv),vy2(lnv),vy3(lnv),vy4(lnv), ++ 7 vy5(lnv),vy6(lnv),vy7(lnv),vy8(lnv), ++ 8 vz1(lnv),vz2(lnv),vz3(lnv),vz4(lnv), ++ 9 vz5(lnv),vz6(lnv),vz7(lnv),vz8(lnv) ++ common/aux32/ ! { dg-warning "shall be of the same size" } ++ a a17(lnv),a28(lnv),dett(lnv), ++ 1 aj1(lnv),aj2(lnv),aj3(lnv),aj4(lnv), ++ 2 aj5(lnv),aj6(lnv),aj7(lnv),aj8(lnv), ++ 3 aj9(lnv),x17(lnv),x28(lnv),x35(lnv), ++ 4 x46(lnv),y17(lnv),y28(lnv),y35(lnv), ++ 5 y46(lnv),z17(lnv),z28(lnv),z35(lnv),z46(lnv) ++ common/aux33/ ! { dg-warning "shall be of the same size" } ++ a ix1(lnv),ix2(lnv),ix3(lnv),ix4(lnv),ix5(lnv), ++ 1 ix6(lnv),ix7(lnv),ix8(lnv),mxt(lnv),nmel ++ common/aux36/lft,llt ++ common/failu/sieu(lnv),failu(lnv) ++ common/sand1/ihf,ibemf,ishlf,itshf ++ dimension aj5968(lnv),aj6749(lnv),aj4857(lnv),aji1(lnv),aji2(lnv), ++ 1 aji3(lnv),aji4(lnv),aji5(lnv), ++ 1 aji6(lnv),aji7(lnv),aji8(lnv),aji9(lnv),aj12(lnv), ++ 2 aj45(lnv),aj78(lnv),b17(lnv),b28(lnv),c17(lnv),c28(lnv) ++c ++ equivalence (x17,aj5968),(x28,aj6749),(x35,aj4857),(x46,aji1), ++ 1 (y17,aji2),(y28,aji3),(y35,aji4),(y46,aji5),(z17,aji6), ++ 2 (z28,aji7),(z35,aji8),(z46,aji9),(aj1,aj12),(aj2,aj45), ++ 3 (aj3,aj78),(px1,b17),(px2,b28),(px3,c17),(px4,c28) ++ data o64th/0.0156250/ ++c ++c jacobian matrix ++c ++ do 10 i=lft,llt ++ x17(i)=x7(i)-x1(i) ++ x28(i)=x8(i)-x2(i) ++ x35(i)=x5(i)-x3(i) ++ x46(i)=x6(i)-x4(i) ++ y17(i)=y7(i)-y1(i) ++ y28(i)=y8(i)-y2(i) ++ y35(i)=y5(i)-y3(i) ++ y46(i)=y6(i)-y4(i) ++ z17(i)=z7(i)-z1(i) ++ z28(i)=z8(i)-z2(i) ++ z35(i)=z5(i)-z3(i) ++ 10 z46(i)=z6(i)-z4(i) ++ do 20 i=lft,llt ++ aj1(i)=x17(i)+x28(i)-x35(i)-x46(i) ++ aj2(i)=y17(i)+y28(i)-y35(i)-y46(i) ++ aj3(i)=z17(i)+z28(i)-z35(i)-z46(i) ++ a17(i)=x17(i)+x46(i) ++ a28(i)=x28(i)+x35(i) ++ b17(i)=y17(i)+y46(i) ++ b28(i)=y28(i)+y35(i) ++ c17(i)=z17(i)+z46(i) ++ 20 c28(i)=z28(i)+z35(i) ++ do 30 i=lft,llt ++ aj4(i)=a17(i)+a28(i) ++ aj5(i)=b17(i)+b28(i) ++ aj6(i)=c17(i)+c28(i) ++ aj7(i)=a17(i)-a28(i) ++ aj8(i)=b17(i)-b28(i) ++ 30 aj9(i)=c17(i)-c28(i) ++c ++c jacobian ++c ++ do 40 i=lft,llt ++ aj5968(i)=aj5(i)*aj9(i)-aj6(i)*aj8(i) ++ aj6749(i)=aj6(i)*aj7(i)-aj4(i)*aj9(i) ++ 40 aj4857(i)=aj4(i)*aj8(i)-aj5(i)*aj7(i) ++ if (ihf.ne.1) then ++ do 50 i=lft,llt ++ 50 det(i)=o64th*(aj1(i)*aj5968(i)+aj2(i)*aj6749(i)+aj3(i)*aj4857(i)) ++ else ++ do 55 i=lft,llt ++ det(i)=o64th*(aj1(i)*aj5968(i)+aj2(i)*aj6749(i)+aj3(i)*aj4857(i)) ++ 1 *failu(i) + (1. - failu(i)) ++ 55 continue ++ endif ++ do 60 i=lft,llt ++ 60 dett(i)=o64th/det(i) ++ ++ if (det(lft) .ne. 1d0) call abort () ++ if (det(llt) .ne. 1d0) call abort () ++ ++ return ++c ++ end ++ program main ++ parameter(lnv=32) ++ implicit double precision (a-h,o-z) dp ++ common/aux8/ ++ & x1(lnv),x2(lnv),x3(lnv),x4(lnv), ++ & x5(lnv),x6(lnv),x7(lnv),x8(lnv), ++ & y1(lnv),y2(lnv),y3(lnv),y4(lnv), ++ & y5(lnv),y6(lnv),y7(lnv),y8(lnv), ++ & z1(lnv),z2(lnv),z3(lnv),z4(lnv), ++ & z5(lnv),z6(lnv),z7(lnv),z8(lnv) ++ common/aux36/lft,llt ++ common/sand1/ihf,ibemf,ishlf,itshf ++ lft=1 ++ llt=1 ++ x1(1)=0 ++ x2(1)=1 ++ x3(1)=1 ++ x4(1)=0 ++ x5(1)=0 ++ x6(1)=1 ++ x7(1)=1 ++ x8(1)=0 ++ ++ y1(1)=0 ++ y2(1)=0 ++ y3(1)=1 ++ y4(1)=1 ++ y5(1)=0 ++ y6(1)=0 ++ y7(1)=1 ++ y8(1)=1 ++ ++ z1(1)=0 ++ z2(1)=0 ++ z3(1)=0 ++ z4(1)=0 ++ z5(1)=1 ++ z6(1)=1 ++ z7(1)=1 ++ z8(1)=1 ++ call prtal ++ stop ++ end ++ Index: gcc/testsuite/gfortran.dg/fmt_colon.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/fmt_colon.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/fmt_colon.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/fmt_colon.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/fmt_colon.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,14 @@ +! { dg-do run } +! PR31395 Colon edit descriptor is ignored. @@ -1735,11 +3887,11 @@ Index: gcc/testsuite/gfortran.dg/fmt_colon.f90 + 20 format('i =',I2:' this should print',I2) + if (astring.ne."i = 1 this should print 1") call abort +END PROGRAM test -\ brakuje znaku końca linii na końcu pliku +\ No newline at end of file Index: gcc/testsuite/gfortran.dg/char_result_13.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/char_result_13.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/char_result_13.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/char_result_13.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/char_result_13.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,13 @@ +! { dg-do compile } +! tests the fix for PR31540, in which the character lengths in @@ -1754,10 +3906,59 @@ Index: gcc/testsuite/gfortran.dg/char_result_13.f90 + character ((129+7)) pfname2 + return + end +Index: gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 +=================================================================== +--- gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 (.../branches/gcc-4_2-branch) (revision 126002) +@@ -0,0 +1,44 @@ ++! { dg-compile } ++! ++! Testcases from PR32002. ++! ++PROGRAM test_pr32002 ++ ++ CALL test_1() ! scalar/vector ++ CALL test_2() ! vector/vector ++ CALL test_3() ! matrix/vector ++ CALL test_4() ! matrix/matrix ++ ++CONTAINS ++ ELEMENTAL FUNCTION f(x) ++ INTEGER, INTENT(in) :: x ++ INTEGER :: f ++ f = x ++ END FUNCTION ++ ++ SUBROUTINE test_1() ++ INTEGER :: a = 0, b(2) = 0 ++ a = f(b) ! { dg-error "Incompatible ranks" } ++ b = f(a) ! ok, set all array elements to f(a) ++ END SUBROUTINE ++ ++ SUBROUTINE test_2() ++ INTEGER :: a(2) = 0, b(3) = 0 ++ a = f(b) ! { dg-error "different shape" } ++ a = f(b(1:2)) ! ok, slice, stride 1 ++ a = f(b(1:3:2)) ! ok, slice, stride 2 ++ END SUBROUTINE ++ ++ SUBROUTINE test_3() ++ INTEGER :: a(4) = 0, b(2,2) = 0 ++ a = f(b) ! { dg-error "Incompatible ranks" } ++ a = f(RESHAPE(b, (/ 4 /))) ! ok, same shape ++ END SUBROUTINE ++ ++ SUBROUTINE test_4() ++ INTEGER :: a(2,2) = 0, b(3,3) = 0 ++ a = f(b) ! { dg-error "different shape" } ++ a = f(b(1:3, 1:2)) ! { dg-error "different shape" } ++ a = f(b(1:3:2, 1:3:2)) ! ok, same shape ++ END SUBROUTINE ++END PROGRAM Index: gcc/testsuite/gfortran.dg/altreturn_5.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/altreturn_5.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/altreturn_5.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/altreturn_5.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/altreturn_5.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,30 @@ +! { dg-do run } +! Tests the fix for PR31483, in which dummy argument procedures @@ -1789,11 +3990,11 @@ Index: gcc/testsuite/gfortran.dg/altreturn_5.f90 + CALL PHLOAD (R, 2, res) + if (res .ne. "two") call abort () + END -\ brakuje znaku końca linii na końcu pliku +\ No newline at end of file Index: gcc/testsuite/gfortran.dg/substr_4.f =================================================================== ---- gcc/testsuite/gfortran.dg/substr_4.f (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/substr_4.f (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/substr_4.f (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/substr_4.f (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,69 @@ +! { dg-do run } + subroutine test_lower @@ -1866,8 +4067,8 @@ Index: gcc/testsuite/gfortran.dg/substr_4.f + end program test Index: gcc/testsuite/gfortran.dg/fmt_t_3.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/fmt_t_3.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/fmt_t_3.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/fmt_t_3.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/fmt_t_3.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,15 @@ +! { dg-do run } +! PR31051 bug with x and t format descriptors. @@ -1886,8 +4087,8 @@ Index: gcc/testsuite/gfortran.dg/fmt_t_3.f90 +end program t Index: gcc/testsuite/gfortran.dg/backspace_8.f =================================================================== ---- gcc/testsuite/gfortran.dg/backspace_8.f (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/backspace_8.f (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/backspace_8.f (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/backspace_8.f (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,18 @@ +C { dg-do run } +C PR libfortran/31618 - backspace after an error didn't work. @@ -1909,8 +4110,8 @@ Index: gcc/testsuite/gfortran.dg/backspace_8.f + end Index: gcc/testsuite/gfortran.dg/func_assign.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/func_assign.f90 (.../tags/gcc_4_2_0_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/func_assign.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/func_assign.f90 (.../tags/gcc_4_2_0_release) (revision 0) ++++ gcc/testsuite/gfortran.dg/func_assign.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -0,0 +1,33 @@ +! { dg-do compile } +! @@ -1947,19 +4148,89 @@ Index: gcc/testsuite/gfortran.dg/func_assign.f90 +end Index: gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 =================================================================== ---- gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,4 +1,4 @@ -! { dg-do run} +! { dg-do run } ! { dg-require-effective-target fortran_large_real } program main integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1) +Index: gcc/cp/class.c +=================================================================== +--- gcc/cp/class.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/cp/class.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -5350,22 +5350,34 @@ + } + else if (TREE_CODE (TREE_TYPE (instance)) == REFERENCE_TYPE) + { ++ /* We only need one hash table because it is always left empty. */ ++ static htab_t ht; ++ if (!ht) ++ ht = htab_create (37, ++ htab_hash_pointer, ++ htab_eq_pointer, ++ /*htab_del=*/NULL); ++ + /* Reference variables should be references to objects. */ + if (nonnull) + *nonnull = 1; + +- /* DECL_VAR_MARKED_P is used to prevent recursion; a ++ /* Enter the INSTANCE in a table to prevent recursion; a + variable's initializer may refer to the variable + itself. */ + if (TREE_CODE (instance) == VAR_DECL + && DECL_INITIAL (instance) +- && !DECL_VAR_MARKED_P (instance)) ++ && !htab_find (ht, instance)) + { + tree type; +- DECL_VAR_MARKED_P (instance) = 1; ++ void **slot; ++ ++ slot = htab_find_slot (ht, instance, INSERT); ++ *slot = instance; + type = fixed_type_or_null (DECL_INITIAL (instance), + nonnull, cdtorp); +- DECL_VAR_MARKED_P (instance) = 0; ++ htab_clear_slot (ht, slot); ++ + return type; + } + } Index: gcc/cp/decl.c =================================================================== ---- gcc/cp/decl.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/cp/decl.c (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -5368,7 +5368,18 @@ +--- gcc/cp/decl.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/cp/decl.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -2161,8 +2161,24 @@ + } + else if (toplevel_bindings_p () || DECL_NAMESPACE_SCOPE_P (newdecl)) + { +- /* Objects declared at top level: */ +- /* If at least one is a reference, it's ok. */ ++ /* The objects have been declared at namespace scope. If either ++ is a member of an anonymous union, then this is an invalid ++ redeclaration. For example: ++ ++ int i; ++ union { int i; }; ++ ++ is invalid. */ ++ if (DECL_ANON_UNION_VAR_P (newdecl) ++ || DECL_ANON_UNION_VAR_P (olddecl)) ++ return "redeclaration of %q#D"; ++ /* If at least one declaration is a reference, there is no ++ conflict. For example: ++ ++ int i = 3; ++ extern int i; ++ ++ is valid. */ + if (DECL_EXTERNAL (newdecl) || DECL_EXTERNAL (olddecl)) + return NULL; + /* Reject two definitions. */ +@@ -5368,7 +5384,18 @@ initializer. It is not legal to redeclare a static data member, so this issue does not arise in that case. */ if (var_definition_p && TREE_STATIC (decl)) @@ -1979,11 +4250,50 @@ Index: gcc/cp/decl.c } } +Index: gcc/cp/cp-tree.h +=================================================================== +--- gcc/cp/cp-tree.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/cp/cp-tree.h (.../branches/gcc-4_2-branch) (revision 126002) +@@ -107,7 +107,7 @@ + DECL_IMPLICIT_TYPEDEF_P (in a TYPE_DECL) + 3: DECL_IN_AGGR_P. + 4: DECL_C_BIT_FIELD (in a FIELD_DECL) +- DECL_VAR_MARKED_P (in a VAR_DECL) ++ DECL_ANON_UNION_VAR_P (in a VAR_DECL) + DECL_SELF_REFERENCE_P (in a TYPE_DECL) + DECL_INVALID_OVERRIDER_P (in a FUNCTION_DECL) + 5: DECL_INTERFACE_KNOWN. +@@ -2111,10 +2111,10 @@ + (DECL_LANG_SPECIFIC (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK (NODE)) \ + ->decl_flags.u.template_info) + +-/* For a VAR_DECL, indicates that the variable has been processed. +- This flag is set and unset throughout the code; it is always +- used for a temporary purpose. */ +-#define DECL_VAR_MARKED_P(NODE) \ ++/* For a VAR_DECL, indicates that the variable is actually a ++ non-static data member of anonymous union that has been promoted to ++ variable status. */ ++#define DECL_ANON_UNION_VAR_P(NODE) \ + (DECL_LANG_FLAG_4 (VAR_DECL_CHECK (NODE))) + + /* Template information for a RECORD_TYPE or UNION_TYPE. */ Index: gcc/cp/ChangeLog =================================================================== ---- gcc/cp/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/cp/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -1,3 +1,18 @@ +--- gcc/cp/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/cp/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,29 @@ ++2007-06-15 Mark Mitchell ++ ++ * cp-tree.h (DECL_VAR_MARKED_P): Remove. ++ (DECL_ANON_UNION_VAR_P): New macro. ++ * class.c (fixed_type_or_null): Tidy. Use a hash table, rather ++ than DECL_VAR_MARKED_P, to keep track of which variables we have ++ seen. ++ * decl.c (redeclaration_error_message): Complain about redeclaring ++ anonymous union members at namespace scope. ++ * decl2.c (build_anon_union_vars): Set DECL_ANON_UNION_VAR_P. ++ +2007-06-08 Dirk Mueller + + PR c++/31809 @@ -2002,10 +4312,22 @@ Index: gcc/cp/ChangeLog 2007-05-13 Release Manager * GCC 4.2.0 released. +Index: gcc/cp/decl2.c +=================================================================== +--- gcc/cp/decl2.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/cp/decl2.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1056,6 +1056,7 @@ + tree base; + + decl = build_decl (VAR_DECL, DECL_NAME (field), TREE_TYPE (field)); ++ DECL_ANON_UNION_VAR_P (decl) = 1; + + base = get_base_address (object); + TREE_PUBLIC (decl) = TREE_PUBLIC (base); Index: gcc/fortran/trans-expr.c =================================================================== ---- gcc/fortran/trans-expr.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fortran/trans-expr.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/fortran/trans-expr.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/trans-expr.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -255,6 +255,10 @@ gfc_conv_string_parameter (se); else @@ -2060,8 +4382,8 @@ Index: gcc/fortran/trans-expr.c fntype = TREE_TYPE (TREE_TYPE (se->expr)); Index: gcc/fortran/trans-array.c =================================================================== ---- gcc/fortran/trans-array.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fortran/trans-array.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/fortran/trans-array.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/trans-array.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -4422,6 +4422,8 @@ if (se->direct_byref) @@ -2106,8 +4428,8 @@ Index: gcc/fortran/trans-array.c tmp = gfc_conv_descriptor_offset (parm); Index: gcc/fortran/gfortran.texi =================================================================== ---- gcc/fortran/gfortran.texi (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fortran/gfortran.texi (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/fortran/gfortran.texi (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/gfortran.texi (.../branches/gcc-4_2-branch) (revision 126002) @@ -611,7 +611,7 @@ to change the representation of data for unformatted files. The syntax for the @env{GFORTRAN_CONVERT_UNIT} variable is: @@ -2130,11 +4452,50 @@ Index: gcc/fortran/gfortran.texi @c ===================================================================== @c PART II: LANGUAGE REFERENCE @c ===================================================================== +Index: gcc/fortran/trans-common.c +=================================================================== +--- gcc/fortran/trans-common.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/trans-common.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -359,14 +359,15 @@ + tree size = TYPE_SIZE_UNIT (union_type); + if (tree_int_cst_lt (DECL_SIZE_UNIT (decl), size)) + { +- /* Named common blocks of the same name shall be of the same size +- in all scoping units of a program in which they appear, but +- blank common blocks may be of different sizes. */ +- if (strcmp (com->name, BLANK_COMMON_NAME)) ++ /* Named common blocks of the same name shall be of the same size ++ in all scoping units of a program in which they appear, but ++ blank common blocks may be of different sizes. */ ++ if (strcmp (com->name, BLANK_COMMON_NAME)) + gfc_warning ("Named COMMON block '%s' at %L shall be of the " + "same size", com->name, &com->where); +- DECL_SIZE_UNIT (decl) = size; +- } ++ DECL_SIZE_UNIT (decl) = size; ++ TREE_TYPE (decl) = union_type; ++ } + } + + /* If this common block has been declared in a previous program unit, Index: gcc/fortran/ChangeLog =================================================================== ---- gcc/fortran/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fortran/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -1,3 +1,30 @@ +--- gcc/fortran/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,43 @@ ++2007-07-20 Daniel Franke ++ ++ Backport from trunk: ++ PR fortran/32002 ++ * resolve.c (resolve_actual_arglist): Resolve actual argument after ++ being identified as variable. ++ ++2007-06-20 Paul Thomas ++ ++ PR fortran/32302 ++ * trans-common.c (build_common_decl): If resizing of common ++ decl is needed, update the TREE_TYPE. ++ +2007-05-31 Paul Thomas + + PR fortran/31483 @@ -2167,9 +4528,23 @@ Index: gcc/fortran/ChangeLog * GCC 4.2.0 released. Index: gcc/fortran/resolve.c =================================================================== ---- gcc/fortran/resolve.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fortran/resolve.c (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -5742,6 +5742,11 @@ +--- gcc/fortran/resolve.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/resolve.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1006,6 +1006,13 @@ + e->ref->u.ar.as = sym->as; + } + ++ /* Expressions are assigned a default ts.type of BT_PROCEDURE in ++ primary.c (match_actual_arg). If above code determines that it ++ is a variable instead, it needs to be resolved as it was not ++ done at the beginning of this function. */ ++ if (gfc_resolve_expr (e) != SUCCESS) ++ return FAILURE; ++ + argument_list: + /* Check argument list functions %VAL, %LOC and %REF. There is + nothing to do for %REF. */ +@@ -5742,6 +5749,11 @@ if (sym->ts.type == BT_CHARACTER) { gfc_charlen *cl = sym->ts.cl; @@ -2183,8 +4558,8 @@ Index: gcc/fortran/resolve.c if (sym->attr.proc == PROC_ST_FUNCTION) Index: gcc/fortran/primary.c =================================================================== ---- gcc/fortran/primary.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/fortran/primary.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/fortran/primary.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/fortran/primary.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -2415,7 +2415,8 @@ case FL_PROCEDURE: @@ -2197,15 +4572,92 @@ Index: gcc/fortran/primary.c type may still have to be resolved. */ Index: gcc/BASE-VER =================================================================== ---- gcc/BASE-VER (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/BASE-VER (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/BASE-VER (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/BASE-VER (.../branches/gcc-4_2-branch) (revision 126002) @@ -1 +1 @@ -4.2.0 +4.2.1 +Index: gcc/gimplify.c +=================================================================== +--- gcc/gimplify.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/gimplify.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -4053,6 +4053,19 @@ + parse_input_constraint (&constraint, 0, 0, noutputs, 0, + oconstraints, &allows_mem, &allows_reg); + ++ /* If we can't make copies, we can only accept memory. */ ++ if (TREE_ADDRESSABLE (TREE_TYPE (TREE_VALUE (link)))) ++ { ++ if (allows_mem) ++ allows_reg = 0; ++ else ++ { ++ error ("impossible constraint in %"); ++ error ("non-memory input %d must stay in memory", i); ++ return GS_ERROR; ++ } ++ } ++ + /* If the operand is a memory input, it should be an lvalue. */ + if (!allows_reg && allows_mem) + { +@@ -4802,7 +4815,20 @@ + else if (flags & GOVD_SHARED) + { + if (is_global_var (decl)) +- return 0; ++ { ++ struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp->outer_context; ++ while (ctx != NULL) ++ { ++ splay_tree_node on ++ = splay_tree_lookup (ctx->variables, (splay_tree_key) decl); ++ if (on && (on->value & (GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE ++ | GOVD_PRIVATE | GOVD_REDUCTION)) != 0) ++ break; ++ ctx = ctx->outer_context; ++ } ++ if (ctx == NULL) ++ return 0; ++ } + code = OMP_CLAUSE_SHARED; + } + else if (flags & GOVD_PRIVATE) +Index: gcc/calls.c +=================================================================== +--- gcc/calls.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/calls.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1238,13 +1238,25 @@ + + /* If this is a libcall, then precompute all arguments so that we do not + get extraneous instructions emitted as part of the libcall sequence. */ +- if ((flags & ECF_LIBCALL_BLOCK) == 0) ++ ++ /* If we preallocated the stack space, and some arguments must be passed ++ on the stack, then we must precompute any parameter which contains a ++ function call which will store arguments on the stack. ++ Otherwise, evaluating the parameter may clobber previous parameters ++ which have already been stored into the stack. (we have code to avoid ++ such case by saving the outgoing stack arguments, but it results in ++ worse code) */ ++ if ((flags & ECF_LIBCALL_BLOCK) == 0 && !ACCUMULATE_OUTGOING_ARGS) + return; + + for (i = 0; i < num_actuals; i++) + { + enum machine_mode mode; + ++ if ((flags & ECF_LIBCALL_BLOCK) == 0 ++ && TREE_CODE (args[i].tree_value) != CALL_EXPR) ++ continue; ++ + /* If this is an addressable type, we cannot pre-evaluate it. */ + gcc_assert (!TREE_ADDRESSABLE (TREE_TYPE (args[i].tree_value))); + Index: gcc/except.c =================================================================== ---- gcc/except.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/except.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/except.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/except.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1005,7 +1005,11 @@ for (prev_try = VEC_index (eh_region, cfun->eh->region_array, outer_region); prev_try && prev_try->type != ERT_TRY; @@ -2221,8 +4673,8 @@ Index: gcc/except.c duplicate entire subtrees, all of the referenced regions will have Index: gcc/combine.c =================================================================== ---- gcc/combine.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/combine.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/combine.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/combine.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -5341,14 +5341,14 @@ } else if (GET_MODE (op0) == compare_mode && op1 == const0_rtx) @@ -2245,8 +4697,8 @@ Index: gcc/combine.c else Index: gcc/Makefile.in =================================================================== ---- gcc/Makefile.in (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/Makefile.in (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/Makefile.in (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/Makefile.in (.../branches/gcc-4_2-branch) (revision 126002) @@ -1839,7 +1839,7 @@ tree-ssa-structalias.o: tree-ssa-structalias.c tree-ssa-structalias.h \ $(SYSTEM_H) $(CONFIG_H) $(GGC_H) $(TREE_H) $(TREE_FLOW_H) \ @@ -2258,8 +4710,8 @@ Index: gcc/Makefile.in toplev.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \ Index: gcc/tree-ssa-structalias.c =================================================================== ---- gcc/tree-ssa-structalias.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/tree-ssa-structalias.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/tree-ssa-structalias.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/tree-ssa-structalias.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -51,10 +51,11 @@ #include "params.h" #include "tree-ssa-structalias.h" @@ -2797,18 +5249,48 @@ Index: gcc/tree-ssa-structalias.c constraint_t found; if (vec == NULL) -@@ -684,7 +714,7 @@ +@@ -678,30 +708,47 @@ + bitmap result = BITMAP_ALLOC (&iteration_obstack); + unsigned int i; + bitmap_iterator bi; ++ unsigned HOST_WIDE_INT min = -1, max = 0; + ++ /* Compute set of vars we can reach from set + offset. */ ++ + EXECUTE_IF_SET_IN_BITMAP (set, 0, i, bi) + { ++ if (get_varinfo (i)->is_artificial_var ++ || get_varinfo (i)->has_union ++ || get_varinfo (i)->is_unknown_size_var) ++ continue; ++ ++ if (get_varinfo (i)->offset + offset < min) ++ min = get_varinfo (i)->offset + offset; ++ if (get_varinfo (i)->offset + get_varinfo (i)->size + offset > max) ++ { ++ max = get_varinfo (i)->offset + get_varinfo (i)->size + offset; ++ if (max > get_varinfo (i)->fullsize) ++ max = get_varinfo (i)->fullsize; ++ } ++ } ++ ++ EXECUTE_IF_SET_IN_BITMAP (set, 0, i, bi) ++ { /* If this is a properly sized variable, only add offset if it's less than end. Otherwise, it is globbed to a single variable. */ - +- if ((get_varinfo (i)->offset + offset) < get_varinfo (i)->fullsize) + - if ((get_varinfo (i)->offset + offset) < get_varinfo (i)->fullsize) ++ if (get_varinfo (i)->offset + get_varinfo (i)->size - 1 >= min ++ && get_varinfo (i)->offset < max) { - unsigned HOST_WIDE_INT fieldoffset = get_varinfo (i)->offset + offset; -@@ -693,15 +723,15 @@ - continue; - bitmap_set_bit (result, v->id); +- unsigned HOST_WIDE_INT fieldoffset = get_varinfo (i)->offset + offset; +- varinfo_t v = first_vi_for_offset (get_varinfo (i), fieldoffset); +- if (!v) +- continue; +- bitmap_set_bit (result, v->id); ++ bitmap_set_bit (result, i); } - else if (get_varinfo (i)->is_artificial_var + else if (get_varinfo (i)->is_artificial_var @@ -2825,7 +5307,7 @@ Index: gcc/tree-ssa-structalias.c BITMAP_FREE (result); } -@@ -727,397 +757,149 @@ +@@ -727,397 +774,149 @@ } } @@ -3308,7 +5790,7 @@ Index: gcc/tree-ssa-structalias.c { return false; } -@@ -1125,41 +907,15 @@ +@@ -1125,41 +924,15 @@ { bool r = false; @@ -3357,7 +5839,7 @@ Index: gcc/tree-ssa-structalias.c return r; } } -@@ -1168,46 +924,51 @@ +@@ -1168,46 +941,51 @@ /* Return true if {DEST.SRC} is an existing graph edge in GRAPH. */ static bool @@ -3438,7 +5920,7 @@ Index: gcc/tree-ssa-structalias.c for (i = 0; VEC_iterate (constraint_t, constraints, i, c); i++) { struct constraint_expr lhs = c->lhs; -@@ -1217,31 +978,92 @@ +@@ -1217,31 +995,92 @@ if (lhs.type == DEREF) { @@ -3546,7 +6028,7 @@ Index: gcc/tree-ssa-structalias.c } } } -@@ -1260,20 +1082,20 @@ +@@ -1260,20 +1099,20 @@ struct scc_info { sbitmap visited; @@ -3572,7 +6054,7 @@ Index: gcc/tree-ssa-structalias.c The algorithm can be found in "On finding the strongly connected connected components in a directed graph" by Esko Nuutila and Eljas Soisalon-Soininen, in Information Processing Letters volume 49, -@@ -1284,188 +1106,144 @@ +@@ -1284,188 +1123,144 @@ { unsigned int i; bitmap_iterator bi; @@ -3864,7 +6346,7 @@ Index: gcc/tree-ssa-structalias.c /* Information needed to compute the topological ordering of a graph. */ struct topo_info -@@ -1509,37 +1287,24 @@ +@@ -1509,37 +1304,24 @@ topo_visit (constraint_graph_t graph, struct topo_info *ti, unsigned int n) { @@ -3906,7 +6388,7 @@ Index: gcc/tree-ssa-structalias.c type_safe (unsigned int n, unsigned HOST_WIDE_INT *offset) { varinfo_t ninfo = get_varinfo (n); -@@ -1582,10 +1347,10 @@ +@@ -1582,10 +1364,10 @@ v = first_vi_for_offset (get_varinfo (j), fieldoffset); if (!v) continue; @@ -3919,7 +6401,7 @@ Index: gcc/tree-ssa-structalias.c bitmap_set_bit (sol, rhs); if (!TEST_BIT (changed, t)) { -@@ -1596,7 +1361,7 @@ +@@ -1596,7 +1378,7 @@ } else if (0 && dump_file && !(get_varinfo (j)->is_special_var)) fprintf (dump_file, "Untypesafe usage in do_da_constraint.\n"); @@ -3928,7 +6410,7 @@ Index: gcc/tree-ssa-structalias.c } } -@@ -1607,7 +1372,7 @@ +@@ -1607,7 +1389,7 @@ do_sd_constraint (constraint_graph_t graph, constraint_t c, bitmap delta) { @@ -3937,7 +6419,7 @@ Index: gcc/tree-ssa-structalias.c bool flag = false; bitmap sol = get_varinfo (lhs)->solution; unsigned int j; -@@ -1620,7 +1385,7 @@ +@@ -1620,7 +1402,7 @@ bitmap_set_bit (sol, anything_id); goto done; } @@ -3946,7 +6428,7 @@ Index: gcc/tree-ssa-structalias.c an edge in the graph from j to x, and union Sol(j) into Sol(x). */ EXECUTE_IF_SET_IN_BITMAP (delta, 0, j, bi) { -@@ -1634,18 +1399,18 @@ +@@ -1634,18 +1416,18 @@ v = first_vi_for_offset (get_varinfo (j), fieldoffset); if (!v) continue; @@ -3968,7 +6450,7 @@ Index: gcc/tree-ssa-structalias.c } done: -@@ -1658,15 +1423,15 @@ +@@ -1658,15 +1440,15 @@ SET_BIT (changed, lhs); changed_count++; } @@ -3987,7 +6469,7 @@ Index: gcc/tree-ssa-structalias.c unsigned HOST_WIDE_INT roff = c->rhs.offset; bitmap sol = get_varinfo (rhs)->solution; unsigned int j; -@@ -1685,8 +1450,8 @@ +@@ -1685,8 +1467,8 @@ v = first_vi_for_offset (get_varinfo (j), fieldoffset); if (!v) continue; @@ -3998,7 +6480,7 @@ Index: gcc/tree-ssa-structalias.c if (!bitmap_bit_p (get_varinfo (t)->solution, anything_id)) { bitmap_set_bit (get_varinfo (t)->solution, anything_id); -@@ -1705,40 +1470,39 @@ +@@ -1705,40 +1487,39 @@ EXECUTE_IF_SET_IN_BITMAP (delta, 0, j, bi) { unsigned HOST_WIDE_INT loff = c->lhs.offset; @@ -4055,7 +6537,7 @@ Index: gcc/tree-ssa-structalias.c static void do_complex_constraint (constraint_graph_t graph, constraint_t c, bitmap delta) { -@@ -1752,33 +1516,62 @@ +@@ -1752,33 +1533,62 @@ else { /* *x = y */ @@ -4126,7 +6608,7 @@ Index: gcc/tree-ssa-structalias.c return si; } -@@ -1786,209 +1579,430 @@ +@@ -1786,209 +1596,430 @@ static void free_scc_info (struct scc_info *si) @@ -4705,7 +7187,7 @@ Index: gcc/tree-ssa-structalias.c /* Solve the constraint graph GRAPH using our worklist solver. This is based on the PW* family of solvers from the "Efficient Field Sensitive Pointer Analysis for C" paper. -@@ -2001,17 +2015,28 @@ +@@ -2001,17 +2032,28 @@ { unsigned int size = VEC_length (varinfo_t, varmap); unsigned int i; @@ -4742,7 +7224,7 @@ Index: gcc/tree-ssa-structalias.c while (changed_count > 0) { unsigned int i; -@@ -2019,41 +2044,45 @@ +@@ -2019,41 +2061,45 @@ stats.iterations++; bitmap_obstack_initialize (&iteration_obstack); @@ -4804,7 +7286,7 @@ Index: gcc/tree-ssa-structalias.c solution = get_varinfo (i)->solution; solution_empty = bitmap_empty_p (solution); -@@ -2065,52 +2094,38 @@ +@@ -2065,52 +2111,38 @@ is a constraint where the lhs side is receiving some set from elsewhere. */ if (!solution_empty || c->lhs.type != DEREF) @@ -4875,7 +7357,7 @@ Index: gcc/tree-ssa-structalias.c changed_count++; } } -@@ -2122,74 +2137,37 @@ +@@ -2122,74 +2154,37 @@ bitmap_obstack_release (&iteration_obstack); } @@ -4968,7 +7450,7 @@ Index: gcc/tree-ssa-structalias.c } /* Return a printable name for DECL */ -@@ -2210,7 +2188,7 @@ +@@ -2210,7 +2205,7 @@ if (TREE_CODE (decl) == SSA_NAME) { @@ -4977,7 +7459,7 @@ Index: gcc/tree-ssa-structalias.c alias_get_name (SSA_NAME_VAR (decl)), SSA_NAME_VERSION (decl)); } -@@ -2226,21 +2204,17 @@ +@@ -2226,21 +2221,17 @@ return res; } @@ -5007,7 +7489,7 @@ Index: gcc/tree-ssa-structalias.c } /* Get a constraint expression from an SSA_VAR_P node. */ -@@ -2254,14 +2228,14 @@ +@@ -2254,14 +2245,14 @@ /* For parameters, get at the points-to set for the actual parm decl. */ @@ -5026,7 +7508,7 @@ Index: gcc/tree-ssa-structalias.c /* If we determine the result is "anything", and we know this is readonly, say it points to readonly memory instead. */ if (cexpr.var == anything_id && TREE_READONLY (t)) -@@ -2269,7 +2243,7 @@ +@@ -2269,7 +2260,7 @@ cexpr.type = ADDRESSOF; cexpr.var = readonly_id; } @@ -5035,7 +7517,7 @@ Index: gcc/tree-ssa-structalias.c cexpr.offset = 0; return cexpr; } -@@ -2290,7 +2264,13 @@ +@@ -2290,7 +2281,13 @@ get_varinfo (lhs.var)->directly_dereferenced = true; if (rhs.type == DEREF) get_varinfo (rhs.var)->directly_dereferenced = true; @@ -5050,7 +7532,7 @@ Index: gcc/tree-ssa-structalias.c /* ANYTHING == ANYTHING is pointless. */ if (lhs.var == anything_id && rhs.var == anything_id) return; -@@ -2302,7 +2282,7 @@ +@@ -2302,7 +2299,7 @@ t->lhs = t->rhs; t->rhs = rhs; process_constraint (t); @@ -5059,7 +7541,7 @@ Index: gcc/tree-ssa-structalias.c /* This can happen in our IR with things like n->a = *p */ else if (rhs.type == DEREF && lhs.type == DEREF && rhs.var != anything_id) { -@@ -2312,33 +2292,19 @@ +@@ -2312,33 +2309,19 @@ tree pointedtotype = TREE_TYPE (pointertype); tree tmpvar = create_tmp_var_raw (pointedtotype, "doubledereftmp"); struct constraint_expr tmplhs = get_constraint_exp_from_ssa_var (tmpvar); @@ -5097,7 +7579,7 @@ Index: gcc/tree-ssa-structalias.c VEC_safe_push (constraint_t, heap, constraints, t); } } -@@ -2350,10 +2316,12 @@ +@@ -2350,10 +2333,12 @@ could_have_pointers (tree t) { tree type = TREE_TYPE (t); @@ -5112,7 +7594,7 @@ Index: gcc/tree-ssa-structalias.c return false; } -@@ -2367,9 +2335,9 @@ +@@ -2367,9 +2352,9 @@ if (TREE_CODE (DECL_FIELD_OFFSET (fdecl)) != INTEGER_CST || TREE_CODE (DECL_FIELD_BIT_OFFSET (fdecl)) != INTEGER_CST) return -1; @@ -5125,7 +7607,7 @@ Index: gcc/tree-ssa-structalias.c } -@@ -2388,7 +2356,7 @@ +@@ -2388,7 +2373,7 @@ return true; if (accesspos < fieldpos && (accesspos + accesssize > fieldpos)) return true; @@ -5134,7 +7616,7 @@ Index: gcc/tree-ssa-structalias.c return false; } -@@ -2411,20 +2379,20 @@ +@@ -2411,20 +2396,20 @@ while (!SSA_VAR_P (forzero) && !CONSTANT_CLASS_P (forzero)) forzero = TREE_OPERAND (forzero, 0); @@ -5159,7 +7641,7 @@ Index: gcc/tree-ssa-structalias.c here. */ if (TREE_CODE (t) == STRING_CST) return; -@@ -2438,21 +2406,21 @@ +@@ -2438,21 +2423,21 @@ /* This can also happen due to weird offsetof type macros. */ if (TREE_CODE (t) != ADDR_EXPR && result->type == ADDRESSOF) result->type = SCALAR; @@ -5184,7 +7666,7 @@ Index: gcc/tree-ssa-structalias.c varinfo_t curr; for (curr = get_varinfo (result->var); curr; curr = curr->next) { -@@ -2495,6 +2463,7 @@ +@@ -2495,6 +2480,7 @@ { struct constraint_expr *c; unsigned int i = 0; @@ -5192,7 +7674,7 @@ Index: gcc/tree-ssa-structalias.c for (i = 0; VEC_iterate (ce_s, *constraints, i, c); i++) { if (c->type == SCALAR) -@@ -2576,6 +2545,7 @@ +@@ -2576,6 +2562,7 @@ tree pttype = TREE_TYPE (TREE_TYPE (t)); get_constraint_for (exp, results); @@ -5200,7 +7682,7 @@ Index: gcc/tree-ssa-structalias.c /* Make sure we capture constraints to all elements of an array. */ if ((handled_component_p (exp) -@@ -2588,7 +2558,7 @@ +@@ -2588,7 +2575,7 @@ if (VEC_length (ce_s, *results) == 0) return; @@ -5209,7 +7691,7 @@ Index: gcc/tree-ssa-structalias.c gcc_assert (VEC_length (ce_s, *results) == 1); origrhs = VEC_last (ce_s, *results); tmp = *origrhs; -@@ -2619,12 +2589,12 @@ +@@ -2619,12 +2606,12 @@ VEC_safe_push (ce_s, heap, *results, &tmp); } } @@ -5224,7 +7706,7 @@ Index: gcc/tree-ssa-structalias.c c->type = ADDRESSOF; } return; -@@ -2638,9 +2608,9 @@ +@@ -2638,9 +2625,9 @@ { varinfo_t vi; tree heapvar = heapvar_lookup (t); @@ -5236,7 +7718,7 @@ Index: gcc/tree-ssa-structalias.c heapvar = create_tmp_var_raw (ptr_type_node, "HEAP"); DECL_EXTERNAL (heapvar) = 1; if (referenced_vars) -@@ -2650,7 +2620,7 @@ +@@ -2650,7 +2637,7 @@ temp.var = create_variable_info_for (heapvar, alias_get_name (heapvar)); @@ -5245,7 +7727,7 @@ Index: gcc/tree-ssa-structalias.c vi = get_varinfo (temp.var); vi->is_artificial_var = 1; vi->is_heap_var = 1; -@@ -2712,7 +2682,7 @@ +@@ -2712,7 +2699,7 @@ case NON_LVALUE_EXPR: { tree op = TREE_OPERAND (t, 0); @@ -5254,7 +7736,7 @@ Index: gcc/tree-ssa-structalias.c /* Cast from non-pointer to pointers are bad news for us. Anything else, we see through */ if (!(POINTER_TYPE_P (TREE_TYPE (t)) -@@ -2738,7 +2708,7 @@ +@@ -2738,7 +2725,7 @@ { switch (TREE_CODE (t)) { @@ -5263,7 +7745,7 @@ Index: gcc/tree-ssa-structalias.c { get_constraint_for (PHI_RESULT (t), results); return; -@@ -2782,8 +2752,8 @@ +@@ -2782,8 +2769,8 @@ /* Handle the structure copy case where we have a simple structure copy @@ -5274,7 +7756,7 @@ Index: gcc/tree-ssa-structalias.c For each field of the lhs variable (lhsfield) For each field of the rhs variable at lhsfield.offset (rhsfield) add the constraint lhsfield = rhsfield -@@ -2808,7 +2778,7 @@ +@@ -2808,7 +2795,7 @@ struct constraint_expr temprhs = rhs; unsigned HOST_WIDE_INT fieldoffset; @@ -5283,7 +7765,7 @@ Index: gcc/tree-ssa-structalias.c q = get_varinfo (temprhs.var); fieldoffset = p->offset - pstart; q = first_vi_for_offset (q, q->offset + fieldoffset); -@@ -2823,8 +2793,8 @@ +@@ -2823,8 +2810,8 @@ /* Handle the structure copy case where we have a structure copy between a aggregate on the LHS and a dereference of a pointer on the RHS @@ -5294,7 +7776,7 @@ Index: gcc/tree-ssa-structalias.c For each field of the lhs variable (lhsfield) rhs.offset = lhsfield->offset add the constraint lhsfield = rhs -@@ -2849,12 +2819,12 @@ +@@ -2849,12 +2836,12 @@ if (templhs.type == SCALAR) @@ -5310,7 +7792,7 @@ Index: gcc/tree-ssa-structalias.c temprhs.offset += fieldoffset; process_constraint (new_constraint (templhs, temprhs)); } -@@ -2862,7 +2832,7 @@ +@@ -2862,7 +2849,7 @@ /* Handle the structure copy case where we have a structure copy between a aggregate on the RHS and a dereference of a pointer on @@ -5319,7 +7801,7 @@ Index: gcc/tree-ssa-structalias.c For each field of the rhs variable (rhsfield) lhs.offset = rhsfield->offset -@@ -2888,12 +2858,12 @@ +@@ -2888,12 +2875,12 @@ if (temprhs.type == SCALAR) @@ -5335,7 +7817,7 @@ Index: gcc/tree-ssa-structalias.c templhs.offset += fieldoffset; process_constraint (new_constraint (templhs, temprhs)); } -@@ -2901,7 +2871,7 @@ +@@ -2901,7 +2888,7 @@ /* Sometimes, frontends like to give us bad type information. This function will collapse all the fields from VAR to the end of VAR, @@ -5344,7 +7826,7 @@ Index: gcc/tree-ssa-structalias.c We return the variable they were collapsed into. */ static unsigned int -@@ -2913,16 +2883,16 @@ +@@ -2913,16 +2900,16 @@ for (field = currvar->next; field; field = field->next) { if (dump_file) @@ -5364,7 +7846,7 @@ Index: gcc/tree-ssa-structalias.c return currvar->id; } -@@ -2944,7 +2914,7 @@ +@@ -2944,7 +2931,7 @@ gcc_assert (VEC_length (ce_s, rhsc) == 1); lhs = *(VEC_last (ce_s, lhsc)); rhs = *(VEC_last (ce_s, rhsc)); @@ -5373,7 +7855,7 @@ Index: gcc/tree-ssa-structalias.c VEC_free (ce_s, heap, lhsc); VEC_free (ce_s, heap, rhsc); -@@ -2955,7 +2925,7 @@ +@@ -2955,7 +2942,7 @@ lhs = rhs; rhs = tmp; } @@ -5382,7 +7864,7 @@ Index: gcc/tree-ssa-structalias.c /* This is fairly conservative for the RHS == ADDRESSOF case, in that it's possible it's something we could handle. However, most cases falling into this are dealing with transparent unions, which are slightly -@@ -3021,11 +2991,11 @@ +@@ -3021,11 +3008,11 @@ else lhssize = TREE_INT_CST_LOW (lhstypesize); @@ -5397,7 +7879,7 @@ Index: gcc/tree-ssa-structalias.c lhs.var = collapse_rest_of_var (lhs.var); rhs.var = collapse_rest_of_var (rhs.var); lhs.offset = 0; -@@ -3042,7 +3012,7 @@ +@@ -3042,7 +3029,7 @@ else { tree pointedtotype = lhstype; @@ -5406,7 +7888,7 @@ Index: gcc/tree-ssa-structalias.c gcc_assert (rhs.type == DEREF && lhs.type == DEREF); tmpvar = create_tmp_var_raw (pointedtotype, "structcopydereftmp"); -@@ -3052,6 +3022,7 @@ +@@ -3052,6 +3039,7 @@ } } @@ -5414,7 +7896,7 @@ Index: gcc/tree-ssa-structalias.c /* Update related alias information kept in AI. This is used when building name tags, alias sets and deciding grouping heuristics. STMT is the statement to process. This function also updates -@@ -3261,7 +3232,6 @@ +@@ -3261,7 +3249,6 @@ } } @@ -5422,7 +7904,28 @@ Index: gcc/tree-ssa-structalias.c /* Handle pointer arithmetic EXPR when creating aliasing constraints. Expressions of the type PTR + CST can be handled in two ways: -@@ -3307,6 +3277,7 @@ +@@ -3288,7 +3275,7 @@ + unsigned int i = 0; + unsigned int j = 0; + VEC (ce_s, heap) *temp = NULL; +- unsigned int rhsoffset = 0; ++ unsigned HOST_WIDE_INT rhsoffset = 0; + + if (TREE_CODE (expr) != PLUS_EXPR + && TREE_CODE (expr) != MINUS_EXPR) +@@ -3299,14 +3286,18 @@ + + get_constraint_for (op0, &temp); + if (POINTER_TYPE_P (TREE_TYPE (op0)) +- && TREE_CODE (op1) == INTEGER_CST ++ && host_integerp (op1, 1) + && TREE_CODE (expr) == PLUS_EXPR) + { ++ if ((TREE_INT_CST_LOW (op1) * BITS_PER_UNIT) / BITS_PER_UNIT ++ != TREE_INT_CST_LOW (op1)) ++ return false; + rhsoffset = TREE_INT_CST_LOW (op1) * BITS_PER_UNIT; + } else return false; @@ -5430,7 +7933,7 @@ Index: gcc/tree-ssa-structalias.c for (i = 0; VEC_iterate (ce_s, lhsc, i, c); i++) for (j = 0; VEC_iterate (ce_s, temp, j, c2); j++) { -@@ -3360,12 +3331,12 @@ +@@ -3360,12 +3351,12 @@ { int i; unsigned int j; @@ -5445,7 +7948,7 @@ Index: gcc/tree-ssa-structalias.c tree rhstype; tree strippedrhs = PHI_ARG_DEF (t, i); -@@ -3401,7 +3372,6 @@ +@@ -3401,7 +3392,6 @@ { tree lhsop; tree rhsop; @@ -5453,7 +7956,7 @@ Index: gcc/tree-ssa-structalias.c tree arglist; varinfo_t fi; int i = 1; -@@ -3423,17 +3393,16 @@ +@@ -3423,17 +3413,16 @@ we should still be able to handle. */ if (decl) { @@ -5473,7 +7976,7 @@ Index: gcc/tree-ssa-structalias.c arglist = TREE_OPERAND (rhsop, 1); for (;arglist; arglist = TREE_CHAIN (arglist)) -@@ -3463,13 +3432,14 @@ +@@ -3463,13 +3452,14 @@ } i++; } @@ -5489,7 +7992,7 @@ Index: gcc/tree-ssa-structalias.c get_constraint_for (lhsop, &lhsc); if (TREE_CODE (decl) != FUNCTION_DECL) { -@@ -3485,7 +3455,7 @@ +@@ -3485,7 +3475,7 @@ } for (j = 0; VEC_iterate (ce_s, lhsc, j, lhsp); j++) process_constraint (new_constraint (*lhsp, rhs)); @@ -5498,7 +8001,7 @@ Index: gcc/tree-ssa-structalias.c } /* Otherwise, just a regular assignment statement. */ else if (TREE_CODE (t) == MODIFY_EXPR) -@@ -3494,7 +3464,7 @@ +@@ -3494,7 +3484,7 @@ tree rhsop = TREE_OPERAND (t, 1); int i; @@ -5507,7 +8010,7 @@ Index: gcc/tree-ssa-structalias.c || TREE_CODE (TREE_TYPE (lhsop)) == COMPLEX_TYPE) && (AGGREGATE_TYPE_P (TREE_TYPE (rhsop)) || TREE_CODE (TREE_TYPE (lhsop)) == COMPLEX_TYPE)) -@@ -3513,7 +3483,7 @@ +@@ -3513,7 +3503,7 @@ { /* RHS that consist of unary operations, exceptional types, or bare decls/constants, get @@ -5516,7 +8019,7 @@ Index: gcc/tree-ssa-structalias.c case tcc_reference: case tcc_declaration: case tcc_constant: -@@ -3528,7 +3498,7 @@ +@@ -3528,7 +3518,7 @@ { struct constraint_expr *c2; unsigned int k; @@ -5525,7 +8028,7 @@ Index: gcc/tree-ssa-structalias.c for (k = 0; VEC_iterate (ce_s, rhsc, k, c2); k++) process_constraint (new_constraint (*c, *c2)); } -@@ -3570,7 +3540,7 @@ +@@ -3570,7 +3560,7 @@ } } } @@ -5534,7 +8037,7 @@ Index: gcc/tree-ssa-structalias.c } } } -@@ -3578,7 +3548,7 @@ +@@ -3578,7 +3568,7 @@ /* After promoting variables and computing aliasing we will need to re-scan most statements. FIXME: Try to minimize the number of statements re-scanned. It's not really necessary to @@ -5543,7 +8046,7 @@ Index: gcc/tree-ssa-structalias.c mark_stmt_modified (origt); VEC_free (ce_s, heap, rhsc); VEC_free (ce_s, heap, lhsc); -@@ -3591,7 +3561,7 @@ +@@ -3591,7 +3581,7 @@ first field that overlaps with OFFSET. Return NULL if we can't find one. */ @@ -5552,7 +8055,7 @@ Index: gcc/tree-ssa-structalias.c first_vi_for_offset (varinfo_t start, unsigned HOST_WIDE_INT offset) { varinfo_t curr = start; -@@ -3617,7 +3587,7 @@ +@@ -3617,7 +3607,7 @@ { varinfo_t prev = base; varinfo_t curr = base->next; @@ -5561,7 +8064,7 @@ Index: gcc/tree-ssa-structalias.c field->next = curr; prev->next = field; } -@@ -3630,7 +3600,7 @@ +@@ -3630,7 +3620,7 @@ { varinfo_t prev = base; varinfo_t curr = base->next; @@ -5570,7 +8073,7 @@ Index: gcc/tree-ssa-structalias.c if (curr == NULL) { prev->next = field; -@@ -3652,13 +3622,13 @@ +@@ -3652,13 +3642,13 @@ /* qsort comparison function for two fieldoff's PA and PB */ @@ -5586,7 +8089,7 @@ Index: gcc/tree-ssa-structalias.c if (foa->offset != fob->offset) return foa->offset - fob->offset; -@@ -3671,8 +3641,8 @@ +@@ -3671,8 +3661,8 @@ void sort_fieldstack (VEC(fieldoff_s,heap) *fieldstack) { @@ -5597,7 +8100,7 @@ Index: gcc/tree-ssa-structalias.c sizeof (fieldoff_s), fieldoff_compare); } -@@ -3686,12 +3656,12 @@ +@@ -3686,12 +3676,13 @@ TYPE. */ int @@ -5608,11 +8111,12 @@ Index: gcc/tree-ssa-structalias.c tree field; int count = 0; - ++ unsigned HOST_WIDE_INT minoffset = -1; + if (TREE_CODE (type) == COMPLEX_TYPE) { fieldoff_s *real_part, *img_part; -@@ -3700,13 +3670,13 @@ +@@ -3700,13 +3691,13 @@ real_part->size = TYPE_SIZE (TREE_TYPE (type)); real_part->offset = offset; real_part->decl = NULL_TREE; @@ -5628,7 +8132,7 @@ Index: gcc/tree-ssa-structalias.c return 2; } -@@ -3733,12 +3703,12 @@ +@@ -3733,12 +3724,12 @@ { bool push = false; int pushed = 0; @@ -5644,7 +8148,7 @@ Index: gcc/tree-ssa-structalias.c if (!AGGREGATE_TYPE_P (TREE_TYPE (type))) /* var_can_have_subvars */ push = true; else if (!(pushed = push_fields_onto_fieldstack -@@ -3772,12 +3742,12 @@ +@@ -3772,12 +3763,12 @@ { bool push = false; int pushed = 0; @@ -5660,7 +8164,7 @@ Index: gcc/tree-ssa-structalias.c if (!var_can_have_subvars (field)) push = true; else if (!(pushed = push_fields_onto_fieldstack -@@ -3789,7 +3759,7 @@ +@@ -3789,7 +3780,7 @@ see if we didn't push any subfields and the size is nonzero, push the field onto the stack */ push = true; @@ -5669,7 +8173,33 @@ Index: gcc/tree-ssa-structalias.c if (push) { fieldoff_s *pair; -@@ -3848,15 +3818,15 @@ +@@ -3803,8 +3794,25 @@ + } + else + count += pushed; ++ ++ if (bitpos_of_field (field) < minoffset) ++ minoffset = bitpos_of_field (field); + } + ++ /* We need to create a fake subvar for empty bases. But _only_ for non-empty ++ classes. */ ++ if (minoffset != 0 && count != 0) ++ { ++ fieldoff_s *pair; ++ ++ pair = VEC_safe_push (fieldoff_s, heap, *fieldstack, NULL); ++ pair->type = void_type_node; ++ pair->size = build_int_cst (size_type_node, minoffset); ++ pair->decl = NULL; ++ pair->offset = offset; ++ count++; ++ } ++ + return count; + } + +@@ -3848,15 +3856,15 @@ unsigned int i = 0; tree t; @@ -5688,7 +8218,7 @@ Index: gcc/tree-ssa-structalias.c if (!t) *is_varargs = true; return i; -@@ -3870,19 +3840,19 @@ +@@ -3870,19 +3878,19 @@ { unsigned int index = VEC_length (varinfo_t, varmap); varinfo_t vi; @@ -5711,7 +8241,7 @@ Index: gcc/tree-ssa-structalias.c VEC_safe_push (varinfo_t, heap, varmap, vi); stats.total_vars++; -@@ -3898,12 +3868,12 @@ +@@ -3898,12 +3906,12 @@ return index; } @@ -5726,7 +8256,7 @@ Index: gcc/tree-ssa-structalias.c varinfo_t argvi; const char *newname; char *tempname; -@@ -3912,13 +3882,13 @@ +@@ -3912,13 +3920,13 @@ if (arg) argdecl = arg; @@ -5742,7 +8272,7 @@ Index: gcc/tree-ssa-structalias.c argvi->decl = argdecl; VEC_safe_push (varinfo_t, heap, varmap, argvi); argvi->offset = i; -@@ -3929,7 +3899,7 @@ +@@ -3929,7 +3937,7 @@ stats.total_vars ++; if (arg) { @@ -5751,7 +8281,7 @@ Index: gcc/tree-ssa-structalias.c arg = TREE_CHAIN (arg); } } -@@ -3948,13 +3918,13 @@ +@@ -3948,13 +3956,13 @@ if (DECL_RESULT (decl)) resultdecl = DECL_RESULT (decl); @@ -5767,7 +8297,7 @@ Index: gcc/tree-ssa-structalias.c resultvi->decl = resultdecl; VEC_safe_push (varinfo_t, heap, varmap, resultvi); resultvi->offset = i; -@@ -3964,13 +3934,13 @@ +@@ -3964,13 +3972,13 @@ insert_into_field_list_sorted (vi, resultvi); stats.total_vars ++; if (DECL_RESULT (decl)) @@ -5784,7 +8314,7 @@ Index: gcc/tree-ssa-structalias.c FIELDSTACK is assumed to be sorted by offset. */ static bool -@@ -4057,12 +4027,12 @@ +@@ -4057,12 +4065,12 @@ bool hasunion; bool is_global = DECL_P (decl) ? is_global_var (decl) : false; VEC (fieldoff_s,heap) *fieldstack = NULL; @@ -5799,7 +8329,7 @@ Index: gcc/tree-ssa-structalias.c if (var_can_have_subvars (decl) && use_field_sensitive && !hasunion) { push_fields_onto_fieldstack (decltype, &fieldstack, 0, &hasunion); -@@ -4072,12 +4042,12 @@ +@@ -4072,12 +4080,12 @@ notokay = true; } } @@ -5814,7 +8344,7 @@ Index: gcc/tree-ssa-structalias.c vi->decl = decl; vi->offset = 0; vi->has_union = hasunion; -@@ -4095,8 +4065,8 @@ +@@ -4095,8 +4103,8 @@ vi->fullsize = TREE_INT_CST_LOW (declsize); vi->size = vi->fullsize; } @@ -5825,7 +8355,7 @@ Index: gcc/tree-ssa-structalias.c VEC_safe_push (varinfo_t, heap, varmap, vi); if (is_global && (!flag_whole_program || !in_ipa_mode)) { -@@ -4122,9 +4092,9 @@ +@@ -4122,9 +4130,9 @@ } stats.total_vars++; @@ -5838,7 +8368,7 @@ Index: gcc/tree-ssa-structalias.c && var_can_have_subvars (decl) && VEC_length (fieldoff_s, fieldstack) <= MAX_FIELDS_FOR_FIELD_SENSITIVE) { -@@ -4148,7 +4118,7 @@ +@@ -4148,7 +4156,7 @@ without creating varinfos for the fields anyway, so sorting them is a waste to boot. */ if (!notokay) @@ -5847,7 +8377,7 @@ Index: gcc/tree-ssa-structalias.c sort_fieldstack (fieldstack); /* Due to some C++ FE issues, like PR 22488, we might end up what appear to be overlapping fields even though they, -@@ -4156,8 +4126,8 @@ +@@ -4156,8 +4164,8 @@ we will simply disable field-sensitivity for these cases. */ notokay = check_for_overlaps (fieldstack); } @@ -5858,7 +8388,7 @@ Index: gcc/tree-ssa-structalias.c if (VEC_length (fieldoff_s, fieldstack) != 0) fo = VEC_index (fieldoff_s, fieldstack, 0); -@@ -4169,11 +4139,11 @@ +@@ -4169,11 +4177,11 @@ VEC_free (fieldoff_s, heap, fieldstack); return index; } @@ -5873,7 +8403,7 @@ Index: gcc/tree-ssa-structalias.c i--) { varinfo_t newvi; -@@ -4184,15 +4154,15 @@ +@@ -4184,15 +4192,15 @@ if (dump_file) { if (fo->decl) @@ -5892,7 +8422,7 @@ Index: gcc/tree-ssa-structalias.c newvi->offset = fo->offset; newvi->size = TREE_INT_CST_LOW (fo->size); newvi->fullsize = vi->fullsize; -@@ -4228,14 +4198,22 @@ +@@ -4228,14 +4236,22 @@ { varinfo_t vi = get_varinfo (var); unsigned int i; @@ -5921,7 +8451,7 @@ Index: gcc/tree-ssa-structalias.c } /* Print the points-to solution for VAR to stdout. */ -@@ -4266,7 +4244,7 @@ +@@ -4266,7 +4282,7 @@ if (!could_have_pointers (t)) continue; @@ -5930,7 +8460,7 @@ Index: gcc/tree-ssa-structalias.c /* With flag_argument_noalias greater than two means that the incoming argument cannot alias anything except for itself so create a HEAP -@@ -4276,11 +4254,10 @@ +@@ -4276,11 +4292,10 @@ { varinfo_t vi; tree heapvar = heapvar_lookup (t); @@ -5943,7 +8473,7 @@ Index: gcc/tree-ssa-structalias.c if (heapvar == NULL_TREE) { -@@ -4291,11 +4268,11 @@ +@@ -4291,11 +4306,11 @@ add_referenced_var (heapvar); heapvar_insert (t, heapvar); } @@ -5958,7 +8488,17 @@ Index: gcc/tree-ssa-structalias.c rhs.type = ADDRESSOF; rhs.offset = 0; for (p = get_varinfo (lhs.var); p; p = p->next) -@@ -4409,8 +4386,8 @@ +@@ -4366,7 +4381,8 @@ + bitmap_set_bit (into, DECL_UID (sv->var)); + } + else if (TREE_CODE (vi->decl) == VAR_DECL +- || TREE_CODE (vi->decl) == PARM_DECL) ++ || TREE_CODE (vi->decl) == PARM_DECL ++ || TREE_CODE (vi->decl) == RESULT_DECL) + { + if (var_can_have_subvars (vi->decl) + && get_subvars_for_var (vi->decl)) +@@ -4409,8 +4425,8 @@ bool find_what_p_points_to (tree p) { @@ -5968,7 +8508,7 @@ Index: gcc/tree-ssa-structalias.c if (!have_alias_info) return false; -@@ -4422,10 +4399,10 @@ +@@ -4422,10 +4438,10 @@ && default_def (SSA_NAME_VAR (p)) == p) lookup_p = SSA_NAME_VAR (p); @@ -5982,7 +8522,7 @@ Index: gcc/tree-ssa-structalias.c if (vi->is_artificial_var) return false; -@@ -4447,7 +4424,7 @@ +@@ -4447,7 +4463,7 @@ /* This variable may have been collapsed, let's get the real variable. */ @@ -5991,7 +8531,7 @@ Index: gcc/tree-ssa-structalias.c /* Translate artificial variables into SSA_NAME_PTR_INFO attributes. */ -@@ -4506,13 +4483,16 @@ +@@ -4506,13 +4522,16 @@ { fprintf (outfile, "Stats:\n"); fprintf (outfile, "Total vars: %d\n", stats.total_vars); @@ -6009,7 +8549,7 @@ Index: gcc/tree-ssa-structalias.c } for (i = 0; i < VEC_length (varinfo_t, varmap); i++) -@@ -4540,8 +4520,8 @@ +@@ -4540,8 +4559,8 @@ /* Create the NULL variable, used to represent that a variable points to NULL. */ nothing_tree = create_tmp_var_raw (void_type_node, "NULL"); @@ -6020,7 +8560,7 @@ Index: gcc/tree-ssa-structalias.c var_nothing->is_artificial_var = 1; var_nothing->offset = 0; var_nothing->size = ~0; -@@ -4553,8 +4533,8 @@ +@@ -4553,8 +4572,8 @@ /* Create the ANYTHING variable, used to represent that a variable points to some unknown piece of memory. */ anything_tree = create_tmp_var_raw (void_type_node, "ANYTHING"); @@ -6031,7 +8571,7 @@ Index: gcc/tree-ssa-structalias.c var_anything->is_artificial_var = 1; var_anything->size = ~0; var_anything->offset = 0; -@@ -4573,7 +4553,6 @@ +@@ -4573,7 +4592,6 @@ rhs.type = ADDRESSOF; rhs.var = anything_id; rhs.offset = 0; @@ -6039,7 +8579,7 @@ Index: gcc/tree-ssa-structalias.c /* This specifically does not use process_constraint because process_constraint ignores all anything = anything constraints, since all -@@ -4583,14 +4562,14 @@ +@@ -4583,14 +4601,14 @@ /* Create the READONLY variable, used to represent that a variable points to readonly memory. */ readonly_tree = create_tmp_var_raw (void_type_node, "READONLY"); @@ -6056,7 +8596,7 @@ Index: gcc/tree-ssa-structalias.c readonly_id = 2; VEC_safe_push (varinfo_t, heap, varmap, var_readonly); -@@ -4610,8 +4589,8 @@ +@@ -4610,8 +4628,8 @@ /* Create the INTEGER variable, used to represent that a variable points to an INTEGER. */ integer_tree = create_tmp_var_raw (void_type_node, "INTEGER"); @@ -6067,7 +8607,7 @@ Index: gcc/tree-ssa-structalias.c var_integer->is_artificial_var = 1; var_integer->size = ~0; var_integer->fullsize = ~0; -@@ -4634,8 +4613,8 @@ +@@ -4634,8 +4652,8 @@ /* Create the ESCAPED_VARS variable used to represent variables that escape this function. */ escaped_vars_tree = create_tmp_var_raw (void_type_node, "ESCAPED_VARS"); @@ -6078,7 +8618,7 @@ Index: gcc/tree-ssa-structalias.c var_escaped_vars->is_artificial_var = 1; var_escaped_vars->size = ~0; var_escaped_vars->fullsize = ~0; -@@ -4660,21 +4639,19 @@ +@@ -4660,21 +4678,19 @@ static void init_alias_vars (void) { @@ -6105,7 +8645,7 @@ Index: gcc/tree-ssa-structalias.c init_base_vars (); } -@@ -4777,6 +4754,43 @@ +@@ -4777,6 +4793,43 @@ VEC_free (ce_s, heap, rhsc); } @@ -6149,7 +8689,7 @@ Index: gcc/tree-ssa-structalias.c /* Create points-to sets for the current function. See the comments at the start of the file for an algorithmic overview. */ -@@ -4784,11 +4798,13 @@ +@@ -4784,11 +4837,13 @@ compute_points_to_sets (struct alias_info *ai) { basic_block bb; @@ -6164,7 +8704,7 @@ Index: gcc/tree-ssa-structalias.c intra_create_variable_infos (); /* Now walk all statements and derive aliases. */ -@@ -4824,36 +4840,42 @@ +@@ -4824,36 +4879,42 @@ } } @@ -6217,7 +8757,7 @@ Index: gcc/tree-ssa-structalias.c /* Delete created points-to sets. */ void -@@ -4861,33 +4883,27 @@ +@@ -4861,33 +4922,27 @@ { varinfo_t v; int i; @@ -6264,7 +8804,7 @@ Index: gcc/tree-ssa-structalias.c have_alias_info = false; } -@@ -4905,6 +4921,7 @@ +@@ -4905,6 +4960,7 @@ static unsigned int ipa_pta_execute (void) { @@ -6272,7 +8812,7 @@ Index: gcc/tree-ssa-structalias.c struct cgraph_node *node; in_ipa_mode = 1; init_alias_heapvars (); -@@ -4994,6 +5011,7 @@ +@@ -4994,6 +5050,7 @@ in_ipa_mode = 0; delete_alias_heapvars (); delete_points_to_sets (); @@ -6280,7 +8820,7 @@ Index: gcc/tree-ssa-structalias.c return 0; } -@@ -5018,8 +5036,9 @@ +@@ -5018,8 +5075,9 @@ void init_alias_heapvars (void) { @@ -6292,7 +8832,7 @@ Index: gcc/tree-ssa-structalias.c nonlocal_all = NULL_TREE; } -@@ -5028,7 +5047,7 @@ +@@ -5028,7 +5086,7 @@ { nonlocal_all = NULL_TREE; htab_delete (heapvar_for_stmt); @@ -6301,10 +8841,121 @@ Index: gcc/tree-ssa-structalias.c - #include "gt-tree-ssa-structalias.h" +Index: gcc/config/sparc/sparc.c +=================================================================== +--- gcc/config/sparc/sparc.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/sparc/sparc.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -703,7 +703,7 @@ + error ("-mcmodel= is not supported on 32 bit systems"); + } + +- fpu = TARGET_FPU; /* save current -mfpu status */ ++ fpu = target_flags & MASK_FPU; /* save current -mfpu status */ + + /* Set the default CPU. */ + for (def = &cpu_default[0]; def->name; ++def) +@@ -7968,8 +7968,10 @@ + Expand builtin functions for sparc intrinsics. */ + + static rtx +-sparc_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, +- enum machine_mode tmode, int ignore ATTRIBUTE_UNUSED) ++sparc_expand_builtin (tree exp, rtx target, ++ rtx subtarget ATTRIBUTE_UNUSED, ++ enum machine_mode tmode ATTRIBUTE_UNUSED, ++ int ignore ATTRIBUTE_UNUSED) + { + tree arglist; + tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0); +@@ -7978,14 +7980,13 @@ + enum machine_mode mode[4]; + int arg_count = 0; + +- mode[arg_count] = tmode; +- +- if (target == 0 +- || GET_MODE (target) != tmode +- || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) +- op[arg_count] = gen_reg_rtx (tmode); ++ mode[0] = insn_data[icode].operand[0].mode; ++ if (!target ++ || GET_MODE (target) != mode[0] ++ || ! (*insn_data[icode].operand[0].predicate) (target, mode[0])) ++ op[0] = gen_reg_rtx (mode[0]); + else +- op[arg_count] = target; ++ op[0] = target; + + for (arglist = TREE_OPERAND (exp, 1); arglist; + arglist = TREE_CHAIN (arglist)) +@@ -8101,11 +8102,11 @@ + { + tree arg0, arg1, arg2; + tree rtype = TREE_TYPE (TREE_TYPE (fndecl)); +- + +- if (ignore && DECL_FUNCTION_CODE (fndecl) != CODE_FOR_alignaddrsi_vis ++ if (ignore ++ && DECL_FUNCTION_CODE (fndecl) != CODE_FOR_alignaddrsi_vis + && DECL_FUNCTION_CODE (fndecl) != CODE_FOR_alignaddrdi_vis) +- return build_int_cst (rtype, 0); ++ return fold_convert (rtype, integer_zero_node); + + switch (DECL_FUNCTION_CODE (fndecl)) + { +@@ -8219,6 +8220,7 @@ + default: + break; + } ++ + return NULL_TREE; + } + +Index: gcc/config/i386/i386.h +=================================================================== +--- gcc/config/i386/i386.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/i386/i386.h (.../branches/gcc-4_2-branch) (revision 126002) +@@ -2164,7 +2164,8 @@ + + enum ix86_stack_slot + { +- SLOT_TEMP = 0, ++ SLOT_VIRTUAL = 0, ++ SLOT_TEMP, + SLOT_CW_STORED, + SLOT_CW_TRUNC, + SLOT_CW_FLOOR, Index: gcc/config/i386/i386.md =================================================================== ---- gcc/config/i386/i386.md (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/i386/i386.md (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/i386/i386.md (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/i386/i386.md (.../branches/gcc-4_2-branch) (revision 126002) +@@ -3716,7 +3716,7 @@ + ; + else + { +- rtx temp = assign_386_stack_local (SFmode, SLOT_TEMP); ++ rtx temp = assign_386_stack_local (SFmode, SLOT_VIRTUAL); + emit_insn (gen_truncdfsf2_with_temp (operands[0], operands[1], temp)); + DONE; + } +@@ -3868,7 +3868,7 @@ + DONE; + } + else +- operands[2] = assign_386_stack_local (SFmode, SLOT_TEMP); ++ operands[2] = assign_386_stack_local (SFmode, SLOT_VIRTUAL); + }) + + (define_insn "*truncxfsf2_mixed" +@@ -3966,7 +3966,7 @@ + DONE; + } + else +- operands[2] = assign_386_stack_local (DFmode, SLOT_TEMP); ++ operands[2] = assign_386_stack_local (DFmode, SLOT_VIRTUAL); + }) + + (define_insn "*truncxfdf2_mixed" @@ -4749,7 +4749,7 @@ (define_insn "*addti3_1" [(set (match_operand:TI 0 "nonimmediate_operand" "=r,o") @@ -6361,8 +9012,8 @@ Index: gcc/config/i386/i386.md [(parallel Index: gcc/config/i386/sse.md =================================================================== ---- gcc/config/i386/sse.md (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/i386/sse.md (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/i386/sse.md (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/i386/sse.md (.../branches/gcc-4_2-branch) (revision 126002) @@ -2055,11 +2055,11 @@ (match_dup 1)) (parallel [(const_int 0) @@ -6391,9 +9042,27 @@ Index: gcc/config/i386/sse.md ;; Not sure this is ever used, but it doesn't hurt to have it. -aoliva Index: gcc/config/i386/i386.c =================================================================== ---- gcc/config/i386/i386.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/i386/i386.c (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -15539,13 +15539,13 @@ +--- gcc/config/i386/i386.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/i386/i386.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -13478,6 +13478,9 @@ + + gcc_assert (n < MAX_386_STACK_LOCALS); + ++ /* Virtual slot is valid only before vregs are instantiated. */ ++ gcc_assert ((n == SLOT_VIRTUAL) == !virtuals_instantiated); ++ + for (s = ix86_stack_locals; s; s = s->next) + if (s->mode == mode && s->n == n) + return s->rtl; +@@ -14567,6 +14570,7 @@ + IX86_BUILTIN_VEC_EXT_V4SF, + IX86_BUILTIN_VEC_EXT_V4SI, + IX86_BUILTIN_VEC_EXT_V8HI, ++ IX86_BUILTIN_VEC_EXT_V16QI, + IX86_BUILTIN_VEC_EXT_V2SI, + IX86_BUILTIN_VEC_EXT_V4HI, + IX86_BUILTIN_VEC_SET_V8HI, +@@ -15539,13 +15543,13 @@ /* Access to the vec_extract patterns. */ ftype = build_function_type_list (double_type_node, V2DF_type_node, integer_type_node, NULL_TREE); @@ -6409,7 +9078,7 @@ Index: gcc/config/i386/i386.c ftype, IX86_BUILTIN_VEC_EXT_V2DI); ftype = build_function_type_list (float_type_node, V4SF_type_node, -@@ -15555,12 +15555,12 @@ +@@ -15555,12 +15559,12 @@ ftype = build_function_type_list (intSI_type_node, V4SI_type_node, integer_type_node, NULL_TREE); @@ -6424,7 +9093,15 @@ Index: gcc/config/i386/i386.c ftype, IX86_BUILTIN_VEC_EXT_V8HI); ftype = build_function_type_list (intHI_type_node, V4HI_type_node, -@@ -15577,7 +15577,7 @@ +@@ -15573,11 +15577,15 @@ + def_builtin (MASK_MMX, "__builtin_ia32_vec_ext_v2si", + ftype, IX86_BUILTIN_VEC_EXT_V2SI); + ++ ftype = build_function_type_list (intQI_type_node, V16QI_type_node, ++ integer_type_node, NULL_TREE); ++ def_builtin (MASK_SSE2, "__builtin_ia32_vec_ext_v16qi", ftype, IX86_BUILTIN_VEC_EXT_V16QI); ++ + /* Access to the vec_set patterns. */ ftype = build_function_type_list (V8HI_type_node, V8HI_type_node, intHI_type_node, integer_type_node, NULL_TREE); @@ -6433,10 +9110,34 @@ Index: gcc/config/i386/i386.c ftype, IX86_BUILTIN_VEC_SET_V8HI); ftype = build_function_type_list (V4HI_type_node, V4HI_type_node, +@@ -16121,13 +16129,13 @@ + + case IX86_BUILTIN_LDMXCSR: + op0 = expand_normal (TREE_VALUE (arglist)); +- target = assign_386_stack_local (SImode, SLOT_TEMP); ++ target = assign_386_stack_local (SImode, SLOT_VIRTUAL); + emit_move_insn (target, op0); + emit_insn (gen_sse_ldmxcsr (target)); + return 0; + + case IX86_BUILTIN_STMXCSR: +- target = assign_386_stack_local (SImode, SLOT_TEMP); ++ target = assign_386_stack_local (SImode, SLOT_VIRTUAL); + emit_insn (gen_sse_stmxcsr (target)); + return copy_to_mode_reg (SImode, target); + +@@ -16489,6 +16497,7 @@ + case IX86_BUILTIN_VEC_EXT_V4SF: + case IX86_BUILTIN_VEC_EXT_V4SI: + case IX86_BUILTIN_VEC_EXT_V8HI: ++ case IX86_BUILTIN_VEC_EXT_V16QI: + case IX86_BUILTIN_VEC_EXT_V2SI: + case IX86_BUILTIN_VEC_EXT_V4HI: + return ix86_expand_vec_ext_builtin (arglist, target); Index: gcc/config/sh/sh.c =================================================================== ---- gcc/config/sh/sh.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/sh/sh.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/sh/sh.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/sh/sh.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -5295,7 +5295,13 @@ temp = scavenge_reg (&temps); } @@ -6473,8 +9174,8 @@ Index: gcc/config/sh/sh.c cost++; Index: gcc/config/sh/sh.md =================================================================== ---- gcc/config/sh/sh.md (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/sh/sh.md (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/sh/sh.md (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/sh/sh.md (.../branches/gcc-4_2-branch) (revision 126002) @@ -413,10 +413,12 @@ (eq_attr "type" "jump") (cond [(eq_attr "med_branch_p" "yes") @@ -7258,8 +9959,8 @@ Index: gcc/config/sh/sh.md "fcmpun.d %1,%2,%0" Index: gcc/config/score/predicates.md =================================================================== ---- gcc/config/score/predicates.md (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/score/predicates.md (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/score/predicates.md (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/score/predicates.md (.../branches/gcc-4_2-branch) (revision 126002) @@ -75,14 +75,3 @@ return IMM_IN_RANGE (INTVAL (op), 15, 1); }) @@ -7277,8 +9978,8 @@ Index: gcc/config/score/predicates.md -}) Index: gcc/config/score/misc.md =================================================================== ---- gcc/config/score/misc.md (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/score/misc.md (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/score/misc.md (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/score/misc.md (.../branches/gcc-4_2-branch) (revision 126002) @@ -380,38 +380,3 @@ [(set_attr "type" "arith") (set_attr "mode" "SI")]) @@ -7320,8 +10021,8 @@ Index: gcc/config/score/misc.md - (set_attr "mode" "SI")]) Index: gcc/config/score/score.c =================================================================== ---- gcc/config/score/score.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/score/score.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/score/score.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/score/score.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1168,7 +1168,7 @@ { gcc_assert (code == CONST_INT); @@ -7342,8 +10043,8 @@ Index: gcc/config/score/score.c output_addr_const (file, op); Index: gcc/config/score/score.h =================================================================== ---- gcc/config/score/score.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/score/score.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/score/score.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/score/score.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -785,6 +785,7 @@ output anything and let undefined symbol become external. However the assembler uses length information on externals to allocate in @@ -7354,8 +10055,8 @@ Index: gcc/config/score/score.h Index: gcc/config/pa/pa.md =================================================================== ---- gcc/config/pa/pa.md (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/pa/pa.md (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/pa/pa.md (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/pa/pa.md (.../branches/gcc-4_2-branch) (revision 126002) @@ -39,6 +39,9 @@ (UNSPEC_TLSLDBASE 7) (UNSPEC_TLSIE 8) @@ -7469,8 +10170,8 @@ Index: gcc/config/pa/pa.md (plus:SI (unspec:SI [(match_operand 1 "tle_symbolic_operand" "")] Index: gcc/config/pa/pa.c =================================================================== ---- gcc/config/pa/pa.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/pa/pa.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/pa/pa.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/pa/pa.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -726,7 +726,10 @@ { case TLS_MODEL_GLOBAL_DYNAMIC: @@ -7509,8 +10210,8 @@ Index: gcc/config/pa/pa.c Index: gcc/config/soft-fp/quad.h =================================================================== ---- gcc/config/soft-fp/quad.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/quad.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/quad.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/quad.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Quad Precision. @@ -7545,8 +10246,8 @@ Index: gcc/config/soft-fp/quad.h }; Index: gcc/config/soft-fp/floatunsidf.c =================================================================== ---- gcc/config/soft-fp/floatunsidf.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/floatunsidf.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/floatunsidf.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/floatunsidf.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Convert a 32bit unsigned integer to IEEE double @@ -7567,8 +10268,8 @@ Index: gcc/config/soft-fp/floatunsidf.c FP_DECL_D(A); Index: gcc/config/soft-fp/floatundidf.c =================================================================== ---- gcc/config/soft-fp/floatundidf.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/floatundidf.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/floatundidf.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/floatundidf.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Convert a 64bit unsigned integer to IEEE double @@ -7589,8 +10290,8 @@ Index: gcc/config/soft-fp/floatundidf.c FP_DECL_D(A); Index: gcc/config/soft-fp/extended.h =================================================================== ---- gcc/config/soft-fp/extended.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/extended.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/extended.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/extended.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Extended Precision. @@ -7737,8 +10438,8 @@ Index: gcc/config/soft-fp/extended.h #define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,2,X) Index: gcc/config/soft-fp/floatunsisf.c =================================================================== ---- gcc/config/soft-fp/floatunsisf.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/floatunsisf.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/floatunsisf.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/floatunsisf.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Convert a 32bit unsigned integer to IEEE single @@ -7759,8 +10460,8 @@ Index: gcc/config/soft-fp/floatunsisf.c FP_DECL_S(A); Index: gcc/config/soft-fp/op-common.h =================================================================== ---- gcc/config/soft-fp/op-common.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/op-common.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/op-common.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/op-common.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1153,7 +1153,8 @@ if (_FP_FRACBITS_##dfs < _FP_FRACBITS_##sfs \ || (_FP_EXPMAX_##dfs - _FP_EXPBIAS_##dfs \ @@ -7840,8 +10541,8 @@ Index: gcc/config/soft-fp/op-common.h else \ Index: gcc/config/soft-fp/floatundisf.c =================================================================== ---- gcc/config/soft-fp/floatundisf.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/floatundisf.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/floatundisf.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/floatundisf.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Convert a 64bit unsigned integer to IEEE single @@ -7862,8 +10563,8 @@ Index: gcc/config/soft-fp/floatundisf.c FP_DECL_S(A); Index: gcc/config/soft-fp/op-2.h =================================================================== ---- gcc/config/soft-fp/op-2.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/op-2.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/op-2.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/op-2.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Basic two-word fraction declaration and manipulation. @@ -7880,8 +10581,8 @@ Index: gcc/config/soft-fp/op-2.h +#define _FP_FRAC_COPY_2_2(D,S) _FP_FRAC_COPY_2(D,S) Index: gcc/config/soft-fp/op-4.h =================================================================== ---- gcc/config/soft-fp/op-4.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/op-4.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/op-4.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/op-4.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Basic four-word fraction declaration and manipulation. @@ -7898,8 +10599,8 @@ Index: gcc/config/soft-fp/op-4.h +#define _FP_FRAC_COPY_4_4(D,S) _FP_FRAC_COPY_4(D,S) Index: gcc/config/soft-fp/double.h =================================================================== ---- gcc/config/soft-fp/double.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ gcc/config/soft-fp/double.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- gcc/config/soft-fp/double.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/config/soft-fp/double.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Double Precision @@ -7928,10 +10629,31 @@ Index: gcc/config/soft-fp/double.h #endif } bits __attribute__((packed)); }; +Index: gcc/tree-ssa-operands.c +=================================================================== +--- gcc/tree-ssa-operands.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ gcc/tree-ssa-operands.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -2162,9 +2162,14 @@ + { + stmt_ann_t ann = get_stmt_ann (stmt); + +- /* Initially assume that the statement has no volatile operands. */ ++ /* Initially assume that the statement has no volatile operands and ++ does not take the address of any symbols. */ + if (ann) +- ann->has_volatile_ops = false; ++ { ++ ann->has_volatile_ops = false; ++ if (ann->addresses_taken) ++ ann->addresses_taken = NULL; ++ } + + start_ssa_stmt_operands (); + Index: libstdc++-v3/configure =================================================================== ---- libstdc++-v3/configure (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/configure (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/configure (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/configure (.../branches/gcc-4_2-branch) (revision 126002) @@ -5764,8 +5764,6 @@ @@ -8419,8 +11141,8 @@ Index: libstdc++-v3/configure echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5 Index: libstdc++-v3/include/bits/ostream.tcc =================================================================== ---- libstdc++-v3/include/bits/ostream.tcc (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/include/bits/ostream.tcc (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/include/bits/ostream.tcc (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/include/bits/ostream.tcc (.../branches/gcc-4_2-branch) (revision 126002) @@ -334,7 +334,6 @@ extern template ostream& operator<<(ostream&, const char*); extern template ostream& operator<<(ostream&, const unsigned char*); @@ -8440,8 +11162,8 @@ Index: libstdc++-v3/include/bits/ostream.tcc extern template wostream& wostream::_M_insert(unsigned long); Index: libstdc++-v3/include/bits/ostream_insert.h =================================================================== ---- libstdc++-v3/include/bits/ostream_insert.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/include/bits/ostream_insert.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/include/bits/ostream_insert.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/include/bits/ostream_insert.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -109,6 +109,18 @@ return __out; } @@ -8463,8 +11185,8 @@ Index: libstdc++-v3/include/bits/ostream_insert.h #endif /* _OSTREAM_INSERT_H */ Index: libstdc++-v3/include/std/std_fstream.h =================================================================== ---- libstdc++-v3/include/std/std_fstream.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/include/std/std_fstream.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/include/std/std_fstream.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/include/std/std_fstream.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,6 +1,7 @@ // File based streams -*- C++ -*- @@ -8510,8 +11232,8 @@ Index: libstdc++-v3/include/std/std_fstream.h Index: libstdc++-v3/ChangeLog =================================================================== ---- libstdc++-v3/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,3 +1,39 @@ +2007-06-08 Paolo Carlini + @@ -8554,8 +11276,8 @@ Index: libstdc++-v3/ChangeLog * GCC 4.2.0 released. Index: libstdc++-v3/docs/html/debug.html =================================================================== ---- libstdc++-v3/docs/html/debug.html (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/docs/html/debug.html (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/docs/html/debug.html (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/docs/html/debug.html (.../branches/gcc-4_2-branch) (revision 126002) @@ -420,7 +420,7 @@ @@ -8567,8 +11289,8 @@ Index: libstdc++-v3/docs/html/debug.html

Index: libstdc++-v3/docs/html/install.html =================================================================== ---- libstdc++-v3/docs/html/install.html (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/docs/html/install.html (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/docs/html/install.html (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/docs/html/install.html (.../branches/gcc-4_2-branch) (revision 126002) @@ -80,8 +80,9 @@ information must be installed. @@ -8583,8 +11305,8 @@ Index: libstdc++-v3/docs/html/install.html

Index: libstdc++-v3/config.h.in =================================================================== ---- libstdc++-v3/config.h.in (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/config.h.in (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/config.h.in (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/config.h.in (.../branches/gcc-4_2-branch) (revision 126002) @@ -298,6 +298,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -8610,8 +11332,8 @@ Index: libstdc++-v3/config.h.in Index: libstdc++-v3/acinclude.m4 =================================================================== ---- libstdc++-v3/acinclude.m4 (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libstdc++-v3/acinclude.m4 (.../branches/gcc-4_2-branch) (wersja 125589) +--- libstdc++-v3/acinclude.m4 (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libstdc++-v3/acinclude.m4 (.../branches/gcc-4_2-branch) (revision 126002) @@ -251,11 +251,9 @@ # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -8792,8 +11514,8 @@ Index: libstdc++-v3/acinclude.m4 AC_MSG_RESULT(generic) Index: libgfortran/runtime/environ.c =================================================================== ---- libgfortran/runtime/environ.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libgfortran/runtime/environ.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- libgfortran/runtime/environ.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgfortran/runtime/environ.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -861,14 +861,13 @@ static int do_parse (void) @@ -8839,8 +11561,8 @@ Index: libgfortran/runtime/environ.c goto error; Index: libgfortran/intrinsics/reshape_generic.c =================================================================== ---- libgfortran/intrinsics/reshape_generic.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libgfortran/intrinsics/reshape_generic.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- libgfortran/intrinsics/reshape_generic.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgfortran/intrinsics/reshape_generic.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -266,7 +266,7 @@ else { @@ -8852,8 +11574,8 @@ Index: libgfortran/intrinsics/reshape_generic.c } Index: libgfortran/intrinsics/ishftc.c =================================================================== ---- libgfortran/intrinsics/ishftc.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libgfortran/intrinsics/ishftc.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- libgfortran/intrinsics/ishftc.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgfortran/intrinsics/ishftc.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -36,8 +36,7 @@ GFC_INTEGER_4 ishftc4 (GFC_INTEGER_4 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) @@ -8939,8 +11661,8 @@ Index: libgfortran/intrinsics/ishftc.c #endif Index: libgfortran/ChangeLog =================================================================== ---- libgfortran/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libgfortran/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) +--- libgfortran/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgfortran/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,3 +1,53 @@ +2007-05-23 Jerry DeLisle + @@ -8997,8 +11719,8 @@ Index: libgfortran/ChangeLog * GCC 4.2.0 released. Index: libgfortran/io/transfer.c =================================================================== ---- libgfortran/io/transfer.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libgfortran/io/transfer.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- libgfortran/io/transfer.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgfortran/io/transfer.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -493,11 +493,11 @@ } else @@ -9243,8 +11965,8 @@ Index: libgfortran/io/transfer.c if ((cf & IOPARM_DT_HAS_REC) != 0) Index: libgfortran/io/format.c =================================================================== ---- libgfortran/io/format.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libgfortran/io/format.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- libgfortran/io/format.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libgfortran/io/format.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -860,10 +860,11 @@ case FMT_SLASH: get_fnode (fmt, &head, &tail, FMT_SLASH); @@ -9261,8 +11983,8 @@ Index: libgfortran/io/format.c case FMT_END: Index: boehm-gc/darwin_stop_world.c =================================================================== ---- boehm-gc/darwin_stop_world.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/darwin_stop_world.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/darwin_stop_world.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/darwin_stop_world.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -10,7 +10,7 @@ be allocated, is called the red zone. This area as shown in Figure 3-2 may be used for any purpose as long as a new stack frame does not need to be @@ -9409,8 +12131,8 @@ Index: boehm-gc/darwin_stop_world.c lo = (void*)info . THREAD_FLD (esp); Index: boehm-gc/Makefile.in =================================================================== ---- boehm-gc/Makefile.in (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/Makefile.in (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/Makefile.in (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/Makefile.in (.../branches/gcc-4_2-branch) (revision 126002) @@ -224,6 +224,7 @@ build_vendor = @build_vendor@ datadir = @datadir@ @@ -9430,8 +12152,8 @@ Index: boehm-gc/Makefile.in AM_CXXFLAGS = @GC_CFLAGS@ Index: boehm-gc/configure.ac =================================================================== ---- boehm-gc/configure.ac (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/configure.ac (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/configure.ac (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/configure.ac (.../branches/gcc-4_2-branch) (revision 126002) @@ -248,33 +248,46 @@ case "$host" in powerpc*-*-darwin*) @@ -9511,8 +12233,8 @@ Index: boehm-gc/configure.ac target_all=libgcjgc.la Index: boehm-gc/include/Makefile.in =================================================================== ---- boehm-gc/include/Makefile.in (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/include/Makefile.in (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/include/Makefile.in (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/include/Makefile.in (.../branches/gcc-4_2-branch) (revision 126002) @@ -149,6 +149,7 @@ build_vendor = @build_vendor@ datadir = @datadir@ @@ -9523,8 +12245,8 @@ Index: boehm-gc/include/Makefile.in host_cpu = @host_cpu@ Index: boehm-gc/include/gc_config.h.in =================================================================== ---- boehm-gc/include/gc_config.h.in (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/include/gc_config.h.in (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/include/gc_config.h.in (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/include/gc_config.h.in (.../branches/gcc-4_2-branch) (revision 126002) @@ -54,12 +54,6 @@ /* support for win32 threads */ #undef GC_WIN32_THREADS @@ -9559,8 +12281,8 @@ Index: boehm-gc/include/gc_config.h.in Index: boehm-gc/include/private/gc_priv.h =================================================================== ---- boehm-gc/include/private/gc_priv.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/include/private/gc_priv.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/include/private/gc_priv.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/include/private/gc_priv.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -286,6 +286,53 @@ #endif @@ -9671,8 +12393,8 @@ Index: boehm-gc/include/private/gc_priv.h /* Word-size-dependent defines */ Index: boehm-gc/include/private/gcconfig.h =================================================================== ---- boehm-gc/include/private/gcconfig.h (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/include/private/gcconfig.h (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/include/private/gcconfig.h (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/include/private/gcconfig.h (.../branches/gcc-4_2-branch) (revision 126002) @@ -302,7 +302,10 @@ # if defined(__ppc__) || defined(__ppc64__) # define POWERPC @@ -9789,9 +12511,14 @@ Index: boehm-gc/include/private/gcconfig.h # ifndef GC_FREEBSD_THREADS Index: boehm-gc/ChangeLog =================================================================== ---- boehm-gc/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) -@@ -1,3 +1,67 @@ +--- boehm-gc/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,72 @@ ++2007-06-22 Jakub Jelinek ++ ++ * pthread_support.c (GC_get_thread_stack_base): Handle ++ pthread_getattr_np failures. ++ +2007-05-22 Andreas Tobler + + * Backport r124870 from main. @@ -9861,8 +12588,8 @@ Index: boehm-gc/ChangeLog * GCC 4.2.0 released. Index: boehm-gc/configure =================================================================== ---- boehm-gc/configure (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/configure (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/configure (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/configure (.../branches/gcc-4_2-branch) (revision 126002) @@ -309,7 +309,7 @@ # include #endif" @@ -10326,10 +13053,29 @@ Index: boehm-gc/configure s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t s,@target_all@,$target_all,;t t s,@CPLUSPLUS_TRUE@,$CPLUSPLUS_TRUE,;t t +Index: boehm-gc/pthread_support.c +=================================================================== +--- boehm-gc/pthread_support.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/pthread_support.c (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1135,7 +1135,13 @@ + size_t stack_size; + + my_pthread = pthread_self(); +- pthread_getattr_np (my_pthread, &attr); ++ if (pthread_getattr_np (my_pthread, &attr) != 0) ++ { ++# ifdef DEBUG_THREADS ++ GC_printf1("Can not determine stack base for attached thread"); ++# endif ++ return 0; ++ } + pthread_attr_getstack (&attr, (void **) &stack_addr, &stack_size); + pthread_attr_destroy (&attr); + Index: boehm-gc/os_dep.c =================================================================== ---- boehm-gc/os_dep.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/os_dep.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/os_dep.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/os_dep.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -3371,7 +3371,7 @@ 1. Apple's mach/xnu documentation 2. Timothy J. Wood's "Mach Exception Handlers 101" post to the @@ -10384,8 +13130,8 @@ Index: boehm-gc/os_dep.c #endif Index: boehm-gc/Makefile.am =================================================================== ---- boehm-gc/Makefile.am (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/Makefile.am (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/Makefile.am (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/Makefile.am (.../branches/gcc-4_2-branch) (revision 126002) @@ -33,11 +33,13 @@ rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \ sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s @@ -10403,8 +13149,8 @@ Index: boehm-gc/Makefile.am libgcjgc_convenience_la_DEPENDENCIES = @addobjs@ Index: boehm-gc/dyn_load.c =================================================================== ---- boehm-gc/dyn_load.c (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ boehm-gc/dyn_load.c (.../branches/gcc-4_2-branch) (wersja 125589) +--- boehm-gc/dyn_load.c (.../tags/gcc_4_2_0_release) (revision 126002) ++++ boehm-gc/dyn_load.c (.../branches/gcc-4_2-branch) (revision 126002) @@ -1152,7 +1152,7 @@ }; @@ -10457,8 +13203,8 @@ Index: boehm-gc/dyn_load.c start = slide + sec->addr; Index: configure.in =================================================================== ---- configure.in (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ configure.in (.../branches/gcc-4_2-branch) (wersja 125589) +--- configure.in (.../tags/gcc_4_2_0_release) (revision 126002) ++++ configure.in (.../branches/gcc-4_2-branch) (revision 126002) @@ -2419,7 +2419,13 @@ # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it. CFLAGS="$CFLAGS -fkeep-inline-functions" @@ -10476,8 +13222,8 @@ Index: configure.in Index: ChangeLog =================================================================== ---- ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) +--- ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,3 +1,9 @@ +2007-05-30 Jakub Jelinek + @@ -10488,10 +13234,45 @@ Index: ChangeLog 2007-05-13 Release Manager * GCC 4.2.0 released. +Index: config/ChangeLog +=================================================================== +--- config/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ config/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) +@@ -1,3 +1,8 @@ ++2007-06-20 Mike Stump ++ ++ * acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Fix incremental builds. ++ (ACX_HAVE_GCC_FOR_TARGET): Likewise. ++ + 2007-05-13 Release Manager + + * GCC 4.2.0 released. +Index: config/acx.m4 +=================================================================== +--- config/acx.m4 (.../tags/gcc_4_2_0_release) (revision 126002) ++++ config/acx.m4 (.../branches/gcc-4_2-branch) (revision 126002) +@@ -183,6 +183,8 @@ + else + $1="${ncn_target_tool_prefix}[$]2" + fi], [$1="$3"]) ++else ++ $1="$ac_cv_prog_$1" + fi + ]) []dnl # NCN_STRICT_CHECK_TARGET_TOOLS + +@@ -297,7 +299,7 @@ + elif test $build != $host && test $have_gcc_for_target = yes; then + $1=`$GCC_FOR_TARGET --print-prog-name=$2` + test [$]$1=$2 && $1= +- ac_cv_path_$1=[$]$1 ++ test -n "[$]$1" && ac_cv_path_$1=[$]$1 + fi + fi + if test -z "$ac_cv_path_$1" ; then Index: libjava/java/lang/natClassLoader.cc =================================================================== ---- libjava/java/lang/natClassLoader.cc (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libjava/java/lang/natClassLoader.cc (.../branches/gcc-4_2-branch) (wersja 125589) +--- libjava/java/lang/natClassLoader.cc (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libjava/java/lang/natClassLoader.cc (.../branches/gcc-4_2-branch) (revision 126002) @@ -235,6 +235,15 @@ new_class->engine = &_Jv_soleIndirectCompiledEngine; @@ -10510,8 +13291,8 @@ Index: libjava/java/lang/natClassLoader.cc Index: libjava/ChangeLog =================================================================== ---- libjava/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ libjava/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) +--- libjava/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ libjava/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,3 +1,8 @@ +2007-05-31 Andrew Haley + @@ -10523,8 +13304,8 @@ Index: libjava/ChangeLog * GCC 4.2.0 released. Index: maintainer-scripts/ChangeLog =================================================================== ---- maintainer-scripts/ChangeLog (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ maintainer-scripts/ChangeLog (.../branches/gcc-4_2-branch) (wersja 125589) +--- maintainer-scripts/ChangeLog (.../tags/gcc_4_2_0_release) (revision 126002) ++++ maintainer-scripts/ChangeLog (.../branches/gcc-4_2-branch) (revision 126002) @@ -1,3 +1,7 @@ +2007-05-28 Mark Mitchell + @@ -10535,8 +13316,8 @@ Index: maintainer-scripts/ChangeLog * GCC 4.2.0 released. Index: maintainer-scripts/gcc_release =================================================================== ---- maintainer-scripts/gcc_release (.../tags/gcc_4_2_0_release) (wersja 125589) -+++ maintainer-scripts/gcc_release (.../branches/gcc-4_2-branch) (wersja 125589) +--- maintainer-scripts/gcc_release (.../tags/gcc_4_2_0_release) (revision 126002) ++++ maintainer-scripts/gcc_release (.../branches/gcc-4_2-branch) (revision 126002) @@ -699,10 +699,10 @@ # and minor release numbers. SVNBRANCH="branches/gcc-${RELEASE_MAJOR}_${RELEASE_MINOR}-branch" -- 2.43.0