]> git.pld-linux.org Git - packages/gcc.git/blobdiff - gcc-branch.diff
- up to 4.4.6; disable -gdwarf-3 for bootstrap build; disable ppl/cloog even if detected
[packages/gcc.git] / gcc-branch.diff
index e6d6b353f39f858e125451c75193881b9ab4575f..205dca40100a10474021b671d51a100ec7797e3b 100644 (file)
-Index: 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 <<EOF
--#line 7338 "configure"
-+#line 7368 "configure"
- #include "confdefs.h"
-+#if (__GNUC__ < 3) \
-+    || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
-+                        || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
-+#error http://gcc.gnu.org/PR29382
-+#endif
-+    
- int main() {
- ; return 0; }
- EOF
--if { (eval echo configure:7345: \"$ac_compile\") 1>&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: libgcc/config/i386/32/sfp-machine.h
+===================================================================
+--- libgcc/config/i386/32/sfp-machine.h        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgcc/config/i386/32/sfp-machine.h        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -145,8 +145,8 @@
+     if (_fex & FP_EX_DIVZERO)                                         \
+       {                                                                       \
+       float f = 1.0, g = 0.0;                                         \
+-      __asm__ __volatile__ ("fdivp" : "=t" (f)                        \
+-                                    : "0" (f), "u" (g)                \
++      __asm__ __volatile__ ("fdivp {%0, %y1|%y1, %0}"                 \
++                                    : "+t" (f) : "u" (g)              \
+                                     : "st(1)");                       \
+       __asm__ __volatile__ ("fwait");                                 \
+       }                                                                       \
+Index: libgcc/ChangeLog
+===================================================================
+--- libgcc/ChangeLog   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgcc/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,8 @@
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * config/i386/32/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Support Sun
++      assembler syntax.
++
+ 2010-04-29  Release Manager
+       * GCC 4.4.4 released.
+Index: libgomp/Makefile.in
+===================================================================
+--- libgomp/Makefile.in        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgomp/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -38,15 +38,15 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+-DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \
+-      $(srcdir)/../config.sub $(srcdir)/../depcomp \
+-      $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
+-      $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
+-      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(srcdir)/config.h.in $(srcdir)/libgomp.spec.in \
+-      $(srcdir)/libgomp_f.h.in $(srcdir)/omp.h.in \
+-      $(srcdir)/omp_lib.f90.in $(srcdir)/omp_lib.h.in \
+-      $(top_srcdir)/configure ChangeLog
++DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub \
++      ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \
++      $(srcdir)/omp.h.in $(srcdir)/omp_lib.h.in \
++      $(srcdir)/omp_lib.f90.in $(srcdir)/libgomp_f.h.in \
++      $(srcdir)/libgomp.spec.in $(srcdir)/../depcomp \
++      $(srcdir)/../ltmain.sh $(srcdir)/../config.guess \
++      $(srcdir)/../config.sub
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+@@ -100,7 +100,6 @@
+ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libgomp_la_SOURCES)
+-DIST_SOURCES = $(libgomp_la_SOURCES)
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -133,17 +132,6 @@
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -771,152 +759,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/../config
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      $(MAKE) $(AM_MAKEFLAGS) \
+-        top_distdir="$(top_distdir)" distdir="$(distdir)" \
+-        dist-info
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) all-multi $(HEADERS) \
+@@ -1049,16 +891,13 @@
+ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-local \
+       all-multi am--refresh check check-am clean clean-generic \
+       clean-libtool clean-multi clean-recursive \
+-      clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
+-      dist-all dist-bzip2 dist-gzip dist-info dist-shar dist-tarZ \
+-      dist-zip distcheck distclean distclean-compile \
+-      distclean-generic distclean-hdr distclean-libtool \
+-      distclean-multi distclean-recursive distclean-tags \
+-      distcleancheck distdir distuninstallcheck dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-multi \
+-      install-nodist_fincludeHEADERS \
++      clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist-info \
++      distclean distclean-compile distclean-generic distclean-hdr \
++      distclean-libtool distclean-multi distclean-recursive \
++      distclean-tags dvi dvi-am html html-am info info-am install \
++      install-am install-data install-data-am install-exec \
++      install-exec-am install-info install-info-am install-man \
++      install-multi install-nodist_fincludeHEADERS \
+       install-nodist_libsubincludeHEADERS \
+       install-nodist_toolexeclibHEADERS install-strip \
+       install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+Index: libgomp/configure.ac
+===================================================================
+--- libgomp/configure.ac       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgomp/configure.ac       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -61,7 +61,7 @@
+ #  -Wall:  turns on all automake warnings...
+ #  -Wno-portability:  ...except this one, since GNU make is required.
+ #  -Wno-override: ... and this one, since we do want this in testsuite.
+-AM_INIT_AUTOMAKE([1.9.0 foreign -Wall -Wno-portability -Wno-override])
++AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override])
+ AM_ENABLE_MULTILIB(, ..)
+ # Calculate toolexeclibdir
 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  <jakub@redhat.com>
+--- libgomp/ChangeLog  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgomp/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,15 @@
++2010-04-30  Jakub Jelinek  <jakub@redhat.com>
 +
-+      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.
++      PR c/43893
++      * testsuite/libgomp.c/pr43893.c: New test.
++      * testsuite/libgomp.c++/pr43893.C: New test.
 +
- 2007-05-13  Release Manager
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
++
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
++
+ 2010-04-29  Release Manager
  
-       * GCC 4.2.0 released.
-Index: libgomp/testsuite/libgomp.c/pr32362-1.c
+       * GCC 4.4.4 released.
+Index: libgomp/testsuite/libgomp.c++/pr43893.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" } */
+--- libgomp/testsuite/libgomp.c++/pr43893.C    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ libgomp/testsuite/libgomp.c++/pr43893.C    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,125 @@
++// PR c/43893
++// { dg-do run }
 +
-+#include <omp.h>
-+#include <stdlib.h>
++extern "C" void abort ();
 +
-+int
-+main ()
++template <typename T, T M, T N>
++void
++f1 ()
 +{
-+  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)
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i < N; i++)
++    c++;
++  if (c != 1)
 +    abort ();
-+  if (n[3] != -1
-+      && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36))
++}
++
++template <typename T, T M, T N>
++void
++f2 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i <= N; i++)
++    c++;
++  if (c != 1)
 +    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 <omp.h>
-+#include <stdlib.h>
++template <typename T, T M, T N>
++void
++f3 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i > N; i--)
++    c++;
++  if (c != 1)
++    abort ();
++}
 +
-+int a = 2;
++template <typename T, T M, T N>
++void
++f4 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i >= N; i--)
++    c++;
++  if (c != 1)
++    abort ();
++}
 +
 +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)
++  int c;
++  unsigned int i;
++  int j;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i < 1; i++)
++    c++;
++  if (c != 1)
 +    abort ();
-+  if (n[3] != -1
-+      && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36))
++  f1 <unsigned int, 0, 1> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i <= 0; i++)
++    c++;
++  if (c != 1)
 +    abort ();
++  f2 <unsigned int, 0, 0> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j < - __INT_MAX__; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  f1 <int, (- __INT_MAX__ - 1), (- __INT_MAX__)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j <= - __INT_MAX__ - 1; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  f2 <int, (- __INT_MAX__ - 1), (- __INT_MAX__ - 1)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i > 2U * __INT_MAX__; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  f3 <unsigned int, (2U * __INT_MAX__ + 1), (2U * __INT_MAX__)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i >= 2U * __INT_MAX__ + 1; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  f4 <unsigned int, (2U * __INT_MAX__ + 1), (2U * __INT_MAX__ + 1)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j > __INT_MAX__ - 1; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  f3 <int, __INT_MAX__, (__INT_MAX__ - 1)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j >= __INT_MAX__; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  f4 <int, __INT_MAX__, __INT_MAX__> ();
 +  return 0;
 +}
-Index: libgomp/testsuite/libgomp.c/pr32362-2.c
+Index: libgomp/testsuite/libgomp.c/pr43893.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 */
+--- libgomp/testsuite/libgomp.c/pr43893.c      (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ libgomp/testsuite/libgomp.c/pr43893.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,61 @@
++/* PR c/43893 */
 +/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+
-+#include <omp.h>
-+#include <stdlib.h>
 +
-+int a = 2, b = 4;
++extern void abort (void);
 +
 +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)
++  int c;
++  unsigned int i;
++  int j;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i < 1; i++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i <= 0; i++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j < - __INT_MAX__; j++)
++    c++;
++  if (c != 1)
 +    abort ();
-+  if (n[3] != -1
-+      && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36))
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j <= - __INT_MAX__ - 1; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i > 2U * __INT_MAX__; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i >= 2U * __INT_MAX__ + 1; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j > __INT_MAX__ - 1; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j >= __INT_MAX__; j--)
++    c++;
++  if (c != 1)
 +    abort ();
 +  return 0;
 +}
-Index: gcc/tree-vrp.c
+Index: gcc/doc/sourcebuild.texi
+===================================================================
+--- gcc/doc/sourcebuild.texi   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/doc/sourcebuild.texi   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1035,9 +1035,12 @@
+ They require at least one argument, which can be an empty string if the
+ specific procedure does not examine the argument.
+-@item @{ dg-require-effective-target @var{keyword} @}
++@item @{ dg-require-effective-target @var{keyword} [@{ @var{selector} @}] @}
+ Skip the test if the test target, including current multilib flags,
+ is not covered by the effective-target keyword.
++If the directive includes the optional @samp{@{ @var{selector} @}}
++then the effective-target test is only performed if the target system
++matches the @var{selector}.
+ This directive must appear after any @code{dg-do} directive in the test
+ and before any @code{dg-additional-sources} directive.
+Index: gcc/doc/standards.texi
+===================================================================
+--- gcc/doc/standards.texi     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/doc/standards.texi     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -183,7 +183,7 @@
+ available on the ISO C++ committee's web site at
+ @uref{http://www.open-std.org/jtc1/sc22/wg21/}. For information
+ regarding the C++0x features available in the experimental C++0x mode,
+-see @uref{http://gcc.gnu.org/gcc-4.3/cxx0x_status.html}. To select this
++see @uref{http://gcc.gnu.org/projects/cxx0x.html}. To select this
+ standard in GCC, use the option @option{-std=c++0x}; to obtain all the
+ diagnostics required by the standard, you should also specify
+ @option{-pedantic} (or @option{-pedantic-errors} if you want them to be
+Index: gcc/DATESTAMP
 ===================================================================
---- 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)));
- }
+--- gcc/DATESTAMP      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/DATESTAMP      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1 +1 @@
+-20100429
++20100601
+Index: gcc/configure
+===================================================================
+--- gcc/configure      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/configure      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -21359,8 +21359,36 @@
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }
+     then
+-      gcc_cv_as_hidden=yes
++
++# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
++# STV_HIDDEN, so disable .hidden support if so.
++case "${target}" in
++  i?86-*-solaris2*)
++    if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
++      cat > conftest.s <<EOF
++.globl hidden
++        .hidden hidden
++hidden:
++.globl default
++        .set    default,hidden
++EOF
++      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
++        && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
++        grep '\.hidden default' > /dev/null; then
++        gcc_cv_as_hidden=no
++      else
++        gcc_cv_as_hidden=yes
++      fi
+     else
++      # Assume bug is present if objdump is missing.
++      gcc_cv_as_hidden=no
++    fi
++    ;;
++  *)
++    gcc_cv_as_hidden=yes
++    ;;
++esac
++    else
+       echo "configure: failed program was" >&5
+       cat conftest.s >&5
+     fi
+@@ -22925,6 +22953,39 @@
  
-+/* If VAL is now an overflow infinity, return VAL.  Otherwise, return
-+   the same value with TREE_OVERFLOW clear.  This can be used to avoid
-+   confusing a regular value with an overflow value.  */
+ fi
  
-+static inline tree
-+avoid_overflow_infinity (tree val)
-+{
-+  if (!is_overflow_infinity (val))
-+    return val;
-+
-+  if (operand_equal_p (val, TYPE_MAX_VALUE (TREE_TYPE (val)), 0))
-+    return TYPE_MAX_VALUE (TREE_TYPE (val));
-+  else
-+    {
-+#ifdef ENABLE_CHECKING
-+      gcc_assert (operand_equal_p (val, TYPE_MIN_VALUE (TREE_TYPE (val)), 0));
-+#endif
-+      return TYPE_MIN_VALUE (TREE_TYPE (val));
-+    }
-+}
-+
-+
- /* Return whether VAL is equal to the maximum value of its type.  This
-    will be true for a positive overflow infinity.  We can't do a
-    simple equality comparison with TYPE_MAX_VALUE because C typedefs
-@@ -351,23 +372,11 @@
-    infinity when we shouldn't.  */
- static inline void
--set_value_range_to_value (value_range_t *vr, tree val)
-+set_value_range_to_value (value_range_t *vr, tree val, bitmap equiv)
- {
-   gcc_assert (is_gimple_min_invariant (val));
--  if (is_overflow_infinity (val))
--    {
--      if (operand_equal_p (val, TYPE_MAX_VALUE (TREE_TYPE (val)), 0))
--      val = TYPE_MAX_VALUE (TREE_TYPE (val));
--      else
--      {
--#ifdef ENABLE_CHECKING
--        gcc_assert (operand_equal_p (val,
--                                     TYPE_MIN_VALUE (TREE_TYPE (val)), 0));
--#endif
--        val = TYPE_MIN_VALUE (TREE_TYPE (val));
--      }
--    }
--  set_value_range (vr, VR_RANGE, val, val, NULL);
-+  val = avoid_overflow_infinity (val);
-+  set_value_range (vr, VR_RANGE, val, val, equiv);
- }
- /* Set value range VR to a non-negative range of type TYPE.
-@@ -411,8 +420,7 @@
- static inline void
- set_value_range_to_null (value_range_t *vr, tree type)
- {
--  tree zero = build_int_cst (type, 0);
--  set_value_range (vr, VR_RANGE, zero, zero, vr->equiv);
-+  set_value_range_to_value (vr, build_int_cst (type, 0), vr->equiv);
- }
-@@ -763,7 +771,9 @@
-       if (!TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (val1)))
-       return -2;
--      if (strict_overflow_p != NULL)
-+      if (strict_overflow_p != NULL
-+        && (code1 == SSA_NAME || !TREE_NO_WARNING (val1))
-+        && (code2 == SSA_NAME || !TREE_NO_WARNING (val2)))
-       *strict_overflow_p = true;
-       if (code1 == SSA_NAME)
-@@ -1028,6 +1038,8 @@
-       cond_code = swap_tree_comparison (TREE_CODE (cond));
-     }
-+  limit = avoid_overflow_infinity (limit);
-+
-   type = TREE_TYPE (limit);
-   gcc_assert (limit != var);
-@@ -1167,6 +1179,8 @@
-           {
-             tree one = build_int_cst (type, 1);
-             max = fold_build2 (MINUS_EXPR, type, max, one);
-+            if (EXPR_P (max))
-+              TREE_NO_WARNING (max) = 1;
-           }
-         set_value_range (vr_p, VR_RANGE, min, max, vr_p->equiv);
-@@ -1200,6 +1214,8 @@
-           {
-             tree one = build_int_cst (type, 1);
-             min = fold_build2 (PLUS_EXPR, type, min, one);
-+            if (EXPR_P (min))
-+              TREE_NO_WARNING (min) = 1;
-           }
-         set_value_range (vr_p, VR_RANGE, min, max, vr_p->equiv);
-@@ -1619,7 +1635,7 @@
-   if (TREE_CODE (op0) == SSA_NAME)
-     vr0 = *(get_value_range (op0));
-   else if (is_gimple_min_invariant (op0))
--    set_value_range_to_value (&vr0, op0);
-+    set_value_range_to_value (&vr0, op0, NULL);
-   else
-     set_value_range_to_varying (&vr0);
-@@ -1627,7 +1643,7 @@
-   if (TREE_CODE (op1) == SSA_NAME)
-     vr1 = *(get_value_range (op1));
-   else if (is_gimple_min_invariant (op1))
--    set_value_range_to_value (&vr1, op1);
-+    set_value_range_to_value (&vr1, op1, NULL);
-   else
-     set_value_range_to_varying (&vr1);
-@@ -2006,7 +2022,7 @@
-   if (TREE_CODE (op0) == SSA_NAME)
-     vr0 = *(get_value_range (op0));
-   else if (is_gimple_min_invariant (op0))
--    set_value_range_to_value (&vr0, op0);
-+    set_value_range_to_value (&vr0, op0, NULL);
-   else
-     set_value_range_to_varying (&vr0);
-@@ -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);
--      set_value_range (vr, VR_RANGE, val, val, vr->equiv);
-+      if (is_gimple_min_invariant (val))
-+      set_value_range_to_value (vr, val, vr->equiv);
-+      else
-+      set_value_range (vr, VR_RANGE, val, val, vr->equiv);
-     }
-   else
-     set_value_range_to_varying (vr);
-@@ -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))
--    set_value_range_to_value (vr, expr);
-+    set_value_range_to_value (vr, expr, NULL);
-   else
-     set_value_range_to_varying (vr);
-@@ -2545,6 +2566,13 @@
-             if (compare_values (min, max) == 1)
-               return;
-           }
-+
-+        /* According to the loop information, the variable does not
-+           overflow.  If we think it does, probably because of an
-+           overflow due to arithmetic on a different INF value,
-+           reset now.  */
-+        if (is_negative_overflow_infinity (min))
-+          min = tmin;
-       }
-       else
-       {
-@@ -2557,13 +2585,62 @@
-             if (compare_values (min, max) == 1)
-               return;
-           }
-+
-+        if (is_positive_overflow_infinity (max))
-+          max = tmax;
-       }
-       set_value_range (vr, VR_RANGE, min, max, vr->equiv);
-     }
- }
-+/* Return true if VAR may overflow at STMT.  This checks any available
-+   loop information to see if we can determine that VAR does not
-+   overflow.  */
-+static bool
-+vrp_var_may_overflow (tree var, tree stmt)
-+{
-+  struct loop *l;
-+  tree chrec, init, step;
-+
-+  if (current_loops == NULL)
-+    return true;
-+
-+  l = loop_containing_stmt (stmt);
-+  if (l == NULL)
-+    return true;
-+
-+  chrec = instantiate_parameters (l, analyze_scalar_evolution (l, var));
-+  if (TREE_CODE (chrec) != POLYNOMIAL_CHREC)
-+    return true;
-+
-+  init = initial_condition_in_loop_num (chrec, l->num);
-+  step = evolution_part_in_loop_num (chrec, l->num);
-+
-+  if (step == NULL_TREE
-+      || !is_gimple_min_invariant (step)
-+      || !valid_value_p (init))
-+    return true;
-+
-+  /* If we get here, we know something useful about VAR based on the
-+     loop information.  If it wraps, it may overflow.  */
-+
-+  if (scev_probably_wraps_p (init, step, stmt,
-+                           current_loops->parray[CHREC_VARIABLE (chrec)],
-+                           true))
-+    return true;
-+
-+  if (dump_file && (dump_flags & TDF_DETAILS) != 0)
-+    {
-+      print_generic_expr (dump_file, var, 0);
-+      fprintf (dump_file, ": loop information indicates does not overflow\n");
-+    }
++    echo "$as_me:$LINENO: checking assembler for .quad directive" >&5
++echo $ECHO_N "checking assembler for .quad directive... $ECHO_C" >&6
++if test "${gcc_cv_as_ix86_quad+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  gcc_cv_as_ix86_quad=no
++  if test x$gcc_cv_as != x; then
++    echo '.quad 0' > conftest.s
++    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }
++    then
++      gcc_cv_as_ix86_quad=yes
++    else
++      echo "configure: failed program was" >&5
++      cat conftest.s >&5
++    fi
++    rm -f conftest.o conftest.s
++  fi
++fi
++echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_quad" >&5
++echo "${ECHO_T}$gcc_cv_as_ix86_quad" >&6
++if test $gcc_cv_as_ix86_quad = yes; then
 +
-+  return false;
-+}
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_AS_IX86_QUAD 1
++_ACEOF
 +
++fi
 +
- /* 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 +4233,7 @@
-       t = retval = NULL_TREE;
-       EXECUTE_IF_SET_IN_BITMAP (e2, 0, i2, bi2)
-       {
--        bool sop;
-+        bool sop = false;
-         value_range_t vr2 = *(vr_value[i2]);
-@@ -4773,7 +4850,8 @@
-             if (vrp_val_is_max (vr_result.max))
-               goto varying;
--            if (!needs_overflow_infinity (TREE_TYPE (vr_result.min)))
-+            if (!needs_overflow_infinity (TREE_TYPE (vr_result.min))
-+                || !vrp_var_may_overflow (lhs, phi))
-               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 +4869,8 @@
-             if (vrp_val_is_min (vr_result.min))
-               goto varying;
--            if (!needs_overflow_infinity (TREE_TYPE (vr_result.max)))
-+            if (!needs_overflow_infinity (TREE_TYPE (vr_result.max))
-+                || !vrp_var_may_overflow (lhs, phi))
-               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 +5050,8 @@
-       {
-         tree one = build_int_cst (TREE_TYPE (op0), 1);
-         max = fold_build2 (MINUS_EXPR, TREE_TYPE (op0), max, one);
-+        if (EXPR_P (max))
-+          TREE_NO_WARNING (max) = 1;
-       }
-     }
-   else if (cond_code == GE_EXPR || cond_code == GT_EXPR)
-@@ -4984,6 +5065,8 @@
-       {
-         tree one = build_int_cst (TREE_TYPE (op0), 1);
-         min = fold_build2 (PLUS_EXPR, TREE_TYPE (op0), min, one);
-+        if (EXPR_P (min))
-+          TREE_NO_WARNING (min) = 1;
-       }
-     }
-Index: gcc/DATESTAMP
-===================================================================
---- gcc/DATESTAMP      (.../tags/gcc_4_2_0_release)    (revision 126002)
-+++ gcc/DATESTAMP      (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -1 +1 @@
--20070514
-+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)    (revision 126002)
-+++ gcc/pointer-set.c  (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -22,13 +22,12 @@
- #include "system.h"
- #include "pointer-set.h"
--/* A pointer sets is represented as a simple open-addressing hash
-+/* A pointer set is represented as a simple open-addressing hash
-    table.  Simplifications: The hash code is based on the value of the
-    pointer, not what it points to.  The number of buckets is always a
-    power of 2.  Null pointers are a reserved value.  Deletion is not
--   supported.  There is no mechanism for user control of hash
--   function, equality comparison, initial size, or resizing policy.
--*/
-+   supported (yet).  There is no mechanism for user control of hash
-+   function, equality comparison, initial size, or resizing policy.  */
- struct pointer_set_t
- {
-@@ -114,22 +113,16 @@
-     }
- }
+     echo "$as_me:$LINENO: checking assembler for sahf mnemonic" >&5
+ echo $ECHO_N "checking assembler for sahf mnemonic... $ECHO_C" >&6
+ if test "${gcc_cv_as_ix86_sahf+set}" = set; then
+@@ -22932,7 +22993,8 @@
+ else
+   gcc_cv_as_ix86_sahf=no
+   if test x$gcc_cv_as != x; then
+-    echo 'sahf' > conftest.s
++    echo '.code64
++       sahf' > conftest.s
+     if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+@@ -22997,7 +23059,7 @@
  
--/* Subroutine of pointer_set_insert.  Inserts P into an empty
--   element of SLOTS, an array of length N_SLOTS.  Returns nonzero
--   if P was already present in N_SLOTS.  */
--static int
-+/* Subroutine of pointer_set_insert.  Return the insertion slot for P into
-+   an empty element of SLOTS, an array of length N_SLOTS.  */
-+static inline size_t
- insert_aux (void *p, void **slots, size_t n_slots, size_t log_slots)
- {
-   size_t n = hash1 (p, n_slots, log_slots);
-   while (true)
-     {
--      if (slots[n] == p)
--      return 1;
--      else if (slots[n] == 0)
--      {
--        slots[n] = p;
--        return 0;
--      }
-+      if (slots[n] == p || slots[n] == 0)
-+      return n;
-       else
-       {
-         ++n;
-@@ -144,12 +137,10 @@
- int
- pointer_set_insert (struct pointer_set_t *pset, void *p)
- {
--  if (insert_aux (p, pset->slots, pset->n_slots, pset->log_slots))
--    return 1;
--      
--  /* We've inserted a new element.  Expand the table if necessary to keep
--     the load factor small.  */
--  ++pset->n_elements;
-+  size_t n;
-+
-+  /* For simplicity, expand the set even if P is already there.  This can be
-+     superfluous but can happen at most once.  */
-   if (pset->n_elements > pset->n_slots / 4)
-     {
-       size_t new_log_slots = pset->log_slots + 1;
-@@ -158,9 +149,10 @@
-       size_t i;
-       for (i = 0; i < pset->n_slots; ++i)
--      {
--        if (pset->slots[i])
--          insert_aux (pset->slots[i], new_slots, new_n_slots, new_log_slots);
-+        {
-+        void *value = pset->slots[i];
-+        n = insert_aux (value, new_slots, new_n_slots, new_log_slots);
-+        new_slots[n] = value;
-       }
+ fi
  
-       XDELETEVEC (pset->slots);
-@@ -169,5 +161,144 @@
-       pset->slots = new_slots;
-     }
+-    # This one is used unconditionally by i386.[ch]; it is to be defined
++    # These two are used unconditionally by i386.[ch]; it is to be defined
+     # to 1 if the feature is present, 0 otherwise.
+     echo "$as_me:$LINENO: checking assembler for GOTOFF in data" >&5
+ echo $ECHO_N "checking assembler for GOTOFF in data... $ECHO_C" >&6
+@@ -23038,6 +23100,40 @@
+ #define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`
+ _ACEOF
  
-+  n = insert_aux (p, pset->slots, pset->n_slots, pset->log_slots);
-+  if (pset->slots[n])
-+    return 1;
-+
-+  pset->slots[n] = p;
-+  ++pset->n_elements;
-   return 0;
- }
-+
-+/* Pass each pointer in PSET to the function in FN, together with the fixed
-+   parameter DATA.  If FN returns false, the iteration stops.  */
-+
-+void pointer_set_traverse (struct pointer_set_t *pset,
-+                         bool (*fn) (void *, void *), void *data)
-+{
-+  size_t i;
-+  for (i = 0; i < pset->n_slots; ++i)
-+    if (pset->slots[i] && !fn (pset->slots[i], data))
-+      break;
-+}
-+
-+\f
-+/* A pointer map is represented the same way as a pointer_set, so
-+   the hash code is based on the address of the key, rather than
-+   its contents.  Null keys are a reserved value.  Deletion is not
-+   supported (yet).  There is no mechanism for user control of hash
-+   function, equality comparison, initial size, or resizing policy.  */
-+
-+struct pointer_map_t
-+{
-+  size_t log_slots;
-+  size_t n_slots;             /* n_slots = 2^log_slots */
-+  size_t n_elements;
-+
-+  void **keys;
-+  void **values;
-+};
-+
-+/* Allocate an empty pointer map.  */
-+struct pointer_map_t *
-+pointer_map_create (void)
-+{
-+  struct pointer_map_t *result = XNEW (struct pointer_map_t);
-+
-+  result->n_elements = 0;
-+  result->log_slots = 8;
-+  result->n_slots = (size_t) 1 << result->log_slots;
-+
-+  result->keys = XCNEWVEC (void *, result->n_slots);
-+  result->values = XCNEWVEC (void *, result->n_slots);
-+  return result;
-+}
-+
-+/* Reclaims all memory associated with PMAP.  */
-+void pointer_map_destroy (struct pointer_map_t *pmap)
-+{
-+  XDELETEVEC (pmap->keys);
-+  XDELETEVEC (pmap->values);
-+  XDELETE (pmap);
-+}
-+
-+/* Returns a pointer to the value to which P maps, if PMAP contains P.  P
-+   must be nonnull.  Return NULL if PMAP does not contain P.
-+
-+   Collisions are resolved by linear probing.  */
-+void **
-+pointer_map_contains (struct pointer_map_t *pmap, void *p)
-+{
-+  size_t n = hash1 (p, pmap->n_slots, pmap->log_slots);
-+
-+  while (true)
-+    {
-+      if (pmap->keys[n] == p)
-+      return &pmap->values[n];
-+      else if (pmap->keys[n] == 0)
-+      return NULL;
-+      else
-+       {
-+         ++n;
-+         if (n == pmap->n_slots)
-+           n = 0;
-+       }
-+    }
-+}
-+
-+/* Inserts P into PMAP if it wasn't already there.  Returns a pointer
-+   to the value.  P must be nonnull.  */
-+void **
-+pointer_map_insert (struct pointer_map_t *pmap, void *p)
-+{
-+  size_t n;
-+
-+  /* For simplicity, expand the map even if P is already there.  This can be
-+     superfluous but can happen at most once.  */
-+  if (pmap->n_elements > pmap->n_slots / 4)
-+    {
-+      size_t new_log_slots = pmap->log_slots + 1;
-+      size_t new_n_slots = pmap->n_slots * 2;
-+      void **new_keys = XCNEWVEC (void *, new_n_slots);
-+      void **new_values = XCNEWVEC (void *, new_n_slots);
-+      size_t i;
-+
-+      for (i = 0; i < pmap->n_slots; ++i)
-+      if (pmap->keys[i])
-+        {
-+          void *key = pmap->keys[i];
-+          n = insert_aux (key, new_keys, new_n_slots, new_log_slots);
-+          new_keys[n] = key;
-+          new_values[n] = pmap->values[i];
-+        }
-+
-+      XDELETEVEC (pmap->keys);
-+      XDELETEVEC (pmap->values);
-+      pmap->n_slots = new_n_slots;
-+      pmap->log_slots = new_log_slots;
-+      pmap->keys = new_keys;
-+      pmap->values = new_values;
-+    }
-+
-+  n = insert_aux (p, pmap->keys, pmap->n_slots, pmap->log_slots);
-+  if (!pmap->keys[n])
-+    {
-+      ++pmap->n_elements;
-+      pmap->keys[n] = p;
-+    }
 +
-+  return &pmap->values[n];
-+}
++    echo "$as_me:$LINENO: checking assembler for rep and lock prefix" >&5
++echo $ECHO_N "checking assembler for rep and lock prefix... $ECHO_C" >&6
++if test "${gcc_cv_as_ix86_rep_lock_prefix+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  gcc_cv_as_ix86_rep_lock_prefix=no
++  if test x$gcc_cv_as != x; then
++    echo 'rep movsl
++       lock orl $0, (%esp)' > conftest.s
++    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }
++    then
++      gcc_cv_as_ix86_rep_lock_prefix=yes
++    else
++      echo "configure: failed program was" >&5
++      cat conftest.s >&5
++    fi
++    rm -f conftest.o conftest.s
++  fi
++fi
++echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_rep_lock_prefix" >&5
++echo "${ECHO_T}$gcc_cv_as_ix86_rep_lock_prefix" >&6
 +
-+/* Pass each pointer in PMAP to the function in FN, together with the pointer
-+   to the value and the fixed parameter DATA.  If FN returns false, the
-+   iteration stops.  */
 +
-+void pointer_map_traverse (struct pointer_map_t *pmap,
-+                         bool (*fn) (void *, void **, void *), void *data)
-+{
-+  size_t i;
-+  for (i = 0; i < pmap->n_slots; ++i)
-+    if (pmap->keys[i] && !fn (pmap->keys[i], &pmap->values[i], data))
-+      break;
-+}
-Index: gcc/pointer-set.h
-===================================================================
---- 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
- struct pointer_set_t;
--
- struct pointer_set_t *pointer_set_create (void);
- void pointer_set_destroy (struct pointer_set_t *pset);
- int pointer_set_contains (struct pointer_set_t *pset, void *p);
- int pointer_set_insert (struct pointer_set_t *pset, void *p);
-+void pointer_set_traverse (struct pointer_set_t *, bool (*) (void *, void *),
-+                         void *);
-+struct pointer_map_t;
-+struct pointer_map_t *pointer_map_create (void);
-+void pointer_map_destroy (struct pointer_map_t *pmap);
++cat >>confdefs.h <<_ACEOF
++#define HAVE_AS_IX86_REP_LOCK_PREFIX `if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`
++_ACEOF
 +
-+void **pointer_map_contains (struct pointer_map_t *pmap, void *p);
-+void **pointer_map_insert (struct pointer_map_t *pmap, void *p);
-+void pointer_map_traverse (struct pointer_map_t *,
-+                         bool (*) (void *, void **, void *), void *);
 +
- #endif  /* POINTER_SET_H  */
-Index: gcc/fold-const.c
-===================================================================
---- 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);
-         high = high0;
--        in_p = (low != 0);
-+        in_p = 1;
-+        if (low == 0)
-+          {
-+            /* We are in the weird situation where high0 > high1 but
-+               high1 has no successor.  Punt.  */
-+            return 0;
-+          }
-       }
-       else if (! subset || highequal)
-       {
-         low = low0;
-         high = range_predecessor (low1);
--        in_p = (high != 0);
-+        in_p = 1;
-+        if (high == 0)
-+          {
-+            /* low0 < low1 but low1 has no predecessor.  Punt.  */
-+            return 0;
-+          }
-       }
-       else
-       return 0;
-@@ -4476,7 +4487,12 @@
-       {
-         low = range_successor (high0);
-         high = high1;
--        in_p = (low != 0);
-+        in_p = 1;
-+        if (low == 0)
-+          {
-+            /* high1 > high0 but high0 has no successor.  Punt.  */
-+            return 0;
-+          }
-       }
-     }
-@@ -12634,9 +12650,14 @@
-       /* ... fall through ...  */
-     default:
--      if (truth_value_p (TREE_CODE (t)))
--      /* Truth values evaluate to 0 or 1, which is nonnegative.  */
--      return 1;
-+      {
-+      tree type = TREE_TYPE (t);
-+      if ((TYPE_PRECISION (type) != 1 || TYPE_UNSIGNED (type))
-+          && truth_value_p (TREE_CODE (t)))
-+        /* Truth values evaluate to 0 or 1, which is nonnegative unless we
-+             have a signed:1 type (where the value is -1 and 0).  */
-+        return true;
-+      }
-     }
-   /* 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;
- }
+     ;;
  
+   ia64*-*-*)
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE      (.../tags/gcc_4_2_0_release)    (revision 126002)
-+++ gcc/DEV-PHASE      (.../branches/gcc-4_2-branch)   (revision 126002)
+--- gcc/DEV-PHASE      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/DEV-PHASE      (.../branches/gcc-4_4-branch)   (wersja 160097)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/ChangeLog
 ===================================================================
---- 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  <hongjiu.lu@intel.com>
+--- gcc/ChangeLog      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,205 @@
++2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 +
-+      * 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.
++      * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
 +
-+2007-06-21  Jakub Jelinek  <jakub@redhat.com>
++2010-05-27  Matthias Klose  <doko@ubuntu.com>
 +
-+      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.
++      Backport from mainline:
++      2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
 +
-+2007-06-21  Uros Bizjak  <ubizjak@gmail.com>
++      PR rtl-optimization/39580
++      * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
 +
-+      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.
++2010-05-26  Jakub Jelinek  <jakub@redhat.com>
 +
-+2007-06-20  Jakub Jelinek  <jakub@redhat.com>
++      PR target/44199
++      * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
++      or total_size is larger than red zone size for non-V4 ABI, emit a
++      stack_tie resp. frame_tie insn before stack pointer restore.
++      * config/rs6000/rs6000.md (frame_tie): New insn.
 +
-+      PR inline-asm/32109
-+      * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
-+      and !allows_mem.
++2010-05-24  Uros Bizjak  <ubizjak@gmail.com>
 +
-+      PR middle-end/32285
-+      * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
-+      if ACCUMULATE_OUTGOING_ARGS.
++      Backport from mainline:
++      2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
 +
-+2007-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
++      PR target/43733
++      * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
++      * configure: Regenerate.
++      * config.in: Regenerate.
++      * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
++      instead of sahf only for 64bit targets.
 +
-+      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.
++2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+2007-06-19  Richard Guenther  <rguenther@suse.de>
-+      Michael Matz  <matz@suse.de>
++      Backport from mainline
++      2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+      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.
++      PR target/44245
++      * config/i386/i386.c (def_builtin): Properly check
++      OPTION_MASK_ISA_64BIT.
 +
-+2007-06-19  Jakub Jelinek  <jakub@redhat.com>
++2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 +
-+      PR tree-optimization/32353
-+      * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
++      * config/s390/s390.c (override_options): Increase the default
++      of max-completely-peel-times.
 +
-+2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
++2010-05-21  Richard Guenther  <rguenther@suse.de>
 +
-+      * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
-+      return mode from the builtin itself.
-+      (sparc_fold_builtin): Fix cast of zero constant.
++      PR tree-optimization/43845
++      * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
++      lookup the CALL_EXPR function and arguments.
 +
-+2007-06-15  Diego Novillo  <dnovillo@google.com>
++2010-05-21  Jakub Jelinek  <jakub@redhat.com>
 +
-+      PR 32327
-+      * tree-ssa-operands.c (build_ssa_operands): Initially assume
-+      that the statement does not take any addresses.
++      PR debug/44205
++      * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
++      at -O0 goto_locus of any of the incoming edges differs from
++      goto_locus of outgoing edge, or gimple_location of any of the
++      labels differs.
 +
-+2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
++2010-05-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
 +
-+      * config/sparc/sparc.c (sparc_override_options): Initialize
-+      fpu mask correctly.
++      PR bootstrap/43870
++      * df-scan.c (df_ref_compare): Stabilize sort.
 +
-+2007-06-09  Ian Lance Taylor  <iant@google.com>
++2010-05-20  Jakub Jelinek  <jakub@redhat.com>
 +
-+      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.
++      PR target/44074
++      * configure: Regenerate.
 +
-+2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
++2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
 +
-+      PR target/32163
-+      Backport from mainline.
-+      * config/sh/sh.md (symGOT_load): Don't schedule insns when
-+      the symbol is generated with the stack protector.
++      PR target/44202
++      * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
++      settings for 16-bit-constant "addo" alternative.
 +
-+2007-06-06  Ian Lance Taylor  <iant@google.com>
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 +
-+      * fold-const.c (merge_ranges): If range_successor or
-+      range_predecessor fail, just return 0.
++      Backport from mainline:
++      2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 +
-+2007-06-05  Ian Lance Taylor  <iant@google.com>
++      PR target/44074
++      * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
++      * configure: Regenerate.
++      * config.in: Regenerate.
++      * config/i386/i386.c (print_operand) <case ;>: Also print ; if
++      !HAVE_AS_IX86_REP_LOCK_PREFIX.
++      Don't emit whitespace.
++      * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
++      (*rep_movsi): Likewise.
++      (*rep_movsi_rex64): Likewise.
++      (*rep_movqi): Likewise.
++      (*rep_movqi_rex64): Likewise.
++      (*rep_stosdi_rex64): Likewise.
++      (*rep_stossi): Likewise.
++      (*rep_stossi_rex64): Likewise.
++      (*rep_stosqi): Likewise.
++      (*rep_stosqi_rex64): Likewise.
++      (*cmpstrnqi_nz_1): Use {%;} after repz.
++      (*cmpstrnqi_nz_rex_1): Likewise.
++      (*cmpstrnqi_1): Likewise.
++      (*cmpstrnqi_rex_1): Likewise.
++      (*strlenqi_1): Use {%;} after repnz.
++      (*strlenqi_rex_1): Likewise.
++      * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
++      (*sync_compare_and_swap<mode>): Likewise.
++      (sync_double_compare_and_swap<mode>): Likewise.
++      (*sync_double_compare_and_swapdi_pic): Likewise.
++      (sync_old_add<mode>): Likewise.
++      (sync_add<mode>): Likewise.
++      (sync_sub<mode>): Likewise.
++      (sync_<code><mode>): Likewise.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * doc/sourcebuild.texi (Directives): Document optional
++      dg-require-effective-target selector.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
++      hidden alias bug.
++      (gcc_cv_as_ix86_quad): Check for .quad directive.
++      * configure: Regenerate.
++      * config.in: Regenerate.
++      * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
 +
-+      * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
-+      PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
-+      (extract_range_from_assert): Set TREE_NO_WARNING when creating an
-+      expression.
-+      (test_for_singularity): Likewise.
++2010-05-17  Alan Modra  <amodra@gmail.com>
 +
-+2007-06-04  Ian Lance Taylor  <iant@google.com>
++      * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
++      unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
++      with copy_reg rtx param.
++      (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
++      Correct cases where code for ABI_V4 did not initialise the reg
++      used to access frame.  Also leave frame_reg_rtx as sp for large
++      frames that save no regs.
 +
-+      * tree-vrp.c (adjust_range_with_scev): When loop is not expected
-+      to overflow, reduce overflow infinity to regular infinity.
-+      (vrp_var_may_overflow): New static function.
-+      (vrp_visit_phi_node): Check vrp_var_may_overflow.
++2010-05-12  Jakub Jelinek  <jakub@redhat.com>
 +
-+2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
++      PR middle-end/44085
++      * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
++      change value of ORT_TASK.
++      (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
++      (omp_notice_threadprivate_variable): New function.
++      (omp_notice_variable): Call it for threadprivate variables.
++      If enclosing ctx is a task, print enclosing task rather than
++      enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
++      (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
++      if task has untied clause.
 +
-+      Backport from mainline:
-+      2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
++2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
-+      * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
-+      with MASK_SSE2.
-+      (__builtin_ia32_vec_ext_v2di): Likewise.
-+      (__builtin_ia32_vec_ext_v4si): Likewise.
-+      (__builtin_ia32_vec_ext_v8hi): Likewise.
-+      (__builtin_ia32_vec_set_v8hi): Likewise.
++      PR documentation/44016
++      * doc/standards.texi (Standards): Link to unversioned
++      cxx0x_status.html page.
 +
-+2007-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
++2010-05-05  Kaz Kojima  <kkojima@gcc.gnu.org>
 +
 +      Backport from mainline:
-+      2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
-+
-+      * config/pa/pa.md: Split tgd_load, tld_load and tie_load
-+      into pic and non-pic versions. Mark r19 as used for 
-+      tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used 
-+      for tgd_load, tld_load and tie_load .
-+      * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
-+      version of tgd_load, tld_load and tie_load depending on the 
-+      value of flag_pic.
-+
-+2007-05-27  Daniel Berlin <dberlin@dberlin.org>
-+
-+      Fix PR/30052
-+      Backport PTA solver from mainline
-+
-+      * pointer-set.c: Copy from mainline
-+      * pointer-set.h: Ditto.
-+      * tree-ssa-structalias.c: Copy solver portions from mainline.
-+      * Makefile.in (tree-ssa-structalias.o): Update dependencies
-+
-+2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
++      2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
 +
-+      * tree-vrp.c (compare_names): Initialize sop.
++      PR target/43744
++      * config/sh/sh.c (find_barrier): Don't emit a constant pool
++      in the middle of insns for casesi_worker_2.
 +
-+2007-05-30  Jakub Jelinek  <jakub@redhat.com>
++2010-05-05  Jason Merrill  <jason@redhat.com>
 +
-+      PR tree-optimization/31769
-+      * except.c (duplicate_eh_regions): Clear prev_try if
-+      ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
++      PR debug/43370
++      * c-common.c (handle_aligned_attribute): Respect
++      ATTR_FLAG_TYPE_IN_PLACE.
 +
-+2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
++2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+      PR tree-opt/32100
-+      * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
-+      return true when truth_value_p is true and the type
-+      is of signed:1.
++      Backport from mainline
++      2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
++      PR middle-end/43671
++      * alias.c (true_dependence): Handle the same VALUE in x and mem.
++      (canon_true_dependence): Likewise.
++      (write_dependence_p): Likewise.
 +
-+      Backport from mainline:
-+      2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
++2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
 +
-+      * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
-+      "memory" attribute for "sseishft" type insn without operands[2].
++      * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
++      when processing flag options.
 +
-+      2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
++2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
 +
-+      * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
++      * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
++      the variable part of the offset as well.  Use highest_pow2_factor for
++      all alignment checks.
 +
-+2007-05-22  Ian Lance Taylor  <iant@google.com>
++2010-04-30  Jakub Jelinek  <jakub@redhat.com>
 +
-+      * tree-vrp.c (avoid_overflow_infinity): New static function,
-+      broken out of set_value_range_to_value.
-+      (set_value_range_to_value): Call avoid_overflow_infinity.
-+      (extract_range_from_assert): Likewise.
++      PR c/43893
++      * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
 +
-+2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
 +
-+      PR target/30987
-+      * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): remove.
-+      * config/score/predicate.md (const_pow2, const_npow2): remove.
-+      * config/score/score.h (ASM_OUTPUT_EXTERNAL): add ASM_OUTPUT_EXTERNAL undef.
-+      PR target/30474
-+      * config/score/score.c (score_print_operand): makes sure that only lower 
-+      bits are used.
-+      
-+2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/31167
-+      Backport from mainline.
-+      * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
-+      x86_64_general_operand as operand[2] predicate.  Remove "iF"
-+      from operand constraints and use "e" constraint instead.
-+      (*subti3_1, *subti3_1 splitter): Ditto.
-+      (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
-+      operand[1] predicate.
-+
-+2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/30041
-+      Backport from mainline.
-+      * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
-+      operands[1] in insn constraint.  Correct type attribute to sselog1.
-+
-+2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
-+
-+      PR target/31701
-+      Backport from mainline.
-+      * config/sh/sh.c (output_stack_adjust): Avoid using the frame
-+      register itself to hold the offset constant.  Tell flow the use
-+      of r4 and r5 when they are used.
-+
-+2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
-+
-+      PR target/31480
-+      Backport from mainline.
-+      * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
-+      is null.
-+
-+2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
-+
-+      PR target/31022
-+      Backport from mainline.
-+      * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
-+      instead of PATTERN.
-+
-+2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>
-+
-+      PR target/27405
-+      Backport from mainline.
-+      * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
-+      (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
-+      cmp{eq,gt,gtu}{si,di}_media.
-+      (*cmpne0si_media): Remove.
-+      (*movsicc_umin): Adjust gen_cmp*_media call.
-+      (unordered): Change the mode of unordered and operands[1] to
-+      SImode.
-+      (seq): Adjust gen_cmp*_media calls.  Make the mode of
-+      a temporary result of compare SImode if needed.  If the mode
-+      of operands[0] is DImode, extend the temporary result to DImode.
-+      (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
-+      (sunorderd): Change the mode of match_operand and unorderd to
-+      SImode.
-+      (cmpeq{sf,df}_media): Remove.
-+      (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
-+      (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
-+      and compare operation to SImode.
-+
-+2007-05-18  Joseph Myers  <joseph@codesourcery.com>
-+
-+      * config/soft-fp/double.h, config/soft-fp/extended.h,
-+      config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
-+      config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
-+      config/soft-fp/op-2.h, config/soft-fp/op-4.h,
-+      config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
-+      glibc CVS.
-+
-+2007-05-17  Ian Lance Taylor  <iant@google.com>
-+
-+      PR tree-optimization/31953
-+      * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
-+      Change all callers.
-+      (set_value_range_to_null): Call set_value_range_to_value.
-+      (extract_range_from_comparison): Likewise.
-+
-+2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
-+
-+      PR rtl-optimization/31691
-+      * combine.c (simplify_set): Build a new src pattern instead of
-+      substituting its operands in the COMPARE case.
-+
-+2007-05-14  Mark Mitchell  <mark@codesourcery.com>
-+
-+      * BASE-VER: Set to 4.2.1.
++      * BASE-VER: Set to 4.4.5.
 +      * DEV-PHASE: Set to prerelease.
 +
- 2007-05-13  Release Manager
+ 2010-04-29  Release Manager
  
-       * GCC 4.2.0 released.
-@@ -307,7 +589,8 @@
- 2007-04-03  Stuart Hastings  <stuart@apple.com>
+       * GCC 4.4.4 released.
+@@ -72,8 +274,8 @@
+ 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
  
-       PR 31281
--      * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
-+      * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile
-+      from rethrow decl.
-       * cse.c (record_jump_equiv): Bail out on CCmode comparisons.
+       * config/s390/s390.c (override_options): Adjust the z10
+-          defaults for max-unroll-times, max-completely-peeled-insns
+-          and max-completely-peel-times.
++      defaults for max-unroll-times, max-completely-peeled-insns
++      and max-completely-peel-times.
  
- 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
-Index: gcc/testsuite/gcc.c-torture/execute/20070614-1.c
+ 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
+Index: gcc/testsuite/gcc.c-torture/execute/20100430-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);
+--- gcc/testsuite/gcc.c-torture/execute/20100430-1.c   (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/20100430-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,51 @@
++/* This used to generate unaligned accesses at -O2 because of IVOPTS.  */
 +
-+_Complex v = 3.0 + 1.0iF;
-+
-+void
-+foo (_Complex z, int *x)
++struct packed_struct
 +{
-+  if (z != v)
-+    abort ();
-+}
-+
-+_Complex bar (_Complex z) __attribute__ ((pure));
-+_Complex
-+bar (_Complex z)
++  struct packed_struct1
++  {
++    unsigned char cc11;
++    unsigned char cc12;
++  } __attribute__ ((packed)) pst1;
++  struct packed_struct2
++  {
++    unsigned char cc21;
++    unsigned char cc22;
++    unsigned short ss[104];
++    unsigned char cc23[13];
++  } __attribute__ ((packed)) pst2[4];
++} __attribute__ ((packed));
++
++typedef struct
 +{
-+  return v;
-+}
++  int ii;
++  struct packed_struct buf;
++} info_t;
 +
-+int
-+baz (void)
-+{
-+  int a, i;
-+  for (i = 0; i < 6; i++)
-+    foo (bar (1.0iF * i), &a);
-+  return 0;
-+}
++static unsigned short g;
 +
-+int
-+main ()
++static void __attribute__((noinline))
++dummy (unsigned short s)
 +{
-+  baz ();
-+  return 0;
++  g = s;
 +}
-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)    (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);
-+
-+struct T
++static int
++foo (info_t *info)
 +{
-+  int b : 1;
-+} t;
++  int i, j;
 +
-+void __attribute__((noinline)) foo (int f)
-+{
-+  t.b = (f & 0x10) ? 1 : 0;
-+}
++  for (i = 0; i < info->buf.pst1.cc11; i++)
++    for (j = 0; j < info->buf.pst2[i].cc22; j++)
++      dummy (info->buf.pst2[i].ss[j]);
 +
-+int main (void)
-+{
-+  foo (0x10);
-+  if (!t.b)
-+    abort ();
 +  return 0;
 +}
-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)    (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 <stephaniechc-gccbug@yahoo.com> */
-+
-+extern void abort (void);
-+
-+static int get_kind(int) __attribute__ ((noinline));
 +
-+static int get_kind(int v)
++int main(void)
 +{
-+  volatile int k = v;
-+  return k;
++  info_t info;
++  info.buf.pst1.cc11 = 2;
++  info.buf.pst2[0].cc22 = info.buf.pst2[1].cc22 = 8;
++  return foo (&info);
 +}
-+
-+static int some_call(void) __attribute__ ((noinline));
-+
-+static int some_call(void)
+Index: gcc/testsuite/gcc.c-torture/execute/pr44202-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr44202-1.c    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr44202-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,30 @@
++extern __attribute__ ((__noreturn__)) void exit(int);
++extern __attribute__ ((__noreturn__)) void abort(void);
++__attribute__ ((__noinline__))
++int
++add512(int a, int *b)
 +{
-+  return 0;
++  int c = a + 512;
++  if (c != 0)
++    *b = a;
++  return c;
 +}
 +
-+static void example (int arg)
++__attribute__ ((__noinline__))
++int
++add513(int a, int *b)
 +{
-+  int tmp, kind = get_kind (arg);
-+
-+  if (kind == 9 || kind == 10 || kind == 5)
-+    {
-+      if (some_call() == 0)
-+        {
-+          if (kind == 9 || kind == 10)
-+            tmp = arg;
-+          else
-+            abort();
-+        }
-+    }
-+} 
++  int c = a + 513;
++  if (c == 0)
++    *b = a;
++  return c;
++}
 +
 +int main(void)
 +{
-+  example(10);
-+  return 0;
++  int b0 = -1;
++  int b1 = -1;
++  if (add512(-512, &b0) != 0 || b0 != -1 || add513(-513, &b1) != 0 || b1 != -513)
++    abort ();
++  exit (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);
+Index: gcc/testsuite/gcc.c-torture/compile/pr43845.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43845.c      (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43845.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,12 @@
++typedef int __attribute__ ((const)) (*x264_pixel_cmp_t)(void);
++
++typedef struct {
++    x264_pixel_cmp_t ssd;
++} x264_pixel_function_t;
++
++int x264_pixel_ssd_wxh (x264_pixel_function_t *pf, int i_width) {
++    int i_ssd = 0, x;
++    for (x = 0; x < i_width; x++)
++      i_ssd += pf->ssd();
++    return i_ssd;
 +}
-+int prepare_startup_playback_urb(
-+     int b,
-+     int c
-+)
+Index: gcc/testsuite/gcc.target/i386/20060512-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/20060512-3.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/20060512-3.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-std=gnu99 -msse2 -mstackrealign -mpreferred-stack-boundary=4" } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/crc32-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/crc32-4.c    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/i386/crc32-4.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,9 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -mno-sse4.2" } */
++/* { dg-final { scan-assembler "__builtin_ia32_crc32di" } } */
++
++unsigned long long
++crc32d (unsigned long long x, unsigned long long y)
 +{
-+  char d;
-+  if (b)
-+    __memset_generic(c == ( 1) ? 0x80 : 0);
-+  else
-+    __memset_generic (c == ( 1) ? 0x80 : 0);
++  return __builtin_ia32_crc32di (x, y);
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr31953.c
-===================================================================
---- 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
-+{
-+  int hexedit_mode:1;
-+};
-+toggle_hexedit_mode (struct WView *view)
-+{
-+  if (view->hexedit_mode)
-+    {
-+    }
-+  else
-+    {
-+      view->hexedit_mode = !view->hexedit_mode;
-+    }
+Index: gcc/testsuite/gcc.target/i386/sse2-pminub-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pminub-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pminub-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/i386.exp
+===================================================================
+--- gcc/testsuite/gcc.target/i386/i386.exp     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/i386.exp     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -24,6 +24,29 @@
+ # Load support procs.
+ load_lib gcc-dg.exp
++# Return 1 if 3dnow instructions can be compiled.
++proc check_effective_target_3dnow { } {
++    return [check_no_compiler_messages 3dnow object {
++      void _m_pfadd (void)
++      {
++          __builtin_ia32_pfadd();
++      }
++    } "-O2 -m3dnow" ]
 +}
-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 @@
++
++# Return 1 if sse3 instructions can be compiled.
++proc check_effective_target_sse3 { } {
++    return [check_no_compiler_messages sse3 object {
++      typedef double __m128d __attribute__ ((__vector_size__ (16)));
++      typedef double __v2df __attribute__ ((__vector_size__ (16)));
++
++      __m128d _mm_addsub_pd (__m128d __X, __m128d __Y)
++      {
++          return (__m128d) __builtin_ia32_addsubpd ((__v2df)__X, (__v2df)__Y);
++      }
++    } "-O2 -msse3" ]
++}
++
+ # Return 1 if ssse3 instructions can be compiled.
+ proc check_effective_target_ssse3 { } {
+     return [check_no_compiler_messages ssse3 object {
+Index: gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pslldq-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-minsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-minsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-minsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr40906-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40906-3.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr40906-3.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target *-*-linux* } } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -fomit-frame-pointer -msse2 -mpush-args -mno-accumulate-outgoing-args" } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-15.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-15.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-15.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { 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-options "-O2 -msse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* Test that the intrinsics compile with optimization.  These were not
+    tested in i386-sse-[12].c because these builtins require immediate
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-2.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpgtd-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpcklbw-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlw-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-shufps-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-shufps-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-shufps-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr23570.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr23570.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr23570.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { 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)));
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
  
- int64_t foo (vec8 a, vec8 b) {
  int64_t d = 0;
-Index: gcc/testsuite/gcc.target/sparc/fexpand.c
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
typedef float __m128 __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/fpcvt-3.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 @@
+--- gcc/testsuite/gcc.target/i386/fpcvt-3.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/fpcvt-3.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { 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-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ extern double fabs (double);
+ float a,b;
+Index: gcc/testsuite/gcc.target/i386/pr42542-3a.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-3a.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr42542-3a.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { 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
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
  
- extern vec16 foo1_16(void);
--extern void foo2_16(vec8);
-+extern void foo2_16(vec16);
+ #include "pr42542-3.c"
  
+Index: gcc/testsuite/gcc.target/i386/pr39445.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39445.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr39445.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-Os -msse2" } */
++/* { dg-require-effective-target sse2 } */
  
- vec16 fun16(void)
-@@ -38,7 +38,7 @@
- #endif
- extern vec32 foo1_32(void);
--extern void foo2_32(vec8);
-+extern void foo2_32(vec32);
+ #include "sse2-check.h"
  
- vec32 fun32(void)
- {
-Index: gcc/testsuite/gcc.target/sparc/mfpu.c
+Index: gcc/testsuite/gcc.target/i386/opt-2.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 <peter.a.krauss@web.de> */
-+
-+/* { dg-do compile } */
-+/* { dg-options "-mfpu" } */
-+
-+float square(float x)
-+{
-+  return x * x;
+--- gcc/testsuite/gcc.target/i386/opt-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/opt-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2,6 +2,7 @@
+    whether we vectorize a simple loop.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "prefetcht0" } } */
+ /* { dg-final { scan-assembler "addps" } } */
+ /* { dg-final { scan-assembler "subss" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmaxub-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-maxsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmaddwd-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpcklqdq-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movntpd-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v16qi-2.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse-17.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-17.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-17.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+ #include <xmmintrin.h>
+ extern void abort();
+Index: gcc/testsuite/gcc.target/i386/vararg-7.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-7.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vararg-7.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-shufpd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psllq-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllq-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psllq-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtss2sd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-2.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psubsw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhwd-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefp-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefp-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssefp-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "maxsd" } } */
+ /* { dg-final { scan-assembler "minsd" } } */
+ double x;
+Index: gcc/testsuite/gcc.target/i386/sse3-addsubps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-addsubps.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-addsubps.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse3-lddqu.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-lddqu.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-lddqu.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/float128-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/float128-1.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/float128-1.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target *-*-linux* } } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vecinit-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ int a;
+Index: gcc/testsuite/gcc.target/i386/pr35767-2d.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-2d.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-2d.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubq-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psubq-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlq-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/fpprec-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpprec-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/fpprec-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-math-errno -fno-trapping-math -msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr40809.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr40809.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr40809.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-mulsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-addsubpd.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-addsubpd.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-addsubpd.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse-19.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-19.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-19.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "punpcklbw" } } */
+ extern void abort();
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pminsw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-4.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psraw-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psraw-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psraw-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movupd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movupd-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movupd-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubb-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psubb-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-4.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vecinit-4.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ short a;
+Index: gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-xorpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pavgb-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-1.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/incoming-1.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-paddq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddq-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddq-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize2.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vectorize2.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
+ double a[256];
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtpd2dq-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr28839.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr28839.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr28839.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -ftree-vectorize -funswitch-loops" } */
++/* { dg-require-effective-target sse2 } */
+ static int ready[10];
+ void abort (void);
+Index: gcc/testsuite/gcc.target/i386/pr36222-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36222-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr36222-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqu-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37434-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37434-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr37434-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmaxsw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpgtw-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/3dnowA-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnowA-2.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/3dnowA-2.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -m3dnow" } */
+ /* Test that the intrinsics compile without optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-6.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssetype-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssetype-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "andpd" } } */
+ /* { dg-final { scan-assembler "andnpd" } } */
+ /* { dg-final { scan-assembler "xorpd" } } */
+Index: gcc/testsuite/gcc.target/i386/pr35767-1i.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-1i.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-1i.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-6.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vecinit-6.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ int a, b;
+Index: gcc/testsuite/gcc.target/i386/pr41019.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr41019.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr41019.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddb-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddb-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movq-1.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movq-1.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-3.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/incoming-3.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp
+===================================================================
+--- gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,7 @@
+ # This harness is for tests that should be run at all optimisation levels.
++load_lib target-supports.exp
++
+ # Exit immediately if this isn't a x86 target.
+ if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then {
+   return
+@@ -9,27 +11,31 @@
+         { -O0 } \
+         { -O0 -mfpmath=387 } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse } \
+-        { -O0 -msse -msse2 -mfpmath=sse } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse,387 } \
+-        { -O0 -msse -msse2 -mfpmath=sse,387 } \
+         { -O0 -mfpmath=387 -ffast-math } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse -ffast-math } \
+-        { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \
+         { -O0 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
+-        { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
+         { -O2 } \
+         { -O2 -mfpmath=387 } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse } \
+-        { -O2 -msse -msse2 -mfpmath=sse } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse,387 } \
+-        { -O2 -msse -msse2 -mfpmath=sse,387 } \
+         { -O2 -mfpmath=387 -ffast-math } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse -ffast-math } \
+-        { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \
+         { -O2 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
+-        { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
+ ]
++if { [check_effective_target_sse2] } {
++    lappend MATH_TORTURE_OPTIONS \
++        { -O0 -msse -msse2 -mfpmath=sse } \
++        { -O0 -msse -msse2 -mfpmath=sse,387 } \
++        { -O0 -msse -msse2 -mfpmath=sse -ffast-math } \
++        { -O0 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
++        { -O2 -msse -msse2 -mfpmath=sse } \
++        { -O2 -msse -msse2 -mfpmath=sse,387 } \
++        { -O2 -msse -msse2 -mfpmath=sse -ffast-math } \
++        { -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
 +}
 +
-+/* { dg-final { scan-assembler "fmuls" } } */
-Index: gcc/testsuite/gcc.target/sparc/noresult.c
+ load_lib gcc-dg.exp
+ load_lib torture-options.exp
+Index: gcc/testsuite/gcc.target/i386/sse2-addpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-addpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-addpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pslld-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pslld-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pslld-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-3.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-3.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target dfp } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O -msse2 -std=gnu99" } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize4.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vectorize4.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
+ /* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue.  */
+Index: gcc/testsuite/gcc.target/i386/sseregparm-3.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 @@
+--- gcc/testsuite/gcc.target/i386/sseregparm-3.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sseregparm-3.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtpd2ps-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-packssdw-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr42549.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42549.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr42549.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O2 -m3dnow" } */
+ #include "mmx-3dnow-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssetype-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-4.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssetype-4.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { dg-do compile } */
- /* { dg-options "-mcpu=ultrasparc -mvis" } */
- typedef short vec16 __attribute__((vector_size(8)));
--typedef char vec8 __attribute__((vector_size(4)));
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "andps" } } */
+ /* { dg-final { scan-assembler "andnps" } } */
+ /* { dg-final { scan-assembler "xorps" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-movapd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movapd-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movapd-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movlpd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psubd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrld-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrld-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrld-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr36578-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36578-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr36578-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* Test for unsafe floating-point conversions.  */
+ /* { dg-do run } */
+ /* { dg-options "-msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
  
- void foo (vec16 a) {
-   __builtin_vis_fpack16 (a);
-Index: gcc/testsuite/gcc.target/sparc/fpmerge.c
+Index: gcc/testsuite/gcc.target/i386/pr32000-1.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 @@
+--- gcc/testsuite/gcc.target/i386/pr32000-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr32000-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target dfp } */
+ /* { dg-options "-O -msse2 -std=gnu99" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pand-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pand-1.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pand-1.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movq-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movq-3.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movq-3.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/pr39496.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39496.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr39496.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR target/39496 */
+ /* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */
+ /* { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ /* Verify that {foo,bar}{,2}param are all passed on the stack, using
+    normal calling conventions, when not optimizing.  */
+ /* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } } */
+Index: gcc/testsuite/gcc.target/i386/pr35767-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-5.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-5.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* Test that we generate aligned load when memory is aligned.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O -msse2 -mtune=generic" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "movups" } } */
+ /* { dg-final { scan-assembler "movaps" } } */
+Index: gcc/testsuite/gcc.target/i386/vectorize6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize6.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vectorize6.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { 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-options "-O2 -msse2 -ftree-vectorize -mveclibabi=svml -ffast-math" } */
++/* { dg-require-effective-target sse2 } */
+ double x[256];
+Index: gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddsb-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-5.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sseregparm-5.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
  /* { 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-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-unpckhpd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-10.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-10.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-10.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" { target *-*-mingw* *-*-cygwin* } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtps2dq-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr39162.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39162.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr39162.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -mno-avx" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__));
+Index: gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-andpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-andpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-andpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-2.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-2a.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mtune=core2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr42542-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr42542-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movmskpd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37101.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37101.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr37101.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
  /* { 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)));
+ /* { dg-options "-O2 -msse2 -ftree-vectorize -march=nocona" } */
++/* { dg-require-effective-target sse2 } */
  
- vec8 foo (vec16 a) {
  return __builtin_vis_fpack16 (a);
-Index: gcc/testsuite/gcc.target/i386/sse2-vec-3.c
+ typedef __SIZE_TYPE__ size_t;
extern void *malloc (size_t);
+Index: gcc/testsuite/gcc.target/i386/sse2-divpd-1.c
 ===================================================================
---- 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" } */
-+
-+#include "sse2-check.h"
-+
-+#include <emmintrin.h>
-+
-+static void
-+sse2_test (void)
-+{
-+  union
-+    {
-+      __m128i x;
-+      char c[16];
-+      short s[8];
-+      int i[4];
-+      long long ll[2];
-+    } val1;
-+  int res[4];
-+  int masks[4];
-+  int i;
-+
-+  for (i = 0; i < 16; i++)
-+    val1.c[i] = i;
-+
-+  res[0] = __builtin_ia32_vec_ext_v4si ((__v4si)val1.x, 0);
-+  res[1] = __builtin_ia32_vec_ext_v4si ((__v4si)val1.x, 1);
-+  res[2] = __builtin_ia32_vec_ext_v4si ((__v4si)val1.x, 2);
-+  res[3] = __builtin_ia32_vec_ext_v4si ((__v4si)val1.x, 3);
-+
-+  for (i = 0; i < 4; i++)
-+    masks[i] = i;
-+
-+  for (i = 0; i < 4; i++)
-+    if (res[i] != val1.i [masks[i]])
-+      abort ();
-+}
-Index: gcc/testsuite/gcc.target/i386/pr32389.c
+--- gcc/testsuite/gcc.target/i386/sse2-divpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-divpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.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 <vapier@gentoo.org>  */
-+
-+/* { 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/sse2-set-epi64x-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-epi64x-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c
 ===================================================================
---- 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" } */
-+
-+typedef int int32_t;
-+
-+int32_t round32hi (const __int128_t arg)
-+{
-+  const int SHIFT = 96;
-+  const int mshift = 96;
-+  const __int128_t M = (~(__int128_t) 0) << mshift;
-+  const __int128_t L = (~M) + 1;
-+  const __int128_t L1 = ((__int128_t) L) >> 1;
-+  const __int128_t Mlo = ((__int128_t) (~M)) >> 1;
-+  __int128_t vv = arg & M;
-+
-+  if ((arg & (L1)) && ((arg & Mlo) || (arg & L)))
-+    vv += L;
-+
-+  return (int32_t) (vv >> SHIFT);
-+}
-Index: gcc/testsuite/gcc.target/i386/sse2-vec-4.c
+--- gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-7.c
 ===================================================================
---- 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" } */
-+
-+#include "sse2-check.h"
-+
-+#include <emmintrin.h>
-+
-+static void
-+sse2_test (void)
-+{
-+  union
-+    {
-+      __m128i x;
-+      char c[16];
-+      short s[8];
-+      int i[4];
-+      long long ll[2];
-+    } val1;
-+  short res[8];
-+  int masks[8];
-+  int i;
-+
-+  for (i = 0; i < 16; i++)
-+    val1.c[i] = i;
-+
-+  res[0] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 0);
-+  res[1] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 1);
-+  res[2] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 2);
-+  res[3] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 3);
-+  res[4] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 4);
-+  res[5] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 5);
-+  res[6] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 6);
-+  res[7] = __builtin_ia32_vec_ext_v8hi ((__v8hi)val1.x, 7);
-+
-+  for (i = 0; i < 8; i++)
-+    masks[i] = i;
-+
-+  for (i = 0; i < 8; i++)
-+    if (res[i] != val1.s [masks[i]])
-+      abort ();
-+}
-Index: gcc/testsuite/gcc.target/i386/sse2-check.h
+--- gcc/testsuite/gcc.target/i386/sseregparm-7.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sseregparm-7.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/sse3-movshdup.c
 ===================================================================
---- 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 <stdio.h>
-+#include <stdlib.h>
-+
-+#include "../../gcc.dg/i386-cpuid.h"
+--- gcc/testsuite/gcc.target/i386/sse3-movshdup.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-movshdup.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/quad-sse.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/quad-sse.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/quad-sse.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ __float128 x, y;
+Index: gcc/testsuite/gcc.target/i386/pr42881.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42881.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr42881.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,8 @@
+ /* PR target/42881 */
+ /* { dg-do run } */
+ /* { dg-options "-O0 -msse2" } */
++/* { dg-require-effective-target sse2 } */
 +
-+static void sse2_test (void);
+ #include "sse2-check.h"
+ static void
+ sse2_test (void)
+Index: gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddusb-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-2.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vararg-2.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-w" { target { lp64 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+ #include <stdarg.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmulhw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/3dnow-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnow-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/3dnow-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow" } */
+ /* Test that the intrinsics compile with optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqa-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhdq-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/xorps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/xorps.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/xorps.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-Os -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __m128 __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-movd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movd-1.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movd-1.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-4.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrad-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrad-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrad-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttpd2dq-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-4.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-4.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movhpd-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/crc32-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/crc32-3.c    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/i386/crc32-3.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,10 @@
++/* { dg-do compile } */
++/* { dg-require-effective-target ilp32 } */
++/* { dg-options "-O2 -msse4.2" } */
++/* { dg-final { scan-assembler "__builtin_ia32_crc32di" } } */
 +
-+int
-+main ()
++unsigned long long
++crc32d (unsigned long long x, unsigned long long y)
 +{
-+  unsigned long cpu_facilities;
-+ 
-+  cpu_facilities = i386_cpuid_edx ();
-+
-+  /* Run SSE2 test only if host has SSE2 support.  */
-+  if ((cpu_facilities & bit_SSE2))
-+    sse2_test ();
-+
-+  exit (0);
++  return __builtin_ia32_crc32di (x, y);
 +}
+Index: gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-packsswb-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psllw-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllw-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psllw-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-hsubps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-hsubps.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-hsubps.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpeqb-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtps2pd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpcklwd-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-4.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vararg-4.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttsd2si-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-hsubpd.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-hsubpd.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-hsubpd.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-psubw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubw-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psubw-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlw-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr26600.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr26600.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr26600.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ void foo(int *p, int N)
+ {
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-6.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/fpcvt-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpcvt-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/fpcvt-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ float a,b;
+ main()
+Index: gcc/testsuite/gcc.target/i386/sse2-addsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-addsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-addsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-6.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-6.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pavgw-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefn-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefn-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssefn-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -3,6 +3,7 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "movss" } } */
+ /* { dg-final { scan-assembler "mulss" } } */
+ /* { dg-final { scan-assembler "movsd" } } */
+Index: gcc/testsuite/gcc.target/i386/xorps-sse2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/xorps-sse2.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/xorps-sse2.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* Test that we generate xorps when the result is used in FP math.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O -msse2 -mno-sse3" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "xorps\[ \t\]" { xfail *-*-* } } } */
+ /* { dg-final { scan-assembler-not "pxor" { xfail *-*-* } } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-unpack-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-unpack-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-unpack-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/opt-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/opt-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/opt-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2,6 +2,7 @@
+    whether we vectorize a simple loop.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "prefetcht0" } } */
+ /* { dg-final { scan-assembler "addps" } } */
+ /* { dg-final { scan-assembler "subss" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsi2sd-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v16qi-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr33329.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr33329.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr33329.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ extern void g (int *);
+Index: gcc/testsuite/gcc.target/i386/sse2-psllq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllq-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psllq-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-haddps.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-haddps.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-haddps.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef 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)    (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" } */
-+
-+#include "sse2-check.h"
-+
-+#include <emmintrin.h>
-+
-+#define msk0   0
-+#define msk1   1
-+
-+static void
-+sse2_test (void)
-+{
-+  union
-+    {
-+      __m128d x;
-+      double d[2];
-+    } val1;
-+  double res[2];
-+  int masks[2];
-+  int i;
-+
-+  val1.d[0] = 23.;
-+  val1.d[1] = 45;
-+
-+  res[0] = __builtin_ia32_vec_ext_v2df ((__v2df)val1.x, msk0);
-+  res[1] = __builtin_ia32_vec_ext_v2df ((__v2df)val1.x, msk1);
-+
-+  masks[0] = msk0;
-+  masks[1] = msk1;
-+
-+  for (i = 0; i < 2; i++)
-+    if (res[i] != val1.d [masks[i]])
-+      abort ();
-+}
+--- gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-1.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr27790.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr27790.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr27790.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ void binarize (int npixels, unsigned char *b)
+ {
+Index: gcc/testsuite/gcc.target/i386/pr35767-1d.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-1d.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-1d.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddw-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddw-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefn-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefn-4.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssefn-4.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -3,6 +3,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-vect-types.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-vect-types.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-vect-types.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/vecinit-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vecinit-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ float a;
+Index: gcc/testsuite/gcc.target/i386/sse3-haddpd.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-haddpd.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-haddpd.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvttps2dq-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32661.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32661.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr32661.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpeqd-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v16qi-3.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse2-mmx.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-mmx.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-mmx.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-18.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-18.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-18.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O3 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr18614-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr18614-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr18614-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR rtl-optimization/18614 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef double v2df __attribute__ ((vector_size (16)));
+Index: gcc/testsuite/gcc.target/i386/vararg-8.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-8.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vararg-8.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-divsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-divsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhqdq-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-vec-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-3.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psraw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psraw-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psraw-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssefp-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssefp-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssefp-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "maxsd" } } */
+ /* { dg-final { scan-assembler "minsd" } } */
+ double x;
+Index: gcc/testsuite/gcc.target/i386/sse2-movupd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movupd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movupd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr30970.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr30970.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr30970.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile }
+ /* { dg-options "-msse2 -O2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #define N 256
+ int b[N];
+Index: gcc/testsuite/gcc.target/i386/float128-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/float128-2.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/float128-2.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2,6 +2,7 @@
+ /* { dg-do run { target *-*-linux* *-*-darwin* } } */
+ /* { dg-options "-Os -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-3.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vecinit-3.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ char a;
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckhbw-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrlq-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrldq-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddsw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr22152.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr22152.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr22152.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <mmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-packuswb-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr37843-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37843-3.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr37843-3.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* Test for stack alignment with sibcall optimization.  */
+ /* { dg-do compile { target { ilp32 && nonpic } } } */
+ /* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
+ /* { dg-final { scan-assembler-not "call\[\\t \]*foo" } } */
+ /* { dg-final { scan-assembler "jmp\[\\t \]*foo" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pshuflw-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-andnpd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqu-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr23575.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr23575.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr23575.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
++/* { dg-require-effective-target sse2 } */
+ /* We used to ICE because of a bogous pattern.  */
 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)    (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" } */
-+
-+#include "sse2-check.h"
+--- gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-vec-5.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/3dnowA-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnowA-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/3dnowA-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -m3dnow" } */
+ /* Test that the intrinsics compile with optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/ssetype-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssetype-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* This test checks for absolute memory operands.  */
+ /* { dg-require-effective-target nonpic } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtdq2ps-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-subpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-subpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-subpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-sqrtpd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vecinit-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vecinit-5.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vecinit-5.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define vector __attribute__((vector_size(16)))
+ float a, b;
+Index: gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-movsldup.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-movsldup.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-movsldup.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-unpcklpd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/incoming-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-2.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/incoming-2.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-por-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-por-1.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-por-1.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-paddusw-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pslld-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pslld-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pslld-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vectorize3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vectorize3.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vectorize3.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 -mfpmath=sse" } */
+ float a[256];
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/pr37434-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr37434-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr37434-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mtune=core2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/pr35714.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35714.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35714.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ssetype-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ssetype-3.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssetype-3.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* This test checks for absolute memory operands.  */
+ /* { dg-require-effective-target nonpic } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-movapd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movapd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movapd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtdq2pd-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-minpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-minpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-minpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/unordcmp-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/unordcmp-1.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/unordcmp-1.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "cmpunordss" } } */
+ /* { dg-final { scan-assembler "cmpunordps" } } */
+ /* { dg-final { scan-assembler "cmpunordsd" } } */
+Index: gcc/testsuite/gcc.target/i386/pr36578-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36578-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr36578-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* Test for unsafe floating-point conversions.  PR 36578.  */
+ /* { dg-do run } */
+ /* { dg-options "-msse2 -mfpmath=sse" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr35767-2i.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr35767-2i.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr35767-2i.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psubsb-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32961.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32961.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr32961.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-movq-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movq-2.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movq-2.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-4.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-4.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* This testcase caused a buffer overflow in simplify_immed_subreg.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/incoming-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/incoming-4.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/incoming-4.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do compile { target { { ! *-*-darwin* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsd2si-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-epi32-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpeqw-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse3-movddup.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse3-movddup.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse3-movddup.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do run } */
++/* { dg-require-effective-target sse3 } */
+ /* { dg-options "-O2 -msse3 -mfpmath=sse" } */
+ #ifndef CHECK_H
+Index: gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmovmskb-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-punpckldq-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-4.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-4.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sseregparm-4.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/pr43671.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr43671.c    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr43671.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,27 @@
++/* { dg-do run } */
++/* { dg-require-effective-target ilp32 } */
++/* { dg-options "-mtune=i686 -O1 -fpeel-loops -fschedule-insns2 -ftree-vectorize -fsched2-use-superblocks" } */
 +
-+#include <emmintrin.h>
++extern void abort ();
 +
-+static void
-+sse2_test (void)
++int main ()
 +{
-+  union
-+    {
-+      __m128i x;
-+      char c[16];
-+      short s[8];
-+      int i[4];
-+      long long ll[2];
-+    } val1;
-+  char res[16];
-+  int masks[16];
++  struct {
++    char ca[16];
++  } s;
 +  int i;
 +
 +  for (i = 0; i < 16; i++)
-+    val1.c[i] = i;
-+
-+  res[0] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 0);
-+  res[1] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 1);
-+  res[2] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 2);
-+  res[3] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 3);
-+  res[4] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 4);
-+  res[5] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 5);
-+  res[6] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 6);
-+  res[7] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 7);
-+  res[8] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 8);
-+  res[9] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 9);
-+  res[10] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 10);
-+  res[11] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 11);
-+  res[12] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 12);
-+  res[13] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 13);
-+  res[14] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 14);
-+  res[15] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 15);
++    {
++      s.ca[i] = 5;
++    }
 +
-+  for (i = 0; i < 16; i++)
-+    masks[i] = i;
 +
 +  for (i = 0; i < 16; i++)
-+    if (res[i] != val1.c [masks[i]])
-+      abort ();
-+}
-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)    (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" } */
-+
-+#include "sse2-check.h"
-+
-+#include <emmintrin.h>
-+
-+static void
-+sse2_test (void)
-+{
-+  union
 +    {
-+      __m128i x;
-+      char c[16];
-+      short s[8];
-+      int i[4];
-+      long long ll[2];
-+    } val1;
-+  long long res[2];
-+  int masks[2];
-+  int i;
++      if (s.ca[i] != 5)
++        abort ();
++    }
 +
-+  for (i = 0; i < 16; i++)
-+    val1.c[i] = i;
-+
-+  res[0] = __builtin_ia32_vec_ext_v2di ((__v2di)val1.x, 0);
-+  res[1] = __builtin_ia32_vec_ext_v2di ((__v2di)val1.x, 1);
-+
-+  for (i = 0; i < 2; i++)
-+    masks[i] = i;
-+
-+  for (i = 0; i < 2; i++)
-+    if (res[i] != val1.ll [masks[i]])
-+      abort ();
++  return 0;
 +}
-Index: gcc/testsuite/gcc.target/i386/sse2-vec-6.c
+Index: gcc/testsuite/gcc.target/i386/ssetype-5.c
 ===================================================================
---- 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" } */
-+
-+#include "sse2-check.h"
-+
-+#include <emmintrin.h>
-+#include <string.h>
-+
-+static void
-+sse2_test (void)
-+{
-+  union
-+    {
-+      __m128i x;
-+      char c[16];
-+      short s[8];
-+      int i[4];
-+      long long ll[2];
-+    } val1, res[16], tmp;
-+  short ins[8] = { 8, 5, 9, 4, 2, 6, 1, 20 };
-+  int masks[8];
-+  int i;
-+
-+  for (i = 0; i < 16; i++)
-+    val1.c[i] = i;
-+
-+  res[0].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 0);
-+  res[1].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 1);
-+  res[2].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 2);
-+  res[3].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 3);
-+  res[4].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 4);
-+  res[5].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 5);
-+  res[6].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 6);
-+  res[7].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                  ins[0], 7);
-+
-+  for (i = 0; i < 8; i++)
-+    masks[i] = i;
-+
-+  for (i = 0; i < 8; i++)
-+    {
-+      tmp.x = val1.x;
-+      tmp.s[masks[i]] = ins[0];
-+      if (memcmp (&tmp, &res[i], sizeof (tmp)))
-+      abort ();
-+    }
-+
-+  for (i = 0; i < 8; i++)
-+    {
-+      res[i].x = (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)val1.x,
-+                                                      ins[i], 0);
-+      masks[i] = 0;
-+    }
-+
-+  for (i = 0; i < 8; i++)
-+    {
-+      tmp.x = val1.x;
-+      tmp.s[masks[i]] = ins[i];
-+      if (memcmp (&tmp, &res[i], sizeof (tmp)))
-+      abort ();
-+    }
+--- gcc/testsuite/gcc.target/i386/ssetype-5.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ssetype-5.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* This test checks for absolute memory operands.  */
+ /* { dg-require-effective-target nonpic } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movlpd-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-set-v8hi-1a.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mtune=core2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #define CHECK_H "sse2-check.h"
+ #define TEST sse2_test
+Index: gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-maxpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-psrld-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrld-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrld-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32000-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32000-2.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr32000-2.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-skip-if "" { ! { ilp32 && dfp } } } */
+ /* { dg-options "-O -msse2 -std=gnu99 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr42542-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr42542-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-6.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-6.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/ordcmp-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/ordcmp-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/ordcmp-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler "cmpordss" } } */
+ /* { dg-final { scan-assembler "cmpordps" } } */
+ /* { dg-final { scan-assembler "cmpordsd" } } */
+Index: gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmulhuw-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sseregparm-6.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sseregparm-6.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sseregparm-6.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+Index: gcc/testsuite/gcc.target/i386/push-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/push-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/push-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-w -msse2 -Os" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.target/i386/pr26449-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr26449-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr26449-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -mtune=k8" } */
++/* { dg-require-effective-target sse2 } */
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse-11.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse-11.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse-11.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR rtl-optimization/21239 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vararg-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-w" { target { lp64 } } } */
+ /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+ #include <stdarg.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-cvtsd2ss-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-mulpd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pcmpgtb-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-3.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32280.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32280.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr32280.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/pr42542-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42542-3.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr42542-3.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-3.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-3.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/20060512-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/20060512-1.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/20060512-1.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-std=gnu99 -msse2 -mpreferred-stack-boundary=4" } */
++/* { dg-require-effective-target sse2 } */
+ #include "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movhpd-1.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr36992-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr36992-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr36992-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile }
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-psllw-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psllw-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psllw-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/funcspec-9.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/funcspec-9.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/funcspec-9.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* Test whether using target specific options, we can generate SSE5 code.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -march=k8 -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ extern void exit (int);
+Index: gcc/testsuite/gcc.target/i386/sse2-subsd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-subsd-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-subsd-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movntdq-1.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pxor-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pxor-1.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pxor-1.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movsd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movsd-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movsd-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-pandn-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-pandn-1.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-pandn-1.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/vararg-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/vararg-3.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/vararg-3.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <assert.h>
+Index: gcc/testsuite/gcc.target/i386/3dnow-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/3dnow-2.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/3dnow-2.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-do assemble } */
++/* { dg-require-effective-target 3dnow } */
+ /* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow" } */
+ /* Test that the intrinsics compile without optimization.  All of them are
+Index: gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movdqa-2.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/reload-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/reload-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/reload-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O3 -msse2 -fdump-rtl-csa" } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.target/i386/sse2-orpd-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-orpd-1.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-orpd-1.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-movd-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-movd-2.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-movd-2.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-ucomisd-5.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/fpcvt-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/fpcvt-1.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/fpcvt-1.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ float a,b;
+ main()
+Index: gcc/testsuite/gcc.target/i386/sse2-psrad-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-psrad-2.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-psrad-2.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr32708-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr32708-1.c  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr32708-1.c  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/gcc.target/i386/sse2-comisd-5.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/sse2-comisd-5.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/sse2-comisd-5.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #ifndef CHECK_H
+ #define CHECK_H "sse2-check.h"
+Index: gcc/testsuite/gcc.target/i386/pr17692.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr17692.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.target/i386/pr17692.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O -mfpmath=sse -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ /* The fact that t1 and t2 are uninitialized is critical.  With them
+    uninitialized, the register allocator is free to put them in the same
+    hard register, which results in
+Index: gcc/testsuite/ada/acats/run_acats
+===================================================================
+--- gcc/testsuite/ada/acats/run_acats  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/ada/acats/run_acats  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -5,10 +5,25 @@
+    exit 1
+ fi
++# Provide which replacement.
++#
++# type -p is missing from Solaris 2 /bin/sh and /bin/ksh (ksh88), but both
++# ksh93 and bash have it.
++# type output format differs between ksh88 and ksh93, so avoid it if
++# type -p is present.
++# Fall back to whence which ksh88 and ksh93 provide, but bash does not.
++
++which () {
++    type -p $* 2>/dev/null && return 0
++    type $* 2>/dev/null | awk '{print $3}' && return 0
++    whence $* 2>/dev/null && return 0
++    return 1
 +}
-Index: gcc/testsuite/gcc.dg/Wstrict-overflow-18.c
++
+ # Set up environment to use the Ada compiler from the object tree
+-host_gnatchop=`type gnatchop | awk '{print $3}'`
+-host_gnatmake=`type gnatmake | awk '{print $3}'`
++host_gnatchop=`which gnatchop`
++host_gnatmake=`which gnatmake`
+ ROOT=`${PWDCMD-pwd}`
+ BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}`
+Index: gcc/testsuite/gcc.dg/pr34856.c
 ===================================================================
---- 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 @@
+--- gcc/testsuite/gcc.dg/pr34856.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/pr34856.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -msse2" { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-options "-O2 -maltivec" { target { powerpc*-*-linux* && powerpc_altivec_ok } } } */
+ typedef unsigned __attribute__ ((__mode__ (__pointer__))) uintptr_t;
+Index: gcc/testsuite/gcc.dg/gomp/pr44085.c
+===================================================================
+--- gcc/testsuite/gcc.dg/gomp/pr44085.c        (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/gomp/pr44085.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,27 @@
++/* PR middle-end/44085 */
 +/* { dg-do compile } */
-+/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */
++/* { dg-require-effective-target tls_native } */
++/* { dg-options "-fopenmp" } */
 +
-+/* Don't warn about an overflow when folding i > 0.  The loop analysis
-+   should determine that i does not wrap.  */
++int thr1, thr2;
++#pragma omp threadprivate (thr1, thr2)
 +
-+struct c { unsigned int a; unsigned int b; };
-+extern void bar (struct c *);
-+int
-+foo (struct c *p)
++void
++foo (void)
 +{
-+  int i;
-+  int sum = 0;
-+
-+  for (i = 0; i < p->a - p->b; ++i)
-+    {
-+      if (i > 0)
-+      sum += 2;
-+      bar (p);
-+    }
-+  return sum;
++#pragma omp task untied       /* { dg-error "enclosing task" } */
++  {
++    thr1++;           /* { dg-error "used in untied task" } */
++    thr2 |= 4;                /* { dg-error "used in untied task" } */
++  }
 +}
-Index: gcc/testsuite/gcc.dg/Wstrict-overflow-19.c
-===================================================================
---- 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" } */
 +
-+/* Don't warn about an overflow when threading jumps.  We used to get
-+   a warning from comparing bounds generated by VRP.  */
-+
-+int
-+bar(int a, int b, int n)
++void
++bar (void)
 +{
-+  if (b > a)
-+    n = a - b;
-+  if (a >= b)
-+    n = 1;
-+  return n;
++#pragma omp task
++  {
++    thr1++;
++    thr2 |= 4;
++  }
++}
+Index: gcc/testsuite/gcc.dg/torture/pr35771-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr35771-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/pr35771-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <stdarg.h>
+ #include <emmintrin.h>
+Index: gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/push-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/stackalign/push-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37010 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2 -mpreferred-stack-boundary=2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR middle-end/37009 */
+ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/pr35771-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr35771-2.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/pr35771-2.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.dg/torture/pr16104-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr16104-1.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/pr16104-1.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR rtl-optimization/16104 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/torture/pr35771-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr35771-3.c   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/torture/pr35771-3.c   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+Index: gcc/testsuite/gcc.dg/pr37544.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr37544.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/pr37544.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -msse2 -mtune=core2 -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
+ #ifdef __i386__
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details" } */
+ #define N 1000
+Index: gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
++/* { dg-require-effective-target sse2 } */
+ /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 --param max-unrolled-insns=1 -fdump-tree-aprefetch-details -fdump-tree-final_cleanup" } */
+ #define K 1000000
+Index: gcc/testsuite/gcc.dg/pr36584.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr36584.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/pr36584.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,8 +1,8 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -lm" } */
+ /* { dg-options "-O2 -msse2 -mfpmath=sse" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
++/* { dg-require-effective-target sse2 { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+-
+ #ifdef __i386__
+ #include "cpuid.h"
+ #endif
+Index: gcc/testsuite/gcc.dg/compat/union-m128-1_main.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compat/union-m128-1_main.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/compat/union-m128-1_main.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-skip-if "test SSE2 support" { ! { i?86-*-* x86_64-*-* } } } */
+ /* { dg-options "-O" } */
++/* { dg-require-effective-target sse2 } */
+ #include "cpuid.h"
+Index: gcc/testsuite/gcc.dg/compat/vector-1a_main.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compat/vector-1a_main.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/compat/vector-1a_main.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-skip-if "test SSE2 vector" { ! { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 } */
+ /* Test compatibility of vector types: layout between separately-compiled
+    modules, parameter passing, and function return.  This test uses
+Index: gcc/testsuite/gcc.dg/compat/vector-2a_main.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compat/vector-2a_main.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/compat/vector-2a_main.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,5 @@
+ /* { dg-skip-if "test SSE2 support" { ! { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 } */
+ /* Test compatibility of vector types: layout between separately-compiled
+    modules, parameter passing, and function return.  This test uses
+Index: gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp
+===================================================================
+--- gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
++# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008, 2010
+ # Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+@@ -39,6 +39,9 @@
+ global dg-do-what-default
+ set save-dg-do-what-default ${dg-do-what-default}
++if { ![check_effective_target_sse2] } then {
++  return
 +}
+ lappend DEFAULT_VECTCFLAGS "-msse2"
+ if [check_sse2_hw_available] {
+     set dg-do-what-default run
+Index: gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
+===================================================================
+--- gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ /* PR debug/41926 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -g -ffast-math -funroll-loops -ftree-vectorize -msse2" { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } */
+ void
+ foo (double (*__restrict p)[4], double (*__restrict q)[4],
+Index: gcc/testsuite/gcc.dg/vect/vect.exp
+===================================================================
+--- gcc/testsuite/gcc.dg/vect/vect.exp (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/vect/vect.exp (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008
++# Copyright (C) 1997, 2004, 2005, 2006, 2007, 2008, 2010
+ # Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+@@ -63,6 +63,9 @@
+ } elseif { [istarget  "spu-*-*"] } {
+    set dg-do-what-default run
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
++    if { ![check_effective_target_sse2] } then {
++      return
++    }
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     if [check_sse2_hw_available] {
+       set dg-do-what-default run
+Index: gcc/testsuite/gcc.dg/pr36997.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr36997.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gcc.dg/pr36997.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,9 +1,10 @@
+ /* { dg-do compile { target x86_64-*-* i?86-*-* } } */
+ /* { dg-options "-std=c99 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
+ __m64 _mm_add_si64 (__m64 __m1, __m64 __m2)
+ {
+     return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2); /* { dg-error "incompatible type" } */
+-    /* { dg-message "note: expected 'long long int __vector__' but argument is of type 'long long int'" "" { target *-*-* } 7 } */
++    /* { dg-message "note: expected 'long long int __vector__' but argument is of type 'long long int'" "" { target *-*-* } 8 } */
+ }
 Index: gcc/testsuite/ChangeLog
 ===================================================================
---- 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  <ubizjak@gmail.com>
-+
-+      PR target/32389
-+      * gcc.target/i386/pr32389.c New test.
-+
-+2007-06-20  Daniel Franke  <franke.daniel@gmail.com>
-+
-+      Backport from trunk:
-+      PR fortran/32002
-+      * gfortran.dg/compliant_elemental_intrinsics_2.f90: New test.
-+
-+2007-06-20  Jakub Jelinek  <jakub@redhat.com>
-+
-+      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  <pault@gcc.gnu.org>
-+
-+      PR fortran/32302
-+      * gfortran.dg/common_resize_1.f90: New test.
-+
-+2007-06-19  Richard Guenther  <rguenther@suse.de>
-+      Michael Matz  <matz@suse.de>
-+
-+      PR tree-optimization/30252
-+      * g++.dg/opt/pr30252.C: New testcase.
-+
-+2007-06-19  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR tree-optimization/32353
-+      * g++.dg/opt/nrv13.C: New test.
-+
-+2007-06-15  Mark Mitchell  <mark@codesourcery.com>
-+
-+      * g++.dg/lookup/anon6.C: New test.
-+
-+2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
-+
-+      * 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  <dnovillo@google.com>
-+
-+      PR 32327
-+      * g++.dg/tree-ssa/pr32327-1.C: New test.
-+      * g++.dg/tree-ssa/pr32327.C: New test.
-+
-+2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
-+
-+      * gcc.target/sparc/mfpu.c: New test.
-+
-+2007-06-09  Ian Lance Taylor  <iant@google.com>
-+
-+      PR tree-optimization/32169
-+      * gcc.c-torture/compile/pr32169.c: New test.
-+
-+2007-06-08  Dirk Mueller  <dmueller@suse.de>
-+
-+      PR c++/31809
-+      Backport from mainline:
-+      2007-05-30  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * g++.dg/opt/static5.C: New test.
-+
-+2007-06-06  Ian Lance Taylor  <iant@google.com>
-+
-+      * g++.dg/conversion/enum1.C: New test.
-+
-+2007-06-05  Ian Lance Taylor  <iant@google.com>
-+
-+      * gcc.dg/Wstrict-overflow-19.c: New test.
-+
-+2007-06-04  Ian Lance Taylor  <iant@google.com>
-+
-+      * gcc.dg/Wstrict-overflow-18.c: New test.
-+
-+2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * gcc.target/i386/sse2-check.h: New.
+--- gcc/testsuite/ChangeLog    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,401 @@
++2010-05-27  Jason Merrill  <jason@redhat.com>
++
++      PR c++/43555
++      * g++.dg/ext/vla9.C: New.
++
++2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
++
++      Backport from mainline
++      2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
++
++      PR target/44245
++      * gcc.target/i386/crc32-3.c: New.
++      * gcc.target/i386/crc32-4.c: Likewise.
++
++2010-05-21  Richard Guenther  <rguenther@suse.de>
++
++      PR tree-optimization/43845
++      * gcc.c-torture/compile/pr43845.c: New testcase.
++
++2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
++
++      PR target/44202
++      * gcc.c-torture/execute/pr44202-1.c: New test.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * lib/target-supports.exp (check_effective_target_sse2): New proc.
++      * lib/target-supports-dg.exp (dg-require-effective-target): Allow
++      for optional selector.
++      * gcc.target/i386/i386.exp (check_effective_target_3dnow): New proc.
++      (check_effective_target_sse3): New proc.
++      * gcc.target/i386/math-torture/math-torture.exp: Load
++      target-supports.exp.
++      Only add options with -msse2 to MATH_TORTURE_OPTIONS if
++      check_effective_target_sse2.
++      * gcc.dg/vect/vect.exp: Return unless check_effective_target_sse2.
++      * gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: Likewise.
++      * g++.dg/vect/vect.exp: Likewise.
++      * gfortran.dg/vect/vect.exp: Likewise.
++      * lib/fortran-torture.exp (get-fortran-torture-options): Only use
++      -msse2 if check_effective_target_sse2.
++
++      * gcc.target/i386/3dnow-1.c: Use dg-require-effective-target 3dnow.
++      * gcc.target/i386/3dnow-2.c: Likewise.
++      * gcc.target/i386/3dnowA-1.c: Likewise.
++      * gcc.target/i386/3dnowA-2.c: Likewise.
++      * gcc.target/i386/pr42549.c: Likewise.
++
++      * gcc.target/i386/sse3-addsubpd.c: Use dg-require-effective-target sse3.
++      * gcc.target/i386/sse3-addsubps.c: Likewise.
++      * gcc.target/i386/sse3-haddpd.c: Likewise.
++      * gcc.target/i386/sse3-haddps.c: Likewise.
++      * gcc.target/i386/sse3-hsubpd.c: Likewise.
++      * gcc.target/i386/sse3-hsubps.c: Likewise.
++      * gcc.target/i386/sse3-lddqu.c: Likewise.
++      * gcc.target/i386/sse3-movddup.c: Likewise.
++      * gcc.target/i386/sse3-movshdup.c: Likewise.
++      * gcc.target/i386/sse3-movsldup.c: Likewise.
++
++      * g++.dg/abi/mangle42.C: Use dg-require-effective-target sse2.
++      * g++.dg/ext/attrib35.C: Likewise.
++      * g++.dg/opt/pr40496.C: Likewise.
++      * g++.dg/other/i386-1.C: Likewise.
++      * g++.dg/other/i386-4.C: Likewise.
++      * g++.dg/other/pr34435.C: Likewise.
++      * g++.dg/other/pr39496.C: Likewise.
++      * g++.dg/other/pr40446.C: Likewise.
++      * gcc.dg/compat/union-m128-1_main.c: Likewise.
++      * gcc.dg/compat/vector-1a_main.c: Likewise.
++      * gcc.dg/compat/vector-2a_main.c: Likewise.
++      * gcc.dg/pr34856.c: Likewise.
++      * gcc.dg/pr36584.c: Likewise.
++      * gcc.dg/pr36997.c: Likewise.  Adapt dg-message line number.
++      * gcc.dg/pr37544.c: Likewise.
++      * gcc.dg/torture/pr16104-1.c: Likewise.
++      * gcc.dg/torture/pr35771-1.c: Likewise.
++      * gcc.dg/torture/pr35771-2.c: Likewise.
++      * gcc.dg/torture/pr35771-3.c: Likewise.
++      * gcc.dg/torture/stackalign/alloca-2.c: Likewise.
++      * gcc.dg/torture/stackalign/alloca-3.c: Likewise.
++      * gcc.dg/torture/stackalign/push-1.c: Likewise.
++      * gcc.dg/torture/stackalign/vararg-3.c: Likewise.
++      * gcc.dg/tree-ssa/prefetch-6.c: Likewise.
++      * gcc.dg/tree-ssa/prefetch-7.c: Likewise.
++      * gcc.dg/vect/vect-debug-pr41926.c: Likewise.
++      * gcc.target/i386/20060512-1.c: Likewise.
++      * gcc.target/i386/20060512-3.c: Likewise.
++      * gcc.target/i386/float128-1.c: Likewise.
++      * gcc.target/i386/float128-2.c: Likewise.
++      * gcc.target/i386/fpcvt-1.c: Likewise.
++      * gcc.target/i386/fpcvt-2.c: Likewise.
++      * gcc.target/i386/fpcvt-3.c: Likewise.
++      * gcc.target/i386/fpprec-1.c: Likewise.
++      * gcc.target/i386/funcspec-9.c: Likewise.
++      * gcc.target/i386/incoming-1.c: Likewise.
++      * gcc.target/i386/incoming-2.c: Likewise.
++      * gcc.target/i386/incoming-3.c: Likewise.
++      * gcc.target/i386/incoming-4.c: Likewise.
++      * gcc.target/i386/opt-1.c: Likewise.
++      * gcc.target/i386/opt-2.c: Likewise.
++      * gcc.target/i386/ordcmp-1.c: Likewise.
++      * gcc.target/i386/pr17692.c: Likewise.
++      * gcc.target/i386/pr18614-1.c: Likewise.
++      * gcc.target/i386/pr22152.c: Likewise.
++      * gcc.target/i386/pr23570.c: Likewise.
++      * gcc.target/i386/pr23575.c: Likewise.
++      * gcc.target/i386/pr26449-1.c: Likewise.
++      * gcc.target/i386/pr26600.c: Likewise.
++      * gcc.target/i386/pr27790.c: Likewise.
++      * gcc.target/i386/pr28839.c: Likewise.
++      * gcc.target/i386/pr30970.c: Likewise.
++      * gcc.target/i386/pr32000-1.c: Likewise.
++      * gcc.target/i386/pr32000-2.c: Likewise.
++      * gcc.target/i386/pr32280.c: Likewise.
++      * gcc.target/i386/pr32661.c: Likewise.
++      * gcc.target/i386/pr32708-1.c: Likewise.
++      * gcc.target/i386/pr32961.c: Likewise.
++      * gcc.target/i386/pr33329.c: Likewise.
++      * gcc.target/i386/pr35714.c: Likewise.
++      * gcc.target/i386/pr35767-1.c: Likewise.
++      * gcc.target/i386/pr35767-1d.c: Likewise.
++      * gcc.target/i386/pr35767-1i.c: Likewise.
++      * gcc.target/i386/pr35767-2.c: Likewise.
++      * gcc.target/i386/pr35767-2d.c: Likewise.
++      * gcc.target/i386/pr35767-2i.c: Likewise.
++      * gcc.target/i386/pr35767-3.c: Likewise.
++      * gcc.target/i386/pr35767-5.c: Likewise.
++      * gcc.target/i386/pr36222-1.c: Likewise.
++      * gcc.target/i386/pr36578-1.c: Likewise.
++      * gcc.target/i386/pr36578-2.c: Likewise.
++      * gcc.target/i386/pr36992-1.c: Likewise.
++      * gcc.target/i386/pr37101.c: Likewise.
++      * gcc.target/i386/pr37434-1.c: Likewise.
++      * gcc.target/i386/pr37434-2.c: Likewise.
++      * gcc.target/i386/pr37843-3.c: Likewise.
++      * gcc.target/i386/pr39162.c: Likewise.
++      * gcc.target/i386/pr39445.c: Likewise.
++      * gcc.target/i386/pr39496.c: Likewise.
++      * gcc.target/i386/pr40809.c: Likewise.
++      * gcc.target/i386/pr40906-3.c: Likewise.
++      * gcc.target/i386/pr41019.c: Likewise.
++      * gcc.target/i386/pr42542-1.c: Likewise.
++      * gcc.target/i386/pr42542-2.c: Likewise.
++      * gcc.target/i386/pr42542-3.c: Likewise.
++      * gcc.target/i386/pr42542-3a.c: Likewise.
++      * gcc.target/i386/pr42881.c: Likewise.
++      * gcc.target/i386/push-1.c: Likewise.
++      * gcc.target/i386/quad-sse.c: Likewise.
++      * gcc.target/i386/reload-1.c: Likewise.
++      * gcc.target/i386/sse-10.c: Likewise.
++      * gcc.target/i386/sse-11.c: Likewise.
++      * gcc.target/i386/sse-15.c: Likewise.
++      * gcc.target/i386/sse-17.c: Likewise.
++      * gcc.target/i386/sse-18.c: Likewise.
++      * gcc.target/i386/sse-19.c: Likewise.
++      * gcc.target/i386/sse-4.c: Likewise.
++      * gcc.target/i386/sse-6.c: Likewise.
++      * gcc.target/i386/sse-vect-types.c: Likewise.
++      * gcc.target/i386/sse2-addpd-1.c: Likewise.
++      * gcc.target/i386/sse2-addsd-1.c: Likewise.
++      * gcc.target/i386/sse2-andnpd-1.c: Likewise.
++      * gcc.target/i386/sse2-andpd-1.c: Likewise.
++      * gcc.target/i386/sse2-comisd-1.c: Likewise.
++      * gcc.target/i386/sse2-comisd-2.c: Likewise.
++      * gcc.target/i386/sse2-comisd-3.c: Likewise.
++      * gcc.target/i386/sse2-comisd-4.c: Likewise.
++      * gcc.target/i386/sse2-comisd-5.c: Likewise.
++      * gcc.target/i386/sse2-comisd-6.c: Likewise.
++      * gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
++      * gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
++      * gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
++      * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
++      * gcc.target/i386/sse2-divpd-1.c: Likewise.
++      * gcc.target/i386/sse2-divsd-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
++      * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
++      * gcc.target/i386/sse2-lrint-vec.c: Likewise.
++      * gcc.target/i386/sse2-lrintf-vec.c: Likewise.
++      * gcc.target/i386/sse2-maxpd-1.c: Likewise.
++      * gcc.target/i386/sse2-maxsd-1.c: Likewise.
++      * gcc.target/i386/sse2-minpd-1.c: Likewise.
++      * gcc.target/i386/sse2-minsd-1.c: Likewise.
++      * gcc.target/i386/sse2-mmx.c: Likewise.
++      * gcc.target/i386/sse2-movapd-1.c: Likewise.
++      * gcc.target/i386/sse2-movapd-2.c: Likewise.
++      * gcc.target/i386/sse2-movd-1.c: Likewise.
++      * gcc.target/i386/sse2-movd-2.c: Likewise.
++      * gcc.target/i386/sse2-movdqa-1.c: Likewise.
++      * gcc.target/i386/sse2-movdqa-2.c: Likewise.
++      * gcc.target/i386/sse2-movdqu-1.c: Likewise.
++      * gcc.target/i386/sse2-movdqu-2.c: Likewise.
++      * gcc.target/i386/sse2-movhpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movhpd-2.c: Likewise.
++      * gcc.target/i386/sse2-movlpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movlpd-2.c: Likewise.
++      * gcc.target/i386/sse2-movmskpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movntdq-1.c: Likewise.
++      * gcc.target/i386/sse2-movntpd-1.c: Likewise.
++      * gcc.target/i386/sse2-movq-1.c: Likewise.
++      * gcc.target/i386/sse2-movq-2.c: Likewise.
++      * gcc.target/i386/sse2-movq-3.c: Likewise.
++      * gcc.target/i386/sse2-movsd-1.c: Likewise.
++      * gcc.target/i386/sse2-movsd-2.c: Likewise.
++      * gcc.target/i386/sse2-movupd-1.c: Likewise.
++      * gcc.target/i386/sse2-movupd-2.c: Likewise.
++      * gcc.target/i386/sse2-mulpd-1.c: Likewise.
++      * gcc.target/i386/sse2-mulsd-1.c: Likewise.
++      * gcc.target/i386/sse2-orpd-1.c: Likewise.
++      * gcc.target/i386/sse2-packssdw-1.c: Likewise.
++      * gcc.target/i386/sse2-packsswb-1.c: Likewise.
++      * gcc.target/i386/sse2-packuswb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddd-1.c: Likewise.
++      * gcc.target/i386/sse2-paddq-1.c: Likewise.
++      * gcc.target/i386/sse2-paddsb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddsw-1.c: Likewise.
++      * gcc.target/i386/sse2-paddusb-1.c: Likewise.
++      * gcc.target/i386/sse2-paddusw-1.c: Likewise.
++      * gcc.target/i386/sse2-paddw-1.c: Likewise.
++      * gcc.target/i386/sse2-pand-1.c: Likewise.
++      * gcc.target/i386/sse2-pandn-1.c: Likewise.
++      * gcc.target/i386/sse2-pavgb-1.c: Likewise.
++      * gcc.target/i386/sse2-pavgw-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
++      * gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
++      * gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmaxub-1.c: Likewise.
++      * gcc.target/i386/sse2-pminsw-1.c: Likewise.
++      * gcc.target/i386/sse2-pminub-1.c: Likewise.
++      * gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
++      * gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmulhw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmullw-1.c: Likewise.
++      * gcc.target/i386/sse2-pmuludq-1.c: Likewise.
++      * gcc.target/i386/sse2-por-1.c: Likewise.
++      * gcc.target/i386/sse2-psadbw-1.c: Likewise.
++      * gcc.target/i386/sse2-pshufd-1.c: Likewise.
++      * gcc.target/i386/sse2-pshufhw-1.c: Likewise.
++      * gcc.target/i386/sse2-pshuflw-1.c: Likewise.
++      * gcc.target/i386/sse2-pslld-1.c: Likewise.
++      * gcc.target/i386/sse2-pslld-2.c: Likewise.
++      * gcc.target/i386/sse2-pslldq-1.c: Likewise.
++      * gcc.target/i386/sse2-psllq-1.c: Likewise.
++      * gcc.target/i386/sse2-psllq-2.c: Likewise.
++      * gcc.target/i386/sse2-psllw-1.c: Likewise.
++      * gcc.target/i386/sse2-psllw-2.c: Likewise.
++      * gcc.target/i386/sse2-psrad-1.c: Likewise.
++      * gcc.target/i386/sse2-psrad-2.c: Likewise.
++      * gcc.target/i386/sse2-psraw-1.c: Likewise.
++      * gcc.target/i386/sse2-psraw-2.c: Likewise.
++      * gcc.target/i386/sse2-psrld-1.c: Likewise.
++      * gcc.target/i386/sse2-psrld-2.c: Likewise.
++      * gcc.target/i386/sse2-psrldq-1.c: Likewise.
++      * gcc.target/i386/sse2-psrlq-1.c: Likewise.
++      * gcc.target/i386/sse2-psrlq-2.c: Likewise.
++      * gcc.target/i386/sse2-psrlw-1.c: Likewise.
++      * gcc.target/i386/sse2-psrlw-2.c: Likewise.
++      * gcc.target/i386/sse2-psubb-1.c: Likewise.
++      * gcc.target/i386/sse2-psubd-1.c: Likewise.
++      * gcc.target/i386/sse2-psubq-1.c: Likewise.
++      * gcc.target/i386/sse2-psubsb-1.c: Likewise.
++      * gcc.target/i386/sse2-psubsw-1.c: Likewise.
++      * gcc.target/i386/sse2-psubw-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
++      * gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
++      * gcc.target/i386/sse2-punpckldq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
++      * gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
++      * gcc.target/i386/sse2-pxor-1.c: Likewise.
++      * gcc.target/i386/sse2-set-epi32-1.c: Likewise.
++      * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
++      * gcc.target/i386/sse2-set-v16qi-1.c: Likewise.
++      * gcc.target/i386/sse2-set-v16qi-2.c: Likewise.
++      * gcc.target/i386/sse2-set-v16qi-3.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-1.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-1a.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-2.c: Likewise.
++      * gcc.target/i386/sse2-set-v8hi-2a.c: Likewise.
++      * gcc.target/i386/sse2-shufpd-1.c: Likewise.
++      * gcc.target/i386/sse2-shufps-1.c: Likewise.
++      * gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
++      * gcc.target/i386/sse2-subpd-1.c: Likewise.
++      * gcc.target/i386/sse2-subsd-1.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-1.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-2.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-3.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-4.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-5.c: Likewise.
++      * gcc.target/i386/sse2-ucomisd-6.c: Likewise.
++      * gcc.target/i386/sse2-unpack-1.c: Likewise.
++      * gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
++      * gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
 +      * gcc.target/i386/sse2-vec-1.c: Likewise.
 +      * gcc.target/i386/sse2-vec-2.c: Likewise.
 +      * gcc.target/i386/sse2-vec-3.c: Likewise.
 +      * gcc.target/i386/sse2-vec-4.c: Likewise.
 +      * gcc.target/i386/sse2-vec-5.c: Likewise.
 +      * gcc.target/i386/sse2-vec-6.c: Likewise.
++      * gcc.target/i386/sse2-xorpd-1.c: Likewise.
++      * gcc.target/i386/ssefn-2.c: Likewise.
++      * gcc.target/i386/ssefn-4.c: Likewise.
++      * gcc.target/i386/ssefp-1.c: Likewise.
++      * gcc.target/i386/ssefp-2.c: Likewise.
++      * gcc.target/i386/sseregparm-3.c: Likewise.
++      * gcc.target/i386/sseregparm-4.c: Likewise.
++      * gcc.target/i386/sseregparm-5.c: Likewise.
++      * gcc.target/i386/sseregparm-6.c: Likewise.
++      * gcc.target/i386/sseregparm-7.c: Likewise.
++      * gcc.target/i386/ssetype-1.c: Likewise.
++      * gcc.target/i386/ssetype-2.c: Likewise.
++      * gcc.target/i386/ssetype-3.c: Likewise.
++      * gcc.target/i386/ssetype-4.c: Likewise.
++      * gcc.target/i386/ssetype-5.c: Likewise.
++      * gcc.target/i386/unordcmp-1.c: Likewise.
++      * gcc.target/i386/vararg-1.c: Likewise.
++      * gcc.target/i386/vararg-2.c: Likewise.
++      * gcc.target/i386/vararg-3.c: Likewise.
++      * gcc.target/i386/vararg-4.c: Likewise.
++      * gcc.target/i386/vararg-7.c: Likewise.
++      * gcc.target/i386/vararg-8.c: Likewise.
++      * gcc.target/i386/vecinit-1.c: Likewise.
++      * gcc.target/i386/vecinit-2.c: Likewise.
++      * gcc.target/i386/vecinit-3.c: Likewise.
++      * gcc.target/i386/vecinit-4.c: Likewise.
++      * gcc.target/i386/vecinit-5.c: Likewise.
++      * gcc.target/i386/vecinit-6.c: Likewise.
++      * gcc.target/i386/vectorize2.c: Likewise.
++      * gcc.target/i386/vectorize3.c: Likewise.
++      * gcc.target/i386/vectorize4.c: Likewise.
++      * gcc.target/i386/vectorize6.c: Likewise.
++      * gcc.target/i386/xorps-sse2.c: Likewise.
++      * gcc.target/i386/xorps.c: Likewise.
++
++2010-05-19  Jason Merrill  <jason@redhat.com>
++
++      PR c++/44193
++      * g++.dg/template/fntype1.C: New.
++
++2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
++
++      PR fortran/44135
++      * gfortran.dg/actual_array_interface_2.f90: New test.
++
++2010-05-13  Jakub Jelinek  <jakub@redhat.com>
++
++      PR fortran/44036
++      * gfortran.dg/gomp/pr44036-1.f90: New test.
++      * gfortran.dg/gomp/pr44036-2.f90: New test.
++      * gfortran.dg/gomp/pr44036-3.f90: New test.
++
++      PR middle-end/44085
++      * gcc.dg/gomp/pr44085.c: New test.
++      * gfortran.dg/gomp/pr44085.f90: New test.
++
++2010-05-05  Jason Merrill  <jason@redhat.com>
++
++      PR debug/43370
++      * g++.dg/ext/attrib39.C: New.
++
++2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
++
++      Backport from mainline
++      2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
++
++      PR middle-end/43671
++      * gcc.target/i386/pr43671.c: New.
++
++2010-05-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * ada/acats/run_acats (which): New function.
++      (host_gnatchop, host_gnatmake): Use it.
++
++2010-04-30  DJ Delorie  <dj@redhat.com>
++
++      * gcc.c-torture/execute/20100430-1.c: New test.
++
+ 2010-04-29  Release Manager
+       * GCC 4.4.4 released.
+Index: gcc/testsuite/g++.dg/other/i386-4.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/i386-4.C        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/other/i386-4.C        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O1 -msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/g++.dg/other/pr39496.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/pr39496.C       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/other/pr39496.C       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ // PR target/39496
+ // { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } }
+ // { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" }
++// { dg-require-effective-target sse2 }
+ // Verify that {foo,bar}{,2}param are all passed on the stack, using
+ // normal calling conventions, when not optimizing.
+ // { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } }
+Index: gcc/testsuite/g++.dg/other/pr40446.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/pr40446.C       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/other/pr40446.C       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ // PR middle-end/40446
+ // { dg-do run { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-O1 -msse2" }
++// { dg-require-effective-target sse2 }
+ #include <emmintrin.h>
+ #include "cpuid.h"
+Index: gcc/testsuite/g++.dg/other/i386-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/i386-1.C        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/other/i386-1.C        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <xmmintrin.h>
+Index: gcc/testsuite/g++.dg/other/pr34435.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/pr34435.C       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/other/pr34435.C       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-msse2" } */
++/* { dg-require-effective-target sse2 } */
+ #include <emmintrin.h>
+Index: gcc/testsuite/g++.dg/ext/vla9.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/vla9.C    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/vla9.C    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,38 @@
++// PR c++/43555
++// { dg-options "" }
++// { dg-do run }
 +
-+2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/31483
-+      * gfortran.dg/altreturn_5.f90: New test.
-+
-+      PR fortran/31540
-+      * gfortran.dg/char_result_5.f90: New test.
-+
-+      PR fortran/31867
-+      * gfortran.dg/char_length_5.f90: New test.
-+
-+      PR fortran/31994
-+      * gfortran.dg/array_reference_1.f90: New test.
-+
-+2007-05-22  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/31559
-+      Backport from mainline.
-+      * primary.c (match_variable): External functions
-+      are no variables.
-+
-+2007-05-30  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR tree-optimization/31769
-+      * g++.dg/gomp/pr31769.C: New test.
-+
-+2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
-+
-+      PR tree-opt/32100
-+      * gcc.c-torture/execute/vrp-7.c: New test.
-+       
-+2007-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libfortran/31964
-+      * gfortran.fortran-torture/execute/intrinsic_bitops.f90: Update.
-+
-+2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libgfortran/31051
-+      * gfortran.dg/fmt_t_3.f90: New.
-+
-+2007-05-22  Dominique d'Humieres  <dominiq@lps.ens.fr>
-+
-+      * gfortran.dg/unf_io_convert_3.f90: Fix dg directive.
-+
-+2007-05-22  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/31559
-+      Backport from mainline.
-+      * func_assign.f90: New test.
-+
-+2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/31167
-+      Backport from mainline.
-+      * gcc.target/i386/pr31167.c: New test.
-+
-+2007-05-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libgfortran/31395
-+      * gfortran.dg/fmt_colon.f90: New test.
-+
-+2007-05-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
-+
-+      PR fortran/31618
-+      Backport from trunk.
-+      * gfortran.dg/backspace_8.f:  New test case.
-+
-+2007-05-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
-+
-+      PR libfortran/31196
-+      Backport from trunk.
-+      * gfortran.dg/reshape_transpose_1.f90:  New test.
-+
-+2007-05-17  Ian Lance Taylor  <iant@google.com>
-+
-+      PR tree-optimization/31953
-+      * gcc.c-torture/compile/pr31953.c: New test.
-+
-+2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
-+
-+      * gcc.c-torture/execute/20070517-1.c: New test.
-+
-+2007-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
-+
-+      PR fortran/31725
-+      * gfortran.dg/substr_4.f: New test.
-+
- 2007-05-13  Release Manager
-       * 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)    (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
-    k = 12
--
-+   a = 5
-+   
-    if (.not. btest (i, o+1)) call abort
-    if (btest (i, o+2)) call abort
-    if (iand (i, j) .ne. 2) call abort
-@@ -26,4 +27,6 @@
-    if (ishftc (k, o-30) .ne. 48) call abort
-    if (ishftc (k, o+1, o+3) .ne. 9) call abort
-    if (not (i) .ne. -3) call abort
-+   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));
-+}
++extern "C" void * malloc (__SIZE_TYPE__);
++extern "C" int printf (const char *, ...);
++extern "C" void abort(void);
 +
-+inline int64 int64_from_double(const double& source) {
-+ int64 dest;
-+ memcpy(&dest, &source, sizeof(dest));
-+ return dest;
-+}
++int nx,ny;
 +
-+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 f(double *x1d,int choice)
++{
++  double (*x2d)[nx][ny]=(double(*)[nx][ny])x1d;
++  unsigned long delta;
++//  (*x2d)[0][0]=123; // <- this line affects the result
++  if (choice!=0)
++  {
++    delta=&(*x2d)[1][0]-x1d;
++  }
++  else
++  {
++    delta=&(*x2d)[1][0]-x1d;
++  }
++  printf("Choice: %d, Delta: %ld\n",choice,delta);
++  if (delta != ny)
++    abort ();
 +}
 +
-+
-+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()
++{
++  double *data;
++  nx=100;
++  ny=100;
++  data=(double*)malloc(nx*ny*sizeof(double));
++  f(data,0);
++  f(data,1);
++  return 0;
 +}
-+
-+int main() {
-+ TestKeyFromDouble(0x0123456789abcdefull);
-+ return 0;
+Index: gcc/testsuite/g++.dg/ext/attrib35.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/attrib35.C        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/ext/attrib35.C        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ // { dg-do compile { target i*86-*-* x86_64-*-* } }
+ // { dg-options "-O3 -msse2" }
++// { dg-require-effective-target sse2 }
+ // You can make NON-template typedefs with a large alignment.
+ typedef double AlignedDoubleType __attribute__((aligned(16)));
+Index: gcc/testsuite/g++.dg/ext/attrib39.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/attrib39.C        (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/attrib39.C        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,9 @@
++// PR debug/43370
++// { dg-options "-g" }
++
++int fragile_block(void) {
++  typedef __attribute__ ((aligned (16))) struct {
++    int i;
++  } XmmUint16;
++  return 0;
 +}
-Index: gcc/testsuite/g++.dg/tree-ssa/pr32327.C
+Index: gcc/testsuite/g++.dg/vect/vect.exp
 ===================================================================
---- 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)
+--- gcc/testsuite/g++.dg/vect/vect.exp (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/vect/vect.exp (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 2004, 2007, 2008, 2010 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -71,6 +71,9 @@
+ } elseif { [istarget  "spu-*-*"] } {
+    set dg-do-what-default run
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
++    if { ![check_effective_target_sse2] } then {
++      return
++    }
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     if [check_sse2_hw_available] {
+       set dg-do-what-default run
+Index: gcc/testsuite/g++.dg/opt/pr40496.C
+===================================================================
+--- gcc/testsuite/g++.dg/opt/pr40496.C (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/opt/pr40496.C (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,6 @@
+ // { dg-do compile }
+ // { dg-options "-O2 -fprefetch-loop-arrays -msse2" { target i?86-*-* x86_64-*-* } }
++// { dg-require-effective-target sse2 { target i?86-*-* x86_64-*-* } }
+ struct DOMStringHandle
+ {
+Index: gcc/testsuite/g++.dg/abi/mangle42.C
+===================================================================
+--- gcc/testsuite/g++.dg/abi/mangle42.C        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/g++.dg/abi/mangle42.C        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,7 @@
+ // Origin: PR c++/43375
+ // { dg-do compile { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-msse2 -std=gnu++0x" }
++// { dg-require-effective-target sse2 }
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+Index: gcc/testsuite/g++.dg/template/fntype1.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/fntype1.C    (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/fntype1.C    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,26 @@
++bool f(int i) { return i != 5; }
++
++template <class X, class P = bool(X)>
++struct Traits
 +{
-+ // __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;
-+}
++ typedef P type;
++};
 +
-+inline uint64
-+double_2_uint64 (const double *source)
++template <class X, class P = typename Traits<X>::type>
++struct S
 +{
-+ 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
++ const P& p_;
++ S( const P& p ) : p_(p) {} // const reference
++};
 +
-+void foo (void *x)
++template <class X>
++S<X> make_s(const typename Traits<X>::type & p) // const reference
 +{
-+  if (*((uint64 *)x) != (uint64) EXPECTED)
-+    abort ();
++ return S<X>(p); // << HERE
 +}
 +
-+int main ()
-+{
-+  if (sizeof (double) != sizeof (uint64))
-+    return 0;
-+
-+  if (sizeof (uint64) == sizeof (unsigned long int))
-+    return 0;
 +
-+  KeyFromDouble ((double)NUM);
-+
-+  return 0;
++int main()
++{
++ make_s<int>(f);
 +}
-Index: gcc/testsuite/g++.dg/conversion/enum1.C
+Index: gcc/testsuite/lib/target-supports-dg.exp
 ===================================================================
---- 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" }
-+
-+enum E { V = 1 };
-+static const E E_MIN = V;
-+static const E E_MAX = V;
-+
-+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)    (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" }
-+// { dg-do compile }
-+
-+struct B
-+{
-+  B () {}
-+  virtual ~B () {}
-+};
-+struct C
-+{
-+  C (int x, int y) {}
-+};
-+template<typename T, int U>
-+struct D
-+{
-+  D () {}
-+  ~D () {}
-+};
-+struct E
-+{
-+  E () {}
-+  ~E () {}
-+  D<int, 1> e;
-+};
-+struct A
-+{
-+  B *b;
-+  A () { b = __null; }
-+  ~A () { if (b != __null) delete b; }
-+};
-+struct F : public A
-+{
-+  explicit F (int x) { foo (0); }
-+  F (const F &x) {}
-+  F (F &x, C y) {}
-+  F operator () (C x) const
-+  {
-+    return F (const_cast<F &>(*this), x);
-+  }
-+  template <typename U> F & operator+= (const U &);
-+  void foo (int);
-+  E f;
-+};
-+
-+int
-+main ()
-+{
-+  try
-+  {
-+    F f (10);
-+    F g (10);
-+    C h (0, 9);
-+#pragma omp parallel for
-+    for (int i = 0; i < 2; ++i)
-+      g += f (h);
-+  }
-+  catch (int &e)
-+  {
-+  }
-+}
-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 <class T_type>
-+  struct type_trait
-+  {
-+    typedef T_type& pass;
-+    typedef const T_type& take;
-+    typedef T_type* pointer;
-+  };
-+  template <class T_base, class T_derived>
-+  struct is_base_and_derived
-+  {
-+    struct big {
-+      char memory[64];
-+    };
-+    static big is_base_class_(...);
-+    static char is_base_class_(typename type_trait<T_base>::pointer);
-+    static const bool value =
-+    sizeof(is_base_class_(reinterpret_cast<typename type_trait<T_derived>::pointer>(0))) ==
-+    sizeof(char);
-+  };
-+  struct nil;
-+  struct functor_base {};
-+  template <class T_functor, bool I_derives_functor_base=is_base_and_derived<functor_base,T_functor>::value>
-+  struct functor_trait
-+  {
-+  };
-+  template <class T_functor>
-+  struct functor_trait<T_functor,true>
-+  {
-+    typedef typename T_functor::result_type result_type;
-+    typedef T_functor functor_type;
-+  };
-+  template <class T_arg1, class T_return>
-+  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<T_arg1>::take _A_a1) const
-+    { return func_ptr_(_A_a1); }
-+  };
-+  template <class T_arg1, class T_return>
-+  inline pointer_functor1<T_arg1, T_return>
-+  ptr_fun1(T_return (*_A_func)(T_arg1))
-+  { return pointer_functor1<T_arg1, T_return>(_A_func); }
-+  struct adaptor_base : public functor_base {};
-+  template <class T_functor,
-+    class T_arg1=void,
-+    bool I_derives_adaptor_base=is_base_and_derived<adaptor_base,T_functor>::value>
-+  struct deduce_result_type
-+  { typedef typename functor_trait<T_functor>::result_type type; };
-+  template <class T_functor>
-+  struct adaptor_functor : public adaptor_base
-+  {
-+    template <class T_arg1=void>
-+    struct deduce_result_type
-+    { typedef typename sigc::deduce_result_type<T_functor, T_arg1>::type type; };
-+    typedef typename functor_trait<T_functor>::result_type result_type;
-+    result_type
-+    operator()() const;
-+    template <class T_arg1>
-+    typename deduce_result_type<T_arg1>::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 <class T_functor>
-+  typename adaptor_functor<T_functor>::result_type
-+  adaptor_functor<T_functor>::operator()() const
-+  { return functor_(); }
-+  template <class T_functor, bool I_isadaptor = is_base_and_derived<adaptor_base, T_functor>::value> struct adaptor_trait;
-+  template <class T_functor>
-+  struct adaptor_trait<T_functor, true>
-+  {
-+    typedef T_functor adaptor_type;
-+  };
-+  template <class T_functor>
-+  struct adaptor_trait<T_functor, false>
-+  {
-+    typedef typename functor_trait<T_functor>::functor_type functor_type;
-+    typedef adaptor_functor<functor_type> adaptor_type;
-+  };
-+  template <class T_functor>
-+  struct adapts : public adaptor_base
-+  {
-+    typedef typename adaptor_trait<T_functor>::adaptor_type adaptor_type;
-+    explicit adapts(const T_functor& _A_functor)
-+      : functor_(_A_functor)
-+    {}
-+    mutable adaptor_type functor_;
-+  };
-+  template <class T_type>
-+  struct reference_wrapper
-+  {
-+  };
-+  template <class T_type>
-+  struct unwrap_reference
-+  {
-+    typedef T_type type;
-+  };
-+  template <class T_type>
-+  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 T_wrapped>
-+  class bound_argument< reference_wrapper<T_wrapped> >
-+  {
-+  };
-+  template <int I_location, class T_functor, class T_type1=nil>
-+  struct bind_functor;
-+  template <class T_functor, class T_type1>
-+  struct bind_functor<-1, T_functor, T_type1> : public adapts<T_functor>
-+  {
-+    typedef typename adapts<T_functor>::adaptor_type adaptor_type;
-+    typedef typename adaptor_type::result_type result_type;
-+    result_type
-+    operator()()
-+    {
-+      return this->functor_.template operator()<typename type_trait<typename unwrap_reference<T_type1>::type>::pass> (bound1_.invoke());
-+    }
-+    bind_functor(typename type_trait<T_functor>::take _A_func, typename type_trait<T_type1>::take _A_bound1)
-+      : adapts<T_functor>(_A_func), bound1_(_A_bound1)
-+    {}
-+    bound_argument<T_type1> bound1_;
-+  };
-+  template <class T_type1, class T_functor>
-+  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 <class T_functor>
-+    struct typed_slot_rep : public slot_rep
-+    {
-+      typedef typename adaptor_trait<T_functor>::adaptor_type adaptor_type;
-+      adaptor_type functor_;
-+      inline typed_slot_rep(const T_functor& functor)
-+      : functor_(functor)
-+      {
-+      }
-+    };
-+    template<class T_functor>
-+    struct slot_call0
-+    {
-+      static void *call_it(slot_rep* rep)
-+      {
-+      typedef typed_slot_rep<T_functor> typed_slot;
-+      typed_slot *typed_rep = static_cast<typed_slot*>(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 <class T_functor>
-+    slot0(const T_functor& _A_func)
-+      : slot_base(new internal::typed_slot_rep<T_functor>(_A_func))
-+    {
-+      slot_base::rep_->call_ = internal::slot_call0<T_functor>::address();
+--- gcc/testsuite/lib/target-supports-dg.exp   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/lib/target-supports-dg.exp   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,4 @@
+-#   Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009
++#   Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+ #   Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+@@ -145,12 +145,23 @@
+ }
+ # If the target does not match the required effective target, skip this test.
++# Only apply this if the optional selector matches.
+ proc dg-require-effective-target { args } {
+     set args [lreplace $args 0 0]
+-    if { [llength $args] != 1 } {
+-      error "syntax error, need a single effective-target keyword"
++    # Verify the number of arguments.  The last is optional.
++    if { [llength $args] < 1 || [llength $args] > 2 } {
++      error "syntax error, need a single effective-target keyword with optional selector"
+     }
++    
++    # Evaluate selector if present.
++    if { [llength $args] == 2 } {
++      switch [dg-process-target [lindex $args 1]] {
++          "S" { }
++          "N" { return }
++      }
 +    }
-+  };
-+}
-+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)    (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 }
-+// { dg-options "-O2" }
-+
-+struct S
-+{
-+  unsigned v;
-+  static inline S f (unsigned a);
-+};
-+
-+inline S
-+S::f (unsigned a)
-+{
-+  static S t = { a };
-+  return t;
-+}
-+
-+const static S s = S::f (26);
 +
-+extern "C" void abort (void);
-+
-+int
-+main ()
-+{
-+  S t = s;
-+  if (t.v != 26)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/g++.dg/opt/nrv13.C
+     if { ![is-effective-target [lindex $args 0]] } {
+       upvar dg-do-what dg-do-what
+         set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+Index: gcc/testsuite/lib/fortran-torture.exp
 ===================================================================
---- 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 ();
+--- gcc/testsuite/lib/fortran-torture.exp      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/lib/fortran-torture.exp      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 2003, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -45,6 +45,7 @@
+     } elseif { [istarget  "spu-*-*"] } {
+       set test_tree_vectorize 1
+     } elseif { ( [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] )
++             && [check_effective_target_sse2]
+              && [check_sse2_hw_available] } {
+       lappend vectorizer_options "-msse2"
+       set test_tree_vectorize 1
+Index: gcc/testsuite/lib/target-supports.exp
+===================================================================
+--- gcc/testsuite/lib/target-supports.exp      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/lib/target-supports.exp      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2858,6 +2858,18 @@
+     } "-O2 -mavx" ]
+ }
++# Return 1 if sse2 instructions can be compiled.
++proc check_effective_target_sse2 { } {
++    return [check_no_compiler_messages sse2 object {
++      typedef long long __m128i __attribute__ ((__vector_size__ (16)));
++      
++      __m128i _mm_srli_si128 (__m128i __A, int __N)
++      {
++          return (__m128i)__builtin_ia32_psrldqi128 (__A, 8);
++      }
++    } "-O2 -msse2" ]
 +}
-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
+ # Return 1 if C wchar_t type is compatible with char16_t.
+ proc check_effective_target_wchar_t_char16_t_compatible { } {
+Index: gcc/testsuite/gfortran.dg/actual_array_interface_2.f90
 ===================================================================
---- 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
-+! of the character length of 'join' (ie. the length available in
-+! the caller) was wrong.
-+!
-+! Contributed by <beliavsky@aol.com> 
-+!
-+module util_mod
-+  implicit none
-+contains
-+  function join (words, sep) result(str)
-+    character (len=*), intent(in)        :: words(:),sep
-+    character (len = (size (words) - 1) * len_trim (sep) + & 
-+               sum (len_trim (words)))   :: str
-+    integer                              :: i,nw
-+    nw  = size (words)
-+    str = ""
-+    if (nw < 1) then
-+      return
-+    else
-+      str = words(1)
-+    end if
-+    do i=2,nw
-+      str = trim (str) // trim (sep) // words(i)
-+    end do
-+  end function join
-+end module util_mod
-+!
-+program xjoin
-+  use util_mod, only: join
-+  implicit none
-+  integer yy
-+  character (len=5) :: words(5:8) = (/"two  ","three","four ","five "/), sep = "^#^"
-+  character (len=5) :: words2(4) = (/"bat  ","ball ","goal ","stump"/), sep2 = "&"
-+
-+  if (join (words, sep) .ne. "two^#^three^#^four^#^five") call abort ()
-+  if (len (join (words, sep)) .ne. 25) call abort ()
-+
-+  if (join (words(5:6), sep) .ne. "two^#^three") call abort ()
-+  if (len (join (words(5:6), sep)) .ne. 11) call abort ()
-+
-+  if (join (words(7:8), sep) .ne. "four^#^five") call abort ()
-+  if (len (join (words(7:8), sep)) .ne. 11) call abort ()
-+
-+  if (join (words(5:7:2), sep) .ne. "two^#^four") call abort ()
-+  if (len (join (words(5:7:2), sep)) .ne. 10) call abort ()
-+
-+  if (join (words(6:8:2), sep) .ne. "three^#^five") call abort ()
-+  if (len (join (words(6:8:2), sep)) .ne. 12) call abort ()
-+
-+  if (join (words2, sep2) .ne. "bat&ball&goal&stump") call abort ()
-+  if (len (join (words2, sep2)) .ne. 19) call abort ()
-+
-+  if (join (words2(1:2), sep2) .ne. "bat&ball") call abort ()
-+  if (len (join (words2(1:2), sep2)) .ne. 8) call abort ()
-+
-+  if (join (words2(2:4:2), sep2) .ne. "ball&stump") call abort ()
-+  if (len (join (words2(2:4:2), sep2)) .ne. 10) call abort ()
-+
-+end program xjoin
-+! { 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)    (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
-+! of 'a' in both subroutines was being evaluated incorrectly.
-+! The testcase for PR31867 is char_length_5.f90
-+!
-+! Contributed by Elizabeth Yip <elizabeth.l.yip@boeing.com>
-+!            and Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-+!
-+program main
-+  call PR31994
-+  call PR31994_comment6
-+contains
-+  subroutine PR31994
-+    implicit none
-+    complex (kind=4), dimension(2,2) :: a, b, c
-+    a(1,1) = (1.,1.)
-+    a(2,1) = (2.,2.)
-+    a(1,2) = (3.,3.)
-+    a(2,2) = (4.,4.)
-+    b=conjg (transpose (a))
-+    c=transpose (a)
-+    c=conjg (c)
-+    if (any (b .ne. c)) call abort ()
-+  end subroutine PR31994
-+  subroutine PR31994_comment6
-+    implicit none
-+    real ,dimension(2,2)::a
-+    integer ,dimension(2,2) :: b, c
-+    a = reshape ((/1.,2.,3.,4./), (/2,2/))
-+    b=int (transpose(a))
-+    c = int (a)
-+    c = transpose (c)
-+    if (any (b .ne. c)) call abort ()
-+  end subroutine PR31994_comment6
-+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)    (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
-+!            wront results.
-+program main
-+  implicit none
-+  TYPE datatype
-+     INTEGER :: I
-+  END TYPE datatype
-+  character (len=20) line1, line2
-+  TYPE(datatype), dimension(2,2) :: data, result
-+  data(1,1)%i = 1
-+  data(2,1)%i = 2
-+  data(1,2)%i = 3
-+  data(2,2)%i = 4
-+  write (unit=line1, fmt="(4I4)") reshape(transpose(data),shape(data))
-+  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 <dir@lanl.gov> 
-+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)    (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.
-+! Test case derived from PR. Prepared by Jerry DeLisle
-+! <jvdelisle@gcc.gnu.org>
-+PROGRAM test
-+    INTEGER :: i = 1
-+    character(30) :: astring
-+    WRITE(astring, 10) i
-+ 10 FORMAT('i =',I2:' this should not print')
-+    if (astring.ne."i = 1") call abort
-+    write(astring, 20) i, i
-+ 20 format('i =',I2:' this should print',I2)
-+    if (astring.ne."i = 1 this should print 1") call abort
-+END PROGRAM test
-\ 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)    (revision 0)
-+++ gcc/testsuite/gfortran.dg/char_result_13.f90       (.../branches/gcc-4_2-branch)   (revision 126002)
+--- gcc/testsuite/gfortran.dg/actual_array_interface_2.f90     (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/actual_array_interface_2.f90     (.../branches/gcc-4_4-branch)   (wersja 160097)
 @@ -0,0 +1,13 @@
 +! { dg-do compile }
-+! tests the fix for PR31540, in which the character lengths in
-+! parentheses were not resolved.
-+!
-+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
-+!
-+        subroutine pfb()
-+        implicit none
-+        external pfname1, pfname2
-+        character ((136)) pfname1
-+        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)    (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
-+! produced an ICE if they had an alternate return.
-+!
-+! Contributed by Mathias Fröhlich <M.Froehlich@science-computing.de>
-+
-+      SUBROUTINE R (i, *, *)
-+      INTEGER i
-+      RETURN i
-+      END
-+
-+      SUBROUTINE PHLOAD (READER, i, res)
-+      IMPLICIT NONE
-+      EXTERNAL         READER
-+      integer i
-+      character(3) res
-+      CALL READER (i, *1, *2)
-+ 1    res = "one"
-+      return
-+ 2    res = "two"
-+      return
-+      END
-+
-+      EXTERNAL R
-+      character(3) res
-+      call PHLOAD (R, 1, res)
-+      if (res .ne. "one") call abort ()
-+      CALL PHLOAD (R, 2, res)
-+      if (res .ne. "two") call abort ()
-+      END
-\ 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)    (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
-+      implicit none
-+      character(3), dimension(3) :: zsymel,zsymelr
-+      common /xx/ zsymel, zsymelr
-+      integer :: znsymelr
-+      zsymel = (/ 'X', 'Y', ' ' /)
-+      zsymelr= (/ 'X', 'Y', ' ' /)
-+      znsymelr=2
-+      call check_zsymel(zsymel,zsymelr,znsymelr)
-+
-+      contains
-+
-+      subroutine check_zsymel(zsymel,zsymelr,znsymelr)
-+        implicit none
-+        integer znsymelr, isym
-+        character(*) zsymel(*),zsymelr(*)
-+        character(len=80) buf
-+        zsymel(3)(lenstr(zsymel(3))+1:)='X'
-+        write (buf,10) (trim(zsymelr(isym)),isym=1,znsymelr)
-+10      format(3(a,:,','))
-+        if (trim(buf) /= 'X,Y') call abort
-+      end subroutine check_zsymel
-+
-+      function lenstr(s)
-+        character(len=*),intent(in) :: s
-+        integer :: lenstr
-+        if (len_trim(s) /= 0) call abort
-+        lenstr = len_trim(s)
-+      end function lenstr
-+
-+      end subroutine test_lower
-+
-+      subroutine test_upper
-+      implicit none
-+      character(3), dimension(3) :: zsymel,zsymelr
-+      common /xx/ zsymel, zsymelr
-+      integer :: znsymelr
-+      zsymel = (/ 'X', 'Y', ' ' /)
-+      zsymelr= (/ 'X', 'Y', ' ' /)
-+      znsymelr=2
-+      call check_zsymel(zsymel,zsymelr,znsymelr)
-+
-+      contains
-+
-+      subroutine check_zsymel(zsymel,zsymelr,znsymelr)
-+        implicit none
-+        integer znsymelr, isym
-+        character(*) zsymel(*),zsymelr(*)
-+        character(len=80) buf
-+        zsymel(3)(:lenstr(zsymel(3))+1)='X'
-+        write (buf,20) (trim(zsymelr(isym)),isym=1,znsymelr)
-+20      format(3(a,:,','))
-+        if (trim(buf) /= 'X,Y') call abort
-+      end subroutine check_zsymel
-+
-+      function lenstr(s)
-+        character(len=*),intent(in) :: s
-+        integer :: lenstr
-+        if (len_trim(s) /= 0) call abort
-+        lenstr = len_trim(s)
-+      end function lenstr
-+
-+      end subroutine test_upper
-+
-+      program test
-+        call test_lower
-+        call test_upper
-+      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)    (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.
-+! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org> from PR.
-+program t
-+   integer, parameter :: n = 9
-+   character(len=40) :: fmt
-+   character(len=2), dimension(n) :: y
-+   open(unit=10, status="scratch")
-+   y = 'a '
-+   fmt = '(a,1x,(t7, 3a))'
-+   write(10, fmt) 'xxxx', (y(i), i = 1,n)
-+   rewind(10)
-+   read(10, '(a)') fmt
-+   if (fmt.ne."xxxx  a a a") call abort()
-+end program t
-Index: gcc/testsuite/gfortran.dg/backspace_8.f
-===================================================================
---- 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.
-+      program main
-+      character*78 msg
-+      open (21, file="backspace_7.dat", form="unformatted")
-+      write (21) 42, 43
-+      write (21) 4711, 4712
-+      write (21) -1, -4
-+      rewind (21)
-+      read (21) i,j
-+      read (21,err=100,end=100) i,j,k
-+      call abort
-+ 100  continue
-+      backspace 21
-+      read (21) i,j
-+      if (i .ne. 4711 .or. j .ne. 4712) call abort
-+      close (21,status="delete")
-+      end
-Index: gcc/testsuite/gfortran.dg/func_assign.f90
-===================================================================
---- 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 }
-+!
-+! PR fortran/31559
-+! Do not allow assigning to external functions
-+!
-+! Contributed by Steve Kargl <sgk@troutmask.apl.washington.edu>
-+!
-+module mod
-+  implicit none
-+contains
-+  integer function bar()
-+    bar = 4
-+  end function bar
-+
-+  subroutine a() 
++program gprogram
 +   implicit none
-+   real :: fun
-+   external fun
-+   interface
-+     function funget(a)
-+       integer :: a
-+     end function
-+     subroutine sub()
-+     end subroutine sub
-+   end interface
-+   sub = 'a'  ! { dg-error "Expected VARIABLE" }
-+   fun = 4.4  ! { dg-error "Expected VARIABLE" }
-+   funget = 4 ! { dg-error "is not a VALUE" }
-+   bar = 5    ! { dg-error "is not a VALUE" }
-+  end subroutine a
-+end module mod
-+
++   real, dimension(-2:0) :: my_arr
++   call fill_array(my_arr)
++   contains
++      subroutine  fill_array(arr)
++         implicit none
++         real, dimension(-2:0), intent(out) :: arr
++         arr = 42
++      end subroutine fill_array
++end program gprogram
++
+Index: gcc/testsuite/gfortran.dg/gomp/pr44085.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/gomp/pr44085.f90 (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/gomp/pr44085.f90 (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,25 @@
++! PR middle-end/44085
++! { dg-do compile }
++! { dg-require-effective-target tls_native }
++! { dg-options "-fopenmp" }
++
++  integer, save :: thr1, thr2
++  integer :: thr3, thr4
++  common /thrs/ thr3, thr4
++!$omp threadprivate (thr1, thr2, /thrs/)
++
++!$omp task untied             ! { dg-error "enclosing task" }
++  thr1 = thr1 + 1             ! { dg-error "used in untied task" }
++  thr2 = thr2 + 2             ! { dg-error "used in untied task" }
++  thr3 = thr3 + 3             ! { dg-error "used in untied task" }
++  thr4 = thr4 + 4             ! { dg-error "used in untied task" }
++!$omp end task
++
++!$omp task
++  thr1 = thr1 + 1
++  thr2 = thr2 + 2
++  thr3 = thr3 + 3
++  thr4 = thr4 + 4
++!$omp end task
++
++  end
+Index: gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90       (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,24 @@
++! PR fortran/44036
++! { dg-do compile }
++! { dg-options "-fopenmp" }
++subroutine foo(a, b)
++  integer, external :: a
++  integer, external, pointer :: b
++  integer, external :: c
++  integer, external, pointer :: d
++  integer :: x
++  x = 6
++!$omp parallel default(none) private (x)
++  x = a(4)
++!$omp end parallel
++!$omp parallel default(none) private (x)      ! { dg-error "enclosing parallel" }
++  x = b(5)                                    ! { dg-error "not specified in" }
++!$omp end parallel
++!$omp parallel default(none) private (x)
++  x = c(6)
++!$omp end parallel
++  d => a
++!$omp parallel default(none) private (x)      ! { dg-error "enclosing parallel" }
++  x = d(7)                                    ! { dg-error "not specified in" }
++!$omp end parallel
 +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)    (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)    (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))
--          expand_static_init (decl, init);
-+          {
-+              /* If a TREE_READONLY variable needs initialization
-+               at runtime, it is no longer readonly and we need to
-+               avoid MEM_READONLY_P being set on RTL created for it.  */
-+            if (init)
-+              {
-+                if (TREE_READONLY (decl))
-+                  TREE_READONLY (decl) = 0;
-+                was_readonly = 0;
-+              }
-+            expand_static_init (decl, init);
-+          }
-       }
-     }
-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
+Index: gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90
 ===================================================================
---- 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  <mark@codesourcery.com>
-+
-+      * 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  <dmueller@suse.de>
-+
-+      PR c++/31809
-+      PR c++/31806
-+      Backport from mainline:
-+      2007-05-31  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * decl.c (cp_finish_decl): Also clear was_readonly if a static var
-+      needs runtime initialization.
-+
-+      2007-05-30  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
-+      variables that need runtime initialization.
-+
- 2007-05-13  Release Manager
-       * GCC 4.2.0 released.
-Index: gcc/cp/decl2.c
+--- gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90       (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/gomp/pr44036-2.f90       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,17 @@
++! PR fortran/44036
++! { dg-do compile }
++! { dg-options "-fopenmp" }
++subroutine foo(a, b)
++  integer, external :: a
++  integer, external, pointer :: b
++  integer, external :: c
++  integer, external, pointer :: d
++  integer :: x
++  d => a
++!$omp parallel default(none) private (x) firstprivate (b, d)
++  x = a(4)
++  x = b(5)
++  x = c(6)
++  x = d(7)
++!$omp end parallel
++end
+Index: gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90
 ===================================================================
---- 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/testsuite/gfortran.dg/gomp/pr44036-3.f90       (.../tags/gcc_4_4_4_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/gomp/pr44036-3.f90       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -0,0 +1,13 @@
++! PR fortran/44036
++! { dg-do compile }
++! { dg-options "-fopenmp" }
++subroutine foo(a)
++  integer, external :: a, c
++  integer :: x
++!$omp parallel default(none) private (x) shared (a)   ! { dg-error "is not a variable" }
++  x = a(6)
++!$omp end parallel
++!$omp parallel default(none) private (x) shared (c)   ! { dg-error "is not a variable" }
++  x = c(6)
++!$omp end parallel
++end
+Index: gcc/testsuite/gfortran.dg/vect/vect.exp
 ===================================================================
---- 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
-     {
-+      /* Avoid multiple evaluation of substring start.  */
-+      if (!CONSTANT_CLASS_P (start.expr) && !DECL_P (start.expr))
-+      start.expr = gfc_evaluate_now (start.expr, &se->pre);
-+
-       /* Change the start of the string.  */
-       if (TYPE_STRING_FLAG (TREE_TYPE (se->expr)))
-       tmp = se->expr;
-@@ -273,6 +277,10 @@
-       gfc_conv_expr_type (&end, ref->u.ss.end, gfc_charlen_type_node);
-       gfc_add_block_to_block (&se->pre, &end.pre);
-     }
-+
-+  if (!CONSTANT_CLASS_P (end.expr) && !DECL_P (end.expr))
-+    end.expr = gfc_evaluate_now (end.expr, &se->pre);
-+
-   tmp = fold_build2 (MINUS_EXPR, gfc_charlen_type_node,
-                    build_int_cst (gfc_charlen_type_node, 1),
-                    start.expr);
-@@ -2340,17 +2348,23 @@
-   /* Generate the actual call.  */
-   gfc_conv_function_val (se, sym);
-+
-   /* If there are alternate return labels, function type should be
-      integer.  Can't modify the type in place though, since it can be shared
--     with other functions.  */
-+     with other functions.  For dummy arguments, the typing is done to
-+     to this result, even if it has to be repeated for each call.  */
-   if (has_alternate_specifier
-       && TREE_TYPE (TREE_TYPE (TREE_TYPE (se->expr))) != integer_type_node)
-     {
--      gcc_assert (! sym->attr.dummy);
--      TREE_TYPE (sym->backend_decl)
--        = build_function_type (integer_type_node,
--                               TYPE_ARG_TYPES (TREE_TYPE (sym->backend_decl)));
--      se->expr = build_fold_addr_expr (sym->backend_decl);
-+      if (!sym->attr.dummy)
-+      {
-+        TREE_TYPE (sym->backend_decl)
-+              = build_function_type (integer_type_node,
-+                    TYPE_ARG_TYPES (TREE_TYPE (sym->backend_decl)));
-+        se->expr = build_fold_addr_expr (sym->backend_decl);
-+      }
-+      else
-+      TREE_TYPE (TREE_TYPE (TREE_TYPE (se->expr))) = integer_type_node;
+--- gcc/testsuite/gfortran.dg/vect/vect.exp    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/testsuite/gfortran.dg/vect/vect.exp    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1997, 2004, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 1997, 2004, 2007, 2008, 2010 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -64,6 +64,9 @@
+ } elseif { [istarget  "spu-*-*"] } {
+    set dg-do-what-default run
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
++    if { ![check_effective_target_sse2] } then {
++      return
++    }
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     if [check_sse2_hw_available] {
+       set dg-do-what-default run
+Index: gcc/df-scan.c
+===================================================================
+--- gcc/df-scan.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/df-scan.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2308,7 +2308,7 @@
+       if (DF_REF_EXTRACT_MODE (ref1) != DF_REF_EXTRACT_MODE (ref2))
+       return DF_REF_EXTRACT_MODE (ref1) - DF_REF_EXTRACT_MODE (ref2);
      }
+-  return 0;
++  return (int)DF_REF_ORDER (ref1) - (int)DF_REF_ORDER (ref2);
+ }
  
-   fntype = TREE_TYPE (TREE_TYPE (se->expr));
-Index: gcc/fortran/trans-array.c
+ static void
+Index: gcc/cp/decl.c
 ===================================================================
---- 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)
-       base = gfc_index_zero_node;
-+      else if (GFC_ARRAY_TYPE_P (TREE_TYPE (desc)))
-+      base = gfc_evaluate_now (gfc_conv_array_offset (desc), &loop.pre);
-       else
-       base = NULL_TREE;
-@@ -4489,8 +4491,20 @@
-                               stride, info->stride[dim]);
-         if (se->direct_byref)
--          base = fold_build2 (MINUS_EXPR, TREE_TYPE (base),
--                              base, stride);
-+          {
-+            base = fold_build2 (MINUS_EXPR, TREE_TYPE (base),
-+                                base, stride);
-+          }
-+        else if (GFC_ARRAY_TYPE_P (TREE_TYPE (desc)))
-+          {
-+            tmp = gfc_conv_array_lbound (desc, n);
-+            tmp = fold_build2 (MINUS_EXPR, TREE_TYPE (base),
-+                               tmp, loop.from[dim]);
-+            tmp = fold_build2 (MULT_EXPR, TREE_TYPE (base),
-+                               tmp, gfc_conv_array_stride (desc, n));
-+            base = fold_build2 (PLUS_EXPR, TREE_TYPE (base),
-+                                tmp, base);
-+          }
-         /* Store the new stride.  */
-         tmp = gfc_conv_descriptor_stride (parm, gfc_rank_cst[dim]);
-@@ -4511,7 +4525,8 @@
-         gfc_conv_descriptor_data_set (&loop.pre, parm, offset);
-       }
--      if (se->direct_byref && !se->data_not_needed)
-+      if ((se->direct_byref || GFC_ARRAY_TYPE_P (TREE_TYPE (desc)))
-+           && !se->data_not_needed)
-       {
-         /* Set the offset.  */
-         tmp = gfc_conv_descriptor_offset (parm);
-Index: gcc/fortran/gfortran.texi
-===================================================================
---- 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:
- @smallexample
--GFORTRAN_CONVERT_UNIT: mode | mode ';' exception ;
-+GFORTRAN_CONVERT_UNIT: mode | mode ';' exception | exception ;
- mode: 'native' | 'swap' | 'big_endian' | 'little_endian' ;
- exception: mode ':' unit_list | unit_list ;
- unit_list: unit_spec | unit_list unit_spec ;
-@@ -668,7 +668,12 @@
- setting a default data representation for the whole program.  The
- @code{CONVERT} specifier overrides the @option{-fconvert} compile options.
-+@emph{Note that the values specified via the GFORTRAN_CONVERT_UNIT
-+environment variable will override the CONVERT specifier in the
-+open statement}.  This is to give control over data formats to
-+users who do not have the source code of their program available.
-+
- @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/cp/decl.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/cp/decl.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -8502,6 +8502,34 @@
+                  declarator->kind == cdk_reference ? "reference" : "pointer",
+                  type);
++        /* When the pointed-to type involves components of variable size,
++           care must be taken to ensure that the size evaluation code is
++           emitted early enough to dominate all the possible later uses
++           and late enough for the variables on which it depends to have
++           been assigned.
++
++           This is expected to happen automatically when the pointed-to
++           type has a name/declaration of it's own, but special attention
++           is required if the type is anonymous.
++
++           We handle the NORMAL and FIELD contexts here by inserting a
++           dummy statement that just evaluates the size at a safe point
++           and ensures it is not deferred until e.g. within a deeper
++           conditional context (c++/43555).
++
++           We expect nothing to be needed here for PARM or TYPENAME.
++           Evaluating the size at this point for TYPENAME would
++           actually be incorrect, as we might be in the middle of an
++           expression with side effects on the pointed-to type size
++           "arguments" prior to the pointer declaration point and the
++           size evaluation could end up prior to the side effects.  */
++
++        if (!TYPE_NAME (type)
++            && (decl_context == NORMAL || decl_context == FIELD)
++            && at_function_scope_p ()
++            && variably_modified_type_p (type, NULL_TREE))
++          finish_expr_stmt (TYPE_SIZE (type));
++
+         if (declarator->kind == cdk_reference)
+           {
+             /* In C++0x, the type we are creating a reference to might be
+Index: gcc/cp/ChangeLog
 ===================================================================
---- 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  <franke.daniel@gmail.com>
-+
-+      Backport from trunk:
-+      PR fortran/32002
-+      * resolve.c (resolve_actual_arglist): Resolve actual argument after
-+      being identified as variable.
-+
-+2007-06-20  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/32302
-+      * trans-common.c (build_common_decl): If resizing of common
-+      decl is needed, update the TREE_TYPE.
+--- gcc/cp/ChangeLog   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/cp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,15 @@
++2010-05-27  Jason Merrill  <jason@redhat.com>
 +
-+2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
++      PR c++/43555
++      * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
++      anonymous VLA size.
 +
-+      PR fortran/31483
-+      * trans-expr.c (gfc_conv_function_call): Give a dummy
-+      procedure the correct type if it has alternate returns.
-+      
-+
-+      PR fortran/31540
-+      * resolve.c (resolve_fl_procedure): Resolve constant character
-+      lengths.
-+
-+      PR fortran/31867
-+      PR fortran/31994
-+      * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored
-+      offset for non-descriptor, source arrays and correct for stride
-+      not equal to one before writing to field of output descriptor.
-+
-+2007-05-17  Tobias Burnus  <burnus@net-b.de>
++2010-05-19  Jason Merrill  <jason@redhat.com>
 +
-+      * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation.
++      PR c++/44193
++      * pt.c (tsubst) [TYPENAME_TYPE]: Discard cv-quals on
++      function/reference type.
 +
-+2007-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
-+
-+      PR fortran/31725
-+      * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
-+      only once.
-+
- 2007-05-13  Release Manager
-       * GCC 4.2.0 released.
-Index: gcc/fortran/resolve.c
-===================================================================
---- 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;
-       }
+ 2010-04-29  Release Manager
  
-+      /* 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;
-+
-+      if (cl && cl->length && gfc_is_constant_expr (cl->length)
-+           && resolve_charlen (cl) == FAILURE)
-+      return FAILURE;
-+
-       if (!cl || !cl->length || cl->length->expr_type != EXPR_CONSTANT)
-       {
-         if (sym->attr.proc == PROC_ST_FUNCTION)
-Index: gcc/fortran/primary.c
-===================================================================
---- 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:
-       /* Check for a nonrecursive function result */
--      if (sym->attr.function && (sym->result == sym || sym->attr.entry))
-+      if (sym->attr.function && (sym->result == sym || sym->attr.entry)
-+        && !sym->attr.external)
-       {
-         /* If a function result is a derived type, then the derived
-            type may still have to be resolved.  */
-Index: gcc/BASE-VER
-===================================================================
---- 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 4.4.4 released.
+Index: gcc/cp/pt.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 %<asm%>");
-+            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;
+--- gcc/cp/pt.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/cp/pt.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -9708,6 +9708,7 @@
+                                    in_decl, /*entering_scope=*/1);
+       tree f = tsubst_copy (TYPENAME_TYPE_FULLNAME (t), args,
+                             complain, in_decl);
++      int quals;
  
-+      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)));
+       if (ctx == error_mark_node || f == error_mark_node)
+         return error_mark_node;
+@@ -9757,8 +9758,15 @@
+                    t, f);
+         }
  
-Index: gcc/except.c
-===================================================================
---- 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;
-        prev_try = prev_try->outer)
--      ;
-+      if (prev_try->type == ERT_MUST_NOT_THROW)
-+      {
-+        prev_try = NULL;
-+        break;
-+      }
+-      return cp_build_qualified_type_real
+-        (f, cp_type_quals (f) | cp_type_quals (t), complain);
++      /* cv-quals from the template are discarded when
++         substituting in a function or reference type.  */
++      if (TREE_CODE (f) == FUNCTION_TYPE
++          || TREE_CODE (f) == METHOD_TYPE
++          || TREE_CODE (f) == REFERENCE_TYPE)
++        quals = cp_type_quals (f);
++      else
++        quals = cp_type_quals (f) | cp_type_quals (t);
++      return cp_build_qualified_type_real (f, quals, complain);
+       }
  
-   /* Remap all of the internal catch and cleanup linkages.  Since we 
-      duplicate entire subtrees, all of the referenced regions will have
-Index: gcc/combine.c
+     case UNBOUND_CLASS_TEMPLATE:
+Index: gcc/tree-ssa-loop-ivopts.c
 ===================================================================
---- 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)
-       {
--        SUBST(SET_SRC (x), op0);
-+        SUBST (SET_SRC (x), op0);
-         src = SET_SRC (x);
-       }
--      else
-+      /* Otherwise, update the COMPARE if needed.  */
-+      else if (XEXP (src, 0) != op0 || XEXP (src, 1) != op1)
-       {
--        /* Otherwise, update the COMPARE if needed.  */
--        SUBST (XEXP (src, 0), op0);
--        SUBST (XEXP (src, 1), op1);
-+        SUBST (SET_SRC (x), gen_rtx_COMPARE (compare_mode, op0, op1));
-+        src = SET_SRC (x);
-       }
-     }
-   else
-Index: gcc/Makefile.in
-===================================================================
---- 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) \
-    $(TM_H) coretypes.h $(CGRAPH_H) tree-pass.h $(TIMEVAR_H) \
--   gt-tree-ssa-structalias.h $(PARAMS_H)
-+   gt-tree-ssa-structalias.h $(PARAMS_H) pointer-set.h
- tree-ssa.o : tree-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
-    $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
-    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)    (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"
- #include "cgraph.h"
-+#include "pointer-set.h"
- /* The idea behind this analyzer is to generate set constraints from the
-    program, then solve the resulting constraints in order to generate the
--   points-to sets. 
-+   points-to sets.
-    Set constraints are a way of modeling program analysis problems that
-    involve sets.  They consist of an inclusion constraint language,
-@@ -70,33 +71,33 @@
-    Also see "Ultra-fast Aliasing Analysis using CLA: A Million Lines
-    of C Code in a Second" by ""Nevin Heintze and Olivier Tardieu" at
--   http://citeseer.ist.psu.edu/heintze01ultrafast.html 
-+   http://citeseer.ist.psu.edu/heintze01ultrafast.html
--   There are three types of constraint expressions, DEREF, ADDRESSOF, and
--   SCALAR.  Each constraint expression consists of a constraint type,
--   a variable, and an offset.  
--   
-+   There are three types of real constraint expressions, DEREF,
-+   ADDRESSOF, and SCALAR.  Each constraint expression consists
-+   of a constraint type, a variable, and an offset.
-+
-    SCALAR is a constraint expression type used to represent x, whether
-    it appears on the LHS or the RHS of a statement.
-    DEREF is a constraint expression type used to represent *x, whether
--   it appears on the LHS or the RHS of a statement. 
-+   it appears on the LHS or the RHS of a statement.
-    ADDRESSOF is a constraint expression used to represent &x, whether
-    it appears on the LHS or the RHS of a statement.
--   
-+
-    Each pointer variable in the program is assigned an integer id, and
-    each field of a structure variable is assigned an integer id as well.
--   
-+
-    Structure variables are linked to their list of fields through a "next
-    field" in each variable that points to the next field in offset
--   order.  
--   Each variable for a structure field has 
-+   order.
-+   Each variable for a structure field has
-    1. "size", that tells the size in bits of that field.
-    2. "fullsize, that tells the size in bits of the entire structure.
-    3. "offset", that tells the offset in bits from the beginning of the
-    structure to this field.
--   Thus, 
-+   Thus,
-    struct f
-    {
-      int a;
-@@ -110,50 +111,51 @@
-    foo.b -> id 2, size 32, offset 32, fullsize 64, next NULL
-    bar -> id 3, size 32, offset 0, fullsize 32, next NULL
--   
-+
-   In order to solve the system of set constraints, the following is
-   done:
-   1. Each constraint variable x has a solution set associated with it,
-   Sol(x).
--  
-+
-   2. Constraints are separated into direct, copy, and complex.
-   Direct constraints are ADDRESSOF constraints that require no extra
-   processing, such as P = &Q
-   Copy constraints are those of the form P = Q.
--  Complex constraints are all the constraints involving dereferences.
--  
-+  Complex constraints are all the constraints involving dereferences
-+  and offsets (including offsetted copies).
-+
-   3. All direct constraints of the form P = &Q are processed, such
--  that Q is added to Sol(P) 
-+  that Q is added to Sol(P)
-   4. All complex constraints for a given constraint variable are stored in a
--  linked list attached to that variable's node.  
-+  linked list attached to that variable's node.
-   5. A directed graph is built out of the copy constraints. Each
--  constraint variable is a node in the graph, and an edge from 
-+  constraint variable is a node in the graph, and an edge from
-   Q to P is added for each copy constraint of the form P = Q
--  
-+
-   6. The graph is then walked, and solution sets are
-   propagated along the copy edges, such that an edge from Q to P
-   causes Sol(P) <- Sol(P) union Sol(Q).
--  
-+
-   7.  As we visit each node, all complex constraints associated with
-   that node are processed by adding appropriate copy edges to the graph, or the
--  appropriate variables to the solution set.  
-+  appropriate variables to the solution set.
-   8. The process of walking the graph is iterated until no solution
-   sets change.
-   Prior to walking the graph in steps 6 and 7, We perform static
--  cycle elimination on the constraint graph, as well 
-+  cycle elimination on the constraint graph, as well
-   as off-line variable substitution.
--  
-+
-   TODO: Adding offsets to pointer-to-structures can be handled (IE not punted
-   on and turned into anything), but isn't.  You can just see what offset
-   inside the pointed-to struct it's going to access.
--  
-+
-   TODO: Constant bounded arrays can be handled as if they were structs of the
--  same number of elements. 
-+  same number of elements.
-   TODO: Modeling heap and incoming pointers becomes much better if we
-   add fields to them as we discover them, which we could do.
-@@ -161,20 +163,29 @@
-   TODO: We could handle unions, but to be honest, it's probably not
-   worth the pain or slowdown.  */
--static GTY ((if_marked ("tree_map_marked_p"), param_is (struct tree_map))) 
--htab_t heapvar_for_stmt;
-+static GTY ((if_marked ("tree_map_marked_p"), param_is (struct tree_map))) htab_t heapvar_for_stmt;
- /* One variable to represent all non-local accesses.  */
- tree nonlocal_all;
- static bool use_field_sensitive = true;
- static int in_ipa_mode = 0;
-+
-+/* Used for predecessor bitmaps. */
- static bitmap_obstack predbitmap_obstack;
--static bitmap_obstack ptabitmap_obstack;
-+
-+/* Used for points-to sets.  */
-+static bitmap_obstack pta_obstack;
-+
-+/* Used for oldsolution members of variables. */
-+static bitmap_obstack oldpta_obstack;
-+
-+/* Used for per-solver-iteration bitmaps.  */
- static bitmap_obstack iteration_obstack;
- static unsigned int create_variable_info_for (tree, const char *);
--static void build_constraint_graph (void);
-+typedef struct constraint_graph *constraint_graph_t;
-+static void unify_nodes (constraint_graph_t, unsigned int, unsigned int, bool);
- DEF_VEC_P(constraint_t);
- DEF_VEC_ALLOC_P(constraint_t,heap);
-@@ -186,11 +197,13 @@
- static struct constraint_stats
- {
-   unsigned int total_vars;
--  unsigned int collapsed_vars;
-+  unsigned int nonpointer_vars;
-   unsigned int unified_vars_static;
-   unsigned int unified_vars_dynamic;
-   unsigned int iterations;
-   unsigned int num_edges;
-+  unsigned int num_implicit_edges;
-+  unsigned int points_to_sets_created;
- } stats;
- struct variable_info
-@@ -205,7 +218,7 @@
-   tree decl;
-   /* Offset of this variable, in bits, from the base variable  */
--  unsigned HOST_WIDE_INT offset;  
-+  unsigned HOST_WIDE_INT offset;
-   /* Size of the variable, in bits.  */
-   unsigned HOST_WIDE_INT size;
-@@ -216,34 +229,21 @@
-   /* A link to the variable for the next field in this structure.  */
-   struct variable_info *next;
--  /* Node in the graph that represents the constraints and points-to
--     solution for the variable.  */
--  unsigned int node;
--
--  /* True if the address of this variable is taken.  Needed for
--     variable substitution.  */
--  unsigned int address_taken:1;
--
--  /* True if this variable is the target of a dereference.  Needed for
--     variable substitution.  */
--  unsigned int indirect_target:1;
--  
-   /* True if the variable is directly the target of a dereference.
-      This is used to track which variables are *actually* dereferenced
--     so we can prune their points to listed. This is equivalent to the
--     indirect_target flag when no merging of variables happens.  */
-+     so we can prune their points to listed. */
-   unsigned int directly_dereferenced:1;
-   /* True if this is a variable created by the constraint analysis, such as
-      heap variables and constraints we had to break up.  */
-   unsigned int is_artificial_var:1;
--  
-+
-   /* True if this is a special variable whose solution set should not be
-      changed.  */
-   unsigned int is_special_var:1;
-   /* True for variables whose size is not known or variable.  */
--  unsigned int is_unknown_size_var:1;  
-+  unsigned int is_unknown_size_var:1;
-   /* True for variables that have unions somewhere in them.  */
-   unsigned int has_union:1;
-@@ -254,16 +254,15 @@
-   /* Points-to set for this variable.  */
-   bitmap solution;
-+  /* Old points-to set for this variable.  */
-+  bitmap oldsolution;
-+
-   /* Variable ids represented by this node.  */
-   bitmap variables;
--  /* Vector of complex constraints for this node.  Complex
--     constraints are those involving dereferences.  */
--  VEC(constraint_t,heap) *complex;
--  
--  /* Variable id this was collapsed to due to type unsafety.
--     This should be unused completely after build_constraint_graph, or
--     something is broken.  */
-+  /* Variable id this was collapsed to due to type unsafety.  This
-+     should be unused completely after build_succ_graph, or something
-+     is broken.  */
-   struct variable_info *collapsed_to;
- };
- typedef struct variable_info *varinfo_t;
-@@ -277,8 +276,8 @@
- DEF_VEC_ALLOC_P(varinfo_t, heap);
--/* Table of variable info structures for constraint variables.  Indexed directly
--   by variable info id.  */
-+/* Table of variable info structures for constraint variables.
-+   Indexed directly by variable info id.  */
- static VEC(varinfo_t,heap) *varmap;
- /* Return the varmap element N */
-@@ -286,7 +285,7 @@
- static inline varinfo_t
- get_varinfo (unsigned int n)
- {
--  return VEC_index(varinfo_t, varmap, n);
-+  return VEC_index (varinfo_t, varmap, n);
- }
- /* Return the varmap element N, following the collapsed_to link.  */
-@@ -294,7 +293,7 @@
- static inline varinfo_t
- get_varinfo_fc (unsigned int n)
- {
--  varinfo_t v = VEC_index(varinfo_t, varmap, n);
-+  varinfo_t v = VEC_index (varinfo_t, varmap, n);
-   if (v->collapsed_to)
-     return v->collapsed_to;
-@@ -331,10 +330,9 @@
- /* Variable that represents non-local variables before we expand it to
-    one for each type.  */
- static unsigned int nonlocal_vars_id;
--
- /* Lookup a heap var for FROM, and return it if we find one.  */
--static tree 
-+static tree
- heapvar_lookup (tree from)
- {
-   struct tree_map *h, in;
-@@ -367,25 +365,21 @@
-    named NAME, and using constraint graph node NODE.  */
- static varinfo_t
--new_var_info (tree t, unsigned int id, const char *name, unsigned int node)
-+new_var_info (tree t, unsigned int id, const char *name)
- {
-   varinfo_t ret = pool_alloc (variable_info_pool);
-   ret->id = id;
-   ret->name = name;
-   ret->decl = t;
--  ret->node = node;
--  ret->address_taken = false;
--  ret->indirect_target = false;
-   ret->directly_dereferenced = false;
-   ret->is_artificial_var = false;
-   ret->is_heap_var = false;
-   ret->is_special_var = false;
-   ret->is_unknown_size_var = false;
-   ret->has_union = false;
--  ret->solution = BITMAP_ALLOC (&ptabitmap_obstack);
--  ret->variables = BITMAP_ALLOC (&ptabitmap_obstack);
--  ret->complex = NULL;
-+  ret->solution = BITMAP_ALLOC (&pta_obstack);
-+  ret->oldsolution = BITMAP_ALLOC (&oldpta_obstack);
-   ret->next = NULL;
-   ret->collapsed_to = NULL;
-   return ret;
-@@ -395,7 +389,7 @@
- /* An expression that appears in a constraint.  */
--struct constraint_expr 
-+struct constraint_expr
- {
-   /* Constraint type.  */
-   constraint_expr_type type;
-@@ -418,7 +412,7 @@
- static void do_deref (VEC (ce_s, heap) **);
- /* Our set constraints are made up of two constraint expressions, one
--   LHS, and one RHS.  
-+   LHS, and one RHS.
-    As described in the introduction, our set constraints each represent an
-    operation between set valued variables.
-@@ -434,63 +428,98 @@
- static VEC(constraint_t,heap) *constraints;
- static alloc_pool constraint_pool;
--/* An edge in the weighted constraint graph.   The edges are weighted,
--   with a bit set in weights meaning their is an edge with that
--   weight. 
--   We don't keep the src in the edge, because we always know what it
--   is. */
--struct constraint_edge
-+DEF_VEC_I(int);
-+DEF_VEC_ALLOC_I(int, heap);
-+
-+/* The constraint graph is represented as an array of bitmaps
-+   containing successor nodes.  */
-+
-+struct constraint_graph
- {
--  unsigned int dest;
--  bitmap weights;
--};
-+  /* Size of this graph, which may be different than the number of
-+     nodes in the variable map.  */
-+  unsigned int size;
--typedef struct constraint_edge *constraint_edge_t;
--static alloc_pool constraint_edge_pool;
-+  /* Explicit successors of each node. */
-+  bitmap *succs;
--/* Return a new constraint edge from SRC to DEST.  */
-+  /* Implicit predecessors of each node (Used for variable
-+     substitution). */
-+  bitmap *implicit_preds;
--static constraint_edge_t
--new_constraint_edge (unsigned int dest)
--{
--  constraint_edge_t ret = pool_alloc (constraint_edge_pool);
--  ret->dest = dest;
--  ret->weights = NULL;
--  return ret;
--}
-+  /* Explicit predecessors of each node (Used for variable substitution).  */
-+  bitmap *preds;
--DEF_VEC_P(constraint_edge_t);
--DEF_VEC_ALLOC_P(constraint_edge_t,heap);
-+  /* Indirect cycle representatives, or -1 if the node has no indirect
-+     cycles.  */
-+  int *indirect_cycles;
-+  /* Representative node for a node.  rep[a] == a unless the node has
-+     been unified. */
-+  unsigned int *rep;
--/* The constraint graph is represented internally in two different
--   ways.  The overwhelming majority of edges in the constraint graph
--   are zero weigh edges, and thus, using a vector of contrainst_edge_t
--   is a waste of time and memory, since they have no weights.  We
--   simply use a bitmap to store the preds and succs for each node.
--   The weighted edges are stored as a set of adjacency vectors, one
--   per variable. succs[x] is the vector of successors for variable x,
--   and preds[x] is the vector of predecessors for variable x.  IOW,
--   all edges are "forward" edges, which is not like our CFG.  So
--   remember that preds[x]->src == x, and succs[x]->src == x.  */
-+  /* Equivalence class representative for a node.  This is used for
-+     variable substitution.  */
-+  int *eq_rep;
--struct constraint_graph
--{
--  bitmap *zero_weight_succs;
--  bitmap *zero_weight_preds;
--  VEC(constraint_edge_t,heap) **succs;
--  VEC(constraint_edge_t,heap) **preds;
-+  /* Label for each node, used during variable substitution.  */
-+  unsigned int *label;
-+
-+  /* Bitmap of nodes where the bit is set if the node is a direct
-+     node.  Used for variable substitution.  */
-+  sbitmap direct_nodes;
-+
-+  /* Vector of complex constraints for each graph node.  Complex
-+     constraints are those involving dereferences or offsets that are
-+     not 0.  */
-+  VEC(constraint_t,heap) **complex;
- };
--typedef struct constraint_graph *constraint_graph_t;
--
- static constraint_graph_t graph;
--static int graph_size;
-+/* During variable substitution and the offline version of indirect
-+   cycle finding, we create nodes to represent dereferences and
-+   address taken constraints.  These represent where these start and
-+   end.  */
-+#define FIRST_REF_NODE (VEC_length (varinfo_t, varmap))
-+#define LAST_REF_NODE (FIRST_REF_NODE + (FIRST_REF_NODE - 1))
-+#define FIRST_ADDR_NODE (LAST_REF_NODE + 1)
-+
-+/* Return the representative node for NODE, if NODE has been unioned
-+   with another NODE.
-+   This function performs path compression along the way to finding
-+   the representative.  */
-+
-+static unsigned int
-+find (unsigned int node)
-+{
-+  gcc_assert (node < graph->size);
-+  if (graph->rep[node] != node)
-+    return graph->rep[node] = find (graph->rep[node]);
-+  return node;
-+}
-+
-+/* Union the TO and FROM nodes to the TO nodes.
-+   Note that at some point in the future, we may want to do
-+   union-by-rank, in which case we are going to have to return the
-+   node we unified to.  */
-+
-+static bool
-+unite (unsigned int to, unsigned int from)
-+{
-+  gcc_assert (to < graph->size && from < graph->size);
-+  if (to != from && graph->rep[from] != to)
-+    {
-+      graph->rep[from] = to;
-+      return true;
-+    }
-+  return false;
-+}
-+
- /* Create a new constraint consisting of LHS and RHS expressions.  */
--static constraint_t 
-+static constraint_t
- new_constraint (const struct constraint_expr lhs,
-               const struct constraint_expr rhs)
- {
-@@ -508,7 +537,7 @@
-   if (c->lhs.type == ADDRESSOF)
-     fprintf (file, "&");
-   else if (c->lhs.type == DEREF)
--    fprintf (file, "*");  
-+    fprintf (file, "*");
-   fprintf (file, "%s", get_varinfo_fc (c->lhs.var)->name);
-   if (c->lhs.offset != 0)
-     fprintf (file, " + " HOST_WIDE_INT_PRINT_DEC, c->lhs.offset);
-@@ -550,23 +579,24 @@
-   dump_constraints (stderr);
- }
--/* SOLVER FUNCTIONS 
-+/* SOLVER FUNCTIONS
-    The solver is a simple worklist solver, that works on the following
-    algorithm:
--   
--   sbitmap changed_nodes = all ones;
--   changed_count = number of nodes;
--   For each node that was already collapsed:
--       changed_count--;
-+   sbitmap changed_nodes = all zeroes;
-+   changed_count = 0;
-+   For each node that is not already collapsed:
-+       changed_count++;
-+       set bit in changed nodes
-+
-    while (changed_count > 0)
-    {
-      compute topological ordering for constraint graph
--  
-+
-      find and collapse cycles in the constraint graph (updating
-      changed if necessary)
--     
-+
-      for each node (n) in the graph in topological order:
-        changed_count--;
-@@ -619,11 +649,11 @@
- }
- /* Return true if two constraints A and B are equal.  */
--  
-+
- static bool
- constraint_equal (struct constraint a, struct constraint b)
- {
--  return constraint_expr_equal (a.lhs, b.lhs) 
-+  return constraint_expr_equal (a.lhs, b.lhs)
-     && constraint_expr_equal (a.rhs, b.rhs);
- }
-@@ -634,7 +664,7 @@
- constraint_vec_find (VEC(constraint_t,heap) *vec,
-                    struct constraint lookfor)
- {
--  unsigned int place;  
-+  unsigned int place;
-   constraint_t found;
-   if (vec == NULL)
-@@ -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 + get_varinfo (i)->size - 1 >= min
-+        && get_varinfo (i)->offset < max)
-       {
--        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
-              || get_varinfo (i)->has_union
-              || get_varinfo (i)->is_unknown_size_var)
-       {
-         bitmap_set_bit (result, i);
-       }
-     }
--  
--  bitmap_copy (set, result);  
-+
-+  bitmap_copy (set, result);
-   BITMAP_FREE (result);
- }
-@@ -727,397 +774,149 @@
-     }
- }
--/* Insert constraint C into the list of complex constraints for VAR.  */
-+/* Insert constraint C into the list of complex constraints for graph
-+   node VAR.  */
- static void
--insert_into_complex (unsigned int var, constraint_t c)
-+insert_into_complex (constraint_graph_t graph,
-+                   unsigned int var, constraint_t c)
- {
--  varinfo_t vi = get_varinfo (var);
--  unsigned int place = VEC_lower_bound (constraint_t, vi->complex, c,
-+  VEC (constraint_t, heap) *complex = graph->complex[var];
-+  unsigned int place = VEC_lower_bound (constraint_t, complex, c,
-                                       constraint_less);
--  VEC_safe_insert (constraint_t, heap, vi->complex, place, c);
--}
--
--/* Compare two constraint edges A and B, return true if they are equal.  */
--
--static bool
--constraint_edge_equal (struct constraint_edge a, struct constraint_edge b)
--{
--  return a.dest == b.dest;
-+  /* Only insert constraints that do not already exist.  */
-+  if (place >= VEC_length (constraint_t, complex)
-+      || !constraint_equal (*c, *VEC_index (constraint_t, complex, place)))
-+    VEC_safe_insert (constraint_t, heap, graph->complex[var], place, c);
- }
--/* Compare two constraint edges, return true if A is less than B */
--static bool
--constraint_edge_less (const constraint_edge_t a, const constraint_edge_t b)
--{
--  if (a->dest < b->dest)
--    return true;
--  return false;
--}
--
--/* Find the constraint edge that matches LOOKFOR, in VEC.
--   Return the edge, if found, NULL otherwise.  */
--
--static constraint_edge_t 
--constraint_edge_vec_find (VEC(constraint_edge_t,heap) *vec, 
--                        struct constraint_edge lookfor)
--{
--  unsigned int place;  
--  constraint_edge_t edge = NULL;
--
--  place = VEC_lower_bound (constraint_edge_t, vec, &lookfor, 
--                         constraint_edge_less);
--  if (place >= VEC_length (constraint_edge_t, vec))
--    return NULL;
--  edge = VEC_index (constraint_edge_t, vec, place);
--  if (!constraint_edge_equal (*edge, lookfor))
--    return NULL;
--  return edge;
--}
--
- /* Condense two variable nodes into a single variable node, by moving
-    all associated info from SRC to TO.  */
--static void 
--condense_varmap_nodes (unsigned int to, unsigned int src)
-+static void
-+merge_node_constraints (constraint_graph_t graph, unsigned int to,
-+                      unsigned int from)
- {
--  varinfo_t tovi = get_varinfo (to);
--  varinfo_t srcvi = get_varinfo (src);
-   unsigned int i;
-   constraint_t c;
--  bitmap_iterator bi;
--  
--  /* the src node, and all its variables, are now the to node.  */
--  srcvi->node = to;
--  EXECUTE_IF_SET_IN_BITMAP (srcvi->variables, 0, i, bi)
--    get_varinfo (i)->node = to;
--  
--  /* Merge the src node variables and the to node variables.  */
--  bitmap_set_bit (tovi->variables, src);
--  bitmap_ior_into (tovi->variables, srcvi->variables);
--  bitmap_clear (srcvi->variables);
--  
-+
-+  gcc_assert (find (from) == to);
-+
-   /* Move all complex constraints from src node into to node  */
--  for (i = 0; VEC_iterate (constraint_t, srcvi->complex, i, c); i++)
-+  for (i = 0; VEC_iterate (constraint_t, graph->complex[from], i, c); i++)
-     {
-       /* In complex constraints for node src, we may have either
--       a = *src, and *src = a.  */
--      
-+       a = *src, and *src = a, or an offseted constraint which are
-+       always added to the rhs node's constraints.  */
-+
-       if (c->rhs.type == DEREF)
-       c->rhs.var = to;
-+      else if (c->lhs.type == DEREF)
-+      c->lhs.var = to;
-       else
--      c->lhs.var = to;
-+      c->rhs.var = to;
-     }
--  constraint_set_union (&tovi->complex, &srcvi->complex);
--  VEC_free (constraint_t, heap, srcvi->complex);
--  srcvi->complex = NULL;
-+  constraint_set_union (&graph->complex[to], &graph->complex[from]);
-+  VEC_free (constraint_t, heap, graph->complex[from]);
-+  graph->complex[from] = NULL;
- }
--/* Erase an edge from SRC to SRC from GRAPH.  This routine only
--   handles self-edges (e.g. an edge from a to a).  */
--static void
--erase_graph_self_edge (constraint_graph_t graph, unsigned int src)
--{
--  VEC(constraint_edge_t,heap) *predvec = graph->preds[src];
--  VEC(constraint_edge_t,heap) *succvec = graph->succs[src];
--  struct constraint_edge edge;
--  unsigned int place;
--
--  edge.dest = src;
--
--  /* Remove from the successors.  */
--  place = VEC_lower_bound (constraint_edge_t, succvec, &edge, 
--                         constraint_edge_less);
--  
--  /* Make sure we found the edge.  */
--#ifdef ENABLE_CHECKING
--  {
--    constraint_edge_t tmp = VEC_index (constraint_edge_t, succvec, place);
--    gcc_assert (constraint_edge_equal (*tmp, edge));
--  }
--#endif
--  VEC_ordered_remove (constraint_edge_t, succvec, place);
--
--  /* Remove from the predecessors.  */
--  place = VEC_lower_bound (constraint_edge_t, predvec, &edge,
--                         constraint_edge_less);
--
--  /* Make sure we found the edge.  */
--#ifdef ENABLE_CHECKING
--  {
--    constraint_edge_t tmp = VEC_index (constraint_edge_t, predvec, place);
--    gcc_assert (constraint_edge_equal (*tmp, edge));
--  }
--#endif
--  VEC_ordered_remove (constraint_edge_t, predvec, place);
--}
--
- /* Remove edges involving NODE from GRAPH.  */
- static void
- clear_edges_for_node (constraint_graph_t graph, unsigned int node)
- {
--  VEC(constraint_edge_t,heap) *succvec = graph->succs[node];
--  VEC(constraint_edge_t,heap) *predvec = graph->preds[node];
--  bitmap_iterator bi;
--  unsigned int j;
--  constraint_edge_t c = NULL;
--  int i;
--
--  /* Walk the successors, erase the associated preds.  */
--  
--  EXECUTE_IF_IN_NONNULL_BITMAP (graph->zero_weight_succs[node], 0, j, bi)
--    if (j != node)
--      bitmap_clear_bit (graph->zero_weight_preds[j], node);
--  
--  for (i = 0; VEC_iterate (constraint_edge_t, succvec, i, c); i++)
--    if (c->dest != node)
--      {
--      unsigned int place;
--      struct constraint_edge lookfor;
--      constraint_edge_t result;
--
--      lookfor.dest = node;
--      place = VEC_lower_bound (constraint_edge_t, graph->preds[c->dest], 
--                               &lookfor, constraint_edge_less);
--      result = VEC_ordered_remove (constraint_edge_t, 
--                                   graph->preds[c->dest], place);
--      pool_free (constraint_edge_pool, result);
--      }
--
--  /* Walk the preds, erase the associated succs.  */
--
--  EXECUTE_IF_IN_NONNULL_BITMAP (graph->zero_weight_preds[node], 0, j, bi)
--    if (j != node)
--      bitmap_clear_bit (graph->zero_weight_succs[j], node);
--  
--  for (i =0; VEC_iterate (constraint_edge_t, predvec, i, c); i++)
--    if (c->dest != node)
--      {
--      unsigned int place;
--      struct constraint_edge lookfor;
--      constraint_edge_t result;
--
--      lookfor.dest = node;
--      place = VEC_lower_bound (constraint_edge_t, graph->succs[c->dest],
--                               &lookfor, constraint_edge_less);
--      result = VEC_ordered_remove (constraint_edge_t, 
--                                   graph->succs[c->dest], place);
--      pool_free (constraint_edge_pool, result);
--
--      }    
--
--  if (graph->zero_weight_preds[node])
--    {
--      BITMAP_FREE (graph->zero_weight_preds[node]);
--      graph->zero_weight_preds[node] = NULL;
--    } 
--
--  if (graph->zero_weight_succs[node])
--    {
--      BITMAP_FREE (graph->zero_weight_succs[node]);
--      graph->zero_weight_succs[node] = NULL;
--    } 
--
--  VEC_free (constraint_edge_t, heap, graph->preds[node]);
--  VEC_free (constraint_edge_t, heap, graph->succs[node]);
--  graph->preds[node] = NULL;
--  graph->succs[node] = NULL;
-+  if (graph->succs[node])
-+    BITMAP_FREE (graph->succs[node]);
- }
--static bool edge_added = false;
--  
--/* Add edge (src, dest) to the graph.  */
--
--static bool
--add_graph_edge (constraint_graph_t graph, unsigned int src, unsigned int dest)
--{
--  unsigned int place;
--  VEC(constraint_edge_t,heap) *vec;
--  struct constraint_edge newe;
--  newe.dest = dest;
--
--  vec = graph->preds[src];
--  place = VEC_lower_bound (constraint_edge_t, vec, &newe, 
--                         constraint_edge_less);
--  if (place == VEC_length (constraint_edge_t, vec)
--      || VEC_index (constraint_edge_t, vec, place)->dest != dest)
--    {
--      constraint_edge_t edge = new_constraint_edge (dest);
--
--      VEC_safe_insert (constraint_edge_t, heap, graph->preds[src], 
--                     place, edge);
--      edge = new_constraint_edge (src);
--
--      place = VEC_lower_bound (constraint_edge_t, graph->succs[dest],
--                             edge, constraint_edge_less);
--      VEC_safe_insert (constraint_edge_t, heap, graph->succs[dest], 
--                     place, edge);
--      edge_added = true;
--      stats.num_edges++;
--      return true;
--    }
--  else
--    return false;
--}
--
--
--/* Return the bitmap representing the weights of edge (SRC, DEST).  */
--
--static bitmap *
--get_graph_weights (constraint_graph_t graph, unsigned int src,
--                 unsigned int dest)
--{
--  constraint_edge_t edge;
--  VEC(constraint_edge_t,heap) *vec;
--  struct constraint_edge lookfor;
--
--  lookfor.dest = dest;
--
--  vec = graph->preds[src];
--  edge = constraint_edge_vec_find (vec, lookfor);
--  gcc_assert (edge != NULL);
--  return &edge->weights;
--}
--
--/* Allocate graph weight bitmap for the edges associated with SRC and
--   DEST in GRAPH.  Both the pred and the succ edges share a single
--   bitmap, so we need to set both edges to that bitmap.  */
--
--static bitmap
--allocate_graph_weights (constraint_graph_t graph, unsigned int src, 
--                      unsigned int dest)
--{
--  bitmap result;
--  constraint_edge_t edge;
--  VEC(constraint_edge_t,heap) *vec;
--  struct constraint_edge lookfor;
--  
--  result = BITMAP_ALLOC (&ptabitmap_obstack);
--
--  /* Set the pred weight.  */
--  lookfor.dest = dest;
--  vec = graph->preds[src];
--  edge = constraint_edge_vec_find (vec, lookfor);
--  gcc_assert (edge != NULL);
--  edge->weights = result;
--
--  /* Set the succ weight.  */  
--  lookfor.dest = src;
--  vec = graph->succs[dest];
--  edge = constraint_edge_vec_find (vec, lookfor);
--  gcc_assert (edge != NULL);
--  edge->weights = result;
--  
--  return result;  
--}
--
--
- /* Merge GRAPH nodes FROM and TO into node TO.  */
- static void
--merge_graph_nodes (constraint_graph_t graph, unsigned int to, 
-+merge_graph_nodes (constraint_graph_t graph, unsigned int to,
-                  unsigned int from)
- {
--  VEC(constraint_edge_t,heap) *succvec = graph->succs[from];
--  VEC(constraint_edge_t,heap) *predvec = graph->preds[from];
--  int i;
--  constraint_edge_t c;
--  unsigned int j;
--  bitmap_iterator bi;
--
--  /* Merge all the zero weighted predecessor edges.  */
--  if (graph->zero_weight_preds[from])
-+  if (graph->indirect_cycles[from] != -1)
-     {
--      if (!graph->zero_weight_preds[to])
--      graph->zero_weight_preds[to] = BITMAP_ALLOC (&predbitmap_obstack);
--      
--      EXECUTE_IF_SET_IN_BITMAP (graph->zero_weight_preds[from], 0, j, bi)
-+      /* If we have indirect cycles with the from node, and we have
-+       none on the to node, the to node has indirect cycles from the
-+       from node now that they are unified.
-+       If indirect cycles exist on both, unify the nodes that they
-+       are in a cycle with, since we know they are in a cycle with
-+       each other.  */
-+      if (graph->indirect_cycles[to] == -1)
-       {
--        if (j != to)
--          {
--            bitmap_clear_bit (graph->zero_weight_succs[j], from);
--            bitmap_set_bit (graph->zero_weight_succs[j], to);
--          }
-+        graph->indirect_cycles[to] = graph->indirect_cycles[from];
-       }
--      bitmap_ior_into (graph->zero_weight_preds[to], 
--                     graph->zero_weight_preds[from]);
--    }
-+      else
-+      {
-+        unsigned int tonode = find (graph->indirect_cycles[to]);
-+        unsigned int fromnode = find (graph->indirect_cycles[from]);
--  /* Merge all the zero weighted successor edges.  */
--  if (graph->zero_weight_succs[from])
--    {
--      if (!graph->zero_weight_succs[to])
--      graph->zero_weight_succs[to] = BITMAP_ALLOC (&ptabitmap_obstack);
--      EXECUTE_IF_SET_IN_BITMAP (graph->zero_weight_succs[from], 0, j, bi)
--      {
--        bitmap_clear_bit (graph->zero_weight_preds[j], from);
--        bitmap_set_bit (graph->zero_weight_preds[j], to);
-+        if (unite (tonode, fromnode))
-+          unify_nodes (graph, tonode, fromnode, true);
-       }
--      bitmap_ior_into (graph->zero_weight_succs[to], 
--                     graph->zero_weight_succs[from]);
-     }
--  /* Merge all the nonzero weighted predecessor edges.  */
--  for (i = 0; VEC_iterate (constraint_edge_t, predvec, i, c); i++)
-+  /* Merge all the successor edges.  */
-+  if (graph->succs[from])
-     {
--      unsigned int d = c->dest;
--      bitmap temp;
--      bitmap *weights;
-+      if (!graph->succs[to])
-+      graph->succs[to] = BITMAP_ALLOC (&pta_obstack);
-+      bitmap_ior_into (graph->succs[to],
-+                     graph->succs[from]);
-+    }
--      if (c->dest == from)
--      d = to;
-+  clear_edges_for_node (graph, from);
-+}
--      add_graph_edge (graph, to, d);
--      temp = *(get_graph_weights (graph, from, c->dest));      
--      if (temp)
--      {
--        weights = get_graph_weights (graph, to, d);
--        if (!*weights)
--          *weights = allocate_graph_weights (graph, to, d);
--        
--        bitmap_ior_into (*weights, temp);
--      }
--      
--    }
--  
--  /* Merge all the nonzero weighted successor edges.  */
--  for (i = 0; VEC_iterate (constraint_edge_t, succvec, i, c); i++)
--    {
--      unsigned int d = c->dest;
--      bitmap temp;
--      bitmap *weights;
-+/* Add an indirect graph edge to GRAPH, going from TO to FROM if
-+   it doesn't exist in the graph already.  */
--      if (c->dest == from)
--      d = to;
-+static void
-+add_implicit_graph_edge (constraint_graph_t graph, unsigned int to,
-+                       unsigned int from)
-+{
-+  if (to == from)
-+    return;
--      add_graph_edge (graph, d, to);
-+  if (!graph->implicit_preds[to])
-+    graph->implicit_preds[to] = BITMAP_ALLOC (&predbitmap_obstack);
--      temp = *(get_graph_weights (graph, c->dest, from));
--      if (temp)
--      {
--        weights = get_graph_weights (graph, d, to);
--        if (!*weights)
--          *weights = allocate_graph_weights (graph, d, to);
--        bitmap_ior_into (*weights, temp);
--      }
-+  if (!bitmap_bit_p (graph->implicit_preds[to], from))
-+    {
-+      stats.num_implicit_edges++;
-+      bitmap_set_bit (graph->implicit_preds[to], from);
-     }
--  clear_edges_for_node (graph, from);
- }
--/* Add a graph edge to GRAPH, going from TO to FROM, with WEIGHT, if
-+/* Add a predecessor graph edge to GRAPH, going from TO to FROM if
-    it doesn't exist in the graph already.
-    Return false if the edge already existed, true otherwise.  */
-+static void
-+add_pred_graph_edge (constraint_graph_t graph, unsigned int to,
-+                   unsigned int from)
-+{
-+  if (!graph->preds[to])
-+    graph->preds[to] = BITMAP_ALLOC (&predbitmap_obstack);
-+  if (!bitmap_bit_p (graph->preds[to], from))
-+    bitmap_set_bit (graph->preds[to], from);
-+}
-+
-+/* Add a graph edge to GRAPH, going from FROM to TO if
-+   it doesn't exist in the graph already.
-+   Return false if the edge already existed, true otherwise.  */
-+
- static bool
--int_add_graph_edge (constraint_graph_t graph, unsigned int to, 
--                  unsigned int from, unsigned HOST_WIDE_INT weight)
-+add_graph_edge (constraint_graph_t graph, unsigned int to,
-+              unsigned int from)
- {
--  if (to == from && weight == 0)
-+  if (to == from)
-     {
-       return false;
-     }
-@@ -1125,41 +924,15 @@
-     {
-       bool r = false;
--      if (weight == 0)
-+      if (!graph->succs[from])
-+      graph->succs[from] = BITMAP_ALLOC (&pta_obstack);
-+      if (!bitmap_bit_p (graph->succs[from], to))
-       {
--          if (!graph->zero_weight_preds[to])
--          graph->zero_weight_preds[to] = BITMAP_ALLOC (&predbitmap_obstack);
--          if (!graph->zero_weight_succs[from])
--          graph->zero_weight_succs[from] = BITMAP_ALLOC (&ptabitmap_obstack);
--        if (!bitmap_bit_p (graph->zero_weight_succs[from], to))
--          {
--            edge_added = true;
--            r = true;
--            stats.num_edges++;
--            bitmap_set_bit (graph->zero_weight_preds[to], from);
--            bitmap_set_bit (graph->zero_weight_succs[from], to);
--          }
-+        r = true;
-+        if (to < FIRST_REF_NODE && from < FIRST_REF_NODE)
-+          stats.num_edges++;
-+        bitmap_set_bit (graph->succs[from], to);
-       }
--      else
--      {
--        bitmap *weights;
--
--        r = add_graph_edge (graph, to, from);
--        weights = get_graph_weights (graph, to, from);
--
--        if (!*weights)
--          {
--            r = true;
--            *weights = allocate_graph_weights (graph, to, from);
--            bitmap_set_bit (*weights, weight);
--          }
--        else
--          {
--            r |= !bitmap_bit_p (*weights, weight);
--            bitmap_set_bit (*weights, weight);
--          }
--      }
--      
-       return r;
-     }
- }
-@@ -1168,46 +941,51 @@
- /* Return true if {DEST.SRC} is an existing graph edge in GRAPH.  */
- static bool
--valid_graph_edge (constraint_graph_t graph, unsigned int src, 
-+valid_graph_edge (constraint_graph_t graph, unsigned int src,
-                 unsigned int dest)
- {
--  struct constraint_edge lookfor;
--  lookfor.dest = src;
--  
--  return (graph->zero_weight_succs[dest] 
--      && bitmap_bit_p (graph->zero_weight_succs[dest], src)) 
--    || constraint_edge_vec_find (graph->succs[dest], lookfor) != NULL;
-+  return (graph->succs[dest]
-+        && bitmap_bit_p (graph->succs[dest], src));
- }
--/* Return true if {DEST, SRC} is an existing weighted graph edge (IE has
--   a weight other than 0) in GRAPH.  */
--static bool
--valid_weighted_graph_edge (constraint_graph_t graph, unsigned int src, 
--                         unsigned int dest)
--{
--  struct constraint_edge lookfor;
--  lookfor.dest = src;
--  
--  return graph->preds[src] 
--    && constraint_edge_vec_find (graph->succs[dest], lookfor) != NULL;
--}
-+/* Build the constraint graph, adding only predecessor edges right now.  */
--
--/* Build the constraint graph.  */
--
- static void
--build_constraint_graph (void)
-+build_pred_graph (void)
- {
--  int i = 0;
-+  int i;
-   constraint_t c;
-+  unsigned int j;
-   graph = XNEW (struct constraint_graph);
--  graph_size = VEC_length (varinfo_t, varmap) + 1;
--  graph->succs = XCNEWVEC (VEC(constraint_edge_t,heap) *, graph_size);
--  graph->preds = XCNEWVEC (VEC(constraint_edge_t,heap) *, graph_size);
--  graph->zero_weight_succs = XCNEWVEC (bitmap, graph_size);
--  graph->zero_weight_preds = XCNEWVEC (bitmap, graph_size);
-+  graph->size = (VEC_length (varinfo_t, varmap)) * 3;
-+  graph->succs = XCNEWVEC (bitmap, graph->size);
-+  graph->implicit_preds = XCNEWVEC (bitmap, graph->size);
-+  graph->preds = XCNEWVEC (bitmap, graph->size);
-+  graph->indirect_cycles = XNEWVEC (int, VEC_length (varinfo_t, varmap));
-+  graph->label = XCNEWVEC (unsigned int, graph->size);
-+  graph->rep = XNEWVEC (unsigned int, graph->size);
-+  graph->eq_rep = XNEWVEC (int, graph->size);
-+  graph->complex = XCNEWVEC (VEC(constraint_t, heap) *,
-+                           VEC_length (varinfo_t, varmap));
-+  graph->direct_nodes = sbitmap_alloc (graph->size);
-+  sbitmap_zero (graph->direct_nodes);
-+  for (j = 0; j < FIRST_REF_NODE; j++)
-+    {
-+      if (!get_varinfo (j)->is_special_var)
-+      SET_BIT (graph->direct_nodes, j);
-+    }
-+
-+  for (j = 0; j < graph->size; j++)
-+    {
-+      graph->rep[j] = j;
-+      graph->eq_rep[j] = -1;
-+    }
-+
-+  for (j = 0; j < VEC_length (varinfo_t, varmap); j++)
-+    graph->indirect_cycles[j] = -1;
-+
-   for (i = 0; VEC_iterate (constraint_t, constraints, i, c); i++)
-     {
-       struct constraint_expr lhs = c->lhs;
-@@ -1217,31 +995,92 @@
-       if (lhs.type == DEREF)
-       {
--        /* *x = y or *x = &y (complex) */
--        if (rhs.type == ADDRESSOF || rhsvar > anything_id)
--          insert_into_complex (lhsvar, c);
-+        /* *x = y.  */
-+        if (rhs.offset == 0 && lhs.offset == 0 && rhs.type == SCALAR)
-+          add_pred_graph_edge (graph, FIRST_REF_NODE + lhsvar, rhsvar);
-+        if (rhs.type == ADDRESSOF)
-+          RESET_BIT (graph->direct_nodes, rhsvar);
-       }
-       else if (rhs.type == DEREF)
-       {
--        /* !special var= *y */
--        if (!(get_varinfo (lhsvar)->is_special_var))
--          insert_into_complex (rhsvar, c);
-+        /* x = *y */
-+        if (rhs.offset == 0 && lhs.offset == 0 && lhs.type == SCALAR)
-+          add_pred_graph_edge (graph, lhsvar, FIRST_REF_NODE + rhsvar);
-+        else
-+          RESET_BIT (graph->direct_nodes, lhsvar);
-       }
-       else if (rhs.type == ADDRESSOF)
-       {
-         /* x = &y */
-+        add_pred_graph_edge (graph, lhsvar, FIRST_ADDR_NODE + rhsvar);
-+        /* Implicitly, *x = y */
-+        add_implicit_graph_edge (graph, FIRST_REF_NODE + lhsvar, rhsvar);
-+
-+        RESET_BIT (graph->direct_nodes, rhsvar);
-+      }
-+      else if (lhsvar > anything_id
-+             && lhsvar != rhsvar && lhs.offset == 0 && rhs.offset == 0)
-+      {
-+        /* x = y */
-+        add_pred_graph_edge (graph, lhsvar, rhsvar);
-+        /* Implicitly, *x = *y */
-+        add_implicit_graph_edge (graph, FIRST_REF_NODE + lhsvar,
-+                                 FIRST_REF_NODE + rhsvar);
-+      }
-+      else if (lhs.offset != 0 || rhs.offset != 0)
-+      {
-+        if (rhs.offset != 0)
-+          RESET_BIT (graph->direct_nodes, lhs.var);
-+        if (lhs.offset != 0)
-+          RESET_BIT (graph->direct_nodes, rhs.var);
-+      }
-+    }
-+}
-+
-+/* Build the constraint graph, adding successor edges.  */
-+
-+static void
-+build_succ_graph (void)
-+{
-+  int i;
-+  constraint_t c;
-+
-+  for (i = 0; VEC_iterate (constraint_t, constraints, i, c); i++)
-+    {
-+      struct constraint_expr lhs;
-+      struct constraint_expr rhs;
-+      unsigned int lhsvar;
-+      unsigned int rhsvar;
-+
-+      if (!c)
-+      continue;
-+
-+      lhs = c->lhs;
-+      rhs = c->rhs;
-+      lhsvar = find (get_varinfo_fc (lhs.var)->id);
-+      rhsvar = find (get_varinfo_fc (rhs.var)->id);
-+
-+      if (lhs.type == DEREF)
-+      {
-+        if (rhs.offset == 0 && lhs.offset == 0 && rhs.type == SCALAR)
-+          add_graph_edge (graph, FIRST_REF_NODE + lhsvar, rhsvar);
-+      }
-+      else if (rhs.type == DEREF)
-+      {
-+        if (rhs.offset == 0 && lhs.offset == 0 && lhs.type == SCALAR)
-+          add_graph_edge (graph, lhsvar, FIRST_REF_NODE + rhsvar);
-+      }
-+      else if (rhs.type == ADDRESSOF)
-+      {
-+        /* x = &y */
-+        gcc_assert (find (get_varinfo_fc (rhs.var)->id)
-+                    == get_varinfo_fc (rhs.var)->id);
-         bitmap_set_bit (get_varinfo (lhsvar)->solution, rhsvar);
-       }
--      else if (lhsvar > anything_id)
-+      else if (lhsvar > anything_id
-+             && lhsvar != rhsvar && lhs.offset == 0 && rhs.offset == 0)
-       {
--        /* Ignore 0 weighted self edges, as they can't possibly contribute
--           anything */
--        if (lhsvar != rhsvar || rhs.offset != 0 || lhs.offset != 0)
--          {
--            /* x = y (simple) */
--            int_add_graph_edge (graph, lhs.var, rhs.var, rhs.offset);
--          }
--        
-+        add_graph_edge (graph, lhsvar, rhsvar);
-       }
-     }
- }
-@@ -1260,20 +1099,20 @@
- struct scc_info
- {
-   sbitmap visited;
--  sbitmap in_component;
-+  sbitmap roots;
-+  unsigned int *dfs;
-+  unsigned int *node_mapping;
-   int current_index;
--  unsigned int *visited_index;
-   VEC(unsigned,heap) *scc_stack;
--  VEC(unsigned,heap) *unification_queue;
- };
- /* Recursive routine to find strongly connected components in GRAPH.
-    SI is the SCC info to store the information in, and N is the id of current
-    graph node we are processing.
--   
-+
-    This is Tarjan's strongly connected component finding algorithm, as
--   modified by Nuutila to keep only non-root nodes on the stack.  
-+   modified by Nuutila to keep only non-root nodes on the stack.
-    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 +1123,144 @@
- {
-   unsigned int i;
-   bitmap_iterator bi;
-+  unsigned int my_dfs;
--  gcc_assert (get_varinfo (n)->node == n);
-   SET_BIT (si->visited, n);
--  RESET_BIT (si->in_component, n);
--  si->visited_index[n] = si->current_index ++;
--  
-+  si->dfs[n] = si->current_index ++;
-+  my_dfs = si->dfs[n];
-+
-   /* Visit all the successors.  */
--  EXECUTE_IF_IN_NONNULL_BITMAP (graph->zero_weight_succs[n], 0, i, bi)
-+  EXECUTE_IF_IN_NONNULL_BITMAP (graph->succs[n], 0, i, bi)
-     {
--      unsigned int w = i;
-+      unsigned int w;
-+
-+      if (i > LAST_REF_NODE)
-+      break;
-+
-+      w = find (i);
-+      if (TEST_BIT (si->roots, w))
-+      continue;
-+
-       if (!TEST_BIT (si->visited, w))
-       scc_visit (graph, si, w);
--      if (!TEST_BIT (si->in_component, w))
--      {
--        unsigned int t = get_varinfo (w)->node;
--        unsigned int nnode = get_varinfo (n)->node;
--        if (si->visited_index[t] < si->visited_index[nnode])
--          get_varinfo (n)->node = t;
--      }
-+      {
-+      unsigned int t = find (w);
-+      unsigned int nnode = find (n);
-+      gcc_assert (nnode == n);
-+
-+      if (si->dfs[t] < si->dfs[nnode])
-+        si->dfs[n] = si->dfs[t];
-+      }
-     }
--  
-+
-   /* See if any components have been identified.  */
--  if (get_varinfo (n)->node == n)
-+  if (si->dfs[n] == my_dfs)
-     {
--      unsigned int t = si->visited_index[n];
--      SET_BIT (si->in_component, n);
--      while (VEC_length (unsigned, si->scc_stack) != 0 
--           && t < si->visited_index[VEC_last (unsigned, si->scc_stack)])
-+      if (VEC_length (unsigned, si->scc_stack) > 0
-+        && si->dfs[VEC_last (unsigned, si->scc_stack)] >= my_dfs)
-       {
--        unsigned int w = VEC_pop (unsigned, si->scc_stack);
--        get_varinfo (w)->node = n;
--        SET_BIT (si->in_component, w);
--        /* Mark this node for collapsing.  */
--        VEC_safe_push (unsigned, heap, si->unification_queue, w);
--      } 
--    }
--  else
--    VEC_safe_push (unsigned, heap, si->scc_stack, n);
--}
-+        bitmap scc = BITMAP_ALLOC (NULL);
-+        bool have_ref_node = n >= FIRST_REF_NODE;
-+        unsigned int lowest_node;
-+        bitmap_iterator bi;
-+        bitmap_set_bit (scc, n);
--/* Collapse two variables into one variable.  */
-+        while (VEC_length (unsigned, si->scc_stack) != 0
-+               && si->dfs[VEC_last (unsigned, si->scc_stack)] >= my_dfs)
-+          {
-+            unsigned int w = VEC_pop (unsigned, si->scc_stack);
--static void
--collapse_nodes (constraint_graph_t graph, unsigned int to, unsigned int from)
--{
--  bitmap tosol, fromsol;
-+            bitmap_set_bit (scc, w);
-+            if (w >= FIRST_REF_NODE)
-+              have_ref_node = true;
-+          }
--  condense_varmap_nodes (to, from);
--  tosol = get_varinfo (to)->solution;
--  fromsol = get_varinfo (from)->solution;
--  bitmap_ior_into (tosol, fromsol);
--  merge_graph_nodes (graph, to, from);
--
--  if (valid_graph_edge (graph, to, to))
--    {
--      if (graph->zero_weight_preds[to])
--      {
--        bitmap_clear_bit (graph->zero_weight_preds[to], to);
--        bitmap_clear_bit (graph->zero_weight_succs[to], to);
-+        lowest_node = bitmap_first_set_bit (scc);
-+        gcc_assert (lowest_node < FIRST_REF_NODE);
-+        EXECUTE_IF_SET_IN_BITMAP (scc, 0, i, bi)
-+          {
-+            if (i < FIRST_REF_NODE)
-+              {
-+                /* Mark this node for collapsing.  */
-+                if (unite (lowest_node, i))
-+                  unify_nodes (graph, lowest_node, i, false);
-+              }
-+            else
-+              {
-+                unite (lowest_node, i);
-+                graph->indirect_cycles[i - FIRST_REF_NODE] = lowest_node;
-+              }
-+          }
-       }
--      if (valid_weighted_graph_edge (graph, to, to))
--      {
--        bitmap weights = *(get_graph_weights (graph, to, to));
--        if (!weights || bitmap_empty_p (weights))
--          erase_graph_self_edge (graph, to);
--      }
-+      SET_BIT (si->roots, n);
-     }
--  BITMAP_FREE (fromsol);
--  get_varinfo (to)->address_taken |= get_varinfo (from)->address_taken;
--  get_varinfo (to)->indirect_target |= get_varinfo (from)->indirect_target;
-+  else
-+    VEC_safe_push (unsigned, heap, si->scc_stack, n);
- }
-+/* Unify node FROM into node TO, updating the changed count if
-+   necessary when UPDATE_CHANGED is true.  */
--/* Unify nodes in GRAPH that we have found to be part of a cycle.
--   SI is the Strongly Connected Components information structure that tells us
--   what components to unify.
--   UPDATE_CHANGED should be set to true if the changed sbitmap and changed
--   count should be updated to reflect the unification.  */
--
- static void
--process_unification_queue (constraint_graph_t graph, struct scc_info *si,
--                         bool update_changed)
-+unify_nodes (constraint_graph_t graph, unsigned int to, unsigned int from,
-+           bool update_changed)
- {
--  size_t i = 0;
--  bitmap tmp = BITMAP_ALLOC (update_changed ? &iteration_obstack : NULL);
--  bitmap_clear (tmp);
--  /* We proceed as follows:
-+  gcc_assert (to != from && find (to) == to);
-+  if (dump_file && (dump_flags & TDF_DETAILS))
-+    fprintf (dump_file, "Unifying %s to %s\n",
-+           get_varinfo (from)->name,
-+           get_varinfo (to)->name);
--     For each component in the queue (components are delineated by
--     when current_queue_element->node != next_queue_element->node):
-+  if (update_changed)
-+    stats.unified_vars_dynamic++;
-+  else
-+    stats.unified_vars_static++;
--        rep = representative node for component
-+  merge_graph_nodes (graph, to, from);
-+  merge_node_constraints (graph, to, from);
--        For each node (tounify) to be unified in the component,
--           merge the solution for tounify into tmp bitmap
--
--           clear solution for tounify
--
--           merge edges from tounify into rep
--
--         merge complex constraints from tounify into rep
--
--         update changed count to note that tounify will never change
--         again
--
--      Merge tmp into solution for rep, marking rep changed if this
--      changed rep's solution.
--      
--      Delete any 0 weighted self-edges we now have for rep.  */
--  while (i != VEC_length (unsigned, si->unification_queue))
-+  if (update_changed && TEST_BIT (changed, from))
-     {
--      unsigned int tounify = VEC_index (unsigned, si->unification_queue, i);
--      unsigned int n = get_varinfo (tounify)->node;
--
--      if (dump_file && (dump_flags & TDF_DETAILS))
--      fprintf (dump_file, "Unifying %s to %s\n", 
--               get_varinfo (tounify)->name,
--               get_varinfo (n)->name);
--      if (update_changed)
--      stats.unified_vars_dynamic++;
-+      RESET_BIT (changed, from);
-+      if (!TEST_BIT (changed, to))
-+      SET_BIT (changed, to);
-       else
--      stats.unified_vars_static++;
--      bitmap_ior_into (tmp, get_varinfo (tounify)->solution);
--      merge_graph_nodes (graph, n, tounify);
--      condense_varmap_nodes (n, tounify);
--      
--      if (update_changed && TEST_BIT (changed, tounify))
-       {
--        RESET_BIT (changed, tounify);
--        if (!TEST_BIT (changed, n))
--          SET_BIT (changed, n);
--        else
--          {
--            gcc_assert (changed_count > 0);
--            changed_count--;
--          }
-+        gcc_assert (changed_count > 0);
-+        changed_count--;
-       }
-+    }
--      bitmap_clear (get_varinfo (tounify)->solution);
--      ++i;
--
--      /* If we've either finished processing the entire queue, or
--       finished processing all nodes for component n, update the solution for
--       n.  */
--      if (i == VEC_length (unsigned, si->unification_queue)
--        || get_varinfo (VEC_index (unsigned, si->unification_queue, i))->node != n)
-+  /* If the solution changes because of the merging, we need to mark
-+     the variable as changed.  */
-+  if (bitmap_ior_into (get_varinfo (to)->solution,
-+                     get_varinfo (from)->solution))
-+    {
-+      if (update_changed && !TEST_BIT (changed, to))
-       {
--        /* If the solution changes because of the merging, we need to mark
--           the variable as changed.  */
--        if (bitmap_ior_into (get_varinfo (n)->solution, tmp))
--          {
--            if (update_changed && !TEST_BIT (changed, n))
--              {
--                SET_BIT (changed, n);
--                changed_count++;
--              }
--          }
--        bitmap_clear (tmp);
--
--        if (valid_graph_edge (graph, n, n))
--          {
--            if (graph->zero_weight_succs[n])
--              {
--                if (graph->zero_weight_preds[n])
--                  bitmap_clear_bit (graph->zero_weight_preds[n], n);
--                bitmap_clear_bit (graph->zero_weight_succs[n], n);
--              }
--            if (valid_weighted_graph_edge (graph, n, n))
--              {
--                bitmap weights = *(get_graph_weights (graph, n, n));
--                if (!weights || bitmap_empty_p (weights))
--                  erase_graph_self_edge (graph, n);
--              }
--          }
-+        SET_BIT (changed, to);
-+        changed_count++;
-       }
-     }
--  BITMAP_FREE (tmp);
-+
-+  BITMAP_FREE (get_varinfo (from)->solution);
-+  BITMAP_FREE (get_varinfo (from)->oldsolution);
-+
-+  if (stats.iterations > 0)
-+    {
-+      BITMAP_FREE (get_varinfo (to)->oldsolution);
-+      get_varinfo (to)->oldsolution = BITMAP_ALLOC (&oldpta_obstack);
-+    }
-+
-+  if (valid_graph_edge (graph, to, to))
-+    {
-+      if (graph->succs[to])
-+      bitmap_clear_bit (graph->succs[to], to);
-+    }
- }
--
- /* Information needed to compute the topological ordering of a graph.  */
- struct topo_info
-@@ -1509,37 +1304,24 @@
- topo_visit (constraint_graph_t graph, struct topo_info *ti,
-           unsigned int n)
- {
--  VEC(constraint_edge_t,heap) *succs = graph->succs[n];
--  bitmap temp;
-   bitmap_iterator bi;
--  constraint_edge_t c;
--  int i;
-   unsigned int j;
-   SET_BIT (ti->visited, n);
--  if (VEC_length (constraint_edge_t, succs) != 0)
--    {
--      temp = BITMAP_ALLOC (&iteration_obstack);
--      if (graph->zero_weight_succs[n])
--      bitmap_ior_into (temp, graph->zero_weight_succs[n]);
--      for (i = 0; VEC_iterate (constraint_edge_t, succs, i, c); i++)
--      bitmap_set_bit (temp, c->dest);
--    }
--  else 
--    temp = graph->zero_weight_succs[n];
--  if (temp) 
--    EXECUTE_IF_SET_IN_BITMAP (temp, 0, j, bi)
-+  if (graph->succs[n])
-+    EXECUTE_IF_SET_IN_BITMAP (graph->succs[n], 0, j, bi)
-       {
-       if (!TEST_BIT (ti->visited, j))
-         topo_visit (graph, ti, j);
-       }
-+
-   VEC_safe_push (unsigned, heap, ti->topo_order, n);
- }
- /* Return true if variable N + OFFSET is a legal field of N.  */
--static bool 
-+static bool
- type_safe (unsigned int n, unsigned HOST_WIDE_INT *offset)
- {
-   varinfo_t ninfo = get_varinfo (n);
-@@ -1582,10 +1364,10 @@
-         v = first_vi_for_offset (get_varinfo (j), fieldoffset);
-         if (!v)
-           continue;
--        t = v->node;
-+        t = find (v->id);
-         sol = get_varinfo (t)->solution;
-         if (!bitmap_bit_p (sol, rhs))
--          {             
-+          {
-             bitmap_set_bit (sol, rhs);
-             if (!TEST_BIT (changed, t))
-               {
-@@ -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");
--      
-+
-     }
- }
-@@ -1607,7 +1389,7 @@
- do_sd_constraint (constraint_graph_t graph, constraint_t c,
-                 bitmap delta)
- {
--  unsigned int lhs = get_varinfo (c->lhs.var)->node;
-+  unsigned int lhs = find (c->lhs.var);
-   bool flag = false;
-   bitmap sol = get_varinfo (lhs)->solution;
-   unsigned int j;
-@@ -1620,7 +1402,7 @@
-        bitmap_set_bit (sol, anything_id);
-      goto done;
-    }
--  /* For each variable j in delta (Sol(y)), add    
-+  /* For each variable j in delta (Sol(y)), add
-      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 +1416,18 @@
-         v = first_vi_for_offset (get_varinfo (j), fieldoffset);
-         if (!v)
-           continue;
--        t = v->node;
-+        t = find (v->id);
-         /* Adding edges from the special vars is pointless.
-            They don't have sets that can change.  */
-         if (get_varinfo (t) ->is_special_var)
-           flag |= bitmap_ior_into (sol, get_varinfo (t)->solution);
--        else if (int_add_graph_edge (graph, lhs, t, 0))
-+        else if (add_graph_edge (graph, lhs, t))
-           flag |= bitmap_ior_into (sol, get_varinfo (t)->solution);
-       }
-       else if (0 && dump_file && !(get_varinfo (j)->is_special_var))
-       fprintf (dump_file, "Untypesafe usage in do_sd_constraint\n");
--      
-+
-     }
- done:
-@@ -1658,15 +1440,15 @@
-         SET_BIT (changed, lhs);
-         changed_count++;
-       }
--    }    
-+    }
- }
- /* Process a constraint C that represents *x = y.  */
- static void
--do_ds_constraint (constraint_graph_t graph, constraint_t c, bitmap delta)
-+do_ds_constraint (constraint_t c, bitmap delta)
- {
--  unsigned int rhs = get_varinfo (c->rhs.var)->node;
-+  unsigned int rhs = find (c->rhs.var);
-   unsigned HOST_WIDE_INT roff = c->rhs.offset;
-   bitmap sol = get_varinfo (rhs)->solution;
-   unsigned int j;
-@@ -1685,8 +1467,8 @@
-        v = first_vi_for_offset (get_varinfo (j), fieldoffset);
-        if (!v)
-          continue;
--       t = v->node;
--       
-+       t = find (v->id);
-+
-        if (!bitmap_bit_p (get_varinfo (t)->solution, anything_id))
-          {
-            bitmap_set_bit (get_varinfo (t)->solution, anything_id);
-@@ -1705,40 +1487,39 @@
-   EXECUTE_IF_SET_IN_BITMAP (delta, 0, j, bi)
-     {
-       unsigned HOST_WIDE_INT loff = c->lhs.offset;
--      if (type_safe (j, &loff) && !(get_varinfo(j)->is_special_var))
-+      if (type_safe (j, &loff) && !(get_varinfo (j)->is_special_var))
-       {
-         varinfo_t v;
-         unsigned int t;
-         unsigned HOST_WIDE_INT fieldoffset = get_varinfo (j)->offset + loff;
-+        bitmap tmp;
-         v = first_vi_for_offset (get_varinfo (j), fieldoffset);
-         if (!v)
-           continue;
--        t = v->node;
--        if (int_add_graph_edge (graph, t, rhs, roff))
-+        t = find (v->id);
-+        tmp = get_varinfo (t)->solution;
-+
-+        if (set_union_with_increment (tmp, sol, roff))
-           {
--            bitmap tmp = get_varinfo (t)->solution;
--            if (set_union_with_increment (tmp, sol, roff))
-+            get_varinfo (t)->solution = tmp;
-+            if (t == rhs)
-+              sol = get_varinfo (rhs)->solution;
-+            if (!TEST_BIT (changed, t))
-               {
--                get_varinfo (t)->solution = tmp;
--                if (t == rhs)
--                  sol = get_varinfo (rhs)->solution;
--                if (!TEST_BIT (changed, t))
--                  {
--                    SET_BIT (changed, t);
--                    changed_count++;
--                  }
-+                SET_BIT (changed, t);
-+                changed_count++;
-               }
-           }
--      }    
-+      }
-       else if (0 && dump_file && !(get_varinfo (j)->is_special_var))
-       fprintf (dump_file, "Untypesafe usage in do_ds_constraint\n");
-     }
- }
--/* Handle a non-simple (simple meaning requires no iteration), non-copy
--   constraint (IE *x = &y, x = *y, and *x = y).  */
--   
-+/* Handle a non-simple (simple meaning requires no iteration),
-+   constraint (IE *x = &y, x = *y, *x = y, and x = y with offsets involved).  */
-+
- static void
- do_complex_constraint (constraint_graph_t graph, constraint_t c, bitmap delta)
- {
-@@ -1752,33 +1533,62 @@
-       else
-       {
-         /* *x = y */
--        do_ds_constraint (graph, c, delta);
-+        do_ds_constraint (c, delta);
-       }
-     }
--  else
-+  else if (c->rhs.type == DEREF)
-     {
-       /* x = *y */
-       if (!(get_varinfo (c->lhs.var)->is_special_var))
-       do_sd_constraint (graph, c, delta);
-     }
-+  else
-+    {
-+      bitmap tmp;
-+      bitmap solution;
-+      bool flag = false;
-+      unsigned int t;
-+
-+      gcc_assert (c->rhs.type == SCALAR && c->lhs.type == SCALAR);
-+      t = find (c->rhs.var);
-+      solution = get_varinfo (t)->solution;
-+      t = find (c->lhs.var);
-+      tmp = get_varinfo (t)->solution;
-+
-+      flag = set_union_with_increment (tmp, solution, c->rhs.offset);
-+
-+      if (flag)
-+      {
-+        get_varinfo (t)->solution = tmp;
-+        if (!TEST_BIT (changed, t))
-+          {
-+            SET_BIT (changed, t);
-+            changed_count++;
-+          }
-+      }
-+    }
- }
- /* Initialize and return a new SCC info structure.  */
- static struct scc_info *
--init_scc_info (void)
-+init_scc_info (size_t size)
- {
-   struct scc_info *si = XNEW (struct scc_info);
--  size_t size = VEC_length (varinfo_t, varmap);
-+  size_t i;
-   si->current_index = 0;
-   si->visited = sbitmap_alloc (size);
-   sbitmap_zero (si->visited);
--  si->in_component = sbitmap_alloc (size);
--  sbitmap_ones (si->in_component);
--  si->visited_index = XCNEWVEC (unsigned int, size + 1);
-+  si->roots = sbitmap_alloc (size);
-+  sbitmap_zero (si->roots);
-+  si->node_mapping = XNEWVEC (unsigned int, size);
-+  si->dfs = XCNEWVEC (unsigned int, size);
-+
-+  for (i = 0; i < size; i++)
-+    si->node_mapping[i] = i;
-+
-   si->scc_stack = VEC_alloc (unsigned, heap, 1);
--  si->unification_queue = VEC_alloc (unsigned, heap, 1);
-   return si;
- }
-@@ -1786,209 +1596,430 @@
- static void
- free_scc_info (struct scc_info *si)
--{  
-+{
-   sbitmap_free (si->visited);
--  sbitmap_free (si->in_component);
--  free (si->visited_index);
-+  sbitmap_free (si->roots);
-+  free (si->node_mapping);
-+  free (si->dfs);
-   VEC_free (unsigned, heap, si->scc_stack);
--  VEC_free (unsigned, heap, si->unification_queue);
--  free(si); 
-+  free (si);
- }
--/* Find cycles in GRAPH that occur, using strongly connected components, and
--   collapse the cycles into a single representative node.  if UPDATE_CHANGED
--   is true, then update the changed sbitmap to note those nodes whose
--   solutions have changed as a result of collapsing.  */
-+/* Find indirect cycles in GRAPH that occur, using strongly connected
-+   components, and note them in the indirect cycles map.
-+   This technique comes from Ben Hardekopf and Calvin Lin,
-+   "It Pays to be Lazy: Fast and Accurate Pointer Analysis for Millions of
-+   Lines of Code", submitted to PLDI 2007.  */
-+
- static void
--find_and_collapse_graph_cycles (constraint_graph_t graph, bool update_changed)
-+find_indirect_cycles (constraint_graph_t graph)
- {
-   unsigned int i;
--  unsigned int size = VEC_length (varinfo_t, varmap);
--  struct scc_info *si = init_scc_info ();
-+  unsigned int size = graph->size;
-+  struct scc_info *si = init_scc_info (size);
--  for (i = 0; i != size; ++i)
--    if (!TEST_BIT (si->visited, i) && get_varinfo (i)->node == i)
-+  for (i = 0; i < MIN (LAST_REF_NODE, size); i ++ )
-+    if (!TEST_BIT (si->visited, i) && find (i) == i)
-       scc_visit (graph, si, i);
--  
--  process_unification_queue (graph, si, update_changed);
-+
-   free_scc_info (si);
- }
- /* Compute a topological ordering for GRAPH, and store the result in the
-    topo_info structure TI.  */
--static void 
-+static void
- compute_topo_order (constraint_graph_t graph,
-                   struct topo_info *ti)
- {
-   unsigned int i;
-   unsigned int size = VEC_length (varinfo_t, varmap);
--  
-+
-   for (i = 0; i != size; ++i)
--    if (!TEST_BIT (ti->visited, i) && get_varinfo (i)->node == i)
-+    if (!TEST_BIT (ti->visited, i) && find (i) == i)
-       topo_visit (graph, ti, i);
- }
--/* Return true if bitmap B is empty, or a bitmap other than bit 0 is set. */
-+/* Perform offline variable substitution.
--static bool
--bitmap_other_than_zero_bit_set (bitmap b)
--{
--  unsigned int i;
--  bitmap_iterator bi;
--
--  if (bitmap_empty_p (b))
--    return false;
--  EXECUTE_IF_SET_IN_BITMAP (b, 1, i, bi)
--    return true;
--  return false;
--}
--
--/* Perform offline variable substitution.
--   
-    This is a linear time way of identifying variables that must have
-    equivalent points-to sets, including those caused by static cycles,
-    and single entry subgraphs, in the constraint graph.
-    The technique is described in "Off-line variable substitution for
-    scaling points-to analysis" by Atanas Rountev and Satish Chandra,
--   in "ACM SIGPLAN Notices" volume 35, number 5, pages 47-56.  */
-+   in "ACM SIGPLAN Notices" volume 35, number 5, pages 47-56.
-+   There is an optimal way to do this involving hash based value
-+   numbering, once the technique is published i will implement it
-+   here.  
-+
-+   The general method of finding equivalence classes is as follows:
-+   Add fake nodes (REF nodes) and edges for *a = b and a = *b constraints.
-+   Add fake nodes (ADDRESS nodes) and edges for a = &b constraints.
-+   Initialize all non-REF/ADDRESS nodes to be direct nodes
-+   For each SCC in the predecessor graph:
-+      for each member (x) of the SCC
-+         if x is not a direct node:
-+         set rootnode(SCC) to be not a direct node
-+       collapse node x into rootnode(SCC).
-+      if rootnode(SCC) is not a direct node:
-+        label rootnode(SCC) with a new equivalence class
-+      else:
-+        if all labeled predecessors of rootnode(SCC) have the same
-+      label:
-+        label rootnode(SCC) with this label
-+      else:
-+        label rootnode(SCC) with a new equivalence class
-+
-+   All direct nodes with the same equivalence class can be replaced
-+   with a single representative node.
-+   All unlabeled nodes (label == 0) are not pointers and all edges
-+   involving them can be eliminated.
-+   We perform these optimizations during move_complex_constraints.
-+*/
-+
-+static int equivalence_class;
-+
-+/* Recursive routine to find strongly connected components in GRAPH,
-+   and label it's nodes with equivalence classes.
-+   This is used during variable substitution to find cycles involving
-+   the regular or implicit predecessors, and label them as equivalent.
-+   The SCC finding algorithm used is the same as that for scc_visit.  */
-+
- static void
--perform_var_substitution (constraint_graph_t graph)
-+label_visit (constraint_graph_t graph, struct scc_info *si, unsigned int n)
- {
--  struct topo_info *ti = init_topo_info ();
-- 
--  bitmap_obstack_initialize (&iteration_obstack);
--  /* Compute the topological ordering of the graph, then visit each
--     node in topological order.  */
--  compute_topo_order (graph, ti);
-- 
--  while (VEC_length (unsigned, ti->topo_order) != 0)
-+  unsigned int i;
-+  bitmap_iterator bi;
-+  unsigned int my_dfs;
-+
-+  gcc_assert (si->node_mapping[n] == n);
-+  SET_BIT (si->visited, n);
-+  si->dfs[n] = si->current_index ++;
-+  my_dfs = si->dfs[n];
-+
-+  /* Visit all the successors.  */
-+  EXECUTE_IF_IN_NONNULL_BITMAP (graph->preds[n], 0, i, bi)
-     {
--      unsigned int i = VEC_pop (unsigned, ti->topo_order);
--      unsigned int pred;
--      varinfo_t vi = get_varinfo (i);
--      bool okay_to_elim = false;
--      unsigned int root = VEC_length (varinfo_t, varmap);
--      VEC(constraint_edge_t,heap) *predvec = graph->preds[i];
--      constraint_edge_t ce = NULL;
--      bitmap tmp;
--      unsigned int k;
--      bitmap_iterator bi;
-+      unsigned int w = si->node_mapping[i];
--      /* We can't eliminate things whose address is taken, or which is
--       the target of a dereference.  */
--      if (vi->address_taken || vi->indirect_target)
-+      if (TEST_BIT (si->roots, w))
-       continue;
--      /* See if all predecessors of I are ripe for elimination */
--      EXECUTE_IF_IN_NONNULL_BITMAP (graph->zero_weight_preds[i], 0, k, bi)
--        {
--          unsigned int w;
--          w = get_varinfo (k)->node;
-+      if (!TEST_BIT (si->visited, w))
-+      label_visit (graph, si, w);
-+      {
-+      unsigned int t = si->node_mapping[w];
-+      unsigned int nnode = si->node_mapping[n];
-+      gcc_assert (nnode == n);
--          /* We can't eliminate the node if one of the predecessors is
--             part of a different strongly connected component.  */
--          if (!okay_to_elim)
--            {
--              root = w;
--              okay_to_elim = true;
--            }
--          else if (w != root)
--            {
--              okay_to_elim = false;
--              break;
--            }
-+      if (si->dfs[t] < si->dfs[nnode])
-+        si->dfs[n] = si->dfs[t];
-+      }
-+    }
--          /* Theorem 4 in Rountev and Chandra: If i is a direct node,
--             then Solution(i) is a subset of Solution (w), where w is a
--             predecessor in the graph.  
--             Corollary: If all predecessors of i have the same
--             points-to set, then i has that same points-to set as
--             those predecessors.  */
--          tmp = BITMAP_ALLOC (NULL);
--          bitmap_and_compl (tmp, get_varinfo (i)->solution,
--                            get_varinfo (w)->solution);
--          if (!bitmap_empty_p (tmp))
--            {
--              okay_to_elim = false;
--              BITMAP_FREE (tmp);
--              break;
--            }
--          BITMAP_FREE (tmp);
--        }
-+  /* Visit all the implicit predecessors.  */
-+  EXECUTE_IF_IN_NONNULL_BITMAP (graph->implicit_preds[n], 0, i, bi)
-+    {
-+      unsigned int w = si->node_mapping[i];
--      if (okay_to_elim)
--      for (pred = 0; 
--           VEC_iterate (constraint_edge_t, predvec, pred, ce); 
--           pred++)
--        {
--          bitmap weight;
--          unsigned int w;
--          weight = *(get_graph_weights (graph, i, ce->dest));
-+      if (TEST_BIT (si->roots, w))
-+      continue;
--          /* We can't eliminate variables that have nonzero weighted
--             edges between them.  */
--          if (weight && bitmap_other_than_zero_bit_set (weight))
--            {
--              okay_to_elim = false;
--              break;
--            }
--          w = get_varinfo (ce->dest)->node;
-+      if (!TEST_BIT (si->visited, w))
-+      label_visit (graph, si, w);
-+      {
-+      unsigned int t = si->node_mapping[w];
-+      unsigned int nnode = si->node_mapping[n];
-+      gcc_assert (nnode == n);
--          /* We can't eliminate the node if one of the predecessors is
--             part of a different strongly connected component.  */
--          if (!okay_to_elim)
--            {
--              root = w;
--              okay_to_elim = true;
--            }
--          else if (w != root)
--            {
--              okay_to_elim = false;
--              break;
--            }
-+      if (si->dfs[t] < si->dfs[nnode])
-+        si->dfs[n] = si->dfs[t];
-+      }
-+    }
--          /* Theorem 4 in Rountev and Chandra: If i is a direct node,
--             then Solution(i) is a subset of Solution (w), where w is a
--             predecessor in the graph.  
--             Corollary: If all predecessors of i have the same
--             points-to set, then i has that same points-to set as
--             those predecessors.  */
--          tmp = BITMAP_ALLOC (NULL);
--          bitmap_and_compl (tmp, get_varinfo (i)->solution,
--                            get_varinfo (w)->solution);
--          if (!bitmap_empty_p (tmp))
--            {
--              okay_to_elim = false;
--              BITMAP_FREE (tmp);
--              break;
--            }
--          BITMAP_FREE (tmp);
--        }
-+  /* See if any components have been identified.  */
-+  if (si->dfs[n] == my_dfs)
-+    {
-+      while (VEC_length (unsigned, si->scc_stack) != 0
-+           && si->dfs[VEC_last (unsigned, si->scc_stack)] >= my_dfs)
-+      {
-+        unsigned int w = VEC_pop (unsigned, si->scc_stack);
-+        si->node_mapping[w] = n;
--      /* See if the root is different than the original node. 
--       If so, we've found an equivalence.  */
--      if (root != get_varinfo (i)->node && okay_to_elim)
-+        if (!TEST_BIT (graph->direct_nodes, w))
-+          RESET_BIT (graph->direct_nodes, n);
-+      }
-+      SET_BIT (si->roots, n);
-+
-+      if (!TEST_BIT (graph->direct_nodes, n))
-       {
--        /* Found an equivalence */
--        get_varinfo (i)->node = root;
--        collapse_nodes (graph, root, i);
-+        graph->label[n] = equivalence_class++;
-+      }
-+      else
-+      {
-+        unsigned int size = 0;
-+        unsigned int firstlabel = ~0;
-+
-+        EXECUTE_IF_IN_NONNULL_BITMAP (graph->preds[n], 0, i, bi)
-+          {
-+            unsigned int j = si->node_mapping[i];
-+
-+            if (j == n || graph->label[j] == 0)
-+              continue;
-+
-+            if (firstlabel == (unsigned int)~0)
-+              {
-+                firstlabel = graph->label[j];
-+                size++;
-+              }
-+            else if (graph->label[j] != firstlabel)
-+              size++;
-+          }
-+
-+        if (size == 0)
-+          graph->label[n] = 0;
-+        else if (size == 1)
-+          graph->label[n] = firstlabel;
-+        else
-+          graph->label[n] = equivalence_class++;
-+      }
-+    }
-+  else
-+    VEC_safe_push (unsigned, heap, si->scc_stack, n);
-+}
-+
-+/* Perform offline variable substitution, discovering equivalence
-+   classes, and eliminating non-pointer variables.  */
-+
-+static struct scc_info *
-+perform_var_substitution (constraint_graph_t graph)
-+{
-+  unsigned int i;
-+  unsigned int size = graph->size;
-+  struct scc_info *si = init_scc_info (size);
-+
-+  bitmap_obstack_initialize (&iteration_obstack);
-+  equivalence_class = 0;
-+
-+  /* We only need to visit the non-address nodes for labeling
-+     purposes, as the address nodes will never have any predecessors,
-+     because &x never appears on the LHS of a constraint.  */
-+  for (i = 0; i < LAST_REF_NODE; i++)
-+    if (!TEST_BIT (si->visited, si->node_mapping[i]))
-+      label_visit (graph, si, si->node_mapping[i]);
-+
-+  if (dump_file && (dump_flags & TDF_DETAILS))
-+    for (i = 0; i < FIRST_REF_NODE; i++)
-+      {
-+      bool direct_node = TEST_BIT (graph->direct_nodes, i);
-+      fprintf (dump_file,
-+               "Equivalence class for %s node id %d:%s is %d\n",
-+               direct_node ? "Direct node" : "Indirect node", i,
-+               get_varinfo (i)->name,
-+               graph->label[si->node_mapping[i]]);
-+      }
-+
-+  /* Quickly eliminate our non-pointer variables.  */
-+
-+  for (i = 0; i < FIRST_REF_NODE; i++)
-+    {
-+      unsigned int node = si->node_mapping[i];
-+
-+      if (graph->label[node] == 0 && TEST_BIT (graph->direct_nodes, node))
-+      {
-         if (dump_file && (dump_flags & TDF_DETAILS))
--          fprintf (dump_file, "Collapsing %s into %s\n",
--                   get_varinfo (i)->name,
--                   get_varinfo (root)->name);
--        stats.collapsed_vars++;
-+          fprintf (dump_file,
-+                   "%s is a non-pointer variable, eliminating edges.\n",
-+                   get_varinfo (node)->name);
-+        stats.nonpointer_vars++;
-+        clear_edges_for_node (graph, node);
-       }
-     }
-+  return si;
-+}
-+/* Free information that was only necessary for variable
-+   substitution.  */
-+
-+static void
-+free_var_substitution_info (struct scc_info *si)
-+{
-+  free_scc_info (si);
-+  free (graph->label);
-+  free (graph->eq_rep);
-+  sbitmap_free (graph->direct_nodes);
-   bitmap_obstack_release (&iteration_obstack);
--  free_topo_info (ti);
- }
-+/* Return an existing node that is equivalent to NODE, which has
-+   equivalence class LABEL, if one exists.  Return NODE otherwise.  */
-+
-+static unsigned int
-+find_equivalent_node (constraint_graph_t graph,
-+                    unsigned int node, unsigned int label)
-+{
-+  /* If the address version of this variable is unused, we can
-+     substitute it for anything else with the same label.
-+     Otherwise, we know the pointers are equivalent, but not the
-+     locations.  */
-+
-+  if (graph->label[FIRST_ADDR_NODE + node] == 0)
-+    {
-+      gcc_assert (label < graph->size);
-+
-+      if (graph->eq_rep[label] != -1)
-+      {
-+        /* Unify the two variables since we know they are equivalent.  */
-+        if (unite (graph->eq_rep[label], node))
-+          unify_nodes (graph, graph->eq_rep[label], node, false);
-+        return graph->eq_rep[label];
-+      }
-+      else
-+      {
-+        graph->eq_rep[label] = node;
-+      }
-+    }
-+  return node;
-+}
-+
-+/* Move complex constraints to the appropriate nodes, and collapse
-+   variables we've discovered are equivalent during variable
-+   substitution.  SI is the SCC_INFO that is the result of
-+   perform_variable_substitution.  */
-+
-+static void
-+move_complex_constraints (constraint_graph_t graph,
-+                        struct scc_info *si)
-+{
-+  int i;
-+  unsigned int j;
-+  constraint_t c;
-+
-+  for (j = 0; j < graph->size; j++)
-+    gcc_assert (find (j) == j);
-+
-+  for (i = 0; VEC_iterate (constraint_t, constraints, i, c); i++)
-+    {
-+      struct constraint_expr lhs = c->lhs;
-+      struct constraint_expr rhs = c->rhs;
-+      unsigned int lhsvar = find (get_varinfo_fc (lhs.var)->id);
-+      unsigned int rhsvar = find (get_varinfo_fc (rhs.var)->id);
-+      unsigned int lhsnode, rhsnode;
-+      unsigned int lhslabel, rhslabel;
-+
-+      lhsnode = si->node_mapping[lhsvar];
-+      rhsnode = si->node_mapping[rhsvar];
-+      lhslabel = graph->label[lhsnode];
-+      rhslabel = graph->label[rhsnode];
-+
-+      /* See if it is really a non-pointer variable, and if so, ignore
-+       the constraint.  */
-+      if (lhslabel == 0)
-+      {
-+        if (!TEST_BIT (graph->direct_nodes, lhsnode))
-+          lhslabel = graph->label[lhsnode] = equivalence_class++;
-+        else
-+          {
-+            if (dump_file && (dump_flags & TDF_DETAILS))
-+              {
-+
-+                fprintf (dump_file, "%s is a non-pointer variable,"
-+                         "ignoring constraint:",
-+                         get_varinfo (lhs.var)->name);
-+                dump_constraint (dump_file, c);
-+              }
-+            VEC_replace (constraint_t, constraints, i, NULL);
-+            continue;
-+          }
-+      }
-+
-+      if (rhslabel == 0)
-+      {
-+        if (!TEST_BIT (graph->direct_nodes, rhsnode))
-+          rhslabel = graph->label[rhsnode] = equivalence_class++;
-+        else
-+          {
-+            if (dump_file && (dump_flags & TDF_DETAILS))
-+              {
-+
-+                fprintf (dump_file, "%s is a non-pointer variable,"
-+                         "ignoring constraint:",
-+                         get_varinfo (rhs.var)->name);
-+                dump_constraint (dump_file, c);
-+              }
-+            VEC_replace (constraint_t, constraints, i, NULL);
-+            continue;
-+          }
-+      }
-+
-+      lhsvar = find_equivalent_node (graph, lhsvar, lhslabel);
-+      rhsvar = find_equivalent_node (graph, rhsvar, rhslabel);
-+      c->lhs.var = lhsvar;
-+      c->rhs.var = rhsvar;
-+
-+      if (lhs.type == DEREF)
-+      {
-+        if (rhs.type == ADDRESSOF || rhsvar > anything_id)
-+          insert_into_complex (graph, lhsvar, c);
-+      }
-+      else if (rhs.type == DEREF)
-+      {
-+        if (!(get_varinfo (lhsvar)->is_special_var))
-+          insert_into_complex (graph, rhsvar, c);
-+      }
-+      else if (rhs.type != ADDRESSOF && lhsvar > anything_id
-+             && (lhs.offset != 0 || rhs.offset != 0))
-+      {
-+        insert_into_complex (graph, rhsvar, c);
-+      }
-+
-+    }
-+}
-+
-+/* Eliminate indirect cycles involving NODE.  Return true if NODE was
-+   part of an SCC, false otherwise.  */
-+
-+static bool
-+eliminate_indirect_cycles (unsigned int node)
-+{
-+  if (graph->indirect_cycles[node] != -1
-+      && !bitmap_empty_p (get_varinfo (node)->solution))
-+    {
-+      unsigned int i;
-+      VEC(unsigned,heap) *queue = NULL;
-+      int queuepos;
-+      unsigned int to = find (graph->indirect_cycles[node]);
-+      bitmap_iterator bi;
-+
-+      /* We can't touch the solution set and call unify_nodes
-+       at the same time, because unify_nodes is going to do
-+       bitmap unions into it. */
-+
-+      EXECUTE_IF_SET_IN_BITMAP (get_varinfo (node)->solution, 0, i, bi)
-+      {
-+        if (find (i) == i && i != to)
-+          {
-+            if (unite (to, i))
-+              VEC_safe_push (unsigned, heap, queue, i);
-+          }
-+      }
-+
-+      for (queuepos = 0;
-+         VEC_iterate (unsigned, queue, queuepos, i);
-+         queuepos++)
-+      {
-+        unify_nodes (graph, to, i, true);
-+      }
-+      VEC_free (unsigned, heap, queue);
-+      return true;
-+    }
-+  return false;
-+}
-+
- /* 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 +2032,28 @@
- {
-   unsigned int size = VEC_length (varinfo_t, varmap);
-   unsigned int i;
-+  bitmap pts;
--  changed_count = size;
-+  changed_count = 0;
-   changed = sbitmap_alloc (size);
--  sbitmap_ones (changed);
--  
--  /* The already collapsed/unreachable nodes will never change, so we
--     need to  account for them in changed_count.  */
-+  sbitmap_zero (changed);
-+
-+  /* Mark all initial non-collapsed nodes as changed.  */
-   for (i = 0; i < size; i++)
--    if (get_varinfo (i)->node != i)
--      changed_count--;
--  
-+    {
-+      varinfo_t ivi = get_varinfo (i);
-+      if (find (i) == i && !bitmap_empty_p (ivi->solution)
-+        && ((graph->succs[i] && !bitmap_empty_p (graph->succs[i]))
-+            || VEC_length (constraint_t, graph->complex[i]) > 0))
-+      {
-+        SET_BIT (changed, i);
-+        changed_count++;
-+      }
-+    }
-+
-+  /* Allocate a bitmap to be used to store the changed bits.  */
-+  pts = BITMAP_ALLOC (&pta_obstack);
-+
-   while (changed_count > 0)
-     {
-       unsigned int i;
-@@ -2019,41 +2061,45 @@
-       stats.iterations++;
-       bitmap_obstack_initialize (&iteration_obstack);
--      
--      if (edge_added)
--      {
--        /* We already did cycle elimination once, when we did
--           variable substitution, so we don't need it again for the
--           first iteration.  */
--        if (stats.iterations > 1)
--          find_and_collapse_graph_cycles (graph, true);
--        edge_added = false;
--      }
--
-       compute_topo_order (graph, ti);
-       while (VEC_length (unsigned, ti->topo_order) != 0)
-       {
-+
-         i = VEC_pop (unsigned, ti->topo_order);
--        gcc_assert (get_varinfo (i)->node == i);
-+        /* If this variable is not a representative, skip it.  */
-+        if (find (i) != i)
-+          continue;
-+
-+        /* In certain indirect cycle cases, we may merge this
-+           variable to another.  */
-+        if (eliminate_indirect_cycles (i) && find (i) != i)
-+          continue;
-+
-         /* If the node has changed, we need to process the
-            complex constraints and outgoing edges again.  */
-         if (TEST_BIT (changed, i))
-           {
-             unsigned int j;
-             constraint_t c;
--            constraint_edge_t e = NULL;
-             bitmap solution;
--            bitmap_iterator bi;
--            VEC(constraint_t,heap) *complex = get_varinfo (i)->complex;
--            VEC(constraint_edge_t,heap) *succs;
-+            VEC(constraint_t,heap) *complex = graph->complex[i];
-             bool solution_empty;
-             RESET_BIT (changed, i);
-             changed_count--;
-+            /* Compute the changed set of solution bits.  */
-+            bitmap_and_compl (pts, get_varinfo (i)->solution,
-+                              get_varinfo (i)->oldsolution);
-+
-+            if (bitmap_empty_p (pts))
-+              continue;
-+
-+            bitmap_ior_into (get_varinfo (i)->oldsolution, pts);
-+
-             solution = get_varinfo (i)->solution;
-             solution_empty = bitmap_empty_p (solution);
-@@ -2065,52 +2111,38 @@
-                    is a constraint where the lhs side is receiving
-                    some set from elsewhere.  */
-                 if (!solution_empty || c->lhs.type != DEREF)
--                  do_complex_constraint (graph, c, solution);
-+                  do_complex_constraint (graph, c, pts);
-               }
-             solution_empty = bitmap_empty_p (solution);
-             if (!solution_empty)
-               {
-+                bitmap_iterator bi;
-+
-                 /* Propagate solution to all successors.  */
--                succs = graph->succs[i];
--                
--                EXECUTE_IF_IN_NONNULL_BITMAP (graph->zero_weight_succs[i], 
-+                EXECUTE_IF_IN_NONNULL_BITMAP (graph->succs[i],
-                                               0, j, bi)
-                   {
--                    bitmap tmp = get_varinfo (j)->solution;
--                    bool flag = false;
--                
--                    flag = set_union_with_increment (tmp, solution, 0);
--                
--                    if (flag)
--                      {
--                        get_varinfo (j)->solution = tmp;
--                        if (!TEST_BIT (changed, j))
--                          {
--                            SET_BIT (changed, j);
--                            changed_count++;
--                          }
--                      }
--                  }
--                for (j = 0; VEC_iterate (constraint_edge_t, succs, j, e); j++)
--                  {
--                    bitmap tmp = get_varinfo (e->dest)->solution;
--                    bool flag = false;
--                    unsigned int k;
--                    bitmap weights = e->weights;
--                    bitmap_iterator bi;
-+                    bitmap tmp;
-+                    bool flag;
--                    gcc_assert (weights && !bitmap_empty_p (weights));
--                    EXECUTE_IF_SET_IN_BITMAP (weights, 0, k, bi)
--                      flag |= set_union_with_increment (tmp, solution, k);
-+                    unsigned int to = find (j);
-+                    tmp = get_varinfo (to)->solution;
-+                    flag = false;
-+                    /* Don't try to propagate to ourselves.  */
-+                    if (to == i)
-+                      continue;
-+
-+                    flag = set_union_with_increment (tmp, pts, 0);
-+
-                     if (flag)
-                       {
--                        get_varinfo (e->dest)->solution = tmp;
--                        if (!TEST_BIT (changed, e->dest))
-+                        get_varinfo (to)->solution = tmp;
-+                        if (!TEST_BIT (changed, to))
-                           {
--                            SET_BIT (changed, e->dest);
-+                            SET_BIT (changed, to);
-                             changed_count++;
-                           }
-                       }
-@@ -2122,74 +2154,37 @@
-       bitmap_obstack_release (&iteration_obstack);
-     }
-+  BITMAP_FREE (pts);
-   sbitmap_free (changed);
-+  bitmap_obstack_release (&oldpta_obstack);
- }
-+/* Map from trees to variable infos.  */
-+static struct pointer_map_t *vi_for_tree;
--/* CONSTRAINT AND VARIABLE GENERATION FUNCTIONS */
--/* Map from trees to variable ids.  */    
--static htab_t id_for_tree;
-+/* Insert ID as the variable id for tree T in the vi_for_tree map.  */
--typedef struct tree_id
-+static void
-+insert_vi_for_tree (tree t, varinfo_t vi)
- {
--  tree t;
--  unsigned int id;
--} *tree_id_t;
--
--/* Hash a tree id structure.  */
--
--static hashval_t 
--tree_id_hash (const void *p)
--{
--  const tree_id_t ta = (tree_id_t) p;
--  return htab_hash_pointer (ta->t);
--}
--
--/* Return true if the tree in P1 and the tree in P2 are the same.  */
--
--static int
--tree_id_eq (const void *p1, const void *p2)
--{
--  const tree_id_t ta1 = (tree_id_t) p1;
--  const tree_id_t ta2 = (tree_id_t) p2;
--  return ta1->t == ta2->t;
--}
--
--/* Insert ID as the variable id for tree T in the hashtable.  */
--
--static void 
--insert_id_for_tree (tree t, int id)
--{
--  void **slot;
--  struct tree_id finder;
--  tree_id_t new_pair;
--  
--  finder.t = t;
--  slot = htab_find_slot (id_for_tree, &finder, INSERT);
-+  void **slot = pointer_map_insert (vi_for_tree, t);
-+  gcc_assert (vi);
-   gcc_assert (*slot == NULL);
--  new_pair = XNEW (struct tree_id);
--  new_pair->t = t;
--  new_pair->id = id;
--  *slot = (void *)new_pair;
-+  *slot = vi;
- }
--/* Find the variable id for tree T in ID_FOR_TREE.  If T does not
--   exist in the hash table, return false, otherwise, return true and
--   set *ID to the id we found.  */
-+/* Find the variable info for tree T in VI_FOR_TREE.  If T does not
-+   exist in the map, return NULL, otherwise, return the varinfo we found.  */
--static bool
--lookup_id_for_tree (tree t, unsigned int *id)
-+static varinfo_t
-+lookup_vi_for_tree (tree t)
- {
--  tree_id_t pair;
--  struct tree_id finder;
-+  void **slot = pointer_map_contains (vi_for_tree, t);
-+  if (slot == NULL)
-+    return NULL;
--  finder.t = t;
--  pair = htab_find (id_for_tree,  &finder);
--  if (pair == NULL)
--    return false;
--  *id = pair->id;
--  return true;
-+  return (varinfo_t) *slot;
- }
- /* Return a printable name for DECL  */
-@@ -2210,7 +2205,7 @@
-   if (TREE_CODE (decl) == SSA_NAME)
-     {
--      num_printed = asprintf (&temp, "%s_%u", 
-+      num_printed = asprintf (&temp, "%s_%u",
-                             alias_get_name (SSA_NAME_VAR (decl)),
-                             SSA_NAME_VERSION (decl));
-     }
-@@ -2226,21 +2221,17 @@
-   return res;
- }
--/* Find the variable id for tree T in the hashtable.
--   If T doesn't exist in the hash table, create an entry for it.  */
-+/* Find the variable id for tree T in the map.
-+   If T doesn't exist in the map, create an entry for it and return it.  */
--static unsigned int
--get_id_for_tree (tree t)
-+static varinfo_t
-+get_vi_for_tree (tree t)
- {
--  tree_id_t pair;
--  struct tree_id finder;
-+  void **slot = pointer_map_contains (vi_for_tree, t);
-+  if (slot == NULL)
-+    return get_varinfo (create_variable_info_for (t, alias_get_name (t)));
--  finder.t = t;
--  pair = htab_find (id_for_tree,  &finder);
--  if (pair == NULL)
--    return create_variable_info_for (t, alias_get_name (t));
--  
--  return pair->id;
-+  return (varinfo_t) *slot;
- }
- /* Get a constraint expression from an SSA_VAR_P node.  */
-@@ -2254,14 +2245,14 @@
-   /* For parameters, get at the points-to set for the actual parm
-      decl.  */
--  if (TREE_CODE (t) == SSA_NAME 
--      && TREE_CODE (SSA_NAME_VAR (t)) == PARM_DECL 
-+  if (TREE_CODE (t) == SSA_NAME
-+      && TREE_CODE (SSA_NAME_VAR (t)) == PARM_DECL
-       && default_def (SSA_NAME_VAR (t)) == t)
-     return get_constraint_exp_from_ssa_var (SSA_NAME_VAR (t));
-   cexpr.type = SCALAR;
--  
--  cexpr.var = get_id_for_tree (t);
-+
-+  cexpr.var = get_vi_for_tree (t)->id;
-   /* 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 +2260,7 @@
-       cexpr.type = ADDRESSOF;
-       cexpr.var = readonly_id;
-     }
--    
-+
-   cexpr.offset = 0;
-   return cexpr;
- }
-@@ -2290,7 +2281,13 @@
-     get_varinfo (lhs.var)->directly_dereferenced = true;
-   if (rhs.type == DEREF)
-     get_varinfo (rhs.var)->directly_dereferenced = true;
--  
-+
-+  if (!use_field_sensitive)
-+    {
-+      t->rhs.offset = 0;
-+      t->lhs.offset = 0;
-+    }
-+
-   /* ANYTHING == ANYTHING is pointless.  */
-   if (lhs.var == anything_id && rhs.var == anything_id)
-     return;
-@@ -2302,7 +2299,7 @@
-       t->lhs = t->rhs;
-       t->rhs = rhs;
-       process_constraint (t);
--    }   
-+    }
-   /* 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 +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);
--      
-+
-       /* If this is an aggregate of known size, we should have passed
-        this off to do_structure_copy, and it should have broken it
-        up.  */
--      gcc_assert (!AGGREGATE_TYPE_P (pointedtotype) 
-+      gcc_assert (!AGGREGATE_TYPE_P (pointedtotype)
-                 || get_varinfo (rhs.var)->is_unknown_size_var);
--      
-+
-       process_constraint (new_constraint (tmplhs, rhs));
-       process_constraint (new_constraint (lhs, tmplhs));
-     }
--  else if (rhs.type == ADDRESSOF)
--    {
--      varinfo_t vi;
--      gcc_assert (rhs.offset == 0);
--      
--      /* No need to mark address taken simply because of escaped vars
--       constraints.  */
--      if (lhs.var != escaped_vars_id)
--      for (vi = get_varinfo (rhs.var); vi != NULL; vi = vi->next)
--        vi->address_taken = true;
--
--      VEC_safe_push (constraint_t, heap, constraints, t);
--    }
-   else
-     {
--      if (lhs.type != DEREF && rhs.type == DEREF)
--      get_varinfo (lhs.var)->indirect_target = true;
-+      gcc_assert (rhs.type != ADDRESSOF || rhs.offset == 0);
-       VEC_safe_push (constraint_t, heap, constraints, t);
-     }
- }
-@@ -2350,10 +2333,12 @@
- could_have_pointers (tree t)
- {
-   tree type = TREE_TYPE (t);
--  
--  if (POINTER_TYPE_P (type) || AGGREGATE_TYPE_P (type)
-+
-+  if (POINTER_TYPE_P (type)
-+      || AGGREGATE_TYPE_P (type)
-       || TREE_CODE (type) == COMPLEX_TYPE)
-     return true;
-+
-   return false;
- }
-@@ -2367,9 +2352,9 @@
-   if (TREE_CODE (DECL_FIELD_OFFSET (fdecl)) != INTEGER_CST
-       || TREE_CODE (DECL_FIELD_BIT_OFFSET (fdecl)) != INTEGER_CST)
-     return -1;
--  
--  return (tree_low_cst (DECL_FIELD_OFFSET (fdecl), 1) * 8) 
--         + tree_low_cst (DECL_FIELD_BIT_OFFSET (fdecl), 1);
-+
-+  return (tree_low_cst (DECL_FIELD_OFFSET (fdecl), 1) * 8)
-+       + tree_low_cst (DECL_FIELD_BIT_OFFSET (fdecl), 1);
- }
-@@ -2388,7 +2373,7 @@
-     return true;
-   if (accesspos < fieldpos && (accesspos + accesssize > fieldpos))
-     return true;
--  
-+
-   return false;
- }
-@@ -2411,20 +2396,20 @@
-   while (!SSA_VAR_P (forzero) && !CONSTANT_CLASS_P (forzero))
-     forzero = TREE_OPERAND (forzero, 0);
--  if (CONSTANT_CLASS_P (forzero) && integer_zerop (forzero)) 
-+  if (CONSTANT_CLASS_P (forzero) && integer_zerop (forzero))
-     {
-       struct constraint_expr temp;
--      
-+
-       temp.offset = 0;
-       temp.var = integer_id;
-       temp.type = SCALAR;
-       VEC_safe_push (ce_s, heap, *results, &temp);
-       return;
-     }
-- 
-+
-   t = get_ref_base_and_extent (t, &bitpos, &bitsize, &bitmaxsize);
--  /* String constants's are readonly, so there is nothing to really do
-+  /* String constants are readonly, so there is nothing to really do
-      here.  */
-   if (TREE_CODE (t) == STRING_CST)
-     return;
-@@ -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;
-- 
-+
-   if (result->type == SCALAR)
-     {
-       /* In languages like C, you can access one past the end of an
-        array.  You aren't allowed to dereference it, so we can
-        ignore this constraint. When we handle pointer subtraction,
-        we may have to do something cute here.  */
--      
-+
-       if (result->offset < get_varinfo (result->var)->fullsize
-         && bitmaxsize != 0)
-       {
-         /* It's also not true that the constraint will actually start at the
-            right offset, it may start in some padding.  We only care about
-            setting the constraint to the first actual field it touches, so
--           walk to find it.  */ 
-+           walk to find it.  */
-         varinfo_t curr;
-         for (curr = get_varinfo (result->var); curr; curr = curr->next)
-           {
-@@ -2495,6 +2480,7 @@
- {
-   struct constraint_expr *c;
-   unsigned int i = 0;
-+
-   for (i = 0; VEC_iterate (ce_s, *constraints, i, c); i++)
-     {
-       if (c->type == SCALAR)
-@@ -2576,6 +2562,7 @@
-             tree pttype = TREE_TYPE (TREE_TYPE (t));
-             get_constraint_for (exp, results);
-+
-             /* Make sure we capture constraints to all elements
-                of an array.  */
-             if ((handled_component_p (exp)
-@@ -2588,7 +2575,7 @@
-                 if (VEC_length (ce_s, *results) == 0)
-                   return;
--                
-+
-                 gcc_assert (VEC_length (ce_s, *results) == 1);
-                 origrhs = VEC_last (ce_s, *results);
-                 tmp = *origrhs;
-@@ -2619,12 +2606,12 @@
-                     VEC_safe_push (ce_s, heap, *results, &tmp);
-                   }
-               }
--            
-+
-             for (i = 0; VEC_iterate (ce_s, *results, i, c); i++)
-               {
-                 if (c->type == DEREF)
-                   c->type = SCALAR;
--                else 
-+                else
-                   c->type = ADDRESSOF;
-               }
-             return;
-@@ -2638,9 +2625,9 @@
-             {
-               varinfo_t vi;
-               tree heapvar = heapvar_lookup (t);
--              
-+
-               if (heapvar == NULL)
--                {                 
-+                {
-                   heapvar = create_tmp_var_raw (ptr_type_node, "HEAP");
-                   DECL_EXTERNAL (heapvar) = 1;
-                   if (referenced_vars)
-@@ -2650,7 +2637,7 @@
-               temp.var = create_variable_info_for (heapvar,
-                                                    alias_get_name (heapvar));
--              
-+
-               vi = get_varinfo (temp.var);
-               vi->is_artificial_var = 1;
-               vi->is_heap_var = 1;
-@@ -2712,7 +2699,7 @@
-         case NON_LVALUE_EXPR:
-           {
-             tree op = TREE_OPERAND (t, 0);
--            
-+
-             /* 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 +2725,7 @@
-       {
-       switch (TREE_CODE (t))
-         {
--        case PHI_NODE:           
-+        case PHI_NODE:
-           {
-             get_constraint_for (PHI_RESULT (t), results);
-             return;
-@@ -2782,8 +2769,8 @@
- /* Handle the structure copy case where we have a simple structure copy
--   between LHS and RHS that is of SIZE (in bits) 
--  
-+   between LHS and RHS that is of SIZE (in bits)
-+
-    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 +2795,7 @@
-       struct constraint_expr temprhs = rhs;
-       unsigned HOST_WIDE_INT fieldoffset;
--      templhs.var = p->id;            
-+      templhs.var = p->id;
-       q = get_varinfo (temprhs.var);
-       fieldoffset = p->offset - pstart;
-       q = first_vi_for_offset (q, q->offset + fieldoffset);
-@@ -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
--   that is of SIZE (in bits) 
--  
-+   that is of SIZE (in bits)
-+
-    For each field of the lhs variable (lhsfield)
-        rhs.offset = lhsfield->offset
-        add the constraint lhsfield = rhs
-@@ -2849,12 +2836,12 @@
-       if (templhs.type == SCALAR)
--      templhs.var = p->id;      
-+      templhs.var = p->id;
-       else
-       templhs.offset = p->offset;
--      
-+
-       q = get_varinfo (temprhs.var);
--      fieldoffset = p->offset - pstart;      
-+      fieldoffset = p->offset - pstart;
-       temprhs.offset += fieldoffset;
-       process_constraint (new_constraint (templhs, temprhs));
-     }
-@@ -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
--   the LHS that is of SIZE (in bits) 
-+   the LHS that is of SIZE (in bits)
-    For each field of the rhs variable (rhsfield)
-        lhs.offset = rhsfield->offset
-@@ -2888,12 +2875,12 @@
-       if (temprhs.type == SCALAR)
--      temprhs.var = p->id;      
-+      temprhs.var = p->id;
-       else
-       temprhs.offset = p->offset;
--      
-+
-       q = get_varinfo (templhs.var);
--      fieldoffset = p->offset - pstart;      
-+      fieldoffset = p->offset - pstart;
-       templhs.offset += fieldoffset;
-       process_constraint (new_constraint (templhs, temprhs));
-     }
-@@ -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,
--   into VAR, so that we treat those fields as a single variable. 
-+   into VAR, so that we treat those fields as a single variable.
-    We return the variable they were collapsed into.  */
- static unsigned int
-@@ -2913,16 +2900,16 @@
-   for (field = currvar->next; field; field = field->next)
-     {
-       if (dump_file)
--      fprintf (dump_file, "Type safety: Collapsing var %s into %s\n", 
-+      fprintf (dump_file, "Type safety: Collapsing var %s into %s\n",
-                field->name, currvar->name);
--      
-+
-       gcc_assert (!field->collapsed_to);
-       field->collapsed_to = currvar;
-     }
-   currvar->next = NULL;
-   currvar->size = currvar->fullsize - currvar->offset;
--  
-+
-   return currvar->id;
- }
-@@ -2944,7 +2931,7 @@
-   gcc_assert (VEC_length (ce_s, rhsc) == 1);
-   lhs = *(VEC_last (ce_s, lhsc));
-   rhs = *(VEC_last (ce_s, rhsc));
--  
-+
-   VEC_free (ce_s, heap, lhsc);
-   VEC_free (ce_s, heap, rhsc);
-@@ -2955,7 +2942,7 @@
-       lhs = rhs;
-       rhs = tmp;
-     }
--  
-+
-   /*  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 +3008,11 @@
-       else
-       lhssize = TREE_INT_CST_LOW (lhstypesize);
--  
--      if (rhs.type == SCALAR && lhs.type == SCALAR)  
-+
-+      if (rhs.type == SCALAR && lhs.type == SCALAR)
-       {
-         if (!do_simple_structure_copy (lhs, rhs, MIN (lhssize, rhssize)))
--          {         
-+          {
-             lhs.var = collapse_rest_of_var (lhs.var);
-             rhs.var = collapse_rest_of_var (rhs.var);
-             lhs.offset = 0;
-@@ -3042,7 +3029,7 @@
-       else
-       {
-         tree pointedtotype = lhstype;
--        tree tmpvar;  
-+        tree tmpvar;
-         gcc_assert (rhs.type == DEREF && lhs.type == DEREF);
-         tmpvar = create_tmp_var_raw (pointedtotype, "structcopydereftmp");
-@@ -3052,6 +3039,7 @@
-     }
- }
-+
- /* 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 +3249,6 @@
-     }
- }
--
- /* Handle pointer arithmetic EXPR when creating aliasing constraints.
-    Expressions of the type PTR + CST can be handled in two ways:
-@@ -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;
-+
-   for (i = 0; VEC_iterate (ce_s, lhsc, i, c); i++)
-     for (j = 0; VEC_iterate (ce_s, temp, j, c2); j++)
-       {
-@@ -3360,12 +3351,12 @@
-       {
-         int i;
-         unsigned int j;
--        
-+
-         /* For a phi node, assign all the arguments to
-            the result.  */
-         get_constraint_for (PHI_RESULT (t), &lhsc);
-         for (i = 0; i < PHI_NUM_ARGS (t); i++)
--          { 
-+          {
-             tree rhstype;
-             tree strippedrhs = PHI_ARG_DEF (t, i);
-@@ -3401,7 +3392,6 @@
-     {
-       tree lhsop;
-       tree rhsop;
--      unsigned int varid;
-       tree arglist;
-       varinfo_t fi;
-       int i = 1;
-@@ -3423,17 +3413,16 @@
-        we should still be able to handle.  */
-       if (decl)
-       {
--        varid = get_id_for_tree (decl);
-+        fi = get_vi_for_tree (decl);
-       }
-       else
-       {
-         decl = TREE_OPERAND (rhsop, 0);
--        varid = get_id_for_tree (decl);
-+        fi = get_vi_for_tree (decl);
-       }
-       /* Assign all the passed arguments to the appropriate incoming
-        parameters of the function.  */
--      fi = get_varinfo (varid);
-       arglist = TREE_OPERAND (rhsop, 1);
-       
-       for (;arglist; arglist = TREE_CHAIN (arglist))
-@@ -3463,13 +3452,14 @@
-           }
-         i++;
-       }
-+
-       /* If we are returning a value, assign it to the result.  */
-       if (lhsop)
-       {
-         struct constraint_expr rhs;
-         struct constraint_expr *lhsp;
-         unsigned int j = 0;
--        
-+
-         get_constraint_for (lhsop, &lhsc);
-         if (TREE_CODE (decl) != FUNCTION_DECL)
-           {
-@@ -3485,7 +3475,7 @@
-           }
-         for (j = 0; VEC_iterate (ce_s, lhsc, j, lhsp); j++)
-           process_constraint (new_constraint (*lhsp, rhs));
--      }      
-+      }
-     }
-   /* Otherwise, just a regular assignment statement.  */
-   else if (TREE_CODE (t) == MODIFY_EXPR)
-@@ -3494,7 +3484,7 @@
-       tree rhsop = TREE_OPERAND (t, 1);
-       int i;
--      if ((AGGREGATE_TYPE_P (TREE_TYPE (lhsop)) 
-+      if ((AGGREGATE_TYPE_P (TREE_TYPE (lhsop))
-          || TREE_CODE (TREE_TYPE (lhsop)) == COMPLEX_TYPE)
-         && (AGGREGATE_TYPE_P (TREE_TYPE (rhsop))
-             || TREE_CODE (TREE_TYPE (lhsop)) == COMPLEX_TYPE))
-@@ -3513,7 +3503,7 @@
-               {
-                 /* RHS that consist of unary operations,
-                    exceptional types, or bare decls/constants, get
--                   handled directly by get_constraint_for.  */ 
-+                   handled directly by get_constraint_for.  */
-                 case tcc_reference:
-                 case tcc_declaration:
-                 case tcc_constant:
-@@ -3528,7 +3518,7 @@
-                         {
-                           struct constraint_expr *c2;
-                           unsigned int k;
--                          
-+
-                           for (k = 0; VEC_iterate (ce_s, rhsc, k, c2); k++)
-                             process_constraint (new_constraint (*c, *c2));
-                         }
-@@ -3570,7 +3560,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
--     re-scan *all* statements.  */  
-+     re-scan *all* statements.  */
-   mark_stmt_modified (origt);
-   VEC_free (ce_s, heap, rhsc);
-   VEC_free (ce_s, heap, lhsc);
-@@ -3591,7 +3581,7 @@
-    first field that overlaps with OFFSET.
-    Return NULL if we can't find one.  */
--static varinfo_t 
-+static varinfo_t
- first_vi_for_offset (varinfo_t start, unsigned HOST_WIDE_INT offset)
- {
-   varinfo_t curr = start;
-@@ -3617,7 +3607,7 @@
- {
-   varinfo_t prev = base;
-   varinfo_t curr = base->next;
--  
-+
-   field->next = curr;
-   prev->next = field;
- }
-@@ -3630,7 +3620,7 @@
- {
-   varinfo_t prev = base;
-   varinfo_t curr = base->next;
--  
-+
-   if (curr == NULL)
-     {
-       prev->next = field;
-@@ -3652,13 +3642,13 @@
- /* qsort comparison function for two fieldoff's PA and PB */
--static int 
-+static int
- fieldoff_compare (const void *pa, const void *pb)
- {
-   const fieldoff_s *foa = (const fieldoff_s *)pa;
-   const fieldoff_s *fob = (const fieldoff_s *)pb;
-   HOST_WIDE_INT foasize, fobsize;
--  
-+
-   if (foa->offset != fob->offset)
-     return foa->offset - fob->offset;
-@@ -3671,8 +3661,8 @@
- void
- sort_fieldstack (VEC(fieldoff_s,heap) *fieldstack)
- {
--  qsort (VEC_address (fieldoff_s, fieldstack), 
--       VEC_length (fieldoff_s, fieldstack), 
-+  qsort (VEC_address (fieldoff_s, fieldstack),
-+       VEC_length (fieldoff_s, fieldstack),
-        sizeof (fieldoff_s),
-        fieldoff_compare);
- }
-@@ -3686,12 +3676,13 @@
-    TYPE.  */
- int
--push_fields_onto_fieldstack (tree type, VEC(fieldoff_s,heap) **fieldstack, 
-+push_fields_onto_fieldstack (tree type, VEC(fieldoff_s,heap) **fieldstack,
-                            HOST_WIDE_INT offset, bool *has_union)
- {
-   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 +3691,13 @@
-       real_part->size = TYPE_SIZE (TREE_TYPE (type));
-       real_part->offset = offset;
-       real_part->decl = NULL_TREE;
--      
-+
-       img_part = VEC_safe_push (fieldoff_s, heap, *fieldstack, NULL);
-       img_part->type = TREE_TYPE (type);
-       img_part->size = TYPE_SIZE (TREE_TYPE (type));
-       img_part->offset = offset + TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (type)));
-       img_part->decl = NULL_TREE;
--      
-+
-       return 2;
-     }
-@@ -3733,12 +3724,12 @@
-       {
-         bool push = false;
-         int pushed = 0;
--      
--        if (has_union 
-+
-+        if (has_union
-             && (TREE_CODE (TREE_TYPE (type)) == QUAL_UNION_TYPE
-                 || TREE_CODE (TREE_TYPE (type)) == UNION_TYPE))
-           *has_union = true;
--      
-+
-         if (!AGGREGATE_TYPE_P (TREE_TYPE (type))) /* var_can_have_subvars */
-           push = true;
-         else if (!(pushed = push_fields_onto_fieldstack
-@@ -3772,12 +3763,12 @@
-       {
-       bool push = false;
-       int pushed = 0;
--      
--      if (has_union 
-+
-+      if (has_union
-           && (TREE_CODE (TREE_TYPE (field)) == QUAL_UNION_TYPE
-               || TREE_CODE (TREE_TYPE (field)) == UNION_TYPE))
-         *has_union = true;
--      
-+
-       if (!var_can_have_subvars (field))
-         push = true;
-       else if (!(pushed = push_fields_onto_fieldstack
-@@ -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;
--      
-+
-       if (push)
-         {
-           fieldoff_s *pair;
-@@ -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;
--  for (t = TYPE_ARG_TYPES (TREE_TYPE (decl)); 
-+  for (t = TYPE_ARG_TYPES (TREE_TYPE (decl));
-        t;
-        t = TREE_CHAIN (t))
--    { 
-+    {
-       if (TREE_VALUE (t) == void_type_node)
-       break;
-       i++;
-     }
--  
-+
-   if (!t)
-     *is_varargs = true;
-   return i;
-@@ -3870,19 +3878,19 @@
- {
-   unsigned int index = VEC_length (varinfo_t, varmap);
-   varinfo_t vi;
--  tree arg; 
-+  tree arg;
-   unsigned int i;
-   bool is_varargs = false;
-   /* Create the variable info.  */
--  vi = new_var_info (decl, index, name, index);
-+  vi = new_var_info (decl, index, name);
-   vi->decl = decl;
-   vi->offset = 0;
-   vi->has_union = 0;
-   vi->size = 1;
-   vi->fullsize = count_num_arguments (decl, &is_varargs) + 1;
--  insert_id_for_tree (vi->decl, index);  
-+  insert_vi_for_tree (vi->decl, vi);
-   VEC_safe_push (varinfo_t, heap, varmap, vi);
-   stats.total_vars++;
-@@ -3898,12 +3906,12 @@
-       return index;
-     }
--  
-+
-   arg = DECL_ARGUMENTS (decl);
-   /* Set up variables for each argument.  */
-   for (i = 1; i < vi->fullsize; i++)
--    {      
-+    {
-       varinfo_t argvi;
-       const char *newname;
-       char *tempname;
-@@ -3912,13 +3920,13 @@
-       if (arg)
-       argdecl = arg;
--      
-+
-       newindex = VEC_length (varinfo_t, varmap);
-       asprintf (&tempname, "%s.arg%d", name, i-1);
-       newname = ggc_strdup (tempname);
-       free (tempname);
--      argvi = new_var_info (argdecl, newindex,newname, newindex);
-+      argvi = new_var_info (argdecl, newindex, newname);
-       argvi->decl = argdecl;
-       VEC_safe_push (varinfo_t, heap, varmap, argvi);
-       argvi->offset = i;
-@@ -3929,7 +3937,7 @@
-       stats.total_vars ++;
-       if (arg)
-       {
--        insert_id_for_tree (arg, newindex);
-+        insert_vi_for_tree (arg, argvi);
-         arg = TREE_CHAIN (arg);
-       }
-     }
-@@ -3948,13 +3956,13 @@
-       if (DECL_RESULT (decl))
-       resultdecl = DECL_RESULT (decl);
--      
-+
-       newindex = VEC_length (varinfo_t, varmap);
-       asprintf (&tempname, "%s.result", name);
-       newname = ggc_strdup (tempname);
-       free (tempname);
--      resultvi = new_var_info (resultdecl, newindex, newname, newindex);
-+      resultvi = new_var_info (resultdecl, newindex, newname);
-       resultvi->decl = resultdecl;
-       VEC_safe_push (varinfo_t, heap, varmap, resultvi);
-       resultvi->offset = i;
-@@ -3964,13 +3972,13 @@
-       insert_into_field_list_sorted (vi, resultvi);
-       stats.total_vars ++;
-       if (DECL_RESULT (decl))
--      insert_id_for_tree (DECL_RESULT (decl), newindex);
-+      insert_vi_for_tree (DECL_RESULT (decl), resultvi);
-     }
-   return index;
--}  
-+}
--/* Return true if FIELDSTACK contains fields that overlap. 
-+/* Return true if FIELDSTACK contains fields that overlap.
-    FIELDSTACK is assumed to be sorted by offset.  */
- static bool
-@@ -4057,12 +4065,12 @@
-   bool hasunion;
-   bool is_global = DECL_P (decl) ? is_global_var (decl) : false;
-   VEC (fieldoff_s,heap) *fieldstack = NULL;
--  
-+
-   if (TREE_CODE (decl) == FUNCTION_DECL && in_ipa_mode)
-     return create_function_info_for (decl, name);
-   hasunion = TREE_CODE (decltype) == UNION_TYPE
--             || TREE_CODE (decltype) == QUAL_UNION_TYPE;
-+           || TREE_CODE (decltype) == QUAL_UNION_TYPE;
-   if (var_can_have_subvars (decl) && use_field_sensitive && !hasunion)
-     {
-       push_fields_onto_fieldstack (decltype, &fieldstack, 0, &hasunion);
-@@ -4072,12 +4080,12 @@
-         notokay = true;
-       }
-     }
--  
-+
-   /* If the variable doesn't have subvars, we may end up needing to
-      sort the field list and create fake variables for all the
-      fields.  */
--  vi = new_var_info (decl, index, name, index);
-+  vi = new_var_info (decl, index, name);
-   vi->decl = decl;
-   vi->offset = 0;
-   vi->has_union = hasunion;
-@@ -4095,8 +4103,8 @@
-       vi->fullsize = TREE_INT_CST_LOW (declsize);
-       vi->size = vi->fullsize;
-     }
--  
--  insert_id_for_tree (vi->decl, index);  
-+
-+  insert_vi_for_tree (vi->decl, vi);
-   VEC_safe_push (varinfo_t, heap, varmap, vi);
-   if (is_global && (!flag_whole_program || !in_ipa_mode))
-     {
-@@ -4122,9 +4130,9 @@
-     }
-   stats.total_vars++;
--  if (use_field_sensitive 
--      && !notokay 
--      && !vi->is_unknown_size_var 
-+  if (use_field_sensitive
-+      && !notokay
-+      && !vi->is_unknown_size_var
-       && var_can_have_subvars (decl)
-       && VEC_length (fieldoff_s, fieldstack) <= MAX_FIELDS_FOR_FIELD_SENSITIVE)
-     {
-@@ -4148,7 +4156,7 @@
-        without creating varinfos for the fields anyway, so sorting them is a
-        waste to boot.  */
-       if (!notokay)
--      {       
-+      {
-         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 +4164,8 @@
-            we will simply disable field-sensitivity for these cases.  */
-         notokay = check_for_overlaps (fieldstack);
-       }
--      
--      
-+
-+
-       if (VEC_length (fieldoff_s, fieldstack) != 0)
-       fo = VEC_index (fieldoff_s, fieldstack, 0);
-@@ -4169,11 +4177,11 @@
-         VEC_free (fieldoff_s, heap, fieldstack);
-         return index;
-       }
--      
-+
-       vi->size = TREE_INT_CST_LOW (fo->size);
-       vi->offset = fo->offset;
--      for (i = VEC_length (fieldoff_s, fieldstack) - 1; 
--         i >= 1 && VEC_iterate (fieldoff_s, fieldstack, i, fo); 
-+      for (i = VEC_length (fieldoff_s, fieldstack) - 1;
-+         i >= 1 && VEC_iterate (fieldoff_s, fieldstack, i, fo);
-          i--)
-       {
-         varinfo_t newvi;
-@@ -4184,15 +4192,15 @@
-         if (dump_file)
-           {
-             if (fo->decl)
--              asprintf (&tempname, "%s.%s",
-+              asprintf (&tempname, "%s.%s",
-                         vi->name, alias_get_name (fo->decl));
-             else
--              asprintf (&tempname, "%s." HOST_WIDE_INT_PRINT_DEC,
-+              asprintf (&tempname, "%s." HOST_WIDE_INT_PRINT_DEC,
-                         vi->name, fo->offset);
-             newname = ggc_strdup (tempname);
-             free (tempname);
-           }
--        newvi = new_var_info (decl, newindex, newname, newindex);
-+        newvi = new_var_info (decl, newindex, newname);
-         newvi->offset = fo->offset;
-         newvi->size = TREE_INT_CST_LOW (fo->size);
-         newvi->fullsize = vi->fullsize;
-@@ -4228,14 +4236,22 @@
- {
-   varinfo_t vi = get_varinfo (var);
-   unsigned int i;
--  bitmap_iterator bi; 
--  
--  fprintf (file, "%s = { ", vi->name);
--  EXECUTE_IF_SET_IN_BITMAP (get_varinfo (vi->node)->solution, 0, i, bi)
-+  bitmap_iterator bi;
-+
-+  if (find (var) != var)
-     {
--      fprintf (file, "%s ", get_varinfo (i)->name);
-+      varinfo_t vipt = get_varinfo (find (var));
-+      fprintf (file, "%s = same as %s\n", vi->name, vipt->name);
-     }
--  fprintf (file, "}\n");
-+  else
-+    {
-+      fprintf (file, "%s = { ", vi->name);
-+      EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi)
-+      {
-+        fprintf (file, "%s ", get_varinfo (i)->name);
-+      }
-+      fprintf (file, "}\n");
-+    }
- }
- /* Print the points-to solution for VAR to stdout.  */
-@@ -4266,7 +4282,7 @@
-       if (!could_have_pointers (t))
-       continue;
-       
--      arg_id = get_id_for_tree (t);
-+      arg_id = get_vi_for_tree (t)->id;
-       /* With flag_argument_noalias greater than two means that the incoming
-          argument cannot alias anything except for itself so create a HEAP
-@@ -4276,11 +4292,10 @@
-       {
-         varinfo_t vi;
-         tree heapvar = heapvar_lookup (t);
--        unsigned int id;
-         
-         lhs.offset = 0;
-         lhs.type = SCALAR;
--        lhs.var  = get_id_for_tree (t);
-+        lhs.var  = get_vi_for_tree (t)->id;
-         
-         if (heapvar == NULL_TREE)
-           {
-@@ -4291,11 +4306,11 @@
-               add_referenced_var (heapvar);
-             heapvar_insert (t, heapvar);
-           }
--        id = get_id_for_tree (heapvar);
--        vi = get_varinfo (id);
-+
-+        vi = get_vi_for_tree (heapvar);
-         vi->is_artificial_var = 1;
-         vi->is_heap_var = 1;
--        rhs.var = id;
-+        rhs.var = vi->id;
-         rhs.type = ADDRESSOF;
-         rhs.offset = 0;
-           for (p = get_varinfo (lhs.var); p; p = p->next)
-@@ -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)
- {
--  unsigned int id = 0;
-   tree lookup_p = p;
-+  varinfo_t vi;
-   if (!have_alias_info)
-     return false;
-@@ -4422,10 +4438,10 @@
-       && default_def (SSA_NAME_VAR (p)) == p)
-     lookup_p = SSA_NAME_VAR (p);
--  if (lookup_id_for_tree (lookup_p, &id))
-+  vi = lookup_vi_for_tree (lookup_p);
-+  if (vi)
-     {
--      varinfo_t vi = get_varinfo (id);
--
-+      
-       if (vi->is_artificial_var)
-       return false;
-@@ -4447,7 +4463,7 @@
-         /* This variable may have been collapsed, let's get the real
-            variable.  */
--        vi = get_varinfo (vi->node);
-+        vi = get_varinfo (find (vi->id));
-         
-         /* Translate artificial variables into SSA_NAME_PTR_INFO
-            attributes.  */
-@@ -4506,13 +4522,16 @@
-     {
-       fprintf (outfile, "Stats:\n");
-       fprintf (outfile, "Total vars:               %d\n", stats.total_vars);
-+      fprintf (outfile, "Non-pointer vars:          %d\n",
-+             stats.nonpointer_vars);
-       fprintf (outfile, "Statically unified vars:  %d\n",
-              stats.unified_vars_static);
--      fprintf (outfile, "Collapsed vars:           %d\n", stats.collapsed_vars);
-       fprintf (outfile, "Dynamically unified vars: %d\n",
-              stats.unified_vars_dynamic);
-       fprintf (outfile, "Iterations:               %d\n", stats.iterations);
-       fprintf (outfile, "Number of edges:          %d\n", stats.num_edges);
-+      fprintf (outfile, "Number of implicit edges: %d\n",
-+             stats.num_implicit_edges);
-     }
-   for (i = 0; i < VEC_length (varinfo_t, varmap); i++)
-@@ -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");
--  var_nothing = new_var_info (nothing_tree, 0, "NULL", 0);
--  insert_id_for_tree (nothing_tree, 0);
-+  var_nothing = new_var_info (nothing_tree, 0, "NULL");
-+  insert_vi_for_tree (nothing_tree, var_nothing);
-   var_nothing->is_artificial_var = 1;
-   var_nothing->offset = 0;
-   var_nothing->size = ~0;
-@@ -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");
--  var_anything = new_var_info (anything_tree, 1, "ANYTHING", 1); 
--  insert_id_for_tree (anything_tree, 1);
-+  var_anything = new_var_info (anything_tree, 1, "ANYTHING"); 
-+  insert_vi_for_tree (anything_tree, var_anything);
-   var_anything->is_artificial_var = 1;
-   var_anything->size = ~0;
-   var_anything->offset = 0;
-@@ -4573,7 +4592,6 @@
-   rhs.type = ADDRESSOF;
-   rhs.var = anything_id;
-   rhs.offset = 0;
--  var_anything->address_taken = true;
-   /* This specifically does not use process_constraint because
-      process_constraint ignores all anything = anything constraints, since all
-@@ -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");
--  var_readonly = new_var_info (readonly_tree, 2, "READONLY", 2);
-+  var_readonly = new_var_info (readonly_tree, 2, "READONLY");
-   var_readonly->is_artificial_var = 1;
-   var_readonly->offset = 0;
-   var_readonly->size = ~0;
-   var_readonly->fullsize = ~0;
-   var_readonly->next = NULL;
-   var_readonly->is_special_var = 1;
--  insert_id_for_tree (readonly_tree, 2);
-+  insert_vi_for_tree (readonly_tree, var_readonly);
-   readonly_id = 2;
-   VEC_safe_push (varinfo_t, heap, varmap, var_readonly);
-@@ -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");
--  var_integer = new_var_info (integer_tree, 3, "INTEGER", 3);
--  insert_id_for_tree (integer_tree, 3);
-+  var_integer = new_var_info (integer_tree, 3, "INTEGER");
-+  insert_vi_for_tree (integer_tree, var_integer);
-   var_integer->is_artificial_var = 1;
-   var_integer->size = ~0;
-   var_integer->fullsize = ~0;
-@@ -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");
--  var_escaped_vars = new_var_info (escaped_vars_tree, 4, "ESCAPED_VARS", 4);
--  insert_id_for_tree (escaped_vars_tree, 4);
-+  var_escaped_vars = new_var_info (escaped_vars_tree, 4, "ESCAPED_VARS");
-+  insert_vi_for_tree (escaped_vars_tree, var_escaped_vars);
-   var_escaped_vars->is_artificial_var = 1;
-   var_escaped_vars->size = ~0;
-   var_escaped_vars->fullsize = ~0;
-@@ -4660,21 +4678,19 @@
- static void
- init_alias_vars (void)
- {
--  bitmap_obstack_initialize (&ptabitmap_obstack);
-+  bitmap_obstack_initialize (&pta_obstack);
-+  bitmap_obstack_initialize (&oldpta_obstack);
-   bitmap_obstack_initialize (&predbitmap_obstack);
--  constraint_pool = create_alloc_pool ("Constraint pool", 
-+  constraint_pool = create_alloc_pool ("Constraint pool",
-                                      sizeof (struct constraint), 30);
-   variable_info_pool = create_alloc_pool ("Variable info pool",
-                                         sizeof (struct variable_info), 30);
--  constraint_edge_pool = create_alloc_pool ("Constraint edges",
--                                          sizeof (struct constraint_edge), 30);
--  
-   constraints = VEC_alloc (constraint_t, heap, 8);
-   varmap = VEC_alloc (varinfo_t, heap, 8);
--  id_for_tree = htab_create (10, tree_id_hash, tree_id_eq, free);
-+  vi_for_tree = pointer_map_create ();
-+
-   memset (&stats, 0, sizeof (stats));
--
-   init_base_vars ();
- }
-@@ -4777,6 +4793,43 @@
-   VEC_free (ce_s, heap, rhsc);
- }
-+
-+/* Remove the REF and ADDRESS edges from GRAPH, as well as all the
-+   predecessor edges.  */
-+
-+static void
-+remove_preds_and_fake_succs (constraint_graph_t graph)
-+{
-+  unsigned int i;
-+
-+  /* Clear the implicit ref and address nodes from the successor
-+     lists.  */
-+  for (i = 0; i < FIRST_REF_NODE; i++)
-+    {
-+      if (graph->succs[i])
-+      bitmap_clear_range (graph->succs[i], FIRST_REF_NODE,
-+                          FIRST_REF_NODE * 2);
-+    }
-+
-+  /* Free the successor list for the non-ref nodes.  */
-+  for (i = FIRST_REF_NODE; i < graph->size; i++)
-+    {
-+      if (graph->succs[i])
-+      BITMAP_FREE (graph->succs[i]);
-+    }
-+
-+  /* Now reallocate the size of the successor list as, and blow away
-+     the predecessor bitmaps.  */
-+  graph->size = VEC_length (varinfo_t, varmap);
-+  graph->succs = xrealloc (graph->succs, graph->size * sizeof (bitmap));
-+
-+  free (graph->implicit_preds);
-+  graph->implicit_preds = NULL;
-+  free (graph->preds);
-+  graph->preds = NULL;
-+  bitmap_obstack_release (&predbitmap_obstack);
-+}
-+
- /* Create points-to sets for the current function.  See the comments
-    at the start of the file for an algorithmic overview.  */
-@@ -4784,11 +4837,13 @@
- compute_points_to_sets (struct alias_info *ai)
- {
-   basic_block bb;
-+  struct scc_info *si;
-   timevar_push (TV_TREE_PTA);
-   init_alias_vars ();
--
-+  init_alias_heapvars ();
-+  
-   intra_create_variable_infos ();
-   /* Now walk all statements and derive aliases.  */
-@@ -4824,36 +4879,42 @@
-       }
-     }
--  build_constraint_graph ();
-   if (dump_file)
-     {
-       fprintf (dump_file, "Points-to analysis\n\nConstraints:\n\n");
-       dump_constraints (dump_file);
-     }
--  
-+
-   if (dump_file)
-     fprintf (dump_file,
-            "\nCollapsing static cycles and doing variable "
-            "substitution:\n");
--      
--  find_and_collapse_graph_cycles (graph, false);
--  perform_var_substitution (graph);
--      
-+
-+  build_pred_graph ();
-+  si = perform_var_substitution (graph);
-+  move_complex_constraints (graph, si);
-+  free_var_substitution_info (si);
-+  
-+  build_succ_graph ();
-+  find_indirect_cycles (graph);
-+
-+  /* Implicit nodes and predecessors are no longer necessary at this
-+     point. */
-+  remove_preds_and_fake_succs (graph);
-+
-   if (dump_file)
-     fprintf (dump_file, "\nSolving graph:\n");
--      
-+
-   solve_graph (graph);
--  
-+
-   if (dump_file)
-     dump_sa_points_to_info (dump_file);
--  
-   have_alias_info = true;
-   timevar_pop (TV_TREE_PTA);
- }
--
- /* Delete created points-to sets.  */
- void
-@@ -4861,33 +4922,27 @@
- {
-   varinfo_t v;
-   int i;
--  
--  htab_delete (id_for_tree);
--  bitmap_obstack_release (&ptabitmap_obstack);
--  bitmap_obstack_release (&predbitmap_obstack);
-+
-+  if (dump_file && (dump_flags & TDF_STATS))
-+    fprintf (dump_file, "Points to sets created:%d\n",
-+           stats.points_to_sets_created);
-+
-+  pointer_map_destroy (vi_for_tree);
-+  bitmap_obstack_release (&pta_obstack);
-   VEC_free (constraint_t, heap, constraints);
--  
-+
-   for (i = 0; VEC_iterate (varinfo_t, varmap, i, v); i++)
--    {
--      /* Nonlocal vars may add more varinfos.  */
--      if (i >= graph_size)
--      break;
-+    VEC_free (constraint_t, heap, graph->complex[i]);
-+  free (graph->complex);
--      VEC_free (constraint_edge_t, heap, graph->succs[i]);
--      VEC_free (constraint_edge_t, heap, graph->preds[i]);
--      VEC_free (constraint_t, heap, v->complex);
--    }
--  free (graph->zero_weight_preds);
--  free (graph->zero_weight_succs);
-+  free (graph->rep);
-   free (graph->succs);
--  free (graph->preds);
-+  free (graph->indirect_cycles);
-   free (graph);
-   VEC_free (varinfo_t, heap, varmap);
-   free_alloc_pool (variable_info_pool);
--  free_alloc_pool (constraint_pool); 
--  free_alloc_pool (constraint_edge_pool);
--
-+  free_alloc_pool (constraint_pool);
-   have_alias_info = false;
- }
-@@ -4905,6 +4960,7 @@
- static unsigned int
- ipa_pta_execute (void)
- {
-+#if 0
-   struct cgraph_node *node;
-   in_ipa_mode = 1;
-   init_alias_heapvars ();
-@@ -4994,6 +5050,7 @@
-   in_ipa_mode = 0;
-   delete_alias_heapvars ();
-   delete_points_to_sets ();
-+#endif
-   return 0;
- }
-   
-@@ -5018,8 +5075,9 @@
- void
- init_alias_heapvars (void)
- {
--  heapvar_for_stmt = htab_create_ggc (11, tree_map_hash, tree_map_eq,
--                                    NULL);
-+  if (!heapvar_for_stmt)
-+    heapvar_for_stmt = htab_create_ggc (11, tree_map_hash, tree_map_eq,
-+                                      NULL);
-   nonlocal_all = NULL_TREE;
- }
-@@ -5028,7 +5086,7 @@
- {
-   nonlocal_all = NULL_TREE;
-   htab_delete (heapvar_for_stmt);
-+  heapvar_for_stmt = NULL;
- }
--
-   
- #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;
- }
\f
-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)    (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")
-       (plus:TI (match_operand:TI 1 "nonimmediate_operand" "%0,0")
--               (match_operand:TI 2 "general_operand" "roiF,riF")))
-+               (match_operand:TI 2 "x86_64_general_operand" "roe,re")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT && ix86_binary_operator_ok (PLUS, TImode, operands)"
-   "#")
-@@ -4757,7 +4757,7 @@
- (define_split
-   [(set (match_operand:TI 0 "nonimmediate_operand" "")
-       (plus:TI (match_operand:TI 1 "nonimmediate_operand" "")
--               (match_operand:TI 2 "general_operand" "")))
-+               (match_operand:TI 2 "x86_64_general_operand" "")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT && reload_completed"
-   [(parallel [(set (reg:CC FLAGS_REG) (unspec:CC [(match_dup 1) (match_dup 2)]
-@@ -6483,7 +6483,7 @@
- (define_insn "*subti3_1"
-   [(set (match_operand:TI 0 "nonimmediate_operand" "=r,o")
-       (minus:TI (match_operand:TI 1 "nonimmediate_operand" "0,0")
--                (match_operand:TI 2 "general_operand" "roiF,riF")))
-+                (match_operand:TI 2 "x86_64_general_operand" "roe,re")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT && ix86_binary_operator_ok (MINUS, TImode, operands)"
-   "#")
-@@ -6491,7 +6491,7 @@
- (define_split
-   [(set (match_operand:TI 0 "nonimmediate_operand" "")
-       (minus:TI (match_operand:TI 1 "nonimmediate_operand" "")
--                (match_operand:TI 2 "general_operand" "")))
-+                (match_operand:TI 2 "x86_64_general_operand" "")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT && reload_completed"
-   [(parallel [(set (reg:CC FLAGS_REG) (compare:CC (match_dup 1) (match_dup 2)))
-@@ -9326,7 +9326,7 @@
- (define_insn "*negti2_1"
-   [(set (match_operand:TI 0 "nonimmediate_operand" "=ro")
--      (neg:TI (match_operand:TI 1 "general_operand" "0")))
-+      (neg:TI (match_operand:TI 1 "nonimmediate_operand" "0")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT
-    && ix86_unary_operator_ok (NEG, TImode, operands)"
-@@ -9334,7 +9334,7 @@
- (define_split
-   [(set (match_operand:TI 0 "nonimmediate_operand" "")
--      (neg:TI (match_operand:TI 1 "general_operand" "")))
-+      (neg:TI (match_operand:TI 1 "nonimmediate_operand" "")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT && reload_completed"
-   [(parallel
-Index: gcc/config/i386/sse.md
-===================================================================
---- 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)
-                    (const_int 2)])))]
--  "TARGET_SSE3 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
-+  "TARGET_SSE3 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "@
-    movddup\t{%1, %0|%0, %1}
-    #"
--  [(set_attr "type" "sselog,ssemov")
-+  [(set_attr "type" "sselog1,ssemov")
-    (set_attr "mode" "V2DF")])
- (define_split
-@@ -3494,9 +3494,10 @@
-   "TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "@
-    movhps\t{%1, %0|%0, %1}
--   psrldq\t{$4, %0|%0, 4}
-+   psrldq\t{$8, %0|%0, 8}
-    movq\t{%H1, %0|%0, %H1}"
-   [(set_attr "type" "ssemov,sseishft,ssemov")
-+   (set_attr "memory" "*,none,*")
-    (set_attr "mode" "V2SF,TI,TI")])
- ;; 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)    (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);
--  def_builtin (MASK_SSE, "__builtin_ia32_vec_ext_v2df",
-+  def_builtin (MASK_SSE2, "__builtin_ia32_vec_ext_v2df",
-              ftype, IX86_BUILTIN_VEC_EXT_V2DF);
-   ftype = build_function_type_list (long_long_integer_type_node,
-                                   V2DI_type_node, integer_type_node,
-                                   NULL_TREE);
--  def_builtin (MASK_SSE, "__builtin_ia32_vec_ext_v2di",
-+  def_builtin (MASK_SSE2, "__builtin_ia32_vec_ext_v2di",
-              ftype, IX86_BUILTIN_VEC_EXT_V2DI);
-   ftype = build_function_type_list (float_type_node, V4SF_type_node,
-@@ -15555,12 +15559,12 @@
-   ftype = build_function_type_list (intSI_type_node, V4SI_type_node,
-                                   integer_type_node, NULL_TREE);
--  def_builtin (MASK_SSE, "__builtin_ia32_vec_ext_v4si",
-+  def_builtin (MASK_SSE2, "__builtin_ia32_vec_ext_v4si",
-              ftype, IX86_BUILTIN_VEC_EXT_V4SI);
-   ftype = build_function_type_list (intHI_type_node, V8HI_type_node,
-                                   integer_type_node, NULL_TREE);
--  def_builtin (MASK_SSE, "__builtin_ia32_vec_ext_v8hi",
-+  def_builtin (MASK_SSE2, "__builtin_ia32_vec_ext_v8hi",
-              ftype, IX86_BUILTIN_VEC_EXT_V8HI);
-   ftype = build_function_type_list (intHI_type_node, V4HI_type_node,
-@@ -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);
--  def_builtin (MASK_SSE, "__builtin_ia32_vec_set_v8hi",
-+  def_builtin (MASK_SSE2, "__builtin_ia32_vec_set_v8hi",
-              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)    (revision 126002)
-+++ gcc/config/sh/sh.c (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -5295,7 +5295,13 @@
-             temp = scavenge_reg (&temps);
-           }
-         if (temp < 0 && live_regs_mask)
--          temp = scavenge_reg (live_regs_mask);
-+          {
-+            HARD_REG_SET temps;
-+
-+            COPY_HARD_REG_SET (temps, *live_regs_mask);
-+            CLEAR_HARD_REG_BIT (temps, REGNO (reg));
-+            temp = scavenge_reg (&temps);
-+          }
-         if (temp < 0)
-           {
-             rtx adj_reg, tmp_reg, mem;
-@@ -5344,6 +5350,9 @@
-             emit_move_insn (adj_reg, mem);
-             mem = gen_tmp_stack_mem (Pmode, gen_rtx_POST_INC (Pmode, reg));
-             emit_move_insn (tmp_reg, mem);
-+            /* Tell flow the insns that pop r4/r5 aren't dead.  */
-+            emit_insn (gen_rtx_USE (VOIDmode, tmp_reg));
-+            emit_insn (gen_rtx_USE (VOIDmode, adj_reg));
-             return;
-           }
-         const_reg = gen_rtx_REG (GET_MODE (reg), temp);
-@@ -8618,7 +8627,7 @@
-       else if (TARGET_SH4
-              && get_attr_type (insn) == TYPE_DYN_SHIFT
-              && get_attr_any_int_load (dep_insn) == ANY_INT_LOAD_YES
--             && reg_overlap_mentioned_p (SET_DEST (PATTERN (dep_insn)),
-+             && reg_overlap_mentioned_p (SET_DEST (single_set (dep_insn)),
-                                          XEXP (SET_SRC (single_set (insn)),
-                                                1)))
-       cost++;
-Index: gcc/config/sh/sh.md
-===================================================================
---- 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")
-               (const_int 2)
--              (and (eq (symbol_ref "GET_CODE (prev_nonnote_insn (insn))")
--                         (symbol_ref "INSN"))
--                     (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
--                         (symbol_ref "code_for_indirect_jump_scratch")))
-+              (and (ne (symbol_ref "prev_nonnote_insn (insn)")
-+                       (const_int 0))
-+                   (and (eq (symbol_ref "GET_CODE (prev_nonnote_insn (insn))")
-+                            (symbol_ref "INSN"))
-+                        (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
-+                            (symbol_ref "code_for_indirect_jump_scratch"))))
-                 (cond [(eq_attr "braf_branch_p" "yes")
-                        (const_int 6)
-                        (eq (symbol_ref "flag_pic") (const_int 0))
-@@ -750,54 +752,6 @@
-    (set_attr "type" "arith3")])
- (define_insn "cmpeqsi_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (eq:DI (match_operand:SI 1 "logical_operand" "%r")
--             (match_operand:SI 2 "cmp_operand" "Nr")))]
--  "TARGET_SHMEDIA"
--  "cmpeq      %1, %N2, %0"
--  [(set_attr "type" "cmp_media")])
--
--(define_insn "cmpeqdi_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (eq:DI (match_operand:DI 1 "register_operand" "%r")
--             (match_operand:DI 2 "cmp_operand" "Nr")))]
--  "TARGET_SHMEDIA"
--  "cmpeq      %1, %N2, %0"
--  [(set_attr "type" "cmp_media")])
--
--(define_insn "cmpgtsi_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (gt:DI (match_operand:SI 1 "cmp_operand" "Nr")
--             (match_operand:SI 2 "cmp_operand" "rN")))]
--  "TARGET_SHMEDIA"
--  "cmpgt      %N1, %N2, %0"
--  [(set_attr "type" "cmp_media")])
--
--(define_insn "cmpgtdi_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (gt:DI (match_operand:DI 1 "arith_reg_or_0_operand" "Nr")
--             (match_operand:DI 2 "arith_reg_or_0_operand" "rN")))]
--  "TARGET_SHMEDIA"
--  "cmpgt      %N1, %N2, %0"
--  [(set_attr "type" "cmp_media")])
--
--(define_insn "cmpgtusi_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (gtu:DI (match_operand:SI 1 "cmp_operand" "Nr")
--              (match_operand:SI 2 "cmp_operand" "rN")))]
--  "TARGET_SHMEDIA"
--  "cmpgtu     %N1, %N2, %0"
--  [(set_attr "type" "cmp_media")])
--
--(define_insn "cmpgtudi_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (gtu:DI (match_operand:DI 1 "arith_reg_or_0_operand" "Nr")
--              (match_operand:DI 2 "arith_reg_or_0_operand" "rN")))]
--  "TARGET_SHMEDIA"
--  "cmpgtu     %N1, %N2, %0"
--  [(set_attr "type" "cmp_media")])
--
--(define_insn "cmpsieqsi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (eq:SI (match_operand:SI 1 "logical_operand" "%r")
-              (match_operand:SI 2 "cmp_operand" "Nr")))]
-@@ -805,7 +759,7 @@
-   "cmpeq      %1, %N2, %0"
-   [(set_attr "type" "cmp_media")])
--(define_insn "cmpsieqdi_media"
-+(define_insn "cmpeqdi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (eq:SI (match_operand:DI 1 "register_operand" "%r")
-              (match_operand:DI 2 "cmp_operand" "Nr")))]
-@@ -813,7 +767,7 @@
-   "cmpeq      %1, %N2, %0"
-   [(set_attr "type" "cmp_media")])
--(define_insn "cmpsigtsi_media"
-+(define_insn "cmpgtsi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (gt:SI (match_operand:SI 1 "cmp_operand" "Nr")
-              (match_operand:SI 2 "cmp_operand" "rN")))]
-@@ -821,7 +775,7 @@
-   "cmpgt      %N1, %N2, %0"
-   [(set_attr "type" "cmp_media")])
--(define_insn "cmpsigtdi_media"
-+(define_insn "cmpgtdi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (gt:SI (match_operand:DI 1 "arith_reg_or_0_operand" "Nr")
-              (match_operand:DI 2 "arith_reg_or_0_operand" "rN")))]
-@@ -829,7 +783,7 @@
-   "cmpgt      %N1, %N2, %0"
-   [(set_attr "type" "cmp_media")])
--(define_insn "cmpsigtusi_media"
-+(define_insn "cmpgtusi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (gtu:SI (match_operand:SI 1 "cmp_operand" "Nr")
-               (match_operand:SI 2 "cmp_operand" "rN")))]
-@@ -837,7 +791,7 @@
-   "cmpgtu     %N1, %N2, %0"
-   [(set_attr "type" "cmp_media")])
--(define_insn "cmpsigtudi_media"
-+(define_insn "cmpgtudi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (gtu:SI (match_operand:DI 1 "arith_reg_or_0_operand" "Nr")
-               (match_operand:DI 2 "arith_reg_or_0_operand" "rN")))]
-@@ -846,13 +800,6 @@
-   [(set_attr "type" "cmp_media")])
- ; These two patterns are for combine.
--(define_insn "*cmpne0si_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (ne:DI (match_operand:SI 1 "arith_reg_operand" "r") (const_int 0)))]
--  "TARGET_SHMEDIA"
--  "cmpgtu     %1,r63,%0"
--  [(set_attr "type" "cmp_media")])
--
- (define_insn "*cmpne0sisi_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (ne:SI (match_operand:SI 1 "arith_reg_operand" "r") (const_int 0)))]
-@@ -1177,7 +1124,7 @@
- {
-   emit_insn (gen_movsicc_false (operands[0], operands[1], operands[2],
-                               operands[3]));
--  emit_insn (gen_cmpsigtusi_media (operands[5], operands[4], operands[0]));
-+  emit_insn (gen_cmpgtusi_media (operands[5], operands[4], operands[0]));
-   emit_insn (gen_movsicc_false (operands[0], operands[5], operands[4],
-                               operands[0]));
-   DONE;
-@@ -7200,7 +7147,7 @@
- }")
- (define_expand "bunordered"
--  [(set (match_dup 1) (unordered:DI (match_dup 2) (match_dup 3)))
-+  [(set (match_dup 1) (unordered:SI (match_dup 2) (match_dup 3)))
-    (set (pc)
-       (if_then_else (ne (match_dup 1) (const_int 0))
-                     (match_operand 0 "" "")
-@@ -7209,7 +7156,7 @@
-   "
- {
-   operands[0] = gen_rtx_LABEL_REF (Pmode, operands[0]);
--  operands[1] = gen_reg_rtx (DImode);
-+  operands[1] = gen_reg_rtx (SImode);
-   operands[2] = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-   operands[3] = force_reg (GET_MODE (sh_compare_op1), sh_compare_op1);
- }")
-@@ -8397,6 +8344,20 @@
-                                            operands[2],
-                                            gen_rtx_REG (Pmode, PIC_REG)));
-+  /* When stack protector inserts codes after the result is set to
-+     R0, @(rX, r12) will cause a spill failure for R0.  Don't schedule
-+     insns to avoid combining (set A (plus rX r12)) and (set op0 (mem A))
-+     when rX is a GOT address for the guard symbol.  Ugly but doesn't
-+     matter because this is a rare situation.  */
-+  if (!TARGET_SHMEDIA
-+      && flag_stack_protect
-+      && GET_CODE (operands[1]) == CONST
-+      && GET_CODE (XEXP (operands[1], 0)) == UNSPEC
-+      && GET_CODE (XVECEXP (XEXP (operands[1], 0), 0, 0)) == SYMBOL_REF
-+      && strcmp (XSTR (XVECEXP (XEXP (operands[1], 0), 0, 0), 0),
-+               \"__stack_chk_guard\") == 0)
-+    emit_insn (gen_blockage ());
-+
-   /* N.B. This is not constant for a GOTPLT relocation.  */
-   mem = gen_rtx_MEM (Pmode, operands[3]);
-   MEM_NOTRAP_P (mem) = 1;
-@@ -9112,6 +9073,8 @@
- {
-   if (TARGET_SHMEDIA)
-     {
-+      rtx reg;
-+
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9126,26 +9089,26 @@
-         switch (GET_MODE (sh_compare_op0))
-           {
-           case SImode:
--            emit_insn (gen_cmpsieqsi_media (operands[0],
-+            emit_insn (gen_cmpeqsi_media (operands[0],
-                                             sh_compare_op0, sh_compare_op1));
-             break;
-           case DImode:
--            emit_insn (gen_cmpsieqdi_media (operands[0],
-+            emit_insn (gen_cmpeqdi_media (operands[0],
-                                             sh_compare_op0, sh_compare_op1));
-             break;
-           case SFmode:
-             if (! TARGET_SHMEDIA_FPU)
-               FAIL;
--            emit_insn (gen_cmpsieqsf_media (operands[0],
-+            emit_insn (gen_cmpeqsf_media (operands[0],
-                                             sh_compare_op0, sh_compare_op1));
-             break;
-           case DFmode:
-             if (! TARGET_SHMEDIA_FPU)
-               FAIL;
--            emit_insn (gen_cmpsieqdf_media (operands[0],
-+            emit_insn (gen_cmpeqdf_media (operands[0],
-                                             sh_compare_op0, sh_compare_op1));
-             break;
-@@ -9155,38 +9118,44 @@
-         DONE;
-       }
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       switch (GET_MODE (sh_compare_op0))
-       {
-       case SImode:
--        emit_insn (gen_cmpeqsi_media (operands[0],
-+        emit_insn (gen_cmpeqsi_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case DImode:
--        emit_insn (gen_cmpeqdi_media (operands[0],
-+        emit_insn (gen_cmpeqdi_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case SFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpeqsf_media (operands[0],
-+        emit_insn (gen_cmpeqsf_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case DFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpeqdf_media (operands[0],
-+        emit_insn (gen_cmpeqdf_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       default:
-         FAIL;
-       }
-+
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-   if (sh_expand_t_scc (EQ, operands[0]))
-@@ -9204,8 +9173,8 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      rtx reg;
-+
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9213,35 +9182,44 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-+
-       switch (GET_MODE (sh_compare_op0))
-       {
-       case SImode:
--        emit_insn (gen_cmpgtsi_media (operands[0],
-+        emit_insn (gen_cmpgtsi_media (reg,
-                                       sh_compare_op1, sh_compare_op0));
-         break;
-       case DImode:
--        emit_insn (gen_cmpgtdi_media (operands[0],
-+        emit_insn (gen_cmpgtdi_media (reg,
-                                       sh_compare_op1, sh_compare_op0));
-         break;
-       case SFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgtsf_media (operands[0],
-+        emit_insn (gen_cmpgtsf_media (reg,
-                                       sh_compare_op1, sh_compare_op0));
-         break;
-       case DFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgtdf_media (operands[0],
-+        emit_insn (gen_cmpgtdf_media (reg,
-                                       sh_compare_op1, sh_compare_op0));
-         break;
-       default:
-         FAIL;
-       }
-+
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-   if (! currently_expanding_to_rtl)
-@@ -9258,8 +9236,8 @@
-   if (TARGET_SHMEDIA)
-     {
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      rtx reg;
-+
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9267,45 +9245,54 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-+
-       switch (GET_MODE (sh_compare_op0))
-       {
-       case SImode:
-         {
--          tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+          tmp = no_new_pseudos ? reg : gen_reg_rtx (SImode);
-           emit_insn (gen_cmpgtsi_media (tmp,
-                                         sh_compare_op0, sh_compare_op1));
--          emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+          emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-           break;
-         }
-       case DImode:
-         {
--          tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+          tmp = no_new_pseudos ? reg : gen_reg_rtx (SImode);
-           emit_insn (gen_cmpgtdi_media (tmp,
-                                         sh_compare_op0, sh_compare_op1));
--          emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+          emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-           break;
-         }
-       case SFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgesf_media (operands[0],
-+        emit_insn (gen_cmpgesf_media (reg,
-                                       sh_compare_op1, sh_compare_op0));
-         break;
-       case DFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgedf_media (operands[0],
-+        emit_insn (gen_cmpgedf_media (reg,
-                                       sh_compare_op1, sh_compare_op0));
-         break;
-       default:
-         FAIL;
-       }
-+
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-@@ -9323,8 +9310,12 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      rtx reg;
-+
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9335,32 +9326,36 @@
-       switch (GET_MODE (sh_compare_op0))
-       {
-       case SImode:
--        emit_insn (gen_cmpgtsi_media (operands[0],
-+        emit_insn (gen_cmpgtsi_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case DImode:
--        emit_insn (gen_cmpgtdi_media (operands[0],
-+        emit_insn (gen_cmpgtdi_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case SFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgtsf_media (operands[0],
-+        emit_insn (gen_cmpgtsf_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case DFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgtdf_media (operands[0],
-+        emit_insn (gen_cmpgtdf_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       default:
-         FAIL;
-       }
-+
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-   if (! currently_expanding_to_rtl)
-@@ -9376,12 +9371,15 @@
- {
-   if (TARGET_SHMEDIA)
-     {
-+      rtx reg;
-       enum machine_mode mode = GET_MODE (sh_compare_op0);
-       if ((mode) == VOIDmode)
-       mode = GET_MODE (sh_compare_op1);
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       sh_compare_op0 = force_reg (mode, sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (mode, sh_compare_op1);
-@@ -9390,41 +9388,45 @@
-       {
-       case SImode:
-         {
--          rtx tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+          rtx tmp = no_new_pseudos ? reg : gen_reg_rtx (SImode);
-           emit_insn (gen_cmpgtsi_media (tmp,
-                                         sh_compare_op1, sh_compare_op0));
--          emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+          emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-           break;
-         }
-       case DImode:
-         {
--          rtx tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+          rtx tmp = no_new_pseudos ? reg : gen_reg_rtx (SImode);
-           emit_insn (gen_cmpgtdi_media (tmp,
-                                         sh_compare_op1, sh_compare_op0));
--          emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+          emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-           break;
-         }
-       case SFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgesf_media (operands[0],
-+        emit_insn (gen_cmpgesf_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       case DFmode:
-         if (! TARGET_SHMEDIA_FPU)
-           FAIL;
--        emit_insn (gen_cmpgedf_media (operands[0],
-+        emit_insn (gen_cmpgedf_media (reg,
-                                       sh_compare_op0, sh_compare_op1));
-         break;
-       default:
-         FAIL;
-       }
-+
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-@@ -9456,8 +9458,12 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      rtx reg;
-+
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) == DImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9465,8 +9471,11 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
--      emit_insn (gen_cmpgtudi_media (operands[0],
-+      emit_insn (gen_cmpgtudi_media (reg,
-                                    sh_compare_op0, sh_compare_op1));
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-   if (! currently_expanding_to_rtl)
-@@ -9482,8 +9491,12 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      rtx reg;
-+
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) == DImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9491,8 +9504,11 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
--      emit_insn (gen_cmpgtudi_media (operands[0],
-+      emit_insn (gen_cmpgtudi_media (reg,
-                                    sh_compare_op1, sh_compare_op0));
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-+
-       DONE;
-     }
-   if (! currently_expanding_to_rtl)
-@@ -9508,10 +9524,12 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      rtx tmp;
-+      rtx tmp, reg;
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9519,10 +9537,12 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
--      tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+      tmp = no_new_pseudos ? reg : gen_reg_rtx (SImode);
-       emit_insn (gen_cmpgtudi_media (tmp, sh_compare_op0, sh_compare_op1));
--      emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+      emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-       DONE;
-     }
-@@ -9539,10 +9559,12 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      rtx tmp;
-+      rtx tmp, reg;
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       sh_compare_op0 = force_reg (GET_MODE (sh_compare_op0), sh_compare_op0);
-       if (sh_compare_op1 != const0_rtx)
-       sh_compare_op1 = force_reg (GET_MODE (sh_compare_op1) == VOIDmode
-@@ -9550,10 +9572,12 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
--      tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+      tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (SImode);
-       emit_insn (gen_cmpgtudi_media (tmp, sh_compare_op1, sh_compare_op0));
--      emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+      emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-       DONE;
-     }
-@@ -9584,11 +9608,12 @@
- {
-   if (TARGET_SHMEDIA)
-     {
--      rtx tmp;
-+      rtx tmp, reg;
--      if (GET_MODE (operands[0]) != DImode)
--      operands[0] = gen_rtx_SUBREG (DImode, operands[0], 0);
--
-+      reg = operands[0];
-+      if (GET_MODE (operands[0]) != SImode)
-+      reg = no_new_pseudos ? gen_rtx_SUBREG (SImode, operands[0], 0)
-+                           : gen_reg_rtx (SImode);
-       if (! TARGET_SHMEDIA_FPU
-         && GET_MODE (sh_compare_op0) != DImode
-         && GET_MODE (sh_compare_op0) != SImode)
-@@ -9601,10 +9626,12 @@
-                                   : GET_MODE (sh_compare_op1),
-                                   sh_compare_op1);
--      tmp = no_new_pseudos ? operands[0] : gen_reg_rtx (DImode);
-+      tmp = no_new_pseudos ? reg : gen_reg_rtx (SImode);
-       emit_insn (gen_seq (tmp));
--      emit_insn (gen_cmpeqdi_media (operands[0], tmp, const0_rtx));
-+      emit_insn (gen_cmpeqdi_media (reg, tmp, const0_rtx));
-+      if (GET_MODE (operands[0]) == DImode)
-+      emit_insn (gen_extendsidi2 (operands[0], reg));
-       DONE;
-     }
-@@ -9618,8 +9645,8 @@
- }")
- (define_expand "sunordered"
--  [(set (match_operand:DI 0 "arith_reg_operand" "")
--      (unordered:DI (match_dup 1) (match_dup 2)))]
-+  [(set (match_operand:SI 0 "arith_reg_operand" "")
-+      (unordered:SI (match_dup 1) (match_dup 2)))]
-   "TARGET_SHMEDIA_FPU"
-   "
- {
-@@ -10378,14 +10405,6 @@
-    (set_attr "fp_mode" "single")])
- (define_insn "cmpeqsf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (eq:DI (match_operand:SF 1 "fp_arith_reg_operand" "f")
--             (match_operand:SF 2 "fp_arith_reg_operand" "f")))]
--  "TARGET_SHMEDIA_FPU"
--  "fcmpeq.s   %1, %2, %0"
--  [(set_attr "type" "fcmp_media")])
--
--(define_insn "cmpsieqsf_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (eq:SI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-              (match_operand:SF 2 "fp_arith_reg_operand" "f")))]
-@@ -10394,24 +10413,24 @@
-   [(set_attr "type" "fcmp_media")])
- (define_insn "cmpgtsf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (gt:DI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+      (gt:SI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-              (match_operand:SF 2 "fp_arith_reg_operand" "f")))]
-   "TARGET_SHMEDIA_FPU"
-   "fcmpgt.s   %1, %2, %0"
-   [(set_attr "type" "fcmp_media")])
- (define_insn "cmpgesf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (ge:DI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+      (ge:SI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-              (match_operand:SF 2 "fp_arith_reg_operand" "f")))]
-   "TARGET_SHMEDIA_FPU"
-   "fcmpge.s   %1, %2, %0"
-   [(set_attr "type" "fcmp_media")])
- (define_insn "cmpunsf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (unordered:DI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+      (unordered:SI (match_operand:SF 1 "fp_arith_reg_operand" "f")
-                     (match_operand:SF 2 "fp_arith_reg_operand" "f")))]
-   "TARGET_SHMEDIA_FPU"
-   "fcmpun.s   %1, %2, %0"
-@@ -10884,14 +10903,6 @@
-    (set_attr "fp_mode" "double")])
- (define_insn "cmpeqdf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (eq:DI (match_operand:DF 1 "fp_arith_reg_operand" "f")
--             (match_operand:DF 2 "fp_arith_reg_operand" "f")))]
--  "TARGET_SHMEDIA_FPU"
--  "fcmpeq.d   %1,%2,%0"
--  [(set_attr "type" "fcmp_media")])
--
--(define_insn "cmpsieqdf_media"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-       (eq:SI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-              (match_operand:DF 2 "fp_arith_reg_operand" "f")))]
-@@ -10900,24 +10911,24 @@
-   [(set_attr "type" "fcmp_media")])
- (define_insn "cmpgtdf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (gt:DI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+      (gt:SI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-              (match_operand:DF 2 "fp_arith_reg_operand" "f")))]
-   "TARGET_SHMEDIA_FPU"
-   "fcmpgt.d   %1,%2,%0"
-   [(set_attr "type" "fcmp_media")])
- (define_insn "cmpgedf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (ge:DI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+      (ge:SI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-              (match_operand:DF 2 "fp_arith_reg_operand" "f")))]
-   "TARGET_SHMEDIA_FPU"
-   "fcmpge.d   %1,%2,%0"
-   [(set_attr "type" "fcmp_media")])
- (define_insn "cmpundf_media"
--  [(set (match_operand:DI 0 "register_operand" "=r")
--      (unordered:DI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+      (unordered:SI (match_operand:DF 1 "fp_arith_reg_operand" "f")
-                     (match_operand:DF 2 "fp_arith_reg_operand" "f")))]
-   "TARGET_SHMEDIA_FPU"
-   "fcmpun.d   %1,%2,%0"
-Index: gcc/config/score/predicates.md
-===================================================================
---- 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);
- })
--(define_predicate "const_pow2"
--  (match_code "const_int")
--{
--  return IMM_IS_POW_OF_2 ((unsigned HOST_WIDE_INT) INTVAL (op), 0, 31);
--})
--
--(define_predicate "const_npow2"
--  (match_code "const_int")
--{
--  return IMM_IS_POW_OF_2 (~(unsigned HOST_WIDE_INT) INTVAL (op), 0, 31);
--})
-Index: gcc/config/score/misc.md
-===================================================================
---- 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")])
--(define_insn "bitclr_c"
--  [(set (match_operand:SI 0 "register_operand" "=e,d")
--        (and:SI (match_operand:SI 1 "register_operand" "0,d")
--                (match_operand:SI 2 "const_npow2")))
--   (clobber (reg:CC CC_REGNUM))]
--  ""
--  "@
--   bitclr!    %0, %F2
--   bitclr.c   %0, %1, %F2"
--  [(set_attr "type" "arith")
--   (set_attr "mode" "SI")])
--
--(define_insn "bitset_c"
--  [(set (match_operand:SI 0 "register_operand" "=e,d")
--        (ior:SI (match_operand:SI 1 "register_operand" "0,d")
--                (match_operand:SI 2 "const_pow2")))
--   (clobber (reg:CC CC_REGNUM))]
--  ""
--  "@
--   bitset!    %0, %E2
--   bitset.c   %0, %1, %E2"
--  [(set_attr "type" "arith")
--   (set_attr "mode" "SI")])
--
--(define_insn "bittgl_c"
--  [(set (match_operand:SI 0 "register_operand" "=e,d")
--        (xor:SI (match_operand:SI 1 "register_operand" "0,d")
--                (match_operand:SI 2 "const_pow2")))
--   (clobber (reg:CC CC_REGNUM))]
--  ""
--  "@
--   bittgl!    %0, %E2
--   bittgl.c   %0, %1, %E2"
--  [(set_attr "type" "arith")
--   (set_attr "mode" "SI")])
-Index: gcc/config/score/score.c
-===================================================================
---- 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);
-       fprintf (file, HOST_WIDE_INT_PRINT_HEX,
--               (unsigned HOST_WIDE_INT) INTVAL (op) >> 16);
-+               (INTVAL (op) >> 16) & 0xffff);
-     }
-   else if (c == 'D')
-     {
-@@ -1176,7 +1176,7 @@
-         {
-           rtx temp = gen_lowpart (SImode, op);
-           gcc_assert (GET_MODE (op) == SFmode);
--          fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL (temp));
-+          fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL (temp) & 0xffffffff);
-         }
-       else
-         output_addr_const (file, op);
-Index: gcc/config/score/score.h
-===================================================================
---- 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
-    data/sdata bss/sbss, thereby saving exec time.  */
-+#undef ASM_OUTPUT_EXTERNAL
- #define ASM_OUTPUT_EXTERNAL(STREAM, DECL, NAME) \
-   score_output_external (STREAM, DECL, NAME)
-Index: gcc/config/pa/pa.md
-===================================================================
---- 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)
-    (UNSPEC_TLSLE      9)
-+   (UNSPEC_TLSGD_PIC   10)
-+   (UNSPEC_TLSLDM_PIC  11)
-+   (UNSPEC_TLSIE_PIC   12)
-   ])
- ;; UNSPEC_VOLATILE:
-@@ -9890,33 +9893,55 @@
- (define_insn "tgd_load"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-        (unspec:SI [(match_operand 1 "tgd_symbolic_operand" "")] UNSPEC_TLSGD))
--  (clobber (reg:SI 1))]
-+  (clobber (reg:SI 1))
-+  (use (reg:SI 27))]
-   ""
-   "*
- {
--  if (flag_pic)
--    return \"addil LT'%1-$tls_gdidx$,%%r19\;ldo RT'%1-$tls_gdidx$(%%r1),%0\";
--  else
--    return \"addil LR'%1-$tls_gdidx$,%%r27\;ldo RR'%1-$tls_gdidx$(%%r1),%0\";
-+  return \"addil LR'%1-$tls_gdidx$,%%r27\;ldo RR'%1-$tls_gdidx$(%%r1),%0\";
- }"
-   [(set_attr "type" "multi")
-    (set_attr "length" "8")])
-+(define_insn "tgd_load_pic"
-+ [(set (match_operand:SI 0 "register_operand" "=r")
-+       (unspec:SI [(match_operand 1 "tgd_symbolic_operand" "")] UNSPEC_TLSGD_PIC))
-+  (clobber (reg:SI 1))
-+  (use (reg:SI 19))]
-+  ""
-+  "*
-+{
-+  return \"addil LT'%1-$tls_gdidx$,%%r19\;ldo RT'%1-$tls_gdidx$(%%r1),%0\";
-+}"
-+  [(set_attr "type" "multi")
-+   (set_attr "length" "8")])
-+
- (define_insn "tld_load"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-        (unspec:SI [(match_operand 1 "tld_symbolic_operand" "")] UNSPEC_TLSLDM))
--  (clobber (reg:SI 1))]
-+  (clobber (reg:SI 1))
-+  (use (reg:SI 27))]
-   ""
-   "*
- {
--  if (flag_pic)
--    return \"addil LT'%1-$tls_ldidx$,%%r19\;ldo RT'%1-$tls_ldidx$(%%r1),%0\";
--  else
--    return \"addil LR'%1-$tls_ldidx$,%%r27\;ldo RR'%1-$tls_ldidx$(%%r1),%0\";
-+  return \"addil LR'%1-$tls_ldidx$,%%r27\;ldo RR'%1-$tls_ldidx$(%%r1),%0\";
- }"
-   [(set_attr "type" "multi")
-    (set_attr "length" "8")])
-+(define_insn "tld_load_pic"
-+ [(set (match_operand:SI 0 "register_operand" "=r")
-+       (unspec:SI [(match_operand 1 "tld_symbolic_operand" "")] UNSPEC_TLSLDM_PIC))
-+  (clobber (reg:SI 1))
-+  (use (reg:SI 19))]
-+  ""
-+  "*
-+{
-+  return \"addil LT'%1-$tls_ldidx$,%%r19\;ldo RT'%1-$tls_ldidx$(%%r1),%0\";
-+}"
-+  [(set_attr "type" "multi")
-+   (set_attr "length" "8")])
-+
- (define_insn "tld_offset_load"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-         (plus:SI (unspec:SI [(match_operand 1 "tld_symbolic_operand" "")] 
-@@ -9942,18 +9967,29 @@
- (define_insn "tie_load"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-         (unspec:SI [(match_operand 1 "tie_symbolic_operand" "")] UNSPEC_TLSIE))
--   (clobber (reg:SI 1))]
-+   (clobber (reg:SI 1))
-+   (use (reg:SI 27))]
-   ""
-   "*
- {
--  if (flag_pic)
--    return \"addil LT'%1-$tls_ieoff$,%%r19\;ldw RT'%1-$tls_ieoff$(%%r1),%0\";
--  else
--    return \"addil LR'%1-$tls_ieoff$,%%r27\;ldw RR'%1-$tls_ieoff$(%%r1),%0\";
-+  return \"addil LR'%1-$tls_ieoff$,%%r27\;ldw RR'%1-$tls_ieoff$(%%r1),%0\";
- }"
-   [(set_attr "type" "multi")
-    (set_attr "length" "8")])
-+(define_insn "tie_load_pic"
-+  [(set (match_operand:SI 0 "register_operand" "=r")
-+        (unspec:SI [(match_operand 1 "tie_symbolic_operand" "")] UNSPEC_TLSIE_PIC))
-+   (clobber (reg:SI 1))
-+   (use (reg:SI 19))]
-+  ""
-+  "*
-+{
-+  return \"addil LT'%1-$tls_ieoff$,%%r19\;ldw RT'%1-$tls_ieoff$(%%r1),%0\";
-+}"
-+  [(set_attr "type" "multi")
-+   (set_attr "length" "8")])
-+
- (define_insn "tle_load"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-         (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)    (revision 126002)
-+++ gcc/config/pa/pa.c (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -726,7 +726,10 @@
-     {
-       case TLS_MODEL_GLOBAL_DYNAMIC:
-       tmp = gen_reg_rtx (Pmode);
--      emit_insn (gen_tgd_load (tmp, addr));
-+      if (flag_pic)
-+        emit_insn (gen_tgd_load_pic (tmp, addr));
-+      else
-+        emit_insn (gen_tgd_load (tmp, addr));
-       ret = hppa_tls_call (tmp);
-       break;
-@@ -734,7 +737,10 @@
-       ret = gen_reg_rtx (Pmode);
-       tmp = gen_reg_rtx (Pmode);
-       start_sequence ();
--      emit_insn (gen_tld_load (tmp, addr));
-+      if (flag_pic)
-+        emit_insn (gen_tld_load_pic (tmp, addr));
-+      else
-+        emit_insn (gen_tld_load (tmp, addr));
-       t1 = hppa_tls_call (tmp);
-       insn = get_insns ();
-       end_sequence ();
-@@ -750,7 +756,10 @@
-       tmp = gen_reg_rtx (Pmode);
-       ret = gen_reg_rtx (Pmode);
-       emit_insn (gen_tp_load (tp));
--      emit_insn (gen_tie_load (tmp, addr));
-+      if (flag_pic)
-+        emit_insn (gen_tie_load_pic (tmp, addr));
-+      else
-+        emit_insn (gen_tie_load (tmp, addr));
-       emit_move_insn (ret, gen_rtx_PLUS (Pmode, tp, tmp));
-       break;
-Index: gcc/config/soft-fp/quad.h
-===================================================================
---- 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.
--   Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com),
-                 Jakub Jelinek (jj@ultra.linux.cz),
-@@ -176,15 +176,15 @@
-   } longs;
-   struct {
- #if __BYTE_ORDER == __BIG_ENDIAN
--    unsigned sign  : 1;
--    unsigned exp   : _FP_EXPBITS_Q;
--    unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
--    unsigned long frac0 : _FP_W_TYPE_SIZE;
-+    unsigned sign    : 1;
-+    unsigned exp     : _FP_EXPBITS_Q;
-+    _FP_W_TYPE frac1 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0) - _FP_W_TYPE_SIZE;
-+    _FP_W_TYPE frac0 : _FP_W_TYPE_SIZE;
- #else
--    unsigned long frac0 : _FP_W_TYPE_SIZE;
--    unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
--    unsigned exp   : _FP_EXPBITS_Q;
--    unsigned sign  : 1;
-+    _FP_W_TYPE frac0 : _FP_W_TYPE_SIZE;
-+    _FP_W_TYPE frac1 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0) - _FP_W_TYPE_SIZE;
-+    unsigned exp     : _FP_EXPBITS_Q;
-+    unsigned sign    : 1;
- #endif
-   } bits;
- };
-Index: gcc/config/soft-fp/floatunsidf.c
-===================================================================
---- 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
--   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com) and
-                 Jakub Jelinek (jj@ultra.linux.cz).
-@@ -32,8 +32,7 @@
- #include "soft-fp.h"
- #include "double.h"
--double
--__floatunsidf(USItype i)
-+DFtype __floatunsidf(USItype i)
- {
-   FP_DECL_EX;
-   FP_DECL_D(A);
-Index: gcc/config/soft-fp/floatundidf.c
-===================================================================
---- 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
--   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com) and
-                 Jakub Jelinek (jj@ultra.linux.cz).
-@@ -32,8 +32,7 @@
- #include "soft-fp.h"
- #include "double.h"
--double
--__floatundidf(UDItype i)
-+DFtype __floatundidf(UDItype i)
- {
-   FP_DECL_EX;
-   FP_DECL_D(A);
-Index: gcc/config/soft-fp/extended.h
-===================================================================
---- 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.
--   Copyright (C) 1999,2006 Free Software Foundation, Inc.
-+   Copyright (C) 1999,2006,2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-@@ -94,12 +94,6 @@
-     X##_f[1] = _flo.bits.frac1;                               \
-     X##_e  = _flo.bits.exp;                           \
-     X##_s  = _flo.bits.sign;                          \
--    if (!X##_e && (X##_f[1] || X##_f[0])              \
--        && !(X##_f[1] & _FP_IMPLBIT_E))                       \
--      {                                                       \
--        X##_e++;                                      \
--        FP_SET_EXCEPTION(FP_EX_DENORM);                       \
--      }                                                       \
-   } while (0)
- #define FP_UNPACK_RAW_EP(X, val)                      \
-@@ -112,12 +106,6 @@
-     X##_f[1] = _flo->bits.frac1;                      \
-     X##_e  = _flo->bits.exp;                          \
-     X##_s  = _flo->bits.sign;                         \
--    if (!X##_e && (X##_f[1] || X##_f[0])              \
--        && !(X##_f[1] & _FP_IMPLBIT_E))                       \
--      {                                                       \
--        X##_e++;                                      \
--        FP_SET_EXCEPTION(FP_EX_DENORM);                       \
--      }                                                       \
-   } while (0)
- #define FP_PACK_RAW_E(val, X)                         \
-@@ -164,13 +152,13 @@
- #define FP_UNPACK_SEMIRAW_E(X,val)    \
-   do {                                        \
--    _FP_UNPACK_RAW_E(X,val);          \
-+    FP_UNPACK_RAW_E(X,val);           \
-     _FP_UNPACK_SEMIRAW(E,4,X);                \
-   } while (0)
- #define FP_UNPACK_SEMIRAW_EP(X,val)   \
-   do {                                        \
--    _FP_UNPACK_RAW_EP(X,val);         \
-+    FP_UNPACK_RAW_EP(X,val);          \
-     _FP_UNPACK_SEMIRAW(E,4,X);                \
-   } while (0)
-@@ -189,13 +177,13 @@
- #define FP_PACK_SEMIRAW_E(val,X)      \
-   do {                                        \
-     _FP_PACK_SEMIRAW(E,4,X);          \
--    _FP_PACK_RAW_E(val,X);            \
-+    FP_PACK_RAW_E(val,X);             \
-   } while (0)
- #define FP_PACK_SEMIRAW_EP(val,X)     \
-   do {                                        \
-     _FP_PACK_SEMIRAW(E,4,X);          \
--    _FP_PACK_RAW_EP(val,X);           \
-+    FP_PACK_RAW_EP(val,X);            \
-   } while (0)
- #define FP_ISSIGNAN_E(X)      _FP_ISSIGNAN(E,4,X)
-@@ -277,14 +265,14 @@
-   XFtype flt;
-   struct {
- #if __BYTE_ORDER == __BIG_ENDIAN
--    unsigned long pad : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
--    unsigned sign  : 1;
--    unsigned exp   : _FP_EXPBITS_E;
--    unsigned long frac : _FP_W_TYPE_SIZE;
-+    _FP_W_TYPE pad  : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
-+    unsigned sign   : 1;
-+    unsigned exp    : _FP_EXPBITS_E;
-+    _FP_W_TYPE frac : _FP_W_TYPE_SIZE;
- #else
--    unsigned long frac : _FP_W_TYPE_SIZE;
--    unsigned exp   : _FP_EXPBITS_E;
--    unsigned sign  : 1;
-+    _FP_W_TYPE frac : _FP_W_TYPE_SIZE;
-+    unsigned exp    : _FP_EXPBITS_E;
-+    unsigned sign   : 1;
- #endif
-   } bits;
- };
-@@ -299,11 +287,6 @@
-     X##_f1 = 0;                                                       \
-     X##_e = _flo.bits.exp;                                    \
-     X##_s = _flo.bits.sign;                                   \
--    if (!X##_e && X##_f0 && !(X##_f0 & _FP_IMPLBIT_E))                \
--      {                                                               \
--        X##_e++;                                              \
--        FP_SET_EXCEPTION(FP_EX_DENORM);                               \
--      }                                                               \
-   } while (0)
- #define FP_UNPACK_RAW_EP(X, val)                              \
-@@ -315,11 +298,6 @@
-     X##_f1 = 0;                                                       \
-     X##_e = _flo->bits.exp;                                   \
-     X##_s = _flo->bits.sign;                                  \
--    if (!X##_e && X##_f0 && !(X##_f0 & _FP_IMPLBIT_E))                \
--      {                                                               \
--        X##_e++;                                              \
--        FP_SET_EXCEPTION(FP_EX_DENORM);                               \
--      }                                                               \
-   } while (0)
- #define FP_PACK_RAW_E(val, X)                                 \
-@@ -365,13 +343,13 @@
- #define FP_UNPACK_SEMIRAW_E(X,val)    \
-   do {                                        \
--    _FP_UNPACK_RAW_E(X,val);          \
-+    FP_UNPACK_RAW_E(X,val);           \
-     _FP_UNPACK_SEMIRAW(E,2,X);                \
-   } while (0)
- #define FP_UNPACK_SEMIRAW_EP(X,val)   \
-   do {                                        \
--    _FP_UNPACK_RAW_EP(X,val);         \
-+    FP_UNPACK_RAW_EP(X,val);          \
-     _FP_UNPACK_SEMIRAW(E,2,X);                \
-   } while (0)
-@@ -390,13 +368,13 @@
- #define FP_PACK_SEMIRAW_E(val,X)      \
-   do {                                        \
-     _FP_PACK_SEMIRAW(E,2,X);          \
--    _FP_PACK_RAW_E(val,X);            \
-+    FP_PACK_RAW_E(val,X);             \
-   } while (0)
- #define FP_PACK_SEMIRAW_EP(val,X)     \
-   do {                                        \
-     _FP_PACK_SEMIRAW(E,2,X);          \
--    _FP_PACK_RAW_EP(val,X);           \
-+    FP_PACK_RAW_EP(val,X);            \
-   } while (0)
- #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)    (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
--   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com) and
-                 Jakub Jelinek (jj@ultra.linux.cz).
-@@ -32,8 +32,7 @@
- #include "soft-fp.h"
- #include "single.h"
--float
--__floatunsisf(USItype i)
-+SFtype __floatunsisf(USItype i)
- {
-   FP_DECL_EX;
-   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)    (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                                 \
-         < _FP_EXPMAX_##sfs - _FP_EXPBIAS_##sfs)                        \
--      || _FP_EXPBIAS_##dfs < _FP_EXPBIAS_##sfs + _FP_FRACBITS_##sfs - 1) \
-+      || (_FP_EXPBIAS_##dfs < _FP_EXPBIAS_##sfs + _FP_FRACBITS_##sfs - 1 \
-+        && _FP_EXPBIAS_##dfs != _FP_EXPBIAS_##sfs))                    \
-     abort();                                                           \
-   D##_s = S##_s;                                                       \
-   _FP_FRAC_COPY_##dwc##_##swc(D, S);                                   \
-@@ -1168,6 +1169,14 @@
-       {                                                                \
-         if (_FP_FRAC_ZEROP_##swc(S))                                   \
-           D##_e = 0;                                                   \
-+        else if (_FP_EXPBIAS_##dfs                                     \
-+                 < _FP_EXPBIAS_##sfs + _FP_FRACBITS_##sfs - 1)         \
-+          {                                                            \
-+            FP_SET_EXCEPTION(FP_EX_DENORM);                            \
-+            _FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs                  \
-+                                   - _FP_FRACBITS_##sfs));             \
-+            D##_e = 0;                                                 \
-+          }                                                            \
-         else                                                           \
-           {                                                            \
-             int _lz;                                                   \
-@@ -1199,7 +1208,8 @@
- #define FP_TRUNC(dfs,sfs,dwc,swc,D,S)                                      \
- do {                                                                       \
-   if (_FP_FRACBITS_##sfs < _FP_FRACBITS_##dfs                              \
--      || _FP_EXPBIAS_##sfs < _FP_EXPBIAS_##dfs + _FP_FRACBITS_##dfs - 1)     \
-+      || (_FP_EXPBIAS_##sfs < _FP_EXPBIAS_##dfs + _FP_FRACBITS_##dfs - 1     \
-+        && _FP_EXPBIAS_##sfs != _FP_EXPBIAS_##dfs))                        \
-     abort();                                                               \
-   D##_s = S##_s;                                                           \
-   if (_FP_EXP_NORMAL(sfs, swc, S))                                         \
-@@ -1211,8 +1221,11 @@
-       {                                                                    \
-         if (D##_e <= 0)                                                    \
-           {                                                                \
--            if (D##_e <= 1 - _FP_FRACBITS_##dfs)                           \
--              _FP_FRAC_SET_##swc(S, _FP_ZEROFRAC_##swc);                   \
-+            if (D##_e < 1 - _FP_FRACBITS_##dfs)                            \
-+              {                                                            \
-+                _FP_FRAC_SET_##swc(S, _FP_ZEROFRAC_##swc);                 \
-+                _FP_FRAC_LOW_##swc(S) |= 1;                                \
-+              }                                                            \
-             else                                                           \
-               {                                                            \
-                 _FP_FRAC_HIGH_##sfs(S) |= _FP_IMPLBIT_SH_##sfs;            \
-@@ -1234,11 +1247,24 @@
-       if (S##_e == 0)                                                      \
-       {                                                                    \
-         D##_e = 0;                                                         \
--        _FP_FRAC_SET_##dwc(D, _FP_ZEROFRAC_##dwc);                         \
--        if (!_FP_FRAC_ZEROP_##swc(S))                                      \
-+        if (_FP_FRAC_ZEROP_##swc(S))                                       \
-+          _FP_FRAC_SET_##dwc(D, _FP_ZEROFRAC_##dwc);                       \
-+        else                                                               \
-           {                                                                \
-             FP_SET_EXCEPTION(FP_EX_DENORM);                                \
--            FP_SET_EXCEPTION(FP_EX_INEXACT);                               \
-+            if (_FP_EXPBIAS_##sfs                                          \
-+                < _FP_EXPBIAS_##dfs + _FP_FRACBITS_##dfs - 1)              \
-+              {                                                            \
-+                _FP_FRAC_SRS_##swc(S, (_FP_WFRACBITS_##sfs                 \
-+                                       - _FP_WFRACBITS_##dfs),             \
-+                                   _FP_WFRACBITS_##sfs);                   \
-+                _FP_FRAC_COPY_##dwc##_##swc(D, S);                         \
-+              }                                                            \
-+            else                                                           \
-+              {                                                            \
-+                _FP_FRAC_SET_##dwc(D, _FP_ZEROFRAC_##dwc);                 \
-+                _FP_FRAC_LOW_##dwc(D) |= 1;                                \
-+              }                                                            \
-           }                                                                \
-       }                                                                    \
-       else                                                                 \
-Index: gcc/config/soft-fp/floatundisf.c
-===================================================================
---- 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
--   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com) and
-                 Jakub Jelinek (jj@ultra.linux.cz).
-@@ -32,8 +32,7 @@
- #include "soft-fp.h"
- #include "single.h"
--float
--__floatundisf(UDItype i)
-+SFtype __floatundisf(UDItype i)
- {
-   FP_DECL_EX;
-   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)    (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.
--   Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com),
-                 Jakub Jelinek (jj@ultra.linux.cz),
-@@ -613,3 +613,5 @@
- #define _FP_FRAC_COPY_1_2(D, S)               (D##_f = S##_f0)
- #define _FP_FRAC_COPY_2_1(D, S)               ((D##_f0 = S##_f), (D##_f1 = 0))
-+
-+#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)    (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.
--   Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com),
-                 Jakub Jelinek (jj@ultra.linux.cz),
-@@ -684,3 +684,5 @@
-   D##_f[1] = S##_f1;                          \
-   D##_f[2] = D##_f[3] = 0;                    \
- } while (0)
-+
-+#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)    (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
--   Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
-+   Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Richard Henderson (rth@cygnus.com),
-                 Jakub Jelinek (jj@ultra.linux.cz),
-@@ -168,13 +168,13 @@
-   DFtype flt;
-   struct {
- #if __BYTE_ORDER == __BIG_ENDIAN
--    unsigned sign : 1;
--    unsigned exp  : _FP_EXPBITS_D;
--    unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
-+    unsigned sign   : 1;
-+    unsigned exp    : _FP_EXPBITS_D;
-+    _FP_W_TYPE frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
- #else
--    unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
--    unsigned exp  : _FP_EXPBITS_D;
--    unsigned sign : 1;
-+    _FP_W_TYPE frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
-+    unsigned exp    : _FP_EXPBITS_D;
-+    unsigned sign   : 1;
- #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)    (revision 126002)
-+++ libstdc++-v3/configure     (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -5764,8 +5764,6 @@
--  echo "$as_me:$LINENO: checking for C locale to use" >&5
--echo $ECHO_N "checking for C locale to use... $ECHO_C" >&6
-    # Check whether --enable-clocale or --disable-clocale was given.
- if test "${enable_clocale+set}" = set; then
-   enableval="$enable_clocale"
-@@ -5782,32 +5780,53 @@
- fi;
--  # If they didn't use this option switch, or if they specified --enable
--  # with no specific model, we'll have to look for one.  If they
--  # specified --disable (???), do likewise.
-+  # Deal with gettext issues.  Default to not using it (=no) until we detect
-+  # support for it later.  Let the user turn it off via --e/d, but let that
-+  # default to on for easier handling.
-+  USE_NLS=no
-+  # Check whether --enable-nls or --disable-nls was given.
-+if test "${enable_nls+set}" = set; then
-+  enableval="$enable_nls"
-+
-+else
-+  enable_nls=yes
-+fi;
-+
-+  # Either a known packaage, or "auto"
-   if test $enable_clocale = no || test $enable_clocale = yes; then
-      enable_clocale=auto
-   fi
--
--  # Either a known package, or "auto"
-   enable_clocale_flag=$enable_clocale
--  # Probe for locale support if no specific model is specified.
-+  # Probe for locale model to use if none specified.
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
--        cat >conftest.$ac_ext <<_ACEOF
-+        enable_clocale_flag=gnu
-+        ;;
-+      darwin* | freebsd*)
-+        enable_clocale_flag=darwin
-+      ;;
-+      *)
-+        enable_clocale_flag=generic
-+        ;;
-+    esac
-+  fi
-+
-+  # Sanity check model, and test for special functionality.
-+  if test $enable_clocale_flag = gnu; then
-+    cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
--        #include <features.h>
--        #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
--          _GLIBCXX_ok
--        #endif
-+    #include <features.h>
-+    #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
-+      _GLIBCXX_ok
-+    #endif
- _ACEOF
- if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-@@ -5819,9 +5838,8 @@
- rm -f conftest*
--        # Test for bugs early in glibc-2.2.x series
--          if test $enable_clocale_flag = gnu; then
--          if test "$cross_compiling" = yes; then
-+    # Test for bugs early in glibc-2.2.x series
-+    if test "$cross_compiling" = yes; then
-   enable_clocale_flag=generic
- else
-   cat >conftest.$ac_ext <<_ACEOF
-@@ -5831,28 +5849,28 @@
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
--          #define _GNU_SOURCE 1
--          #include <locale.h>
--          #include <string.h>
--          #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
--          extern __typeof(newlocale) __newlocale;
--          extern __typeof(duplocale) __duplocale;
--          extern __typeof(strcoll_l) __strcoll_l;
--          #endif
--          int main()
--          {
--              const char __one[] = "Äuglein Augmen";
--              const char __two[] = "Äuglein";
--              int i;
--              int j;
--              __locale_t        loc;
--               __locale_t        loc_dup;
--              loc = __newlocale(1 << LC_ALL, "de_DE", 0);
--              loc_dup = __duplocale(loc);
--              i = __strcoll_l(__one, __two, loc);
--              j = __strcoll_l(__one, __two, loc_dup);
--              return 0;
--          }
-+    #define _GNU_SOURCE 1
-+    #include <locale.h>
-+    #include <string.h>
-+    #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-+    extern __typeof(newlocale) __newlocale;
-+    extern __typeof(duplocale) __duplocale;
-+    extern __typeof(strcoll_l) __strcoll_l;
-+    #endif
-+    int main()
-+    {
-+        const char __one[] = "Äuglein Augmen";
-+        const char __two[] = "Äuglein";
-+        int i;
-+        int j;
-+        __locale_t        loc;
-+        __locale_t        loc_dup;
-+        loc = __newlocale(1 << LC_ALL, "de_DE", 0);
-+        loc_dup = __duplocale(loc);
-+        i = __strcoll_l(__one, __two, loc);
-+        j = __strcoll_l(__one, __two, loc_dup);
-+        return 0;
-+    }
- _ACEOF
- rm -f conftest$ac_exeext
-@@ -5877,32 +5895,176 @@
- fi
- rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
--          fi
--        # ... at some point put __strxfrm_l tests in as well.
--        ;;
--      darwin* | freebsd*)
--        enable_clocale_flag=darwin
--      ;;
--      *)
--        enable_clocale_flag=generic
--        ;;
--    esac
-+    # Set it to scream when it hurts.
-+    ac_save_CFLAGS="$CFLAGS"
-+    CFLAGS="-Wimplicit-function-declaration -Werror"
-+
-+    # Use strxfrm_l if available.
-+    cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+#define _GNU_SOURCE 1
-+                  #include <string.h>
-+                  #include <locale.h>
-+int
-+main ()
-+{
-+char s[128]; __locale_t loc; strxfrm_l(s, "C", 5, loc);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+  (eval $ac_compile) 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_STRXFRM_L 1
-+_ACEOF
-+
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+    # Use strerror_l if available.
-+    cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+#define _GNU_SOURCE 1
-+                  #include <string.h>
-+                  #include <locale.h>
-+int
-+main ()
-+{
-+__locale_t loc; strerror_l(5, loc);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+  (eval $ac_compile) 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_STRERROR_L 1
-+_ACEOF
-+
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+    CFLAGS="$ac_save_CFLAGS"
-   fi
--  # Deal with gettext issues.  Default to not using it (=no) until we detect
--  # support for it later.  Let the user turn it off via --e/d, but let that
--  # default to on for easier handling.
--  USE_NLS=no
--  # Check whether --enable-nls or --disable-nls was given.
--if test "${enable_nls+set}" = set; then
--  enableval="$enable_nls"
-+  # Perhaps use strerror_r if available, and strerror_l isn't.
-+  ac_save_CFLAGS="$CFLAGS"
-+  CFLAGS="-Wimplicit-function-declaration -Werror"
-+  cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+#define _GNU_SOURCE 1
-+                #include <string.h>
-+                #include <locale.h>
-+int
-+main ()
-+{
-+char s[128]; strerror_r(5, s, 128);
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+  (eval $ac_compile) 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_STRERROR_R 1
-+_ACEOF
-+
- else
--  enable_nls=yes
--fi;
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+  CFLAGS="$ac_save_CFLAGS"
-+
-   # Set configure bits for specified locale package
-+  echo "$as_me:$LINENO: checking for C locale to use" >&5
-+echo $ECHO_N "checking for C locale to use... $ECHO_C" >&6
-   case ${enable_clocale_flag} in
-     generic)
-       echo "$as_me:$LINENO: result: generic" >&5
-@@ -8015,7 +8177,7 @@
-   # Fake what AC_TRY_COMPILE does.  XXX Look at redoing this new-style.
-     cat > conftest.$ac_ext << EOF
--#line 8018 "configure"
-+#line 8180 "configure"
- int main()
- {
-   // NB: _Atomic_word not necessarily int.
-@@ -8395,11 +8557,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -54307,11 +54467,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -75669,11 +75827,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -77194,11 +77350,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -78687,11 +78841,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -100579,11 +100731,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -101426,11 +101576,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -102829,11 +102977,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -104624,11 +104770,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -105869,11 +106013,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     echo "$as_me:$LINENO: checking for ld that supports -Wl,--gc-sections" >&5
-@@ -106898,11 +107040,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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     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)    (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*);
-   extern template ostream& operator<<(ostream&, const signed char*);
--  extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
-   extern template ostream& ostream::_M_insert(long);
-   extern template ostream& ostream::_M_insert(unsigned long);
-@@ -356,8 +355,6 @@
-   extern template wostream& operator<<(wostream&, char);
-   extern template wostream& operator<<(wostream&, const wchar_t*);
-   extern template wostream& operator<<(wostream&, const char*);
--  extern template wostream& __ostream_insert(wostream&, const wchar_t*,
--                                           streamsize);
-   extern template wostream& wostream::_M_insert(long);
-   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)    (revision 126002)
-+++ libstdc++-v3/include/bits/ostream_insert.h (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -109,6 +109,18 @@
-       return __out;
-     }
+--- gcc/tree-ssa-loop-ivopts.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/tree-ssa-loop-ivopts.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1525,17 +1525,19 @@
  
-+  // Inhibit implicit instantiations for required instantiations,
-+  // which are defined via explicit instantiations elsewhere.
-+  // NB:  This syntax is a GNU extension.
-+#if _GLIBCXX_EXTERN_TEMPLATE
-+  extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
+   if (mode != BLKmode)
+     {
+-      double_int mul;
+-      tree al = build_int_cst (TREE_TYPE (step),
+-                             GET_MODE_ALIGNMENT (mode) / BITS_PER_UNIT);
++      unsigned mode_align = GET_MODE_ALIGNMENT (mode);
+-      if (base_align < GET_MODE_ALIGNMENT (mode)
+-        || bitpos % GET_MODE_ALIGNMENT (mode) != 0
+-        || bitpos % BITS_PER_UNIT != 0)
++      if (base_align < mode_align
++        || (bitpos % mode_align) != 0
++        || (bitpos % BITS_PER_UNIT) != 0)
+       return true;
+-    
+-      if (!constant_multiple_of (step, al, &mul))
 +
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  extern template wostream& __ostream_insert(wostream&, const wchar_t*,
-+                                           streamsize);
-+#endif
-+#endif
++      if (toffset
++        && (highest_pow2_factor (toffset) * BITS_PER_UNIT) < mode_align)
+       return true;
 +
- _GLIBCXX_END_NAMESPACE
++      if ((highest_pow2_factor (step) * BITS_PER_UNIT) < mode_align)
++      return true;
+     }
  
- #endif /* _OSTREAM_INSERT_H */
-Index: libstdc++-v3/include/std/std_fstream.h
+   return false;
+Index: gcc/config.in
 ===================================================================
---- 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++ -*-
--// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-+// 2006, 2007
- // Free Software Foundation, Inc.
- //
- // This file is part of the GNU ISO C++ Library.  This library is free
-@@ -257,9 +258,30 @@
-        *  Otherwise it tries to open the file named @a s using the flags
-        *  given in @a mode.
-        *
--       *  [Table 92 gives the relation between openmode combinations and the
--       *  equivalent fopen() flags, but the table has not been copied yet.]
--      */
-+       *  Table 92, adapted here, gives the relation between openmode
-+       *  combinations and the equivalent fopen() flags.
-+       *  (NB: lines in|out|app and binary|in|out|app per DR 596)
-+       *  +---------------------------------------------------------+
-+       *  | ios_base Flag combination            stdio equivalent   |
-+       *  |binary  in  out  trunc  app                              |
-+       *  +---------------------------------------------------------+
-+       *  |             +                        "w"                |
-+       *  |             +           +            "a"                |
-+       *  |             +     +                  "w"                |
-+       *  |         +                            "r"                |
-+       *  |         +   +                        "r+"               |
-+       *  |         +   +     +                  "w+"               |
-+       *  |         +   +           +            "a+"               |
-+       *  +---------------------------------------------------------+
-+       *  |   +         +                        "wb"               |
-+       *  |   +         +           +            "ab"               |
-+       *  |   +         +     +                  "wb"               |
-+       *  |   +     +                            "rb"               |
-+       *  |   +     +   +                        "r+b"              |
-+       *  |   +     +   +     +                  "w+b"              |
-+       *  |   +     +   +           +            "a+b"              |
-+       *  +---------------------------------------------------------+
-+       */
-       __filebuf_type*
-       open(const char* __s, ios_base::openmode __mode);
+--- gcc/config.in      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config.in      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -274,8 +274,20 @@
+ #endif
  
-Index: libstdc++-v3/ChangeLog
-===================================================================
---- 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  <pcarlini@suse.de>
-+
-+      * docs/html/install.html: Adjust consistently with libstdc++/31717.
-+
-+2007-06-08  Francesco Palagi  <palagi@arcetri.astro.it>
-+
-+      * include/std/std_fstream.h: Add Table 92 in comment.
-+
-+2007-06-06  Benjamin Kosnik  <bkoz@redhat.com>
-+          Frank Mori Hess  <frank.hess@nist.gov>
-+      
-+      * docs/html/debug.html: Correct link.
-+
-+2007-05-28  Benjamin Kosnik  <bkoz@redhat.com>
-+
-+      PR libstdc++/31717 
-+      * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Re-organize. Sanity check
-+      gnu locale model requests to make sure it will work for the requested
-+      target. Add checks for strxfrm_l, strerror_l when in gnu locale,
-+      and strerror_r everywhere.
-+      * aclocal.m4: Regenerated.
-+      * configure: Regenerated.
-+      * config.h.in: Regenerated.
-+
-+2007-05-24  Paolo Carlini  <pcarlini@suse.de>
+-/* Define if your assembler supports the sahf mnemonic. */
++/* Define if your assembler supports the .quad directive. */
+ #ifndef USED_FOR_TARGET
++#undef HAVE_AS_IX86_QUAD
++#endif
 +
-+      * include/bits/ostream.tcc: Do not inhibit implicit instantiation
-+      of __ostream_insert here...
-+      * include/bits/ostream_insert.h: ... do it here.
 +
-+2007-05-21  Paolo Carlini  <pcarlini@suse.de>
++/* Define true if the assembler supports 'rep <insn>, lock <insn>'. */
++#ifndef USED_FOR_TARGET
++#undef HAVE_AS_IX86_REP_LOCK_PREFIX
++#endif
 +
-+      PR libstdc++/31621
-+      * acinclude.m4 ([GLIBCXX_CHECK_LINKER_FEATURES]): Use the C compiler.
-+      * configure: Regenerate.
 +
- 2007-05-13  Release Manager
-       * GCC 4.2.0 released.
-Index: libstdc++-v3/docs/html/debug.html
-===================================================================
---- 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 @@
- <h3 class="left"><a name="verbterm">Tracking uncaught exceptions</a></h3>
--<p>The <a href="19_diagnostics/howto.html#4">verbose termination handler</a>
-+<p>The <a href="18_support/howto.html#4">verbose termination handler</a>
-    gives information about uncaught exceptions which are killing the
-    program.  It is described in the linked-to page.
- </p>
-Index: libstdc++-v3/docs/html/install.html
-===================================================================
---- 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.
-       <p>
--      The configure option --enable-clocale can be used force a
--      particular behavior.
-+      Note that those sanity checks are also perfomed when an explicit
-+      --enable-clocale=gnu configure option is used:  this behavior is
-+      new in gcc 4.2.1 and defends against misconfigurations.
-       </p>
-       <p>
-Index: libstdc++-v3/config.h.in
-===================================================================
---- 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 <stdlib.h> header file. */
- #undef HAVE_STDLIB_H
-+/* Define if strerror_l is available in <string.h>. */
-+#undef HAVE_STRERROR_L
-+
-+/* Define if strerror_r is available in <string.h>. */
-+#undef HAVE_STRERROR_R
-+
- /* Define to 1 if you have the <strings.h> header file. */
- #undef HAVE_STRINGS_H
-@@ -310,6 +316,9 @@
- /* Define to 1 if you have the `strtold' function. */
- #undef HAVE_STRTOLD
-+/* Define if strxfrm_l is available in <string.h>. */
-+#undef HAVE_STRXFRM_L
-+
- /* Define to 1 if you have the <sys/filio.h> header file. */
- #undef HAVE_SYS_FILIO_H
-Index: libstdc++-v3/acinclude.m4
-===================================================================
---- 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.
--    # All these tests are for C++, but run with the "C" compiler driver.
--    # Need to do this so that g++ won't try to link in libstdc++/libsupc++.
-     ac_test_CFLAGS="${CFLAGS+set}"
-     ac_save_CFLAGS="$CFLAGS"
--    CFLAGS='-x c++ -Wl,--gc-sections'
-+    CFLAGS='-Wl,--gc-sections'
-     # Check for -Wl,--gc-sections
-     AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
-@@ -1334,64 +1332,31 @@
- dnl Default is generic.
- dnl
- AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
--  AC_MSG_CHECKING([for C locale to use])
-   GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
-     [use MODEL for target locale package],
-     [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
-+
-+  # Deal with gettext issues.  Default to not using it (=no) until we detect
-+  # support for it later.  Let the user turn it off via --e/d, but let that
-+  # default to on for easier handling.
-+  USE_NLS=no
-+  AC_ARG_ENABLE(nls,
-+    AC_HELP_STRING([--enable-nls],[use Native Language Support (default)]),
-+    [],
-+    [enable_nls=yes])
-   
--  # If they didn't use this option switch, or if they specified --enable
--  # with no specific model, we'll have to look for one.  If they
--  # specified --disable (???), do likewise.
-+  # Either a known packaage, or "auto"
-   if test $enable_clocale = no || test $enable_clocale = yes; then
-      enable_clocale=auto
-   fi
--
--  # Either a known package, or "auto"
-   enable_clocale_flag=$enable_clocale
--  # Probe for locale support if no specific model is specified.
-+  # Probe for locale model to use if none specified.
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
--        AC_EGREP_CPP([_GLIBCXX_ok], [
--        #include <features.h>
--        #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
--          _GLIBCXX_ok
--        #endif
--        ], enable_clocale_flag=gnu, enable_clocale_flag=generic)
--
--        # Test for bugs early in glibc-2.2.x series
--          if test $enable_clocale_flag = gnu; then
--          AC_TRY_RUN([
--          #define _GNU_SOURCE 1
--          #include <locale.h>
--          #include <string.h>
--          #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
--          extern __typeof(newlocale) __newlocale;
--          extern __typeof(duplocale) __duplocale;
--          extern __typeof(strcoll_l) __strcoll_l;
--          #endif
--          int main()
--          {
--              const char __one[] = "Äuglein Augmen";
--              const char __two[] = "Äuglein";
--              int i;
--              int j;
--              __locale_t        loc;
--               __locale_t        loc_dup;
--              loc = __newlocale(1 << LC_ALL, "de_DE", 0);
--              loc_dup = __duplocale(loc);
--              i = __strcoll_l(__one, __two, loc);
--              j = __strcoll_l(__one, __two, loc_dup);
--              return 0;
--          }
--          ],
--          [enable_clocale_flag=gnu],[enable_clocale_flag=generic],
--          [enable_clocale_flag=generic])
--          fi
++/* Define if your assembler supports the sahf mnemonic in 64bit mode. */
++#ifndef USED_FOR_TARGET
+ #undef HAVE_AS_IX86_SAHF
+ #endif
+Index: gcc/sel-sched-ir.c
+===================================================================
+--- gcc/sel-sched-ir.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/sel-sched-ir.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1505,14 +1505,6 @@
+     {
+       expr_history_def *phist = VEC_index (expr_history_def, vect, ind);
+-      /* When merging, either old vinsns are the *same* or, if not, both 
+-         old and new vinsns are different pointers.  In the latter case, 
+-         though, new vinsns should be equal.  */
+-      gcc_assert (phist->old_expr_vinsn == old_expr_vinsn
+-                  || (phist->new_expr_vinsn != new_expr_vinsn 
+-                      && (vinsn_equal_p 
+-                          (phist->old_expr_vinsn, old_expr_vinsn))));
 -
--        # ... at some point put __strxfrm_l tests in as well.
-+        enable_clocale_flag=gnu       
-         ;;
-       darwin* | freebsd*)
-         enable_clocale_flag=darwin
-@@ -1402,16 +1367,79 @@
-     esac
-   fi
+       /* It is possible that speculation types of expressions that were 
+          propagated through different paths will be different here.  In this
+          case, merge the status to get the correct check later.  */
+Index: gcc/fortran/openmp.c
+===================================================================
+--- gcc/fortran/openmp.c       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/fortran/openmp.c       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -812,6 +812,8 @@
+               if (el)
+                 continue;
+             }
++          if (n->sym->attr.proc_pointer)
++            continue;
+         }
+       gfc_error ("Object '%s' is not a variable at %L", n->sym->name,
+                  &code->loc);
+Index: gcc/fortran/interface.c
+===================================================================
+--- gcc/fortran/interface.c    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/fortran/interface.c    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1625,8 +1625,8 @@
+         || sym->as->lower[i]->expr_type != EXPR_CONSTANT)
+       return 0;
  
--  # Deal with gettext issues.  Default to not using it (=no) until we detect
--  # support for it later.  Let the user turn it off via --e/d, but let that
--  # default to on for easier handling.
--  USE_NLS=no
--  AC_ARG_ENABLE(nls,
--    AC_HELP_STRING([--enable-nls],[use Native Language Support (default)]),
--    [],
--    [enable_nls=yes])
-+  # Sanity check model, and test for special functionality.
-+  if test $enable_clocale_flag = gnu; then
-+    AC_EGREP_CPP([_GLIBCXX_ok], [
-+    #include <features.h>
-+    #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
-+      _GLIBCXX_ok
-+    #endif
-+    ], enable_clocale_flag=gnu, enable_clocale_flag=generic)
-+    # Test for bugs early in glibc-2.2.x series
-+    AC_TRY_RUN([
-+    #define _GNU_SOURCE 1
-+    #include <locale.h>
-+    #include <string.h>
-+    #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-+    extern __typeof(newlocale) __newlocale;
-+    extern __typeof(duplocale) __duplocale;
-+    extern __typeof(strcoll_l) __strcoll_l;
-+    #endif
-+    int main()
-+    {
-+        const char __one[] = "Äuglein Augmen";
-+        const char __two[] = "Äuglein";
-+        int i;
-+        int j;
-+        __locale_t        loc;
-+        __locale_t        loc_dup;
-+        loc = __newlocale(1 << LC_ALL, "de_DE", 0);
-+        loc_dup = __duplocale(loc);
-+        i = __strcoll_l(__one, __two, loc);
-+        j = __strcoll_l(__one, __two, loc_dup);
-+        return 0;
-+    }
-+    ],
-+    [enable_clocale_flag=gnu],[enable_clocale_flag=generic],
-+    [enable_clocale_flag=generic])
-+
-+    # Set it to scream when it hurts.
-+    ac_save_CFLAGS="$CFLAGS"  
-+    CFLAGS="-Wimplicit-function-declaration -Werror"
-+
-+    # Use strxfrm_l if available.
-+    AC_TRY_COMPILE([#define _GNU_SOURCE 1
-+                  #include <string.h>
-+                  #include <locale.h>],
-+                  [char s[128]; __locale_t loc; strxfrm_l(s, "C", 5, loc);], 
-+                    AC_DEFINE(HAVE_STRXFRM_L, 1, 
-+                    [Define if strxfrm_l is available in <string.h>.]),)
-+    
-+    # Use strerror_l if available.
-+    AC_TRY_COMPILE([#define _GNU_SOURCE 1
-+                  #include <string.h>
-+                  #include <locale.h>],
-+                  [__locale_t loc; strerror_l(5, loc);], 
-+                    AC_DEFINE(HAVE_STRERROR_L, 1, 
-+                    [Define if strerror_l is available in <string.h>.]),)
-+
-+    CFLAGS="$ac_save_CFLAGS"
-+  fi
+-      elements *= mpz_get_ui (sym->as->upper[i]->value.integer)
+-                - mpz_get_ui (sym->as->lower[i]->value.integer) + 1L;
++      elements *= mpz_get_si (sym->as->upper[i]->value.integer)
++                - mpz_get_si (sym->as->lower[i]->value.integer) + 1L;
+     }
+   return strlen*elements;
+Index: gcc/fortran/trans-openmp.c
+===================================================================
+--- gcc/fortran/trans-openmp.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/fortran/trans-openmp.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -56,7 +56,8 @@
+       if (GFC_POINTER_TYPE_P (type))
+       return false;
+-      if (!DECL_ARTIFICIAL (decl))
++      if (!DECL_ARTIFICIAL (decl)
++        && TREE_CODE (TREE_TYPE (type)) != FUNCTION_TYPE)
+       return true;
+       /* Some arrays are expanded as DECL_ARTIFICIAL pointers
+@@ -95,6 +96,15 @@
+        == NULL)
+     return OMP_CLAUSE_DEFAULT_SHARED;
++  /* Dummy procedures aren't considered variables by OpenMP, thus are
++     disallowed in OpenMP clauses.  They are represented as PARM_DECLs
++     in the middle-end, so return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE here
++     to avoid complaining about their uses with default(none).  */
++  if (TREE_CODE (decl) == PARM_DECL
++      && TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE
++      && TREE_CODE (TREE_TYPE (TREE_TYPE (decl))) == FUNCTION_TYPE)
++    return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE;
++
+   /* COMMON and EQUIVALENCE decls are shared.  They
+      are only referenced through DECL_VALUE_EXPR of the variables
+      contained in them.  If those are privatized, they will not be
+Index: gcc/fortran/ChangeLog
+===================================================================
+--- gcc/fortran/ChangeLog      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/fortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,19 @@
++2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
++
++      PR fortran/44135
++      * fortran/interface.c (get_sym_storage_size): Use signed instead of
++      unsigned mpz_get_?i routines.
++
++2010-05-13  Jakub Jelinek  <jakub@redhat.com>
++
++      PR fortran/44036
++      * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
++      variable lists.
++      * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
++      by reference dummy procedures or non-dummy procedure pointers.
++      (gfc_omp_predetermined_sharing): Return
++      OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
++
+ 2010-04-29  Release Manager
+       * GCC 4.4.4 released.
+Index: gcc/configure.ac
+===================================================================
+--- gcc/configure.ac   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/configure.ac   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2094,7 +2094,35 @@
+ gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
+  [elf,2,13,0],,
+ [     .hidden foobar
+-foobar:])
++foobar:],[
++# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
++# STV_HIDDEN, so disable .hidden support if so.
++case "${target}" in
++  i?86-*-solaris2*)
++    if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
++      cat > conftest.s <<EOF
++.globl hidden
++        .hidden hidden
++hidden:
++.globl default
++        .set    default,hidden
++EOF
++      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
++        && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
++        grep '\.hidden default' > /dev/null; then
++        gcc_cv_as_hidden=no
++      else
++        gcc_cv_as_hidden=yes
++      fi
++    else
++      # Assume bug is present if objdump is missing.
++      gcc_cv_as_hidden=no
++    fi
++    ;;
++  *)
++    gcc_cv_as_hidden=yes
++    ;;
++esac])
+ AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
+ [if test $in_tree_ld = yes ; then
+@@ -2991,11 +3019,18 @@
+       [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
+         [Define if your assembler supports the ffreep mnemonic.])])
++    gcc_GAS_CHECK_FEATURE([.quad directive],
++      gcc_cv_as_ix86_quad,,,
++      [.quad 0],,
++      [AC_DEFINE(HAVE_AS_IX86_QUAD, 1,
++        [Define if your assembler supports the .quad directive.])])
++
+     gcc_GAS_CHECK_FEATURE([sahf mnemonic],
+       gcc_cv_as_ix86_sahf,,,
+-      [sahf],,
++      [.code64
++       sahf],,
+       [AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
+-        [Define if your assembler supports the sahf mnemonic.])])
++        [Define if your assembler supports the sahf mnemonic in 64bit mode.])])
+     gcc_GAS_CHECK_FEATURE([different section symbol subtraction],
+       gcc_cv_as_ix86_diff_sect_delta,,,
+@@ -3009,7 +3044,7 @@
+       [AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
+         [Define if your assembler supports the subtraction of symbols in different sections.])])
+-    # This one is used unconditionally by i386.[ch]; it is to be defined
++    # These two are used unconditionally by i386.[ch]; it is to be defined
+     # to 1 if the feature is present, 0 otherwise.
+     gcc_GAS_CHECK_FEATURE([GOTOFF in data],
+         gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
+@@ -3021,6 +3056,15 @@
+     AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
+       [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
+       [Define true if the assembler supports '.long foo@GOTOFF'.])
++
++    gcc_GAS_CHECK_FEATURE([rep and lock prefix],
++        gcc_cv_as_ix86_rep_lock_prefix,,,
++      [rep movsl
++       lock orl $0, (%esp)])
++    AC_DEFINE_UNQUOTED(HAVE_AS_IX86_REP_LOCK_PREFIX,
++      [`if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`],
++      [Define true if the assembler supports 'rep <insn>, lock <insn>'.])
 +
-+  # Perhaps use strerror_r if available, and strerror_l isn't.
-+  ac_save_CFLAGS="$CFLAGS"    
-+  CFLAGS="-Wimplicit-function-declaration -Werror"
-+  AC_TRY_COMPILE([#define _GNU_SOURCE 1
-+                #include <string.h>
-+                #include <locale.h>],
-+                [char s[128]; strerror_r(5, s, 128);], 
-+                  AC_DEFINE(HAVE_STRERROR_R, 1, 
-+                  [Define if strerror_r is available in <string.h>.]),)
-+  CFLAGS="$ac_save_CFLAGS"
-+
-   # Set configure bits for specified locale package
-+  AC_MSG_CHECKING([for C locale to use])
-   case ${enable_clocale_flag} in
-     generic)
-       AC_MSG_RESULT(generic)
-Index: libgfortran/runtime/environ.c
-===================================================================
---- 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)
- {
--  int tok, def;
-+  int tok;
-   int unit1;
-   int continue_ulist;
-   char *start;
+     ;;
  
-   unit_count = 0;
+   ia64*-*-*)
+Index: gcc/BASE-VER
+===================================================================
+--- gcc/BASE-VER       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/BASE-VER       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1 +1 @@
+-4.4.4
++4.4.5
+Index: gcc/alias.c
+===================================================================
+--- gcc/alias.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/alias.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2214,8 +2214,18 @@
+   if (mem_mode == VOIDmode)
+     mem_mode = GET_MODE (mem);
+-  x_addr = get_addr (XEXP (x, 0));
+-  mem_addr = get_addr (XEXP (mem, 0));
++  x_addr = XEXP (x, 0);
++  mem_addr = XEXP (mem, 0);
++  if (!((GET_CODE (x_addr) == VALUE
++       && GET_CODE (mem_addr) != VALUE
++       && reg_mentioned_p (x_addr, mem_addr))
++      || (GET_CODE (x_addr) != VALUE
++          && GET_CODE (mem_addr) == VALUE
++          && reg_mentioned_p (mem_addr, x_addr))))
++    {
++      x_addr = get_addr (x_addr);
++      mem_addr = get_addr (mem_addr);
++    }
  
--  def = 0;
-   start = p;
+   base = find_base_term (x_addr);
+   if (base && (GET_CODE (base) == LABEL_REF
+@@ -2287,7 +2297,16 @@
+     return 0;
  
-   /* Parse the string.  First, let's look for a default.  */
-@@ -923,6 +922,7 @@
-       break;
+   if (! x_addr)
+-    x_addr = get_addr (XEXP (x, 0));
++    {
++      x_addr = XEXP (x, 0);
++      if (!((GET_CODE (x_addr) == VALUE
++           && GET_CODE (mem_addr) != VALUE
++           && reg_mentioned_p (x_addr, mem_addr))
++          || (GET_CODE (x_addr) != VALUE
++              && GET_CODE (mem_addr) == VALUE
++              && reg_mentioned_p (mem_addr, x_addr))))
++      x_addr = get_addr (x_addr);
++    }
  
-     case END:
-+      def = endian;
-       goto end;
-       break;
+   if (! base_alias_check (x_addr, mem_addr, GET_MODE (x), mem_mode))
+     return 0;
+@@ -2347,8 +2366,18 @@
+   if (nonoverlapping_memrefs_p (x, mem))
+     return 0;
+-  x_addr = get_addr (XEXP (x, 0));
+-  mem_addr = get_addr (XEXP (mem, 0));
++  x_addr = XEXP (x, 0);
++  mem_addr = XEXP (mem, 0);
++  if (!((GET_CODE (x_addr) == VALUE
++       && GET_CODE (mem_addr) != VALUE
++       && reg_mentioned_p (x_addr, mem_addr))
++      || (GET_CODE (x_addr) != VALUE
++          && GET_CODE (mem_addr) == VALUE
++          && reg_mentioned_p (mem_addr, x_addr))))
++    {
++      x_addr = get_addr (x_addr);
++      mem_addr = get_addr (mem_addr);
++    }
  
-@@ -939,6 +939,18 @@
-       tok = next_token ();
-       switch (tok)
-       {
-+      case NATIVE:
-+        if (next_token () != ':')
-+          goto error;
-+        endian = CONVERT_NATIVE;
-+        break;
-+
-+      case SWAP:
-+        if (next_token () != ':')
-+          goto error;
-+        endian = CONVERT_SWAP;
-+        break;
-+
-       case LITTLE:
-         if (next_token () != ':')
-           goto error;
-Index: libgfortran/intrinsics/reshape_generic.c
-===================================================================
---- 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
-             {
-               scount[n]++;
--              sptr += sstride[n] * size;
-+              src += sstride[n] * size;
-             }
-         }
-     }
-Index: libgfortran/intrinsics/ishftc.c
+   if (! writep)
+     {
+Index: gcc/gimplify.c
 ===================================================================
---- 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)
+--- gcc/gimplify.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/gimplify.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -74,9 +74,10 @@
+ enum omp_region_type
  {
--  GFC_INTEGER_4 mask;
--  GFC_UINTEGER_4 bits;
-+  GFC_UINTEGER_4 mask, bits;
-   if (shift < 0)
-     shift = shift + size;
-@@ -45,9 +44,14 @@
-   if (shift == 0 || shift == size)
-     return i;
--  mask = (~(GFC_INTEGER_4)0) << size;
--  bits = i & ~mask;
--  return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask);
-+  /* In C, the result of the shift operator is undefined if the right operand
-+     is greater than or equal to the number of bits in the left operand. So we
-+     have to special case it for fortran.  */
-+  mask = ~((size == 32) ? 0 : (~0 << size));
-+
-+  bits = i & mask;
-+  
-+  return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift));
- }
+   ORT_WORKSHARE = 0,
+-  ORT_TASK = 1,
+   ORT_PARALLEL = 2,
+-  ORT_COMBINED_PARALLEL = 3
++  ORT_COMBINED_PARALLEL = 3,
++  ORT_TASK = 4,
++  ORT_UNTIED_TASK = 5
+ };
  
- extern GFC_INTEGER_8 ishftc8 (GFC_INTEGER_8, GFC_INTEGER_4, GFC_INTEGER_4);
-@@ -56,8 +60,7 @@
- GFC_INTEGER_8
- ishftc8 (GFC_INTEGER_8 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
- {
--  GFC_INTEGER_8 mask;
--  GFC_UINTEGER_8 bits;
-+  GFC_UINTEGER_8 mask, bits;
-   if (shift < 0)
-     shift = shift + size;
-@@ -65,9 +68,14 @@
-   if (shift == 0 || shift == size)
-     return i;
--  mask = (~(GFC_INTEGER_8)0) << size;
--  bits = i & ~mask;
--  return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask);
-+  /* In C, the result of the shift operator is undefined if the right operand
-+     is greater than or equal to the number of bits in the left operand. So we
-+     have to special case it for fortran.  */
-+  mask = ~((size == 64) ? 0 : (~0 << size));
-+
-+  bits = i & mask;
-+  
-+  return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift));
+ struct gimplify_omp_ctx
+@@ -320,7 +321,7 @@
+   c->privatized_types = pointer_set_create ();
+   c->location = input_location;
+   c->region_type = region_type;
+-  if (region_type != ORT_TASK)
++  if ((region_type & ORT_TASK) == 0)
+     c->default_kind = OMP_CLAUSE_DEFAULT_SHARED;
+   else
+     c->default_kind = OMP_CLAUSE_DEFAULT_UNSPECIFIED;
+@@ -5290,6 +5291,32 @@
+   splay_tree_insert (ctx->variables, (splay_tree_key)decl, flags);
  }
  
- #ifdef HAVE_GFC_INTEGER_16
-@@ -77,8 +85,7 @@
- GFC_INTEGER_16
- ishftc16 (GFC_INTEGER_16 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size)
- {
--  GFC_INTEGER_16 mask;
--  GFC_UINTEGER_16 bits;
-+  GFC_UINTEGER_16 mask, bits;
-   if (shift < 0)
-     shift = shift + size;
-@@ -86,8 +93,13 @@
-   if (shift == 0 || shift == size)
-     return i;
--  mask = (~(GFC_INTEGER_16)0) << size;
--  bits = i & ~mask;
--  return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask);
-+  /* In C, the result of the shift operator is undefined if the right operand
-+     is greater than or equal to the number of bits in the left operand. So we
-+     have to special case it for fortran.  */
-+  mask = ~((size == 128) ? 0 : (~0 << size));
-+
-+  bits = i & mask;
-+  
-+  return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift));
- }
- #endif
-Index: libgfortran/ChangeLog
-===================================================================
---- 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  <jvdelisle@gcc.gnu.org>
-+
-+      PR libfortran/31964
-+      Backport from trunk.
-+      * intrinsics/ishftc.c (ishftc4, ishftc8, ishftc16): Fix mask to handle
-+      shift of bit-size number of bits.
-+
-+2007-05-23  Tobias Burnus <burnus@net-b.de>
-+
-+      PR fortran/31917
-+      Backport from trunk.
-+      * runtime/environ.c (mark_range): Fix setting default convert unit.
-+
-+2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libfortran/31051
-+      Backport from trunk.
-+      * io/transfer.c (formatted_transfer_scalar): Adjust position for pending
-+      spaces when in writing mode.  Clean up some formatting.
-+      
-+2007-05-22  Tobias Burnus  <burnus@net-b.de>
++/* Notice a threadprivate variable DECL used in OpenMP context CTX.
++   This just prints out diagnostics about threadprivate variable uses
++   in untied tasks.  If DECL2 is non-NULL, prevent this warning
++   on that variable.  */
 +
-+      PR libfortran/31915
-+      Backport from trunk.
-+      * io/transfer.c (unformatted_read): Use proper size for real(10).
-+        (unformatted_write): Ditto.
-+
-+2007-05-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libfortran/31395
-+      Backport from 4.3.
-+      * io/format.c (parse_format_list): Fix parsing. Regression against g77.
-+
-+2007-05-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
-+
-+      PR fortran/31618
-+      Backport from trunk.
-+      * io/transfer.c (read_block_direct):  Instead of calling us_read,
-+      set dtp->u.p.current_unit->current_record = 0 so that pre_position
-+      will read the record marker.
-+      (data_transfer_init):  For different error conditions, call
-+      generate_error, then return.
-+
-+2007-05-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
++static bool
++omp_notice_threadprivate_variable (struct gimplify_omp_ctx *ctx, tree decl,
++                                 tree decl2)
++{
++  splay_tree_node n;
 +
-+      PR libfortran/31196
-+      Backport from trunk.
-+      * intrinsics/reshape_generic.c (reshape_internal):  Increment
-+      correct variable.
++  if (ctx->region_type != ORT_UNTIED_TASK)
++    return false;
++  n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
++  if (n == NULL)
++    {
++      error ("threadprivate variable %qs used in untied task",
++           IDENTIFIER_POINTER (DECL_NAME (decl)));
++      error ("%Henclosing task", &ctx->location);
++      splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0);
++    }
++  if (decl2)
++    splay_tree_insert (ctx->variables, (splay_tree_key)decl2, 0);
++  return false;
++}
 +
- 2007-05-13  Release Manager
+ /* Record the fact that DECL was used within the OpenMP context CTX.
+    IN_CODE is true when real code uses DECL, and false when we should
+    merely emit default(none) errors.  Return true if DECL is going to
+@@ -5310,14 +5337,14 @@
+   if (is_global_var (decl))
+     {
+       if (DECL_THREAD_LOCAL_P (decl))
+-      return false;
++      return omp_notice_threadprivate_variable (ctx, decl, NULL_TREE);
+       if (DECL_HAS_VALUE_EXPR_P (decl))
+       {
+         tree value = get_base_address (DECL_VALUE_EXPR (decl));
+         if (value && DECL_P (value) && DECL_THREAD_LOCAL_P (value))
+-          return false;
++          return omp_notice_threadprivate_variable (ctx, decl, value);
+       }
+     }
+@@ -5343,8 +5370,11 @@
+       case OMP_CLAUSE_DEFAULT_NONE:
+         error ("%qs not specified in enclosing parallel",
+                IDENTIFIER_POINTER (DECL_NAME (decl)));
+-        error ("%Henclosing parallel", &ctx->location);
+-        /* FALLTHRU */
++        if ((ctx->region_type & ORT_TASK) != 0)
++          error ("%Henclosing task", &ctx->location);
++        else
++          error ("%Henclosing parallel", &ctx->location);
++        /* FALLTHRU */
+       case OMP_CLAUSE_DEFAULT_SHARED:
+         flags |= GOVD_SHARED;
+         break;
+@@ -5356,7 +5386,7 @@
+         break;
+       case OMP_CLAUSE_DEFAULT_UNSPECIFIED:
+         /* decl will be either GOVD_FIRSTPRIVATE or GOVD_SHARED.  */
+-        gcc_assert (ctx->region_type == ORT_TASK);
++        gcc_assert ((ctx->region_type & ORT_TASK) != 0);
+         if (ctx->outer_context)
+           omp_notice_variable (ctx->outer_context, decl, in_code);
+         for (octx = ctx->outer_context; octx; octx = octx->outer_context)
+@@ -5859,7 +5889,10 @@
+   gimple_seq body = NULL;
+   struct gimplify_ctx gctx;
+-  gimplify_scan_omp_clauses (&OMP_TASK_CLAUSES (expr), pre_p, ORT_TASK);
++  gimplify_scan_omp_clauses (&OMP_TASK_CLAUSES (expr), pre_p,
++                           find_omp_clause (OMP_TASK_CLAUSES (expr),
++                                            OMP_CLAUSE_UNTIED)
++                           ? ORT_UNTIED_TASK : ORT_TASK);
+   push_gimplify_context (&gctx);
+Index: gcc/tree-cfgcleanup.c
+===================================================================
+--- gcc/tree-cfgcleanup.c      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/tree-cfgcleanup.c      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,5 @@
+ /* CFG cleanup for trees.
+-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+ This file is part of GCC.
+@@ -224,6 +224,7 @@
+   edge_iterator ei;
+   edge e, succ;
+   basic_block dest;
++  location_t locus;
+   /* BB must have a single outgoing edge.  */
+   if (single_succ_p (bb) != 1
+@@ -242,6 +243,8 @@
+   gcc_assert (bb != ENTRY_BLOCK_PTR);
+ #endif
++  locus = single_succ_edge (bb)->goto_locus;
++
+   /* Now walk through the statements backward.  We can ignore labels,
+      anything else means this is not a forwarder block.  */
+   for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi_prev (&gsi))
+@@ -253,6 +256,8 @@
+       case GIMPLE_LABEL:
+         if (DECL_NONLOCAL (gimple_label_label (stmt)))
+           return false;
++        if (optimize == 0 && gimple_location (stmt) != locus)
++          return false;
+         break;
+       default:
+@@ -289,6 +294,10 @@
+         if (!single_pred_p (dest))
+           return false;
+       }
++      /* If goto_locus of any of the edges differs, prevent removing
++       the forwarder block for -O0.  */
++      if (optimize == 0 && e->goto_locus != locus)
++      return false;
+     }
+   return true;
+@@ -543,12 +552,8 @@
+     return true;
  
-       * GCC 4.2.0 released.
-Index: libgfortran/io/transfer.c
+   retval = cleanup_control_flow_bb (bb);
+-  
+-  /* Forwarder blocks can carry line number information which is
+-     useful when debugging, so we only clean them up when
+-     optimizing.  */
+-  if (optimize > 0
+-      && tree_forwarder_block_p (bb, false)
++
++  if (tree_forwarder_block_p (bb, false)
+       && remove_forwarder_block (bb))
+     return true;
+Index: gcc/tree-ssa-pre.c
+===================================================================
+--- gcc/tree-ssa-pre.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/tree-ssa-pre.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2509,31 +2509,46 @@
+     {
+     case CALL_EXPR:
+       {
+-      tree folded, sc = currop->op1;
++      tree folded, sc = NULL_TREE;
+       unsigned int nargs = 0;
+-      tree *args = XNEWVEC (tree, VEC_length (vn_reference_op_s,
+-                                              ref->operands) - 1);
++      tree fn, *args;
++      if (TREE_CODE (currop->op0) == FUNCTION_DECL)
++        fn = currop->op0;
++      else
++        {
++          pre_expr op0 = get_or_alloc_expr_for (currop->op0);
++          fn = find_or_generate_expression (block, op0, stmts, domstmt);
++          if (!fn)
++            return NULL_TREE;
++        }
++      if (currop->op1)
++        {
++          pre_expr scexpr = get_or_alloc_expr_for (currop->op1);
++          sc = find_or_generate_expression (block, scexpr, stmts, domstmt);
++          if (!sc)
++            return NULL_TREE;
++        }
++      args = XNEWVEC (tree, VEC_length (vn_reference_op_s,
++                                        ref->operands) - 1);
+       while (*operand < VEC_length (vn_reference_op_s, ref->operands))
+         {
+           args[nargs] = create_component_ref_by_pieces_1 (block, ref,
+                                                           operand, stmts,
+                                                           domstmt);
++          if (!args[nargs])
++            {
++              free (args);
++              return NULL_TREE;
++            }
+           nargs++;
+         }
+       folded = build_call_array (currop->type,
+-                                 TREE_CODE (currop->op0) == FUNCTION_DECL
+-                                 ? build_fold_addr_expr (currop->op0)
+-                                 : currop->op0,
++                                 (TREE_CODE (fn) == FUNCTION_DECL
++                                  ? build_fold_addr_expr (fn) : fn),
+                                  nargs, args);
+       free (args);
+       if (sc)
+-        {
+-          pre_expr scexpr = get_or_alloc_expr_for (sc);
+-          sc = find_or_generate_expression (block, scexpr, stmts, domstmt);
+-          if (!sc)
+-            return NULL_TREE;
+-          CALL_EXPR_STATIC_CHAIN (folded) = sc;
+-        }
++        CALL_EXPR_STATIC_CHAIN (folded) = sc;
+       return folded;
+       }
+       break;
+Index: gcc/c-omp.c
 ===================================================================
---- 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
+--- gcc/c-omp.c        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/c-omp.c        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,7 +1,7 @@
+ /* This file contains routines to construct GNU OpenMP constructs, 
+    called from parsing in the C and C++ front ends.
+-   Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+    Contributed by Richard Henderson <rth@redhat.com>,
+                 Diego Novillo <dnovillo@redhat.com>.
+@@ -281,7 +281,8 @@
+             || TREE_CODE (cond) == LE_EXPR
+             || TREE_CODE (cond) == GT_EXPR
+             || TREE_CODE (cond) == GE_EXPR
+-            || TREE_CODE (cond) == NE_EXPR)
++            || TREE_CODE (cond) == NE_EXPR
++            || TREE_CODE (cond) == EQ_EXPR)
            {
--            /* Let's make sure the file position is correctly set for the
--               next read statement.  */
-+            /* Let's make sure the file position is correctly pre-positioned
-+               for the next read statement.  */
-+            dtp->u.p.current_unit->current_record = 0;
-             next_record_r_unf (dtp, 0);
--            us_read (dtp, 0);
-             generate_error (&dtp->common, ERROR_SHORT_RECORD, NULL);
-             return;
-           }
-@@ -722,7 +722,11 @@
-        of the padding.  If we hit a short record, then sz is
-        adjusted accordingly, making later reads no-ops.  */
-       
--      sz = kind;
-+      if (type == BT_REAL || type == BT_COMPLEX)
-+      sz = size_from_real_kind (kind);
-+      else
-+      sz = kind;
-+
-       for (i=0; i<nelems; i++)
+             tree op0 = TREE_OPERAND (cond, 0);
+             tree op1 = TREE_OPERAND (cond, 1);
+@@ -326,18 +327,21 @@
+                 cond_ok = true;
+               }
+-            if (TREE_CODE (cond) == NE_EXPR)
++            if (TREE_CODE (cond) == NE_EXPR
++                || TREE_CODE (cond) == EQ_EXPR)
+               {
+                 if (!INTEGRAL_TYPE_P (TREE_TYPE (decl)))
+                   cond_ok = false;
+                 else if (operand_equal_p (TREE_OPERAND (cond, 1),
+                                           TYPE_MIN_VALUE (TREE_TYPE (decl)),
+                                           0))
+-                  TREE_SET_CODE (cond, GT_EXPR);
++                  TREE_SET_CODE (cond, TREE_CODE (cond) == NE_EXPR
++                                       ? GT_EXPR : LE_EXPR);
+                 else if (operand_equal_p (TREE_OPERAND (cond, 1),
+                                           TYPE_MAX_VALUE (TREE_TYPE (decl)),
+                                           0))
+-                  TREE_SET_CODE (cond, LT_EXPR);
++                  TREE_SET_CODE (cond, TREE_CODE (cond) == NE_EXPR
++                                       ? LT_EXPR : GE_EXPR);
+                 else
+                   cond_ok = false;
+               }
+Index: gcc/c-common.c
+===================================================================
+--- gcc/c-common.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/c-common.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -5957,10 +5957,12 @@
+     }
+   else if (is_type)
+     {
++      if ((flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
++      /* OK, modify the type in place.  */;
+       /* If we have a TYPE_DECL, then copy the type, so that we
+        don't accidentally modify a builtin type.  See pushdecl.  */
+-      if (decl && TREE_TYPE (decl) != error_mark_node
+-        && DECL_ORIGINAL_TYPE (decl) == NULL_TREE)
++      else if (decl && TREE_TYPE (decl) != error_mark_node
++             && DECL_ORIGINAL_TYPE (decl) == NULL_TREE)
        {
-         read_block_direct (dtp, buffer, &sz);
-@@ -767,7 +771,11 @@
-        read kind bytes.  We don't care about the contents
-        of the padding.  */
--      sz = kind;
-+      if (type == BT_REAL || type == BT_COMPLEX)
-+      sz = size_from_real_kind (kind);
+         tree tt = TREE_TYPE (decl);
+         *type = build_variant_type_copy (*type);
+@@ -5969,7 +5971,7 @@
+         TREE_USED (*type) = TREE_USED (decl);
+         TREE_TYPE (decl) = *type;
+       }
+-      else if (!(flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
 +      else
-+      sz = kind;
-+
-       for (i=0; i<nelems; i++)
-       {
-         reverse_memcpy(buffer, p, size);
-@@ -1144,7 +1152,7 @@
-       /* Format codes that don't transfer data.  */
-       case FMT_X:
-       case FMT_TR:
--        consume_data_flag = 0 ;
-+        consume_data_flag = 0;
-         pos = bytes_used + f->u.n + dtp->u.p.skips;
-         dtp->u.p.skips = f->u.n + dtp->u.p.skips;
-@@ -1160,6 +1168,7 @@
-             write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces);
-             dtp->u.p.skips = dtp->u.p.pending_spaces = 0;
-           }
-+
-         if (dtp->u.p.mode == READING)
-           read_x (dtp, f->u.n);
-@@ -1167,6 +1176,8 @@
-       case FMT_TL:
-       case FMT_T:
-+        consume_data_flag = 0;
-+
-         if (f->format == FMT_TL)
-           {
+       *type = build_variant_type_copy (*type);
+       TYPE_ALIGN (*type) = (1 << i) * BITS_PER_UNIT;
+Index: gcc/config/s390/s390.c
+===================================================================
+--- gcc/config/s390/s390.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/s390/s390.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1657,7 +1657,7 @@
+       if (!PARAM_SET_P (PARAM_MAX_UNROLL_TIMES))
+       set_param_value ("max-unroll-times", 32);
+       if (!PARAM_SET_P (PARAM_MAX_COMPLETELY_PEELED_INSNS))
+-      set_param_value ("max-completely-peeled-insns", 800);
++      set_param_value ("max-completely-peeled-insns", 2000);
+       if (!PARAM_SET_P (PARAM_MAX_COMPLETELY_PEEL_TIMES))
+       set_param_value ("max-completely-peel-times", 64);
+     }
+Index: gcc/config/s390/s390.md
+===================================================================
+--- gcc/config/s390/s390.md    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/s390/s390.md    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1876,7 +1876,7 @@
+    stcy\t%1,%0
+    mvi\t%S0,%b1
+    mviy\t%S0,%b1
+-   *"
++   #"
+   [(set_attr "op_type" "RR,RI,RX,RXY,RX,RXY,SI,SIY,SS")
+    (set_attr "type" "lr,*,*,*,store,store,store,store,*")
+    (set_attr "z10prop" "z10_fr_E1,
+Index: gcc/config/i386/i386.md
+===================================================================
+--- gcc/config/i386/i386.md    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/i386/i386.md    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1314,11 +1314,12 @@
+                  UNSPEC_SAHF))]
+   "TARGET_SAHF"
+ {
+-#ifdef HAVE_AS_IX86_SAHF
++#ifndef HAVE_AS_IX86_SAHF
++  if (TARGET_64BIT)
++    return ".byte\t0x9e";
++  else
++#endif
+   return "sahf";
+-#else
+-  return ".byte\t0x9e";
+-#endif
+ }
+   [(set_attr "length" "1")
+    (set_attr "athlon_decode" "vector")
+@@ -19144,7 +19145,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "TARGET_64BIT"
+-  "rep movsq"
++  "rep{%;} movsq"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -19163,7 +19164,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "!TARGET_64BIT"
+-  "rep movs{l|d}"
++  "rep{%;} movs{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -19182,7 +19183,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "TARGET_64BIT"
+-  "rep movs{l|d}"
++  "rep{%;} movs{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -19199,7 +19200,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "!TARGET_64BIT"
+-  "rep movsb"
++  "rep{%;} movsb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -19216,7 +19217,7 @@
+       (mem:BLK (match_dup 4)))
+    (use (match_dup 5))]
+   "TARGET_64BIT"
+-  "rep movsb"
++  "rep{%;} movsb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "both")
+@@ -19396,7 +19397,7 @@
+    (use (match_operand:DI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "TARGET_64BIT"
+-  "rep stosq"
++  "rep{%;} stosq"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -19413,7 +19414,7 @@
+    (use (match_operand:SI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "!TARGET_64BIT"
+-  "rep stos{l|d}"
++  "rep{%;} stos{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -19430,7 +19431,7 @@
+    (use (match_operand:SI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "TARGET_64BIT"
+-  "rep stos{l|d}"
++  "rep{%;} stos{l|d}"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -19446,7 +19447,7 @@
+    (use (match_operand:QI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "!TARGET_64BIT"
+-  "rep stosb"
++  "rep{%;} stosb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -19462,7 +19463,7 @@
+    (use (match_operand:QI 2 "register_operand" "a"))
+    (use (match_dup 4))]
+   "TARGET_64BIT"
+-  "rep stosb"
++  "rep{%;} stosb"
+   [(set_attr "type" "str")
+    (set_attr "prefix_rep" "1")
+    (set_attr "memory" "store")
+@@ -19574,7 +19575,7 @@
+    (clobber (match_operand:SI 1 "register_operand" "=D"))
+    (clobber (match_operand:SI 2 "register_operand" "=c"))]
+   "!TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -19589,7 +19590,7 @@
+    (clobber (match_operand:DI 1 "register_operand" "=D"))
+    (clobber (match_operand:DI 2 "register_operand" "=c"))]
+   "TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -19624,7 +19625,7 @@
+    (clobber (match_operand:SI 1 "register_operand" "=D"))
+    (clobber (match_operand:SI 2 "register_operand" "=c"))]
+   "!TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -19642,7 +19643,7 @@
+    (clobber (match_operand:DI 1 "register_operand" "=D"))
+    (clobber (match_operand:DI 2 "register_operand" "=c"))]
+   "TARGET_64BIT"
+-  "repz cmpsb"
++  "repz{%;} cmpsb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -19689,7 +19690,7 @@
+    (clobber (match_operand:SI 1 "register_operand" "=D"))
+    (clobber (reg:CC FLAGS_REG))]
+   "!TARGET_64BIT"
+-  "repnz scasb"
++  "repnz{%;} scasb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+@@ -19703,7 +19704,7 @@
+    (clobber (match_operand:DI 1 "register_operand" "=D"))
+    (clobber (reg:CC FLAGS_REG))]
+   "TARGET_64BIT"
+-  "repnz scasb"
++  "repnz{%;} scasb"
+   [(set_attr "type" "str")
+    (set_attr "mode" "QI")
+    (set_attr "prefix_rep" "1")])
+Index: gcc/config/i386/sol2.h
+===================================================================
+--- gcc/config/i386/sol2.h     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/i386/sol2.h     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -72,7 +72,7 @@
+ #define LOCAL_LABEL_PREFIX "."
+ /* The 32-bit Solaris assembler does not support .quad.  Do not use it.  */
+-#ifndef TARGET_BI_ARCH
++#ifndef HAVE_AS_IX86_QUAD
+ #undef ASM_QUAD
+ #endif
  
-@@ -1185,8 +1196,10 @@
-           }
-         else /* FMT_T */
-           {
--            consume_data_flag = 0;
--            pos = f->u.n - 1;
-+            if (dtp->u.p.mode == READING)
-+              pos = f->u.n - 1;
-+            else
-+              pos = f->u.n - dtp->u.p.pending_spaces - 1;
-           }
-         /* Standard 10.6.1.1: excessive left tabbing is reset to the
-@@ -1753,16 +1766,19 @@
-   /* Check the action.  */
-   if (read_flag && dtp->u.p.current_unit->flags.action == ACTION_WRITE)
--    generate_error (&dtp->common, ERROR_BAD_ACTION,
--                  "Cannot read from file opened for WRITE");
-+    {
-+      generate_error (&dtp->common, ERROR_BAD_ACTION,
-+                    "Cannot read from file opened for WRITE");
-+      return;
-+    }
+Index: gcc/config/i386/sync.md
+===================================================================
+--- gcc/config/i386/sync.md    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/i386/sync.md    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,5 @@
+ ;; GCC machine description for i386 synchronization instructions.
+-;; Copyright (C) 2005, 2006, 2007, 2008, 2009
++;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+ ;; Free Software Foundation, Inc.
+ ;;
+ ;; This file is part of GCC.
+@@ -51,7 +51,7 @@
+       (unspec:BLK [(match_dup 0)] UNSPEC_MFENCE))
+    (clobber (reg:CC FLAGS_REG))]
+   "!(TARGET_64BIT || TARGET_SSE2)"
+-  "lock{%;| }or{l}\t{$0, (%%esp)|DWORD PTR [esp], 0}"
++  "lock{%;} or{l}\t{$0, (%%esp)|DWORD PTR [esp], 0}"
+   [(set_attr "memory" "unknown")])
+ ;; ??? It would be possible to use cmpxchg8b on pentium for DImode
+@@ -111,7 +111,7 @@
+         UNSPECV_CMPXCHG))
+    (clobber (reg:CC FLAGS_REG))]
+   "TARGET_CMPXCHG"
+-  "lock{%;| }cmpxchg{<modesuffix>}\t{%3, %1|%1, %3}")
++  "lock{%;} cmpxchg{<modesuffix>}\t{%3, %1|%1, %3}")
+ (define_insn "sync_double_compare_and_swap<mode>"
+   [(set (match_operand:DCASMODE 0 "register_operand" "=A")
+@@ -125,7 +125,7 @@
+         UNSPECV_CMPXCHG))
+    (clobber (reg:CC FLAGS_REG))]
+   ""
+-  "lock{%;| }cmpxchg<doublemodesuffix>b\t%1")
++  "lock{%;} cmpxchg<doublemodesuffix>b\t%1")
  
-   if (!read_flag && dtp->u.p.current_unit->flags.action == ACTION_READ)
--    generate_error (&dtp->common, ERROR_BAD_ACTION,
--                  "Cannot write to file opened for READ");
-+    {
-+      generate_error (&dtp->common, ERROR_BAD_ACTION,
-+                    "Cannot write to file opened for READ");
-+      return;
-+    }
+ ;; Theoretically we'd like to use constraint "r" (any reg) for operand
+ ;; 3, but that includes ecx.  If operand 3 and 4 are the same (like when
+@@ -148,7 +148,7 @@
+         UNSPECV_CMPXCHG))
+    (clobber (reg:CC FLAGS_REG))]
+   "!TARGET_64BIT && TARGET_CMPXCHG8B && flag_pic"
+-  "xchg{l}\t%%ebx, %3\;lock{%;| }cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
++  "xchg{l}\t%%ebx, %3\;lock{%;} cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
  
--  if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK)
--    return;
--
-   dtp->u.p.first_item = 1;
+ (define_expand "sync_compare_and_swap_cc<mode>"
+   [(parallel
+@@ -213,7 +213,7 @@
+           [(match_dup 1) (match_dup 2) (match_dup 3)] UNSPECV_CMPXCHG)
+         (match_dup 2)))]
+   "TARGET_CMPXCHG"
+-  "lock{%;| }cmpxchg{<modesuffix>}\t{%3, %1|%1, %3}")
++  "lock{%;} cmpxchg{<modesuffix>}\t{%3, %1|%1, %3}")
+ (define_insn "sync_double_compare_and_swap_cc<mode>"
+   [(set (match_operand:DCASMODE 0 "register_operand" "=A")
+@@ -232,7 +232,7 @@
+           UNSPECV_CMPXCHG)
+         (match_dup 2)))]
+   ""
+-  "lock{%;| }cmpxchg<doublemodesuffix>b\t%1")
++  "lock{%;} cmpxchg<doublemodesuffix>b\t%1")
+ ;; See above for the explanation of using the constraint "SD" for
+ ;; operand 3.
+@@ -253,7 +253,7 @@
+           UNSPECV_CMPXCHG)
+         (match_dup 2)))]
+   "!TARGET_64BIT && TARGET_CMPXCHG8B && flag_pic"
+-  "xchg{l}\t%%ebx, %3\;lock{%;| }cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
++  "xchg{l}\t%%ebx, %3\;lock{%;} cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
+ (define_insn "sync_old_add<mode>"
+   [(set (match_operand:IMODE 0 "register_operand" "=<modeconstraint>")
+@@ -264,7 +264,7 @@
+                   (match_operand:IMODE 2 "register_operand" "0")))
+    (clobber (reg:CC FLAGS_REG))]
+   "TARGET_XADD"
+-  "lock{%;| }xadd{<modesuffix>}\t{%0, %1|%1, %0}")
++  "lock{%;} xadd{<modesuffix>}\t{%0, %1|%1, %0}")
+ ;; Recall that xchg implicitly sets LOCK#, so adding it again wastes space.
+ (define_insn "sync_lock_test_and_set<mode>"
+@@ -288,12 +288,12 @@
+   if (TARGET_USE_INCDEC)
+     {
+       if (operands[1] == const1_rtx)
+-      return "lock{%;| }inc{<modesuffix>}\t%0";
++      return "lock{%;} inc{<modesuffix>}\t%0";
+       if (operands[1] == constm1_rtx)
+-      return "lock{%;| }dec{<modesuffix>}\t%0";
++      return "lock{%;} dec{<modesuffix>}\t%0";
+     }
  
-   /* Check the format.  */
-@@ -1770,14 +1786,14 @@
-   if ((cf & IOPARM_DT_HAS_FORMAT) != 0)
-     parse_format (dtp);
+-  return "lock{%;| }add{<modesuffix>}\t{%1, %0|%0, %1}";
++  return "lock{%;} add{<modesuffix>}\t{%1, %0|%0, %1}";
+ })
  
--  if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK)
--    return;
--
-   if (dtp->u.p.current_unit->flags.form == FORM_UNFORMATTED
-       && (cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT))
-        != 0)
--    generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                  "Format present for UNFORMATTED data transfer");
-+    {
-+      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                    "Format present for UNFORMATTED data transfer");
-+      return;
-+    }
+ (define_insn "sync_sub<mode>"
+@@ -308,12 +308,12 @@
+   if (TARGET_USE_INCDEC)
+     {
+       if (operands[1] == const1_rtx)
+-      return "lock{%;| }dec{<modesuffix>}\t%0";
++      return "lock{%;} dec{<modesuffix>}\t%0";
+       if (operands[1] == constm1_rtx)
+-      return "lock{%;| }inc{<modesuffix>}\t%0";
++      return "lock{%;} inc{<modesuffix>}\t%0";
+     }
  
-   if ((cf & IOPARM_DT_HAS_NAMELIST_NAME) != 0 && dtp->u.p.ionml != NULL)
-      {
-@@ -1787,13 +1803,19 @@
-      }
-   else if (dtp->u.p.current_unit->flags.form == FORM_FORMATTED &&
-          !(cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT)))
--    generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                  "Missing format for FORMATTED data transfer");
-+    {
-+      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                    "Missing format for FORMATTED data transfer");
-+    }
+-  return "lock{%;| }sub{<modesuffix>}\t{%1, %0|%0, %1}";
++  return "lock{%;} sub{<modesuffix>}\t{%1, %0|%0, %1}";
+ })
  
-   if (is_internal_unit (dtp)
-       && dtp->u.p.current_unit->flags.form == FORM_UNFORMATTED)
--    generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                  "Internal file cannot be accessed by UNFORMATTED data transfer");
-+    {
-+      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                    "Internal file cannot be accessed by UNFORMATTED "
-+                    "data transfer");
-+      return;
-+    }
+ (define_insn "sync_ior<mode>"
+@@ -324,7 +324,7 @@
+         UNSPECV_LOCK))
+    (clobber (reg:CC FLAGS_REG))]
+   ""
+-  "lock{%;| }or{<modesuffix>}\t{%1, %0|%0, %1}")
++  "lock{%;} or{<modesuffix>}\t{%1, %0|%0, %1}")
  
-   /* Check the record or position number.  */
+ (define_insn "sync_and<mode>"
+   [(set (match_operand:IMODE 0 "memory_operand" "+m")
+@@ -334,7 +334,7 @@
+         UNSPECV_LOCK))
+    (clobber (reg:CC FLAGS_REG))]
+   ""
+-  "lock{%;| }and{<modesuffix>}\t{%1, %0|%0, %1}")
++  "lock{%;} and{<modesuffix>}\t{%1, %0|%0, %1}")
  
-@@ -1823,49 +1845,71 @@
-   if (dtp->u.p.advance_status != ADVANCE_UNSPECIFIED)
+ (define_insn "sync_xor<mode>"
+   [(set (match_operand:IMODE 0 "memory_operand" "+m")
+@@ -344,4 +344,4 @@
+         UNSPECV_LOCK))
+    (clobber (reg:CC FLAGS_REG))]
+   ""
+-  "lock{%;| }xor{<modesuffix>}\t{%1, %0|%0, %1}")
++  "lock{%;} xor{<modesuffix>}\t{%1, %0|%0, %1}")
+Index: gcc/config/i386/i386.c
+===================================================================
+--- gcc/config/i386/i386.c     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/i386/i386.c     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -2358,7 +2358,7 @@
+   if (flags && add_nl_p)
      {
-       if (dtp->u.p.current_unit->flags.access == ACCESS_DIRECT)
--      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                      "ADVANCE specification conflicts with sequential access");
-+      {
-+        generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                        "ADVANCE specification conflicts with sequential access");
-+        return;
-+      }
+       opts[num++][0] = target_other;
+-      sprintf (target_other, "(other flags: 0x%x)", isa);
++      sprintf (target_other, "(other flags: 0x%x)", flags);
+     }
  
-       if (is_internal_unit (dtp))
--      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                      "ADVANCE specification conflicts with internal file");
-+      {
-+        generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                        "ADVANCE specification conflicts with internal file");
-+        return;
-+      }
+   /* Add -fpmath= option.  */
+@@ -11277,10 +11277,8 @@
+         return;
  
-       if ((cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT))
-         != IOPARM_DT_HAS_FORMAT)
--      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                      "ADVANCE specification requires an explicit format");
-+      {
-+        generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                        "ADVANCE specification requires an explicit format");
-+        return;
-+      }
+       case ';':
+-#if TARGET_MACHO
+-        fputs (" ; ", file);
+-#else
+-        fputc (' ', file);
++#if TARGET_MACHO || !HAVE_AS_IX86_REP_LOCK_PREFIX
++        fputs (";", file);
+ #endif
+         return;
+@@ -20618,6 +20616,7 @@
+     {
+       ix86_builtins_isa[(int) code].isa = mask;
++      mask &= ~OPTION_MASK_ISA_64BIT;
+       if ((mask & ix86_isa_flags) != 0
+         || (lang_hooks.builtin_function
+             == lang_hooks.builtin_function_ext_scope))
+Index: gcc/config/sh/sh.c
+===================================================================
+--- gcc/config/sh/sh.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/sh/sh.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -3884,6 +3884,7 @@
+   int si_limit;
+   int hi_limit;
+   rtx orig = from;
++  rtx last_symoff = NULL_RTX;
+   /* For HImode: range is 510, add 4 because pc counts from address of
+      second instruction after this one, subtract 2 for the jump instruction
+@@ -4015,6 +4016,16 @@
+       {
+         switch (untangle_mova (&num_mova, &mova, from))
+           {
++            case 1:
++              if (flag_pic)
++                {
++                  rtx src = SET_SRC (PATTERN (from));
++                  if (GET_CODE (src) == CONST
++                      && GET_CODE (XEXP (src, 0)) == UNSPEC
++                      && XINT (XEXP (src, 0), 1) == UNSPEC_SYMOFF)
++                    last_symoff = from;
++                }
++              break;
+             case 0:   return find_barrier (0, 0, mova);
+             case 2:
+               {
+@@ -4120,6 +4131,12 @@
+        so we'll make one.  */
+       rtx label = gen_label_rtx ();
++      /* Don't emit a constant table in the middle of insns for
++       casesi_worker_2.  This is a bit overkill but is enough
++       because casesi_worker_2 wouldn't appear so frequently.  */
++      if (last_symoff)
++      from = last_symoff;
++
+       /* If we exceeded the range, then we must back up over the last
+        instruction we looked at.  Otherwise, we just need to undo the
+        NEXT_INSN at the end of the loop.  */
+Index: gcc/config/cris/cris.md
+===================================================================
+--- gcc/config/cris/cris.md    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/cris/cris.md    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1868,7 +1868,7 @@
+    add%u2 %2,%0
+    addo.%Z2 %2,%1,%0"
+   [(set_attr "slottable" "yes,yes,yes,yes,yes,yes,yes,no,no,no,no,no,no")
+-   (set_attr "cc" "*,none,*,none,*,*,none,*,*,*,*,*,none")])
++   (set_attr "cc" "*,none,*,none,*,*,none,*,none,*,*,*,none")])
\f
+ (define_insn "*addhi3_non_v32"
+   [(set (match_operand:HI 0 "register_operand"                "=r,r, r,r,r,r")
+Index: gcc/config/rs6000/rs6000.c
+===================================================================
+--- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -759,7 +759,6 @@
+ static void emit_frame_save (rtx, rtx, enum machine_mode, unsigned int,
+                            int, HOST_WIDE_INT);
+ static rtx gen_frame_mem_offset (enum machine_mode, rtx, int);
+-static void rs6000_emit_allocate_stack (HOST_WIDE_INT, int, int);
+ static unsigned rs6000_hash_constant (rtx);
+ static unsigned toc_hash_function (const void *);
+ static int toc_hash_eq (const void *, const void *);
+@@ -15548,13 +15547,11 @@
+ }
+ /* Emit the correct code for allocating stack space, as insns.
+-   If COPY_R12, make sure a copy of the old frame is left in r12.
+-   If COPY_R11, make sure a copy of the old frame is left in r11,
+-   in preference to r12 if COPY_R12.
++   If COPY_REG, make sure a copy of the old frame is left there.
+    The generated code may use hard register 0 as a temporary.  */
+ static void
+-rs6000_emit_allocate_stack (HOST_WIDE_INT size, int copy_r12, int copy_r11)
++rs6000_emit_allocate_stack (HOST_WIDE_INT size, rtx copy_reg)
+ {
+   rtx insn;
+   rtx stack_reg = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM);
+@@ -15604,11 +15601,8 @@
+       warning (0, "stack limit expression is not supported");
      }
  
-   if (read_flag)
+-  if (copy_r12 || copy_r11)
+-    emit_move_insn (copy_r11
+-                    ? gen_rtx_REG (Pmode, 11)
+-                    : gen_rtx_REG (Pmode, 12),
+-                    stack_reg);
++  if (copy_reg)
++    emit_move_insn (copy_reg, stack_reg);
+   if (size > 32767)
      {
-       if ((cf & IOPARM_EOR) != 0 && dtp->u.p.advance_status != ADVANCE_NO)
--      generate_error (&dtp->common, ERROR_MISSING_OPTION,
--                      "EOR specification requires an ADVANCE specification of NO");
+@@ -16180,20 +16174,33 @@
+                      ? (!saving_GPRs_inline
+                         && info->spe_64bit_regs_used == 0)
+                      : (!saving_FPRs_inline || !saving_GPRs_inline));
++      rtx copy_reg = need_r11 ? gen_rtx_REG (Pmode, 11) : NULL;
++
+       if (info->total_size < 32767)
+       sp_offset = info->total_size;
++      else if (need_r11)
++      frame_reg_rtx = copy_reg;
++      else if (info->cr_save_p
++             || info->lr_save_p
++             || info->first_fp_reg_save < 64
++             || info->first_gp_reg_save < 32
++             || info->altivec_size != 0
++             || info->vrsave_mask != 0
++             || crtl->calls_eh_return)
 +      {
-+        generate_error (&dtp->common, ERROR_MISSING_OPTION,
-+                        "EOR specification requires an ADVANCE specification "
-+                        "of NO");
-+        return;
++        copy_reg = frame_ptr_rtx;
++        frame_reg_rtx = copy_reg;
 +      }
-       if ((cf & IOPARM_DT_HAS_SIZE) != 0 && dtp->u.p.advance_status != ADVANCE_NO)
--      generate_error (&dtp->common, ERROR_MISSING_OPTION,
--                      "SIZE specification requires an ADVANCE specification of NO");
--
+       else
+-      frame_reg_rtx = (need_r11
+-                       ? gen_rtx_REG (Pmode, 11)
+-                       : frame_ptr_rtx);
+-      rs6000_emit_allocate_stack (info->total_size,
+-                                (frame_reg_rtx != sp_reg_rtx
+-                                 && (info->cr_save_p
+-                                     || info->lr_save_p
+-                                     || info->first_fp_reg_save < 64
+-                                     || info->first_gp_reg_save < 32
+-                                     )),
+-                                need_r11);
 +      {
-+        generate_error (&dtp->common, ERROR_MISSING_OPTION,
-+                        "SIZE specification requires an ADVANCE specification of NO");
-+        return;
++        /* The prologue won't be saving any regs so there is no need
++           to set up a frame register to access any frame save area.
++           We also won't be using sp_offset anywhere below, but set
++           the correct value anyway to protect against future
++           changes to this function.  */
++        sp_offset = info->total_size;
 +      }
++      rs6000_emit_allocate_stack (info->total_size, copy_reg);
+       if (frame_reg_rtx != sp_reg_rtx)
+       rs6000_emit_stack_tie ();
      }
-   else
-     {                         /* Write constraints.  */
-       if ((cf & IOPARM_END) != 0)
--      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                      "END specification cannot appear in a write statement");
+@@ -16627,16 +16634,19 @@
+   if (!WORLD_SAVE_P (info) && info->push_p
+       && !(DEFAULT_ABI == ABI_V4 || crtl->calls_eh_return))
+     {
++      rtx copy_reg = NULL;
++
+       if (info->total_size < 32767)
+-      sp_offset = info->total_size;
++      sp_offset = info->total_size;
++      else if (info->altivec_size != 0
++             || info->vrsave_mask != 0)
 +      {
-+        generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                        "END specification cannot appear in a write statement");
-+        return;
++        copy_reg = frame_ptr_rtx;
++        frame_reg_rtx = copy_reg;
 +      }
-       if ((cf & IOPARM_EOR) != 0)
--      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                      "EOR specification cannot appear in a write statement");
+       else
+-      frame_reg_rtx = frame_ptr_rtx;
+-      rs6000_emit_allocate_stack (info->total_size,
+-                                (frame_reg_rtx != sp_reg_rtx
+-                                 && ((info->altivec_size != 0)
+-                                     || (info->vrsave_mask != 0)
+-                                     )),
+-                                FALSE);
++      sp_offset = info->total_size;
++      rs6000_emit_allocate_stack (info->total_size, copy_reg);
+       if (frame_reg_rtx != sp_reg_rtx)
+       rs6000_emit_stack_tie ();
+     }
+@@ -17152,6 +17162,16 @@
+       frame_reg_rtx = sp_reg_rtx;
+       if (DEFAULT_ABI == ABI_V4)
+       frame_reg_rtx = gen_rtx_REG (Pmode, 11);
++      /* Prevent reordering memory accesses against stack pointer restore.  */
++      else if (cfun->calls_alloca
++             || info->total_size > (TARGET_32BIT ? 220 : 288))
 +      {
-+        generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                        "EOR specification cannot appear in a write statement");
-+        return;
++        rtx mem1 = gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx);
++        rtx mem2 = gen_rtx_MEM (BLKmode, sp_reg_rtx);
++        MEM_NOTRAP_P (mem1) = 1;
++        MEM_NOTRAP_P (mem2) = 1;
++        emit_insn (gen_frame_tie (mem1, mem2));
 +      }
  
-       if ((cf & IOPARM_DT_HAS_SIZE) != 0)
--      generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
--                      "SIZE specification cannot appear in a write statement");
+       emit_insn (TARGET_32BIT
+                ? gen_addsi3 (frame_reg_rtx, hard_frame_pointer_rtx,
+@@ -17164,6 +17184,14 @@
+          && DEFAULT_ABI != ABI_V4
+          && !crtl->calls_eh_return)
+     {
++      /* Prevent reordering memory accesses against stack pointer restore.  */
++      if (cfun->calls_alloca
++        || info->total_size > (TARGET_32BIT ? 220 : 288))
 +      {
-+        generate_error (&dtp->common, ERROR_OPTION_CONFLICT,
-+                        "SIZE specification cannot appear in a write statement");
-+        return;
++        rtx mem = gen_rtx_MEM (BLKmode, sp_reg_rtx);
++        MEM_NOTRAP_P (mem) = 1;
++        emit_insn (gen_stack_tie (mem));
 +      }
-     }
-   if (dtp->u.p.advance_status == ADVANCE_UNSPECIFIED)
-     dtp->u.p.advance_status = ADVANCE_YES;
--  if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK)
--    return;
+       emit_insn (TARGET_32BIT
+                ? gen_addsi3 (sp_reg_rtx, sp_reg_rtx,
+                              GEN_INT (info->total_size))
+Index: gcc/config/rs6000/rs6000.md
+===================================================================
+--- gcc/config/rs6000/rs6000.md        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ gcc/config/rs6000/rs6000.md        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -14732,7 +14732,16 @@
+   ""
+   [(set_attr "length" "0")])
  
-   /* Sanity checks on the record number.  */
-   if ((cf & IOPARM_DT_HAS_REC) != 0)
-Index: libgfortran/io/format.c
++; Like stack_tie, but depend on both fp and sp based memory.
++(define_insn "frame_tie"
++  [(set (match_operand:BLK 0 "memory_operand" "+m")
++      (unspec:BLK [(match_dup 0)
++                   (match_operand:BLK 1 "memory_operand" "m")] UNSPEC_TIE))]
++  ""
++  ""
++  [(set_attr "length" "0")])
++
+ (define_expand "epilogue"
+   [(use (const_int 0))]
+   "TARGET_SCHED_PROLOG"
+Index: libstdc++-v3/Makefile.in
+===================================================================
+--- libstdc++-v3/Makefile.in   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libstdc++-v3/Makefile.in   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -36,13 +36,14 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+-DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
+-      $(srcdir)/../config.sub $(srcdir)/../install-sh \
+-      $(srcdir)/../ltmain.sh $(srcdir)/../missing \
+-      $(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \
+-      $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+-      $(top_srcdir)/configure $(top_srcdir)/fragment.am \
+-      $(top_srcdir)/scripts/testsuite_flags.in ChangeLog
++DIST_COMMON = $(top_srcdir)/fragment.am $(srcdir)/../config.guess \
++      $(srcdir)/../config.sub README ChangeLog $(srcdir)/Makefile.in \
++      $(srcdir)/Makefile.am $(top_srcdir)/configure \
++      $(am__configure_deps) $(srcdir)/config.h.in \
++      $(srcdir)/../mkinstalldirs \
++      $(top_srcdir)/scripts/testsuite_flags.in \
++      $(srcdir)/../ltmain.sh $(srcdir)/../config.guess \
++      $(srcdir)/../config.sub
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
+@@ -72,7 +73,6 @@
+ depcomp =
+ am__depfiles_maybe =
+ SOURCES =
+-DIST_SOURCES =
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -88,17 +88,6 @@
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = include libsupc++ doc src po testsuite
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
+ ACLOCAL = @ACLOCAL@
+ ALLOCATOR_H = @ALLOCATOR_H@
+@@ -557,149 +546,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/scripts
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile all-multi config.h
+@@ -783,16 +629,14 @@
+ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-multi \
+       am--refresh check check-am clean clean-generic clean-libtool \
+-      clean-multi clean-recursive ctags ctags-recursive dist \
+-      dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
+-      distcheck distclean distclean-generic distclean-hdr \
+-      distclean-libtool distclean-multi distclean-recursive \
+-      distclean-tags distcleancheck distdir distuninstallcheck dvi \
+-      dvi-am html html-am info info-am install install-am \
+-      install-data install-data-am install-exec install-exec-am \
+-      install-info install-info-am install-man install-multi \
+-      install-strip installcheck installcheck-am installdirs \
+-      installdirs-am maintainer-clean maintainer-clean-generic \
++      clean-multi clean-recursive ctags ctags-recursive distclean \
++      distclean-generic distclean-hdr distclean-libtool \
++      distclean-multi distclean-recursive distclean-tags dvi dvi-am \
++      html html-am info info-am install install-am install-data \
++      install-data-am install-exec install-exec-am install-info \
++      install-info-am install-man install-multi install-strip \
++      installcheck installcheck-am installdirs installdirs-am \
++      maintainer-clean maintainer-clean-generic \
+       maintainer-clean-multi maintainer-clean-recursive mostlyclean \
+       mostlyclean-generic mostlyclean-libtool mostlyclean-multi \
+       mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+Index: libstdc++-v3/ChangeLog
 ===================================================================
---- 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);
-       tail->repeat = 1;
-+      goto optional_comma;
--      /* Fall Through */
+--- libstdc++-v3/ChangeLog     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,9 @@
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
++
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
++
+ 2010-04-29  Release Manager
+       * GCC 4.4.4 released.
+Index: libstdc++-v3/configure.ac
+===================================================================
+--- libstdc++-v3/configure.ac  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libstdc++-v3/configure.ac  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -74,7 +74,7 @@
+ #  no-dependencies:  turns off auto dependency generation (just for now)
+ #  -Wall:  turns on all automake warnings...
+ #  -Wno-portability:  ...except this one, since GNU make is now required.
+-AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dependencies -Wall -Wno-portability -Wno-override])
++AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dependencies no-dist -Wall -Wno-portability -Wno-override])
+ AH_TEMPLATE(PACKAGE, [Name of package])
+ AH_TEMPLATE(VERSION, [Version number of package])
+Index: libgfortran/Makefile.in
+===================================================================
+--- libgfortran/Makefile.in    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgfortran/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -40,12 +40,12 @@
+ # dummy sources for libtool
+ @onestep_TRUE@am__append_1 = libgfortran_c.c libgfortran_f.f90
+-DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \
+-      $(srcdir)/../config.sub $(srcdir)/../depcomp \
+-      $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
+-      $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
+-      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(srcdir)/config.h.in $(top_srcdir)/configure ChangeLog
++DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub \
++      ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \
++      $(srcdir)/../depcomp $(srcdir)/../ltmain.sh \
++      $(srcdir)/../config.guess $(srcdir)/../config.sub
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
+@@ -78,508 +78,6 @@
+ toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(myexeclib_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
+ libgfortran_la_LIBADD =
+-am__libgfortran_la_SOURCES_DIST = runtime/backtrace.c \
+-      runtime/compile_options.c runtime/convert_char.c \
+-      runtime/environ.c runtime/error.c runtime/fpu.c runtime/main.c \
+-      runtime/memory.c runtime/pause.c runtime/stop.c \
+-      runtime/string.c runtime/select.c $(srcdir)/generated/all_l1.c \
+-      $(srcdir)/generated/all_l2.c $(srcdir)/generated/all_l4.c \
+-      $(srcdir)/generated/all_l8.c $(srcdir)/generated/all_l16.c \
+-      $(srcdir)/generated/any_l1.c $(srcdir)/generated/any_l2.c \
+-      $(srcdir)/generated/any_l4.c $(srcdir)/generated/any_l8.c \
+-      $(srcdir)/generated/any_l16.c $(srcdir)/generated/count_1_l.c \
+-      $(srcdir)/generated/count_2_l.c \
+-      $(srcdir)/generated/count_4_l.c \
+-      $(srcdir)/generated/count_8_l.c \
+-      $(srcdir)/generated/count_16_l.c \
+-      $(srcdir)/generated/maxloc0_4_i1.c \
+-      $(srcdir)/generated/maxloc0_8_i1.c \
+-      $(srcdir)/generated/maxloc0_16_i1.c \
+-      $(srcdir)/generated/maxloc0_4_i2.c \
+-      $(srcdir)/generated/maxloc0_8_i2.c \
+-      $(srcdir)/generated/maxloc0_16_i2.c \
+-      $(srcdir)/generated/maxloc0_4_i4.c \
+-      $(srcdir)/generated/maxloc0_8_i4.c \
+-      $(srcdir)/generated/maxloc0_16_i4.c \
+-      $(srcdir)/generated/maxloc0_4_i8.c \
+-      $(srcdir)/generated/maxloc0_8_i8.c \
+-      $(srcdir)/generated/maxloc0_16_i8.c \
+-      $(srcdir)/generated/maxloc0_4_i16.c \
+-      $(srcdir)/generated/maxloc0_8_i16.c \
+-      $(srcdir)/generated/maxloc0_16_i16.c \
+-      $(srcdir)/generated/maxloc0_4_r4.c \
+-      $(srcdir)/generated/maxloc0_8_r4.c \
+-      $(srcdir)/generated/maxloc0_16_r4.c \
+-      $(srcdir)/generated/maxloc0_4_r8.c \
+-      $(srcdir)/generated/maxloc0_8_r8.c \
+-      $(srcdir)/generated/maxloc0_16_r8.c \
+-      $(srcdir)/generated/maxloc0_4_r10.c \
+-      $(srcdir)/generated/maxloc0_8_r10.c \
+-      $(srcdir)/generated/maxloc0_16_r10.c \
+-      $(srcdir)/generated/maxloc0_4_r16.c \
+-      $(srcdir)/generated/maxloc0_8_r16.c \
+-      $(srcdir)/generated/maxloc0_16_r16.c \
+-      $(srcdir)/generated/maxloc1_4_i1.c \
+-      $(srcdir)/generated/maxloc1_8_i1.c \
+-      $(srcdir)/generated/maxloc1_16_i1.c \
+-      $(srcdir)/generated/maxloc1_4_i2.c \
+-      $(srcdir)/generated/maxloc1_8_i2.c \
+-      $(srcdir)/generated/maxloc1_16_i2.c \
+-      $(srcdir)/generated/maxloc1_4_i4.c \
+-      $(srcdir)/generated/maxloc1_8_i4.c \
+-      $(srcdir)/generated/maxloc1_16_i4.c \
+-      $(srcdir)/generated/maxloc1_4_i8.c \
+-      $(srcdir)/generated/maxloc1_8_i8.c \
+-      $(srcdir)/generated/maxloc1_16_i8.c \
+-      $(srcdir)/generated/maxloc1_4_i16.c \
+-      $(srcdir)/generated/maxloc1_8_i16.c \
+-      $(srcdir)/generated/maxloc1_16_i16.c \
+-      $(srcdir)/generated/maxloc1_4_r4.c \
+-      $(srcdir)/generated/maxloc1_8_r4.c \
+-      $(srcdir)/generated/maxloc1_16_r4.c \
+-      $(srcdir)/generated/maxloc1_4_r8.c \
+-      $(srcdir)/generated/maxloc1_8_r8.c \
+-      $(srcdir)/generated/maxloc1_16_r8.c \
+-      $(srcdir)/generated/maxloc1_4_r10.c \
+-      $(srcdir)/generated/maxloc1_8_r10.c \
+-      $(srcdir)/generated/maxloc1_16_r10.c \
+-      $(srcdir)/generated/maxloc1_4_r16.c \
+-      $(srcdir)/generated/maxloc1_8_r16.c \
+-      $(srcdir)/generated/maxloc1_16_r16.c \
+-      $(srcdir)/generated/maxval_i1.c \
+-      $(srcdir)/generated/maxval_i2.c \
+-      $(srcdir)/generated/maxval_i4.c \
+-      $(srcdir)/generated/maxval_i8.c \
+-      $(srcdir)/generated/maxval_i16.c \
+-      $(srcdir)/generated/maxval_r4.c \
+-      $(srcdir)/generated/maxval_r8.c \
+-      $(srcdir)/generated/maxval_r10.c \
+-      $(srcdir)/generated/maxval_r16.c \
+-      $(srcdir)/generated/minloc0_4_i1.c \
+-      $(srcdir)/generated/minloc0_8_i1.c \
+-      $(srcdir)/generated/minloc0_16_i1.c \
+-      $(srcdir)/generated/minloc0_4_i2.c \
+-      $(srcdir)/generated/minloc0_8_i2.c \
+-      $(srcdir)/generated/minloc0_16_i2.c \
+-      $(srcdir)/generated/minloc0_4_i4.c \
+-      $(srcdir)/generated/minloc0_8_i4.c \
+-      $(srcdir)/generated/minloc0_16_i4.c \
+-      $(srcdir)/generated/minloc0_4_i8.c \
+-      $(srcdir)/generated/minloc0_8_i8.c \
+-      $(srcdir)/generated/minloc0_16_i8.c \
+-      $(srcdir)/generated/minloc0_4_i16.c \
+-      $(srcdir)/generated/minloc0_8_i16.c \
+-      $(srcdir)/generated/minloc0_16_i16.c \
+-      $(srcdir)/generated/minloc0_4_r4.c \
+-      $(srcdir)/generated/minloc0_8_r4.c \
+-      $(srcdir)/generated/minloc0_16_r4.c \
+-      $(srcdir)/generated/minloc0_4_r8.c \
+-      $(srcdir)/generated/minloc0_8_r8.c \
+-      $(srcdir)/generated/minloc0_16_r8.c \
+-      $(srcdir)/generated/minloc0_4_r10.c \
+-      $(srcdir)/generated/minloc0_8_r10.c \
+-      $(srcdir)/generated/minloc0_16_r10.c \
+-      $(srcdir)/generated/minloc0_4_r16.c \
+-      $(srcdir)/generated/minloc0_8_r16.c \
+-      $(srcdir)/generated/minloc0_16_r16.c \
+-      $(srcdir)/generated/minloc1_4_i1.c \
+-      $(srcdir)/generated/minloc1_8_i1.c \
+-      $(srcdir)/generated/minloc1_16_i1.c \
+-      $(srcdir)/generated/minloc1_4_i2.c \
+-      $(srcdir)/generated/minloc1_8_i2.c \
+-      $(srcdir)/generated/minloc1_16_i2.c \
+-      $(srcdir)/generated/minloc1_4_i4.c \
+-      $(srcdir)/generated/minloc1_8_i4.c \
+-      $(srcdir)/generated/minloc1_16_i4.c \
+-      $(srcdir)/generated/minloc1_4_i8.c \
+-      $(srcdir)/generated/minloc1_8_i8.c \
+-      $(srcdir)/generated/minloc1_16_i8.c \
+-      $(srcdir)/generated/minloc1_4_i16.c \
+-      $(srcdir)/generated/minloc1_8_i16.c \
+-      $(srcdir)/generated/minloc1_16_i16.c \
+-      $(srcdir)/generated/minloc1_4_r4.c \
+-      $(srcdir)/generated/minloc1_8_r4.c \
+-      $(srcdir)/generated/minloc1_16_r4.c \
+-      $(srcdir)/generated/minloc1_4_r8.c \
+-      $(srcdir)/generated/minloc1_8_r8.c \
+-      $(srcdir)/generated/minloc1_16_r8.c \
+-      $(srcdir)/generated/minloc1_4_r10.c \
+-      $(srcdir)/generated/minloc1_8_r10.c \
+-      $(srcdir)/generated/minloc1_16_r10.c \
+-      $(srcdir)/generated/minloc1_4_r16.c \
+-      $(srcdir)/generated/minloc1_8_r16.c \
+-      $(srcdir)/generated/minloc1_16_r16.c \
+-      $(srcdir)/generated/minval_i1.c \
+-      $(srcdir)/generated/minval_i2.c \
+-      $(srcdir)/generated/minval_i4.c \
+-      $(srcdir)/generated/minval_i8.c \
+-      $(srcdir)/generated/minval_i16.c \
+-      $(srcdir)/generated/minval_r4.c \
+-      $(srcdir)/generated/minval_r8.c \
+-      $(srcdir)/generated/minval_r10.c \
+-      $(srcdir)/generated/minval_r16.c \
+-      $(srcdir)/generated/product_i1.c \
+-      $(srcdir)/generated/product_i2.c \
+-      $(srcdir)/generated/product_i4.c \
+-      $(srcdir)/generated/product_i8.c \
+-      $(srcdir)/generated/product_i16.c \
+-      $(srcdir)/generated/product_r4.c \
+-      $(srcdir)/generated/product_r8.c \
+-      $(srcdir)/generated/product_r10.c \
+-      $(srcdir)/generated/product_r16.c \
+-      $(srcdir)/generated/product_c4.c \
+-      $(srcdir)/generated/product_c8.c \
+-      $(srcdir)/generated/product_c10.c \
+-      $(srcdir)/generated/product_c16.c $(srcdir)/generated/sum_i1.c \
+-      $(srcdir)/generated/sum_i2.c $(srcdir)/generated/sum_i4.c \
+-      $(srcdir)/generated/sum_i8.c $(srcdir)/generated/sum_i16.c \
+-      $(srcdir)/generated/sum_r4.c $(srcdir)/generated/sum_r8.c \
+-      $(srcdir)/generated/sum_r10.c $(srcdir)/generated/sum_r16.c \
+-      $(srcdir)/generated/sum_c4.c $(srcdir)/generated/sum_c8.c \
+-      $(srcdir)/generated/sum_c10.c $(srcdir)/generated/sum_c16.c \
+-      $(srcdir)/generated/matmul_i1.c \
+-      $(srcdir)/generated/matmul_i2.c \
+-      $(srcdir)/generated/matmul_i4.c \
+-      $(srcdir)/generated/matmul_i8.c \
+-      $(srcdir)/generated/matmul_i16.c \
+-      $(srcdir)/generated/matmul_r4.c \
+-      $(srcdir)/generated/matmul_r8.c \
+-      $(srcdir)/generated/matmul_r10.c \
+-      $(srcdir)/generated/matmul_r16.c \
+-      $(srcdir)/generated/matmul_c4.c \
+-      $(srcdir)/generated/matmul_c8.c \
+-      $(srcdir)/generated/matmul_c10.c \
+-      $(srcdir)/generated/matmul_c16.c \
+-      $(srcdir)/generated/matmul_l4.c \
+-      $(srcdir)/generated/matmul_l8.c \
+-      $(srcdir)/generated/matmul_l16.c \
+-      $(srcdir)/generated/transpose_i4.c \
+-      $(srcdir)/generated/transpose_i8.c \
+-      $(srcdir)/generated/transpose_i16.c \
+-      $(srcdir)/generated/transpose_r4.c \
+-      $(srcdir)/generated/transpose_r8.c \
+-      $(srcdir)/generated/transpose_r10.c \
+-      $(srcdir)/generated/transpose_r16.c \
+-      $(srcdir)/generated/transpose_c4.c \
+-      $(srcdir)/generated/transpose_c8.c \
+-      $(srcdir)/generated/transpose_c10.c \
+-      $(srcdir)/generated/transpose_c16.c \
+-      $(srcdir)/generated/shape_i4.c $(srcdir)/generated/shape_i8.c \
+-      $(srcdir)/generated/shape_i16.c \
+-      $(srcdir)/generated/eoshift1_4.c \
+-      $(srcdir)/generated/eoshift1_8.c \
+-      $(srcdir)/generated/eoshift1_16.c \
+-      $(srcdir)/generated/eoshift3_4.c \
+-      $(srcdir)/generated/eoshift3_8.c \
+-      $(srcdir)/generated/eoshift3_16.c \
+-      $(srcdir)/generated/cshift1_4.c \
+-      $(srcdir)/generated/cshift1_8.c \
+-      $(srcdir)/generated/cshift1_16.c \
+-      $(srcdir)/generated/reshape_i4.c \
+-      $(srcdir)/generated/reshape_i8.c \
+-      $(srcdir)/generated/reshape_i16.c \
+-      $(srcdir)/generated/reshape_r4.c \
+-      $(srcdir)/generated/reshape_r8.c \
+-      $(srcdir)/generated/reshape_r10.c \
+-      $(srcdir)/generated/reshape_r16.c \
+-      $(srcdir)/generated/reshape_c4.c \
+-      $(srcdir)/generated/reshape_c8.c \
+-      $(srcdir)/generated/reshape_c10.c \
+-      $(srcdir)/generated/reshape_c16.c \
+-      $(srcdir)/generated/in_pack_i1.c \
+-      $(srcdir)/generated/in_pack_i2.c \
+-      $(srcdir)/generated/in_pack_i4.c \
+-      $(srcdir)/generated/in_pack_i8.c \
+-      $(srcdir)/generated/in_pack_i16.c \
+-      $(srcdir)/generated/in_pack_r4.c \
+-      $(srcdir)/generated/in_pack_r8.c \
+-      $(srcdir)/generated/in_pack_r10.c \
+-      $(srcdir)/generated/in_pack_r16.c \
+-      $(srcdir)/generated/in_pack_c4.c \
+-      $(srcdir)/generated/in_pack_c8.c \
+-      $(srcdir)/generated/in_pack_c10.c \
+-      $(srcdir)/generated/in_pack_c16.c \
+-      $(srcdir)/generated/in_unpack_i1.c \
+-      $(srcdir)/generated/in_unpack_i2.c \
+-      $(srcdir)/generated/in_unpack_i4.c \
+-      $(srcdir)/generated/in_unpack_i8.c \
+-      $(srcdir)/generated/in_unpack_i16.c \
+-      $(srcdir)/generated/in_unpack_r4.c \
+-      $(srcdir)/generated/in_unpack_r8.c \
+-      $(srcdir)/generated/in_unpack_r10.c \
+-      $(srcdir)/generated/in_unpack_r16.c \
+-      $(srcdir)/generated/in_unpack_c4.c \
+-      $(srcdir)/generated/in_unpack_c8.c \
+-      $(srcdir)/generated/in_unpack_c10.c \
+-      $(srcdir)/generated/in_unpack_c16.c \
+-      $(srcdir)/generated/exponent_r4.c \
+-      $(srcdir)/generated/exponent_r8.c \
+-      $(srcdir)/generated/exponent_r10.c \
+-      $(srcdir)/generated/exponent_r16.c \
+-      $(srcdir)/generated/fraction_r4.c \
+-      $(srcdir)/generated/fraction_r8.c \
+-      $(srcdir)/generated/fraction_r10.c \
+-      $(srcdir)/generated/fraction_r16.c \
+-      $(srcdir)/generated/nearest_r4.c \
+-      $(srcdir)/generated/nearest_r8.c \
+-      $(srcdir)/generated/nearest_r10.c \
+-      $(srcdir)/generated/nearest_r16.c \
+-      $(srcdir)/generated/set_exponent_r4.c \
+-      $(srcdir)/generated/set_exponent_r8.c \
+-      $(srcdir)/generated/set_exponent_r10.c \
+-      $(srcdir)/generated/set_exponent_r16.c \
+-      $(srcdir)/generated/pow_i4_i4.c \
+-      $(srcdir)/generated/pow_i8_i4.c \
+-      $(srcdir)/generated/pow_i16_i4.c \
+-      $(srcdir)/generated/pow_c4_i4.c \
+-      $(srcdir)/generated/pow_c8_i4.c \
+-      $(srcdir)/generated/pow_c10_i4.c \
+-      $(srcdir)/generated/pow_c16_i4.c \
+-      $(srcdir)/generated/pow_i4_i8.c \
+-      $(srcdir)/generated/pow_i8_i8.c \
+-      $(srcdir)/generated/pow_i16_i8.c \
+-      $(srcdir)/generated/pow_r4_i8.c \
+-      $(srcdir)/generated/pow_r8_i8.c \
+-      $(srcdir)/generated/pow_r10_i8.c \
+-      $(srcdir)/generated/pow_r16_i8.c \
+-      $(srcdir)/generated/pow_c4_i8.c \
+-      $(srcdir)/generated/pow_c8_i8.c \
+-      $(srcdir)/generated/pow_c10_i8.c \
+-      $(srcdir)/generated/pow_c16_i8.c \
+-      $(srcdir)/generated/pow_i4_i16.c \
+-      $(srcdir)/generated/pow_i8_i16.c \
+-      $(srcdir)/generated/pow_i16_i16.c \
+-      $(srcdir)/generated/pow_r4_i16.c \
+-      $(srcdir)/generated/pow_r8_i16.c \
+-      $(srcdir)/generated/pow_r10_i16.c \
+-      $(srcdir)/generated/pow_r16_i16.c \
+-      $(srcdir)/generated/pow_c4_i16.c \
+-      $(srcdir)/generated/pow_c8_i16.c \
+-      $(srcdir)/generated/pow_c10_i16.c \
+-      $(srcdir)/generated/pow_c16_i16.c \
+-      $(srcdir)/generated/rrspacing_r4.c \
+-      $(srcdir)/generated/rrspacing_r8.c \
+-      $(srcdir)/generated/rrspacing_r10.c \
+-      $(srcdir)/generated/rrspacing_r16.c \
+-      $(srcdir)/generated/spacing_r4.c \
+-      $(srcdir)/generated/spacing_r8.c \
+-      $(srcdir)/generated/spacing_r10.c \
+-      $(srcdir)/generated/spacing_r16.c \
+-      $(srcdir)/generated/pack_i1.c $(srcdir)/generated/pack_i2.c \
+-      $(srcdir)/generated/pack_i4.c $(srcdir)/generated/pack_i8.c \
+-      $(srcdir)/generated/pack_i16.c $(srcdir)/generated/pack_r4.c \
+-      $(srcdir)/generated/pack_r8.c $(srcdir)/generated/pack_r10.c \
+-      $(srcdir)/generated/pack_r16.c $(srcdir)/generated/pack_c4.c \
+-      $(srcdir)/generated/pack_c8.c $(srcdir)/generated/pack_c10.c \
+-      $(srcdir)/generated/pack_c16.c $(srcdir)/generated/unpack_i1.c \
+-      $(srcdir)/generated/unpack_i2.c \
+-      $(srcdir)/generated/unpack_i4.c \
+-      $(srcdir)/generated/unpack_i8.c \
+-      $(srcdir)/generated/unpack_i16.c \
+-      $(srcdir)/generated/unpack_r4.c \
+-      $(srcdir)/generated/unpack_r8.c \
+-      $(srcdir)/generated/unpack_r10.c \
+-      $(srcdir)/generated/unpack_r16.c \
+-      $(srcdir)/generated/unpack_c4.c \
+-      $(srcdir)/generated/unpack_c8.c \
+-      $(srcdir)/generated/unpack_c10.c \
+-      $(srcdir)/generated/unpack_c16.c \
+-      $(srcdir)/generated/spread_i1.c \
+-      $(srcdir)/generated/spread_i2.c \
+-      $(srcdir)/generated/spread_i4.c \
+-      $(srcdir)/generated/spread_i8.c \
+-      $(srcdir)/generated/spread_i16.c \
+-      $(srcdir)/generated/spread_r4.c \
+-      $(srcdir)/generated/spread_r8.c \
+-      $(srcdir)/generated/spread_r10.c \
+-      $(srcdir)/generated/spread_r16.c \
+-      $(srcdir)/generated/spread_c4.c \
+-      $(srcdir)/generated/spread_c8.c \
+-      $(srcdir)/generated/spread_c10.c \
+-      $(srcdir)/generated/spread_c16.c selected_int_kind.inc \
+-      selected_real_kind.inc kinds.h \
+-      $(srcdir)/generated/cshift0_i1.c \
+-      $(srcdir)/generated/cshift0_i2.c \
+-      $(srcdir)/generated/cshift0_i4.c \
+-      $(srcdir)/generated/cshift0_i8.c \
+-      $(srcdir)/generated/cshift0_i16.c \
+-      $(srcdir)/generated/cshift0_r4.c \
+-      $(srcdir)/generated/cshift0_r8.c \
+-      $(srcdir)/generated/cshift0_r10.c \
+-      $(srcdir)/generated/cshift0_r16.c \
+-      $(srcdir)/generated/cshift0_c4.c \
+-      $(srcdir)/generated/cshift0_c8.c \
+-      $(srcdir)/generated/cshift0_c10.c \
+-      $(srcdir)/generated/cshift0_c16.c kinds.inc c99_protos.inc \
+-      fpu-target.h io/close.c io/file_pos.c io/format.c io/inquire.c \
+-      io/intrinsics.c io/list_read.c io/lock.c io/open.c io/read.c \
+-      io/size_from_kind.c io/transfer.c io/unit.c io/unix.c \
+-      io/write.c io/fbuf.c intrinsics/associated.c \
+-      intrinsics/abort.c intrinsics/access.c intrinsics/args.c \
+-      intrinsics/bit_intrinsics.c intrinsics/c99_functions.c \
+-      intrinsics/chdir.c intrinsics/chmod.c intrinsics/clock.c \
+-      intrinsics/cpu_time.c intrinsics/cshift0.c intrinsics/ctime.c \
+-      intrinsics/date_and_time.c intrinsics/dtime.c intrinsics/env.c \
+-      intrinsics/eoshift0.c intrinsics/eoshift2.c \
+-      intrinsics/erfc_scaled.c intrinsics/etime.c intrinsics/exit.c \
+-      intrinsics/fnum.c intrinsics/gerror.c intrinsics/getcwd.c \
+-      intrinsics/getlog.c intrinsics/getXid.c intrinsics/hostnm.c \
+-      intrinsics/ierrno.c intrinsics/ishftc.c \
+-      intrinsics/iso_c_generated_procs.c intrinsics/iso_c_binding.c \
+-      intrinsics/kill.c intrinsics/link.c intrinsics/malloc.c \
+-      intrinsics/mvbits.c intrinsics/move_alloc.c \
+-      intrinsics/pack_generic.c intrinsics/perror.c \
+-      intrinsics/selected_char_kind.c intrinsics/signal.c \
+-      intrinsics/size.c intrinsics/sleep.c \
+-      intrinsics/spread_generic.c intrinsics/string_intrinsics.c \
+-      intrinsics/system.c intrinsics/rand.c intrinsics/random.c \
+-      intrinsics/rename.c intrinsics/reshape_generic.c \
+-      intrinsics/reshape_packed.c intrinsics/selected_int_kind.f90 \
+-      intrinsics/selected_real_kind.f90 intrinsics/stat.c \
+-      intrinsics/symlnk.c intrinsics/system_clock.c \
+-      intrinsics/time.c intrinsics/transpose_generic.c \
+-      intrinsics/umask.c intrinsics/unlink.c \
+-      intrinsics/unpack_generic.c runtime/in_pack_generic.c \
+-      runtime/in_unpack_generic.c io/io.h \
+-      $(srcdir)/generated/_abs_c4.F90 \
+-      $(srcdir)/generated/_abs_c8.F90 \
+-      $(srcdir)/generated/_abs_c10.F90 \
+-      $(srcdir)/generated/_abs_c16.F90 \
+-      $(srcdir)/generated/_abs_i4.F90 \
+-      $(srcdir)/generated/_abs_i8.F90 \
+-      $(srcdir)/generated/_abs_i16.F90 \
+-      $(srcdir)/generated/_abs_r4.F90 \
+-      $(srcdir)/generated/_abs_r8.F90 \
+-      $(srcdir)/generated/_abs_r10.F90 \
+-      $(srcdir)/generated/_abs_r16.F90 \
+-      $(srcdir)/generated/_aimag_c4.F90 \
+-      $(srcdir)/generated/_aimag_c8.F90 \
+-      $(srcdir)/generated/_aimag_c10.F90 \
+-      $(srcdir)/generated/_aimag_c16.F90 \
+-      $(srcdir)/generated/_exp_r4.F90 \
+-      $(srcdir)/generated/_exp_r8.F90 \
+-      $(srcdir)/generated/_exp_r10.F90 \
+-      $(srcdir)/generated/_exp_r16.F90 \
+-      $(srcdir)/generated/_exp_c4.F90 \
+-      $(srcdir)/generated/_exp_c8.F90 \
+-      $(srcdir)/generated/_exp_c10.F90 \
+-      $(srcdir)/generated/_exp_c16.F90 \
+-      $(srcdir)/generated/_log_r4.F90 \
+-      $(srcdir)/generated/_log_r8.F90 \
+-      $(srcdir)/generated/_log_r10.F90 \
+-      $(srcdir)/generated/_log_r16.F90 \
+-      $(srcdir)/generated/_log_c4.F90 \
+-      $(srcdir)/generated/_log_c8.F90 \
+-      $(srcdir)/generated/_log_c10.F90 \
+-      $(srcdir)/generated/_log_c16.F90 \
+-      $(srcdir)/generated/_log10_r4.F90 \
+-      $(srcdir)/generated/_log10_r8.F90 \
+-      $(srcdir)/generated/_log10_r10.F90 \
+-      $(srcdir)/generated/_log10_r16.F90 \
+-      $(srcdir)/generated/_sqrt_r4.F90 \
+-      $(srcdir)/generated/_sqrt_r8.F90 \
+-      $(srcdir)/generated/_sqrt_r10.F90 \
+-      $(srcdir)/generated/_sqrt_r16.F90 \
+-      $(srcdir)/generated/_sqrt_c4.F90 \
+-      $(srcdir)/generated/_sqrt_c8.F90 \
+-      $(srcdir)/generated/_sqrt_c10.F90 \
+-      $(srcdir)/generated/_sqrt_c16.F90 \
+-      $(srcdir)/generated/_asin_r4.F90 \
+-      $(srcdir)/generated/_asin_r8.F90 \
+-      $(srcdir)/generated/_asin_r10.F90 \
+-      $(srcdir)/generated/_asin_r16.F90 \
+-      $(srcdir)/generated/_asinh_r4.F90 \
+-      $(srcdir)/generated/_asinh_r8.F90 \
+-      $(srcdir)/generated/_asinh_r10.F90 \
+-      $(srcdir)/generated/_asinh_r16.F90 \
+-      $(srcdir)/generated/_acos_r4.F90 \
+-      $(srcdir)/generated/_acos_r8.F90 \
+-      $(srcdir)/generated/_acos_r10.F90 \
+-      $(srcdir)/generated/_acos_r16.F90 \
+-      $(srcdir)/generated/_acosh_r4.F90 \
+-      $(srcdir)/generated/_acosh_r8.F90 \
+-      $(srcdir)/generated/_acosh_r10.F90 \
+-      $(srcdir)/generated/_acosh_r16.F90 \
+-      $(srcdir)/generated/_atan_r4.F90 \
+-      $(srcdir)/generated/_atan_r8.F90 \
+-      $(srcdir)/generated/_atan_r10.F90 \
+-      $(srcdir)/generated/_atan_r16.F90 \
+-      $(srcdir)/generated/_atanh_r4.F90 \
+-      $(srcdir)/generated/_atanh_r8.F90 \
+-      $(srcdir)/generated/_atanh_r10.F90 \
+-      $(srcdir)/generated/_atanh_r16.F90 \
+-      $(srcdir)/generated/_sin_r4.F90 \
+-      $(srcdir)/generated/_sin_r8.F90 \
+-      $(srcdir)/generated/_sin_r10.F90 \
+-      $(srcdir)/generated/_sin_r16.F90 \
+-      $(srcdir)/generated/_sin_c4.F90 \
+-      $(srcdir)/generated/_sin_c8.F90 \
+-      $(srcdir)/generated/_sin_c10.F90 \
+-      $(srcdir)/generated/_sin_c16.F90 \
+-      $(srcdir)/generated/_cos_r4.F90 \
+-      $(srcdir)/generated/_cos_r8.F90 \
+-      $(srcdir)/generated/_cos_r10.F90 \
+-      $(srcdir)/generated/_cos_r16.F90 \
+-      $(srcdir)/generated/_cos_c4.F90 \
+-      $(srcdir)/generated/_cos_c8.F90 \
+-      $(srcdir)/generated/_cos_c10.F90 \
+-      $(srcdir)/generated/_cos_c16.F90 \
+-      $(srcdir)/generated/_tan_r4.F90 \
+-      $(srcdir)/generated/_tan_r8.F90 \
+-      $(srcdir)/generated/_tan_r10.F90 \
+-      $(srcdir)/generated/_tan_r16.F90 \
+-      $(srcdir)/generated/_sinh_r4.F90 \
+-      $(srcdir)/generated/_sinh_r8.F90 \
+-      $(srcdir)/generated/_sinh_r10.F90 \
+-      $(srcdir)/generated/_sinh_r16.F90 \
+-      $(srcdir)/generated/_cosh_r4.F90 \
+-      $(srcdir)/generated/_cosh_r8.F90 \
+-      $(srcdir)/generated/_cosh_r10.F90 \
+-      $(srcdir)/generated/_cosh_r16.F90 \
+-      $(srcdir)/generated/_tanh_r4.F90 \
+-      $(srcdir)/generated/_tanh_r8.F90 \
+-      $(srcdir)/generated/_tanh_r10.F90 \
+-      $(srcdir)/generated/_tanh_r16.F90 \
+-      $(srcdir)/generated/_conjg_c4.F90 \
+-      $(srcdir)/generated/_conjg_c8.F90 \
+-      $(srcdir)/generated/_conjg_c10.F90 \
+-      $(srcdir)/generated/_conjg_c16.F90 \
+-      $(srcdir)/generated/_aint_r4.F90 \
+-      $(srcdir)/generated/_aint_r8.F90 \
+-      $(srcdir)/generated/_aint_r10.F90 \
+-      $(srcdir)/generated/_aint_r16.F90 \
+-      $(srcdir)/generated/_anint_r4.F90 \
+-      $(srcdir)/generated/_anint_r8.F90 \
+-      $(srcdir)/generated/_anint_r10.F90 \
+-      $(srcdir)/generated/_anint_r16.F90 \
+-      $(srcdir)/generated/_sign_i4.F90 \
+-      $(srcdir)/generated/_sign_i8.F90 \
+-      $(srcdir)/generated/_sign_i16.F90 \
+-      $(srcdir)/generated/_sign_r4.F90 \
+-      $(srcdir)/generated/_sign_r8.F90 \
+-      $(srcdir)/generated/_sign_r10.F90 \
+-      $(srcdir)/generated/_sign_r16.F90 \
+-      $(srcdir)/generated/_dim_i4.F90 \
+-      $(srcdir)/generated/_dim_i8.F90 \
+-      $(srcdir)/generated/_dim_i16.F90 \
+-      $(srcdir)/generated/_dim_r4.F90 \
+-      $(srcdir)/generated/_dim_r8.F90 \
+-      $(srcdir)/generated/_dim_r10.F90 \
+-      $(srcdir)/generated/_dim_r16.F90 \
+-      $(srcdir)/generated/_atan2_r4.F90 \
+-      $(srcdir)/generated/_atan2_r8.F90 \
+-      $(srcdir)/generated/_atan2_r10.F90 \
+-      $(srcdir)/generated/_atan2_r16.F90 \
+-      $(srcdir)/generated/_mod_i4.F90 \
+-      $(srcdir)/generated/_mod_i8.F90 \
+-      $(srcdir)/generated/_mod_i16.F90 \
+-      $(srcdir)/generated/_mod_r4.F90 \
+-      $(srcdir)/generated/_mod_r8.F90 \
+-      $(srcdir)/generated/_mod_r10.F90 \
+-      $(srcdir)/generated/_mod_r16.F90 \
+-      $(srcdir)/generated/misc_specifics.F90 intrinsics/dprod_r8.f90 \
+-      intrinsics/f2c_specifics.F90 libgfortran_c.c $(filter-out \
+-      %.c,$(prereq_SRC))
+ am__objects_1 = backtrace.lo compile_options.lo convert_char.lo \
+       environ.lo error.lo fpu.lo main.lo memory.lo pause.lo stop.lo \
+       string.lo select.lo
+@@ -788,8 +286,6 @@
+ FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+ LTFCCOMPILE = $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+ SOURCES = $(libgfortran_la_SOURCES) $(libgfortranbegin_la_SOURCES)
+-DIST_SOURCES = $(am__libgfortran_la_SOURCES_DIST) \
+-      $(libgfortranbegin_la_SOURCES)
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -798,17 +294,6 @@
+ MULTICLEAN = true
+ ETAGS = etags
+ CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -5798,134 +5283,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 -
-     case FMT_COLON:
-+      get_fnode (fmt, &head, &tail, FMT_COLON);
-+      tail->repeat = 1;
-       goto optional_comma;
-     case FMT_END:
-Index: boehm-gc/darwin_stop_world.c
-===================================================================
---- 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
-    added to the stack."
--   
-+
-    Page 50: "If a leaf procedure's red zone usage would exceed 224 bytes, then
-    it must set up a stack frame just like routines that call other routines."
- */
-@@ -20,48 +20,6 @@
- # define PPC_RED_ZONE_SIZE 320
- #endif
--/* Try to work out the right way to access thread state structure members.
--   The structure has changed its definition in different Darwin versions.  */
--#if defined(__ppc__)
--# define THREAD_STATE ppc_thread_state_t
--# if defined (HAS_PPC_THREAD_STATE_R0)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_PPC_THREAD_STATE___R0)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of ppc_thread_state_t
--# endif
--#elif defined(__ppc64__)
--# define THREAD_STATE ppc_thread_state64_t
--# if defined (HAS_PPC_THREAD_STATE64_R0)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_PPC_THREAD_STATE64___R0)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of ppc_thread_state64_t
--# endif
--#elif defined(__i386__)
--# define THREAD_STATE i386_thread_state_t
--# if defined (HAS_I386_THREAD_STATE_EAX)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_I386_THREAD_STATE___EAX)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of i386_thread_state_t
--# endif
--#elif defined(__x86_64__)
--# define THREAD_STATE i386_thread_state_t
--# if defined (HAS_I386_THREAD_STATE_EAX)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_I386_THREAD_STATE___EAX)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of i386_thread_state_t
--# endif
--#else
--# error unknown architecture
--#endif
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/m4
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) check-am
+@@ -6019,14 +5376,12 @@
+ .PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-am \
+       clean clean-generic clean-libtool clean-multi \
+       clean-myexeclibLTLIBRARIES clean-toolexeclibLTLIBRARIES ctags \
+-      dist dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ \
+-      dist-zip distcheck distclean distclean-compile \
+-      distclean-generic distclean-hdr distclean-libtool \
+-      distclean-multi distclean-tags distcleancheck distdir \
+-      distuninstallcheck dvi dvi-am html html-am info info-am \
+-      install install-am install-data install-data-am install-exec \
+-      install-exec-am install-info install-info-am install-man \
+-      install-multi install-myexeclibLTLIBRARIES install-strip \
++      distclean distclean-compile distclean-generic distclean-hdr \
++      distclean-libtool distclean-multi distclean-tags dvi dvi-am \
++      html html-am info info-am install install-am install-data \
++      install-data-am install-exec install-exec-am install-info \
++      install-info-am install-man install-multi \
++      install-myexeclibLTLIBRARIES install-strip \
+       install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       maintainer-clean-multi mostlyclean mostlyclean-compile \
+Index: libgfortran/ChangeLog
+===================================================================
+--- libgfortran/ChangeLog      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgfortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,9 @@
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
++
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
++
+ 2010-04-29  Release Manager
+       * GCC 4.4.4 released.
+Index: libgfortran/configure.ac
+===================================================================
+--- libgfortran/configure.ac   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libgfortran/configure.ac   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -62,7 +62,7 @@
+ #            file in the top srcdir, etc, etc), so stop complaining.
+ #  -Wall:  turns on all automake warnings...
+ #  -Wno-portability:  ...except this one, since GNU make is required.
+-AM_INIT_AUTOMAKE([1.9.6 no-define foreign -Wall -Wno-portability])
++AM_INIT_AUTOMAKE([1.9.6 no-define foreign no-dist -Wall -Wno-portability])
+ AM_MAINTAINER_MODE
+ AM_ENABLE_MULTILIB(, ..)
+Index: libmudflap/Makefile.in
+===================================================================
+--- libmudflap/Makefile.in     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libmudflap/Makefile.in     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -38,13 +38,14 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+-DIST_COMMON = $(am__configure_deps) $(nobase_libsubinclude_HEADERS) \
+-      $(srcdir)/../compile $(srcdir)/../config.guess \
+-      $(srcdir)/../config.sub $(srcdir)/../depcomp \
+-      $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
+-      $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
+-      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(srcdir)/config.h.in $(top_srcdir)/configure ChangeLog
++DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub \
++      ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../depcomp \
++      $(srcdir)/../ltmain.sh $(srcdir)/../config.guess \
++      $(srcdir)/../config.sub $(nobase_libsubinclude_HEADERS)
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+@@ -95,7 +96,6 @@
+ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libmudflap_la_SOURCES) $(libmudflapth_la_SOURCES)
+-DIST_SOURCES = $(libmudflap_la_SOURCES) $(libmudflapth_la_SOURCES)
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -113,17 +113,6 @@
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -662,149 +651,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/testsuite
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
 -
- typedef struct StackFrame {
-   unsigned long       savedSP;
-   unsigned long       savedCR;
-@@ -115,8 +73,8 @@
-   GC_thread p;
-   pthread_t me;
-   ptr_t lo, hi;
--  THREAD_STATE state;
--  mach_msg_type_number_t thread_state_count = MACHINE_THREAD_STATE_COUNT;
-+  GC_THREAD_STATE_T state;
-+  mach_msg_type_number_t thread_state_count = GC_MACH_THREAD_STATE_COUNT;
-   
-   me = pthread_self();
-   if (!GC_thr_initialized) GC_thr_init();
-@@ -128,11 +86,8 @@
-       lo = GC_approx_sp();
-       } else {
-       /* Get the thread state (registers, etc) */
--      r = thread_get_state(
--                           p->stop_info.mach_thread,
--                           MACHINE_THREAD_STATE,
--                           (natural_t*)&state,
--                           &thread_state_count);
-+      r = thread_get_state(p->stop_info.mach_thread, GC_MACH_THREAD_STATE,
-+                           (natural_t*)&state, &thread_state_count);
-       if(r != KERN_SUCCESS) ABORT("thread_get_state failed");
- #if defined(I386)
-@@ -144,7 +99,33 @@
-       GC_push_one(state . THREAD_FLD (edx)); 
-       GC_push_one(state . THREAD_FLD (edi)); 
-       GC_push_one(state . THREAD_FLD (esi)); 
--      GC_push_one(state . THREAD_FLD (ebp)); 
-+      GC_push_one(state . THREAD_FLD (ebp));
-+
-+#elif defined(X86_64)
-+      lo = (void*)state . THREAD_FLD (rsp);
-+
-+      GC_push_one(state . THREAD_FLD (rax));
-+      GC_push_one(state . THREAD_FLD (rbx));
-+      GC_push_one(state . THREAD_FLD (rcx));
-+      GC_push_one(state . THREAD_FLD (rdx));
-+      GC_push_one(state . THREAD_FLD (rdi));
-+      GC_push_one(state . THREAD_FLD (rsi));
-+      GC_push_one(state . THREAD_FLD (rbp));
-+      GC_push_one(state . THREAD_FLD (rsp));
-+      GC_push_one(state . THREAD_FLD (r8));
-+      GC_push_one(state . THREAD_FLD (r9));
-+      GC_push_one(state . THREAD_FLD (r10));
-+      GC_push_one(state . THREAD_FLD (r11));
-+      GC_push_one(state . THREAD_FLD (r12));
-+      GC_push_one(state . THREAD_FLD (r13));
-+      GC_push_one(state . THREAD_FLD (r14));
-+      GC_push_one(state . THREAD_FLD (r15));
-+      GC_push_one(state . THREAD_FLD (rip));
-+      GC_push_one(state . THREAD_FLD (rflags));
-+      GC_push_one(state . THREAD_FLD (cs));
-+      GC_push_one(state . THREAD_FLD (fs));
-+      GC_push_one(state . THREAD_FLD (gs));
-+
- #elif defined(POWERPC)
-       lo = (void*)(state . THREAD_FLD (r1) - PPC_RED_ZONE_SIZE);
-         
-@@ -221,9 +202,9 @@
-       hi = (ptr_t)FindTopOfStack(0);
-       } else {
- #     if defined(__ppc__) || defined(__ppc64__)
--      THREAD_STATE info;
-+      GC_THREAD_STATE_T info;
-       mach_msg_type_number_t outCount = THREAD_STATE_MAX;
--      r = thread_get_state(thread, MACHINE_THREAD_STATE,
-+      r = thread_get_state(thread, GC_MACH_THREAD_STATE,
-                            (natural_t *)&info, &outCount);
-       if(r != KERN_SUCCESS) ABORT("task_get_state failed");
-@@ -264,10 +245,10 @@
- #      else
-       /* FIXME: Remove after testing: */
-       WARN("This is completely untested and likely will not work\n", 0);
--      THREAD_STATE info;
-+      GC_THREAD_STATE_T info;
-       mach_msg_type_number_t outCount = THREAD_STATE_MAX;
--      r = thread_get_state(thread, MACHINE_THREAD_STATE,
--                           (natural_t *)&info, &outCount);
-+      r = thread_get_state(thread, GC_MACH_THREAD_STATE, (natural_t *)&info,
-+                           &outCount);
-       if(r != KERN_SUCCESS) ABORT("task_get_state failed");
-       lo = (void*)info . THREAD_FLD (esp);
-Index: boehm-gc/Makefile.in
-===================================================================
---- 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@
- exec_prefix = @exec_prefix@
-+extra_ldflags_libgc = @extra_ldflags_libgc@
- host = @host@
- host_alias = @host_alias@
- host_cpu = @host_cpu@
-@@ -280,7 +281,7 @@
- # linuxthread semaphore functions get linked:
- libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS) $(UNWINDLIBS)
- libgcjgc_la_DEPENDENCIES = @addobjs@
--libgcjgc_la_LDFLAGS = -version-info 1:2:0 -rpath $(toolexeclibdir)
-+libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
- libgcjgc_convenience_la_LIBADD = @addobjs@
- libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
- AM_CXXFLAGS = @GC_CFLAGS@
-Index: boehm-gc/configure.ac
-===================================================================
---- 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*)
-     AC_CHECK_MEMBER(ppc_thread_state_t.r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE_R0,,[ppc_thread_state_t has field r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE_R0,1,
-+      [ppc_thread_state_t has field r0]),,
-       [#include <mach/thread_status.h>])
-     AC_CHECK_MEMBER(ppc_thread_state_t.__r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE___R0,,dnl
--        [ppc_thread_state_t has field __r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE___R0,1,dnl
-+      [ppc_thread_state_t has field __r0]),,
-       [#include <mach/thread_status.h>])
-     AC_CHECK_MEMBER(ppc_thread_state64_t.r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE64_R0,,dnl
--        [ppc_thread_state64_t has field r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE64_R0,1,dnl
-+      [ppc_thread_state64_t has field r0]),,
-       [#include <mach/thread_status.h>])
-     AC_CHECK_MEMBER(ppc_thread_state64_t.__r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE64___R0,,dnl
--        [ppc_thread_state64_t has field __r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE64___R0,1,dnl
-+      [ppc_thread_state64_t has field __r0]),,
-       [#include <mach/thread_status.h>])
-     ;;
-   i?86*-*-darwin*)
--    AC_CHECK_MEMBER(i386_thread_state_t.eax,
--      AC_DEFINE(HAS_I386_THREAD_STATE_EAX,,dnl
--        [i386_thread_state_t has field eax]),,
-+    AC_CHECK_MEMBER(x86_thread_state32_t.eax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE32_EAX,1,dnl
-+      [x86_thread_state32_t has field eax]),,
-       [#include <sys/cdefs.h>
--#include <mach/thread_status.h>])
--    AC_CHECK_MEMBER(i386_thread_state_t.__eax,
--      AC_DEFINE(HAS_I386_THREAD_STATE___EAX,,dnl
--        [i386_thread_state_t has field __eax]),,
-+      #include <mach/thread_status.h>])
-+    AC_CHECK_MEMBER(x86_thread_state32_t.__eax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE32___EAX,1,dnl
-+      [x86_thread_state32_t has field __eax]),,
-       [#include <sys/cdefs.h>
--#include <mach/thread_status.h>])
-+      #include <mach/thread_status.h>])
-     ;;
-+  x86_64-*-darwin*)
-+    AC_CHECK_MEMBER(x86_thread_state64_t.rax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE64_RAX,1,dnl
-+      [x86_thread_state64_t has field rax]),,
-+      [#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>])
-+    AC_CHECK_MEMBER(x86_thread_state64_t.__rax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE64___RAX,1,dnl
-+      [x86_thread_state64_t has field __rax]),,
-+      [#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>])
-+     ;;
-   *) ;;
- esac
-@@ -287,6 +300,14 @@
-     ;;
- esac
-+# extra LD Flags which are required for targets
-+case "${host}" in
-+  *-*-darwin*)
-+    extra_ldflags_libgc=-Wl,-single_module
-+    ;;
-+esac
-+AC_SUBST(extra_ldflags_libgc)
-+
- AC_SUBST(EXTRA_TEST_LIBS)
- target_all=libgcjgc.la
-Index: boehm-gc/include/Makefile.in
-===================================================================
---- 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@
- exec_prefix = @exec_prefix@
-+extra_ldflags_libgc = @extra_ldflags_libgc@
- host = @host@
- host_alias = @host_alias@
- 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)    (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
--/* i386_thread_state_t has field eax */
--#undef HAS_I386_THREAD_STATE_EAX
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
 -
--/* i386_thread_state_t has field __eax */
--#undef HAS_I386_THREAD_STATE___EAX
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
 -
- /* ppc_thread_state64_t has field r0 */
- #undef HAS_PPC_THREAD_STATE64_R0
-@@ -72,6 +66,18 @@
- /* ppc_thread_state_t has field __r0 */
- #undef HAS_PPC_THREAD_STATE___R0
-+/* x86_thread_state32_t has field eax */
-+#undef HAS_X86_THREAD_STATE32_EAX
-+
-+/* x86_thread_state32_t has field __eax */
-+#undef HAS_X86_THREAD_STATE32___EAX
-+
-+/* x86_thread_state64_t has field rax */
-+#undef HAS_X86_THREAD_STATE64_RAX
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile $(LTLIBRARIES) all-multi $(HEADERS) config.h
+@@ -897,17 +743,14 @@
+ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-multi \
+       am--refresh check check-am clean clean-generic clean-libtool \
+       clean-multi clean-recursive clean-toolexeclibLTLIBRARIES ctags \
+-      ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
+-      dist-tarZ dist-zip distcheck distclean distclean-compile \
+-      distclean-generic distclean-hdr distclean-libtool \
+-      distclean-multi distclean-recursive distclean-tags \
+-      distcleancheck distdir distuninstallcheck dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-multi \
+-      install-nobase_libsubincludeHEADERS install-strip \
+-      install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+-      installdirs installdirs-am maintainer-clean \
++      ctags-recursive distclean distclean-compile distclean-generic \
++      distclean-hdr distclean-libtool distclean-multi \
++      distclean-recursive distclean-tags dvi dvi-am html html-am \
++      info info-am install install-am install-data install-data-am \
++      install-exec install-exec-am install-info install-info-am \
++      install-man install-multi install-nobase_libsubincludeHEADERS \
++      install-strip install-toolexeclibLTLIBRARIES installcheck \
++      installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic maintainer-clean-multi \
+       maintainer-clean-recursive mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool mostlyclean-multi \
+Index: libmudflap/ChangeLog
+===================================================================
+--- libmudflap/ChangeLog       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libmudflap/ChangeLog       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,9 @@
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
 +
-+/* x86_thread_state64_t has field __rax */
-+#undef HAS_X86_THREAD_STATE64___RAX
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
 +
- /* Define to 1 if you have the <inttypes.h> header file. */
- #undef HAVE_INTTYPES_H
+ 2010-04-29  Release Manager
  
-Index: boehm-gc/include/private/gc_priv.h
+       * GCC 4.4.4 released.
+Index: libmudflap/configure.ac
 ===================================================================
---- 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
-+#if defined(DARWIN)
-+#      if defined(POWERPC)
-+#              if CPP_WORDSZ == 32
-+#                define GC_THREAD_STATE_T ppc_thread_state_t
-+#               define GC_MACH_THREAD_STATE PPC_THREAD_STATE
-+#               define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT
-+#                define GC_MACH_HEADER mach_header
-+#                define GC_MACH_SECTION section
-+#              else
-+#                define GC_THREAD_STATE_T ppc_thread_state64_t
-+#               define GC_MACH_THREAD_STATE PPC_THREAD_STATE64
-+#               define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE64_COUNT
-+#                define GC_MACH_HEADER mach_header_64
-+#                define GC_MACH_SECTION section_64
-+#              endif
-+#      elif defined(I386) || defined(X86_64)
-+#              if CPP_WORDSZ == 32
-+#                define GC_THREAD_STATE_T x86_thread_state32_t
-+#                define GC_MACH_THREAD_STATE x86_THREAD_STATE32
-+#                define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE32_COUNT
-+#                define GC_MACH_HEADER mach_header
-+#                define GC_MACH_SECTION section
-+#              else
-+#                define GC_THREAD_STATE_T x86_thread_state64_t
-+#                define GC_MACH_THREAD_STATE x86_THREAD_STATE64
-+#                define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE64_COUNT
-+#                define GC_MACH_HEADER mach_header_64
-+#                define GC_MACH_SECTION section_64
-+#              endif
-+#      else
-+#              error define GC_THREAD_STATE_T
-+#              define GC_MACH_THREAD_STATE MACHINE_THREAD_STATE
-+#              define GC_MACH_THREAD_STATE_COUNT MACHINE_THREAD_STATE_COUNT
-+#      endif
-+/* Try to work out the right way to access thread state structure members.
-+   The structure has changed its definition in different Darwin versions.
-+   This now defaults to the (older) names without __, thus hopefully,
-+   not breaking any existing Makefile.direct builds.  */
-+#      if defined (HAS_PPC_THREAD_STATE___R0) \
-+       || defined (HAS_PPC_THREAD_STATE64___R0) \
-+       || defined (HAS_X86_THREAD_STATE32___EAX) \
-+       || defined (HAS_X86_THREAD_STATE64___RAX)
-+#        define THREAD_FLD(x) __ ## x
-+#      else
-+#        define THREAD_FLD(x) x
-+#      endif
-+#endif
- /*********************************/
- /*                               */
- /* OS interface routines       */
-@@ -468,6 +515,53 @@
- #   define GETENV(name) 0
- #endif
-+#if defined(DARWIN)
-+#      if defined(POWERPC)
-+#              if CPP_WORDSZ == 32
-+#                define GC_THREAD_STATE_T ppc_thread_state_t
-+#               define GC_MACH_THREAD_STATE PPC_THREAD_STATE
-+#               define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT
-+#                define GC_MACH_HEADER mach_header
-+#                define GC_MACH_SECTION section
-+#              else
-+#                define GC_THREAD_STATE_T ppc_thread_state64_t
-+#               define GC_MACH_THREAD_STATE PPC_THREAD_STATE64
-+#               define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE64_COUNT
-+#                define GC_MACH_HEADER mach_header_64
-+#                define GC_MACH_SECTION section_64
-+#              endif
-+#      elif defined(I386) || defined(X86_64)
-+#              if CPP_WORDSZ == 32
-+#                define GC_THREAD_STATE_T x86_thread_state32_t
-+#                define GC_MACH_THREAD_STATE x86_THREAD_STATE32
-+#                define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE32_COUNT
-+#                define GC_MACH_HEADER mach_header
-+#                define GC_MACH_SECTION section
-+#              else
-+#                define GC_THREAD_STATE_T x86_thread_state64_t
-+#                define GC_MACH_THREAD_STATE x86_THREAD_STATE64
-+#                define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE64_COUNT
-+#                define GC_MACH_HEADER mach_header_64
-+#                define GC_MACH_SECTION section_64
-+#              endif
-+#      else
-+#              error define GC_THREAD_STATE_T
-+#              define GC_MACH_THREAD_STATE MACHINE_THREAD_STATE
-+#              define GC_MACH_THREAD_STATE_COUNT MACHINE_THREAD_STATE_COUNT
-+#      endif
-+/* Try to work out the right way to access thread state structure members.
-+   The structure has changed its definition in different Darwin versions.
-+   This now defaults to the (older) names without __, thus hopefully,
-+   not breaking any existing Makefile.direct builds.  */
-+#      if defined (HAS_PPC_THREAD_STATE___R0) \
-+       || defined (HAS_PPC_THREAD_STATE64___R0) \
-+       || defined (HAS_X86_THREAD_STATE32___EAX) \
-+       || defined (HAS_X86_THREAD_STATE64___RAX)
-+#        define THREAD_FLD(x) __ ## x
-+#      else
-+#        define THREAD_FLD(x) x
-+#      endif
-+#endif
- /*********************************/
- /*                               */
- /* Word-size-dependent defines   */
-Index: boehm-gc/include/private/gcconfig.h
-===================================================================
---- 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
- #    define mach_type_known
--#   elif defined(__i386__) || defined(__x86_64)
-+#   elif defined(__x86_64__)
-+#    define X86_64
-+#    define mach_type_known
-+#   elif defined(__i386__)
- #    define I386
- #    define mach_type_known
- #   endif
-@@ -791,26 +794,29 @@
- #     define DATAEND (_end)
- #   endif
- #   ifdef DARWIN
--#     if defined(__ppc64__) || defined(__x86_64)
-+#     define OS_TYPE "DARWIN"
-+#     define DYNAMIC_LOADING
-+#     if defined(__ppc64__)
- #       define ALIGNMENT 8
- #       define CPP_WORDSZ 64
-+#       define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
-+#       define CACHE_LINE_SIZE 64
-+#       ifndef HBLKSIZE
-+#         define HBLKSIZE 4096
-+#       endif
- #     else
- #       define ALIGNMENT 4
-+#       define STACKBOTTOM ((ptr_t) 0xc0000000)
- #     endif
--#     define OS_TYPE "DARWIN"
--#     define DYNAMIC_LOADING
-       /* XXX: see get_end(3), get_etext() and get_end() should not be used.
--         These aren't used when dyld support is enabled (it is by default) */
-+       These aren't used when dyld support is enabled (it is by default) */
- #     define DATASTART ((ptr_t) get_etext())
- #     define DATAEND  ((ptr_t) get_end())
--#     define STACKBOTTOM ((ptr_t) 0xc0000000)
- #     define USE_MMAP
- #     define USE_MMAP_ANON
- #     define USE_ASM_PUSH_REGS
--      /* This is potentially buggy. It needs more testing. See the comments in
--         os_dep.c.  It relies on threads to track writes. */
- #     ifdef GC_DARWIN_THREADS
--/* #       define MPROTECT_VDB -- diabled for now.  May work for some apps. */
-+#       define MPROTECT_VDB
- #     endif
- #     include <unistd.h>
- #     define GETPAGESIZE() getpagesize()
-@@ -822,7 +828,7 @@
-         __asm__ __volatile__ ("dcbtst 0,%0" : : "r" ((const void *) (x)))
- #     endif
-       /* There seems to be some issues with trylock hanging on darwin. This
--         should be looked into some more */
-+       should be looked into some more */
- #     define NO_PTHREAD_TRYLOCK
- #   endif
- #   ifdef FREEBSD
-@@ -1317,23 +1323,21 @@
- #     define DARWIN_DONT_PARSE_STACK
- #     define DYNAMIC_LOADING
-       /* XXX: see get_end(3), get_etext() and get_end() should not be used.
--        These aren't used when dyld support is enabled (it is by default) */
-+       These aren't used when dyld support is enabled (it is by default) */
- #     define DATASTART ((ptr_t) get_etext())
- #     define DATAEND  ((ptr_t) get_end())
- #     define STACKBOTTOM ((ptr_t) 0xc0000000)
- #     define USE_MMAP
- #     define USE_MMAP_ANON
- #     define USE_ASM_PUSH_REGS
--      /* This is potentially buggy. It needs more testing. See the comments in
--        os_dep.c.  It relies on threads to track writes. */
- #     ifdef GC_DARWIN_THREADS
--/* #       define MPROTECT_VDB -- disabled for now.  May work for some apps. */
-+#       define MPROTECT_VDB
- #     endif
- #     include <unistd.h>
- #     define GETPAGESIZE() getpagesize()
-       /* There seems to be some issues with trylock hanging on darwin. This
--         should be looked into some more */
--#      define NO_PTHREAD_TRYLOCK
-+       should be looked into some more */
-+#     define NO_PTHREAD_TRYLOCK
- #   endif /* DARWIN */
- # endif
-@@ -1986,6 +1990,26 @@
- #         define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
- #     endif
- #   endif
-+#   ifdef DARWIN
-+#     define OS_TYPE "DARWIN"
-+#     define DARWIN_DONT_PARSE_STACK
-+#     define DYNAMIC_LOADING
-+      /* XXX: see get_end(3), get_etext() and get_end() should not be used.
-+       These aren't used when dyld support is enabled (it is by default) */
-+#     define DATASTART ((ptr_t) get_etext())
-+#     define DATAEND  ((ptr_t) get_end())
-+#     define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
-+#     define USE_MMAP
-+#     define USE_MMAP_ANON
-+#     ifdef GC_DARWIN_THREADS
-+#       define MPROTECT_VDB
-+#     endif
-+#     include <unistd.h>
-+#     define GETPAGESIZE() getpagesize()
-+      /* There seems to be some issues with trylock hanging on darwin. This
-+       should be looked into some more */
-+#     define NO_PTHREAD_TRYLOCK
-+#   endif
- #   ifdef FREEBSD
- #     define OS_TYPE "FREEBSD"
- #     ifndef GC_FREEBSD_THREADS
-Index: boehm-gc/ChangeLog
-===================================================================
---- 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  <jakub@redhat.com>
-+
-+      * pthread_support.c (GC_get_thread_stack_base): Handle
-+      pthread_getattr_np failures.
-+
-+2007-05-22  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * Backport r124870 from main.
-+
-+      2007-05-20  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * configure.ac: Introduce extra_ldflags_libgc. Use it for Darwin.
-+      * configure: Regenerate.
-+      * Makefile.am (libgc_la_LDFLAGS): Use extra_ldflags_libgc.
-+      * Makefile.in: Regenerate.
-+      * include/Makefile.in: Regenerate.
-+      * include/private/gcconfig.h: Enable MPROTECT_VDB for all Darwin
-+      targets. Remove comments. Prepare ppc64 support for Darwin.
-+
-+2007-05-19  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * Backport r120684, 120801, 120853, 120874 and 120977 from main.
-+
-+      2007-01-19  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently
-+      added defines to include/private/gc_priv.h
-+      * darwin_stop_world.c: Removed the above defines.
-+      (catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too.
-+      * include/private/gc_priv.h: Moved definitions from darwin_stop_world.c
-+      and os_dep.c to here. Fixed THREAD definition fixes for ppc64.
-+
-+      2007-01-17  Mike Stump  <mrs@apple.com>
-+
-+      * os_dep.c: Fix i686-apple-darwin9 builds.
-+
-+      2007-01-17  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * include/gc_config.h.in: Regenerate.
-+
-+      2007-01-15  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Adjust mail
-+      reference.
-+      (catch_exception_raise): Fix typo in the I386 exc_state.
-+
-+      2007-01-11  Andreas Tobler  <a.tobler@schweiz.org>
-+
-+      * configure.ac: Replaced HAS_I386_THREAD_STATE_* with
-+      HAS_X86_THREAD_STATE32_* and HAS_X86_THREAD_STATE64_* respectively.
-+      * configure: Regenerated.
-+      * include/private/gcconfig.h (DARWIN): Added X86_64 define for Darwin.
-+      Added base definitions for the X86_64 Darwin port.
-+      * include/private/gc_priv.h: Added definitions for Darwin MACH thread
-+      operations. Moved existing THREAD_STATE info from darwin_stop_world.c.
-+      * darwin_stop_world.c: Removed THREAD_STATE info. Added
-+      HAS_X86_THREAD_STATE64___RAX. And replaced HAS_I386_THREAD_STATE___EAX
-+      with HAS_X86_THREAD_STATE32___EAX.
-+      (GC_push_all_stacks): Use GC_MACH_THREAD_STATE_COUNT. Add code for
-+      X86_64 Darwin.
-+      * dyn_load.c (GC_dyld_name_for_hdr): Use GC_MACH_HEADER.
-+      (GC_dyld_image_add): Use GC_MACH_HEADER and GC_MACH_SECTION.
-+      Distinguish between getsectbynamefromheader_64 and
-+      getsectbynamefromheader.
-+      (GC_dyld_image_remove): Likewise.
-+      * os_dep.c (GC_dirty_init): Use GC_MACH_THREAD_STATE.
-+      (catch_exception_raise): Introduce exception information for I386 and
-+      X86_64 Darwin. Add X86_64 for exc_state.faultvaddr.
-+
- 2007-05-13  Release Manager
-       * GCC 4.2.0 released.
-Index: boehm-gc/configure
-===================================================================
---- 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 <unistd.h>
- #endif"
--ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical mkinstalldirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CFLAGS CXXFLAGS CCAS CCASFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GC_CFLAGS LN_S LIBTOOL CXXCPP CPPFLAGS THREADLIBS POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE EXTRA_TEST_LIBS target_all CPLUSPLUS_TRUE CPLUSPLUS_FALSE AM_CPPFLAGS addobjs addincludes addlibs addtests CPP EGREP MY_CFLAGS toolexecdir toolexeclibdir LIBOBJS LTLIBOBJS'
-+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical mkinstalldirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CFLAGS CXXFLAGS CCAS CCASFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GC_CFLAGS LN_S LIBTOOL CXXCPP CPPFLAGS THREADLIBS POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE extra_ldflags_libgc EXTRA_TEST_LIBS target_all CPLUSPLUS_TRUE CPLUSPLUS_FALSE AM_CPPFLAGS addobjs addincludes addlibs addtests CPP EGREP MY_CFLAGS toolexecdir toolexeclibdir LIBOBJS LTLIBOBJS'
- ac_subst_files=''
- # Initialize some variables set by options.
-@@ -5741,7 +5741,7 @@
- if test $ac_cv_member_ppc_thread_state_t_r0 = yes; then
- cat >>confdefs.h <<\_ACEOF
--#define HAS_PPC_THREAD_STATE_R0
-+#define HAS_PPC_THREAD_STATE_R0 1
- _ACEOF
- fi
-@@ -5852,7 +5852,7 @@
- if test $ac_cv_member_ppc_thread_state_t___r0 = yes; then
- cat >>confdefs.h <<\_ACEOF
--#define HAS_PPC_THREAD_STATE___R0
-+#define HAS_PPC_THREAD_STATE___R0 1
- _ACEOF
- fi
-@@ -5963,7 +5963,7 @@
- if test $ac_cv_member_ppc_thread_state64_t_r0 = yes; then
- cat >>confdefs.h <<\_ACEOF
--#define HAS_PPC_THREAD_STATE64_R0
-+#define HAS_PPC_THREAD_STATE64_R0 1
- _ACEOF
- fi
-@@ -6074,16 +6074,16 @@
- if test $ac_cv_member_ppc_thread_state64_t___r0 = yes; then
- cat >>confdefs.h <<\_ACEOF
--#define HAS_PPC_THREAD_STATE64___R0
-+#define HAS_PPC_THREAD_STATE64___R0 1
- _ACEOF
- fi
-     ;;
-   i?86*-*-darwin*)
--    echo "$as_me:$LINENO: checking for i386_thread_state_t.eax" >&5
--echo $ECHO_N "checking for i386_thread_state_t.eax... $ECHO_C" >&6
--if test "${ac_cv_member_i386_thread_state_t_eax+set}" = set; then
-+    echo "$as_me:$LINENO: checking for x86_thread_state32_t.eax" >&5
-+echo $ECHO_N "checking for x86_thread_state32_t.eax... $ECHO_C" >&6
-+if test "${ac_cv_member_x86_thread_state32_t_eax+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
-@@ -6093,12 +6093,12 @@
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
- #include <sys/cdefs.h>
--#include <mach/thread_status.h>
-+      #include <mach/thread_status.h>
- int
- main ()
- {
--static i386_thread_state_t ac_aggr;
-+static x86_thread_state32_t ac_aggr;
- if (ac_aggr.eax)
- return 0;
-   ;
-@@ -6127,7 +6127,7 @@
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  ac_cv_member_i386_thread_state_t_eax=yes
-+  ac_cv_member_x86_thread_state32_t_eax=yes
- else
-   echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-@@ -6139,12 +6139,12 @@
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
- #include <sys/cdefs.h>
--#include <mach/thread_status.h>
-+      #include <mach/thread_status.h>
- int
- main ()
- {
--static i386_thread_state_t ac_aggr;
-+static x86_thread_state32_t ac_aggr;
- if (sizeof ac_aggr.eax)
- return 0;
-   ;
-@@ -6173,30 +6173,30 @@
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  ac_cv_member_i386_thread_state_t_eax=yes
-+  ac_cv_member_x86_thread_state32_t_eax=yes
- else
-   echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
+--- libmudflap/configure.ac    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libmudflap/configure.ac    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -7,7 +7,7 @@
+ AC_CANONICAL_SYSTEM
+ ACX_NONCANONICAL_TARGET
  
--ac_cv_member_i386_thread_state_t_eax=no
-+ac_cv_member_x86_thread_state32_t_eax=no
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_member_i386_thread_state_t_eax" >&5
--echo "${ECHO_T}$ac_cv_member_i386_thread_state_t_eax" >&6
--if test $ac_cv_member_i386_thread_state_t_eax = yes; then
-+echo "$as_me:$LINENO: result: $ac_cv_member_x86_thread_state32_t_eax" >&5
-+echo "${ECHO_T}$ac_cv_member_x86_thread_state32_t_eax" >&6
-+if test $ac_cv_member_x86_thread_state32_t_eax = yes; then
- cat >>confdefs.h <<\_ACEOF
--#define HAS_I386_THREAD_STATE_EAX
-+#define HAS_X86_THREAD_STATE32_EAX 1
- _ACEOF
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([no-dist])
  
- fi
+ AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
+ AC_ARG_ENABLE(version-specific-runtime-libs,
+Index: libffi/configure
+===================================================================
+--- libffi/configure   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/configure   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -13272,7 +13272,7 @@
  
--    echo "$as_me:$LINENO: checking for i386_thread_state_t.__eax" >&5
--echo $ECHO_N "checking for i386_thread_state_t.__eax... $ECHO_C" >&6
--if test "${ac_cv_member_i386_thread_state_t___eax+set}" = set; then
-+    echo "$as_me:$LINENO: checking for x86_thread_state32_t.__eax" >&5
-+echo $ECHO_N "checking for x86_thread_state32_t.__eax... $ECHO_C" >&6
-+if test "${ac_cv_member_x86_thread_state32_t___eax+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
-@@ -6206,12 +6206,12 @@
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
- #include <sys/cdefs.h>
--#include <mach/thread_status.h>
-+      #include <mach/thread_status.h>
- int
- main ()
- {
--static i386_thread_state_t ac_aggr;
-+static x86_thread_state32_t ac_aggr;
- if (ac_aggr.__eax)
- return 0;
-   ;
-@@ -6240,7 +6240,7 @@
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  ac_cv_member_i386_thread_state_t___eax=yes
-+  ac_cv_member_x86_thread_state32_t___eax=yes
- else
-   echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-@@ -6252,12 +6252,12 @@
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
- #include <sys/cdefs.h>
--#include <mach/thread_status.h>
-+      #include <mach/thread_status.h>
- int
- main ()
- {
--static i386_thread_state_t ac_aggr;
-+static x86_thread_state32_t ac_aggr;
- if (sizeof ac_aggr.__eax)
- return 0;
-   ;
-@@ -6286,28 +6286,256 @@
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  ac_cv_member_i386_thread_state_t___eax=yes
-+  ac_cv_member_x86_thread_state32_t___eax=yes
- else
-   echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
+       libffi_cv_as_x86_pcrel=yes
+       echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
+-      if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
++      if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
+           libffi_cv_as_x86_pcrel=no
+       fi
  
--ac_cv_member_i386_thread_state_t___eax=no
-+ac_cv_member_x86_thread_state32_t___eax=no
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_member_i386_thread_state_t___eax" >&5
--echo "${ECHO_T}$ac_cv_member_i386_thread_state_t___eax" >&6
--if test $ac_cv_member_i386_thread_state_t___eax = yes; then
-+echo "$as_me:$LINENO: result: $ac_cv_member_x86_thread_state32_t___eax" >&5
-+echo "${ECHO_T}$ac_cv_member_x86_thread_state32_t___eax" >&6
-+if test $ac_cv_member_x86_thread_state32_t___eax = yes; then
- cat >>confdefs.h <<\_ACEOF
--#define HAS_I386_THREAD_STATE___EAX
-+#define HAS_X86_THREAD_STATE32___EAX 1
+@@ -13286,8 +13286,163 @@
  _ACEOF
  
- fi
-     ;;
-+  x86_64-*-darwin*)
-+    echo "$as_me:$LINENO: checking for x86_thread_state64_t.rax" >&5
-+echo $ECHO_N "checking for x86_thread_state64_t.rax... $ECHO_C" >&6
-+if test "${ac_cv_member_x86_thread_state64_t_rax+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>
+     fi
 +
-+int
-+main ()
-+{
-+static x86_thread_state64_t ac_aggr;
-+if (ac_aggr.rax)
-+return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+  (eval $ac_compile) 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+  ac_cv_member_x86_thread_state64_t_rax=yes
++    echo "$as_me:$LINENO: checking assembler .ascii pseudo-op support" >&5
++echo $ECHO_N "checking assembler .ascii pseudo-op support... $ECHO_C" >&6
++if test "${libffi_cv_as_ascii_pseudo_op+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
 +else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
 +
-+cat >conftest.$ac_ext <<_ACEOF
++       libffi_cv_as_ascii_pseudo_op=unknown
++       # Check if we have .ascii
++       cat >conftest.$ac_ext <<_ACEOF
 +/* confdefs.h.  */
 +_ACEOF
 +cat confdefs.h >>conftest.$ac_ext
 +cat >>conftest.$ac_ext <<_ACEOF
 +/* end confdefs.h.  */
-+#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>
-+
++asm (".ascii \"string\"");
 +int
 +main ()
 +{
-+static x86_thread_state64_t ac_aggr;
-+if (sizeof ac_aggr.rax)
-+return 0;
++
 +  ;
 +  return 0;
 +}
@@ -12890,93 +8075,45 @@ Index: boehm-gc/configure
 +  ac_status=$?
 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 +  (exit $ac_status); }; }; then
-+  ac_cv_member_x86_thread_state64_t_rax=yes
++  libffi_cv_as_ascii_pseudo_op=yes
 +else
 +  echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
 +
-+ac_cv_member_x86_thread_state64_t_rax=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
++libffi_cv_as_ascii_pseudo_op=no
+ fi
 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
-+echo "$as_me:$LINENO: result: $ac_cv_member_x86_thread_state64_t_rax" >&5
-+echo "${ECHO_T}$ac_cv_member_x86_thread_state64_t_rax" >&6
-+if test $ac_cv_member_x86_thread_state64_t_rax = yes; then
++echo "$as_me:$LINENO: result: $libffi_cv_as_ascii_pseudo_op" >&5
++echo "${ECHO_T}$libffi_cv_as_ascii_pseudo_op" >&6
++    if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
 +
 +cat >>confdefs.h <<\_ACEOF
-+#define HAS_X86_THREAD_STATE64_RAX 1
++#define HAVE_AS_ASCII_PSEUDO_OP 1
 +_ACEOF
 +
-+fi
++    fi
 +
-+    echo "$as_me:$LINENO: checking for x86_thread_state64_t.__rax" >&5
-+echo $ECHO_N "checking for x86_thread_state64_t.__rax... $ECHO_C" >&6
-+if test "${ac_cv_member_x86_thread_state64_t___rax+set}" = set; then
++    echo "$as_me:$LINENO: checking assembler .string pseudo-op support" >&5
++echo $ECHO_N "checking assembler .string pseudo-op support... $ECHO_C" >&6
++if test "${libffi_cv_as_string_pseudo_op+set}" = set; then
 +  echo $ECHO_N "(cached) $ECHO_C" >&6
 +else
-+  cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>
-+
-+int
-+main ()
-+{
-+static x86_thread_state64_t ac_aggr;
-+if (ac_aggr.__rax)
-+return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+  (eval $ac_compile) 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+       { ac_try='test -z "$ac_c_werror_flag"
-+                       || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+       { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+  ac_cv_member_x86_thread_state64_t___rax=yes
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
 +
-+cat >conftest.$ac_ext <<_ACEOF
++       libffi_cv_as_string_pseudo_op=unknown
++       # Check if we have .string
++       cat >conftest.$ac_ext <<_ACEOF
 +/* confdefs.h.  */
 +_ACEOF
 +cat confdefs.h >>conftest.$ac_ext
 +cat >>conftest.$ac_ext <<_ACEOF
 +/* end confdefs.h.  */
-+#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>
-+
++asm (".string \"string\"");
 +int
 +main ()
 +{
-+static x86_thread_state64_t ac_aggr;
-+if (sizeof ac_aggr.__rax)
-+return 0;
++
 +  ;
 +  return 0;
 +}
@@ -13003,332 +8140,1669 @@ Index: boehm-gc/configure
 +  ac_status=$?
 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 +  (exit $ac_status); }; }; then
-+  ac_cv_member_x86_thread_state64_t___rax=yes
++  libffi_cv_as_string_pseudo_op=yes
 +else
 +  echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
 +
-+ac_cv_member_x86_thread_state64_t___rax=no
++libffi_cv_as_string_pseudo_op=no
 +fi
 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
++
 +fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $libffi_cv_as_string_pseudo_op" >&5
++echo "${ECHO_T}$libffi_cv_as_string_pseudo_op" >&6
++    if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_AS_STRING_PSEUDO_OP 1
++_ACEOF
++
++    fi
++fi
++
++if test x$TARGET = xX86_64; then
++    echo "$as_me:$LINENO: checking assembler supports unwind section type" >&5
++echo $ECHO_N "checking assembler supports unwind section type... $ECHO_C" >&6
++if test "${libffi_cv_as_x86_64_unwind_section_type+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++      libffi_cv_as_x86_64_unwind_section_type=yes
++      echo '.section .eh_frame,"a",@unwind' > conftest.s
++      if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
++          libffi_cv_as_x86_64_unwind_section_type=no
++      fi
++
 +fi
-+echo "$as_me:$LINENO: result: $ac_cv_member_x86_thread_state64_t___rax" >&5
-+echo "${ECHO_T}$ac_cv_member_x86_thread_state64_t___rax" >&6
-+if test $ac_cv_member_x86_thread_state64_t___rax = yes; then
++echo "$as_me:$LINENO: result: $libffi_cv_as_x86_64_unwind_section_type" >&5
++echo "${ECHO_T}$libffi_cv_as_x86_64_unwind_section_type" >&6
++    if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
 +
 +cat >>confdefs.h <<\_ACEOF
-+#define HAS_X86_THREAD_STATE64___RAX 1
++#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1
 +_ACEOF
 +
++    fi
 +fi
 +
-+     ;;
-   *) ;;
- esac
-@@ -6392,8 +6620,16 @@
-     ;;
- esac
-+# extra LD Flags which are required for targets
-+case "${host}" in
-+  *-*-darwin*)
-+    extra_ldflags_libgc=-Wl,-single_module
-+    ;;
-+esac
+ echo "$as_me:$LINENO: checking whether .eh_frame section should be read-only" >&5
+ echo $ECHO_N "checking whether .eh_frame section should be read-only... $ECHO_C" >&6
+ if test "${libffi_cv_ro_eh_frame+set}" = set; then
+Index: libffi/Makefile.in
+===================================================================
+--- libffi/Makefile.in (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/Makefile.in (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -59,13 +59,32 @@
+ @SH64_TRUE@am__append_20 = src/sh64/sysv.S src/sh64/ffi.c
+ @PA_LINUX_TRUE@am__append_21 = src/pa/linux.S src/pa/ffi.c
+ @PA_HPUX_TRUE@am__append_22 = src/pa/hpux32.S src/pa/ffi.c
+-DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
+-      $(srcdir)/../config.guess $(srcdir)/../config.sub \
+-      $(srcdir)/../depcomp $(srcdir)/../install-sh \
+-      $(srcdir)/../ltmain.sh $(srcdir)/../missing \
+-      $(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \
+-      $(srcdir)/Makefile.in $(srcdir)/fficonfig.h.in \
+-      $(top_srcdir)/configure ChangeLog
++DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub README \
++      ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/fficonfig.h.in $(srcdir)/../mkinstalldirs \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../compile \
++      $(srcdir)/../depcomp $(srcdir)/../ltmain.sh \
++      $(srcdir)/../config.guess $(srcdir)/../config.sub
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
+@@ -174,7 +193,6 @@
+ SOURCES = $(libffi_la_SOURCES) $(nodist_libffi_la_SOURCES) \
+       $(libffi_convenience_la_SOURCES) \
+       $(nodist_libffi_convenience_la_SOURCES)
+-DIST_SOURCES = $(libffi_la_SOURCES) $(libffi_convenience_la_SOURCES)
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -190,17 +208,6 @@
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALPHA_FALSE = @ALPHA_FALSE@
+@@ -1087,149 +1094,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/include $(distdir)/src/alpha $(distdir)/src/arm $(distdir)/src/cris $(distdir)/src/frv $(distdir)/src/ia64 $(distdir)/src/m32r $(distdir)/src/m68k $(distdir)/src/mips $(distdir)/src/pa $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh $(distdir)/src/sh64 $(distdir)/src/sparc $(distdir)/src/x86
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile $(LTLIBRARIES) all-multi fficonfig.h
+@@ -1353,13 +1217,11 @@
+ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-multi \
+       am--refresh check check-am clean clean-generic clean-libtool \
+       clean-multi clean-noinstLTLIBRARIES clean-recursive \
+-      clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
+-      dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
+-      distcheck distclean distclean-compile distclean-generic \
+-      distclean-hdr distclean-libtool distclean-multi \
+-      distclean-recursive distclean-tags distcleancheck distdir \
+-      distuninstallcheck dvi dvi-am html html-am info info-am \
+-      install install-am install-data install-data-am install-exec \
++      clean-toolexeclibLTLIBRARIES ctags ctags-recursive distclean \
++      distclean-compile distclean-generic distclean-hdr \
++      distclean-libtool distclean-multi distclean-recursive \
++      distclean-tags dvi dvi-am html html-am info info-am install \
++      install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-multi install-strip install-toolexeclibLTLIBRARIES \
+       installcheck installcheck-am installdirs installdirs-am \
+Index: libffi/fficonfig.h.in
+===================================================================
+--- libffi/fficonfig.h.in      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/fficonfig.h.in      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -27,6 +27,9 @@
+    */
+ #undef HAVE_ALLOCA_H
++/* Define if your assembler supports .ascii. */
++#undef HAVE_AS_ASCII_PSEUDO_OP
++
+ /* Define if your assembler supports .cfi_* directives. */
+ #undef HAVE_AS_CFI_PSEUDO_OP
+@@ -37,6 +40,12 @@
+    */
+ #undef HAVE_AS_SPARC_UA_PCREL
++/* Define if your assembler supports .string. */
++#undef HAVE_AS_STRING_PSEUDO_OP
++
++/* Define if your assembler supports unwind section type. */
++#undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
++
+ /* Define if your assembler supports PC relative relocs. */
+ #undef HAVE_AS_X86_PCREL
+Index: libffi/ChangeLog
+===================================================================
+--- libffi/ChangeLog   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,34 @@
++2010-05-21  Jakub Jelinek  <jakub@redhat.com>
 +
++      * configure: Regenerate.
 +
- target_all=libgcjgc.la
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
++      output, too.
++      (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
++      (libffi_cv_as_string_pseudo_op): Check for .string.
++      * configure: Regenerate.
++      * fficonfig.h.in: Regenerate.
++      * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
++
++2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      Backport from mainline:
++      2010-03-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
++      * configure: Regenerate.
++      * fficonfig.h.in: Regenerate.
++      * libffi/src/x86/unix64.S (.eh_frame)
++      [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
++
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
++
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
++
+ 2010-04-29  Release Manager
  
-@@ -8246,6 +8482,7 @@
- s,@THREADLIBS@,$THREADLIBS,;t t
- s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
- s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
-+s,@extra_ldflags_libgc@,$extra_ldflags_libgc,;t t
- 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
+       * GCC 4.4.4 released.
+Index: libffi/src/x86/sysv.S
 ===================================================================
---- 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)    (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
-          omnigroup's macosx-dev list. 
--         www.omnigroup.com/mailman/archive/macosx-dev/2000-June/002030.html
-+         www.omnigroup.com/mailman/archive/macosx-dev/2000-June/014178.html
-       3. macosx-nat.c from Apple's GDB source code.
- */
+--- libffi/src/x86/sysv.S      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/src/x86/sysv.S      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,5 +1,5 @@
+ /* -----------------------------------------------------------------------
+-   sysv.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005, 2008
++   sysv.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005, 2008, 2010
+    Red Hat, Inc.
     
-@@ -3683,7 +3683,7 @@
-         mask,
-         GC_ports.exception,
-         EXCEPTION_DEFAULT,
--        MACHINE_THREAD_STATE
-+        GC_MACH_THREAD_STATE
-     );
-     if(r != KERN_SUCCESS) ABORT("task_set_exception_ports failed");
-@@ -3802,10 +3802,16 @@
-         mach_msg_type_number_t exc_state_count = PPC_EXCEPTION_STATE64_COUNT;
-         ppc_exception_state64_t exc_state;
- #     endif
--#   elif defined(I386)
--        thread_state_flavor_t flavor = i386_EXCEPTION_STATE;
--        mach_msg_type_number_t exc_state_count = i386_EXCEPTION_STATE_COUNT;
--        i386_exception_state_t exc_state;
-+#   elif defined(I386) || defined(X86_64)
-+#     if CPP_WORDSZ == 32
-+      thread_state_flavor_t flavor = x86_EXCEPTION_STATE32;
-+      mach_msg_type_number_t exc_state_count = x86_EXCEPTION_STATE32_COUNT;
-+      x86_exception_state32_t exc_state;
-+#     else
-+      thread_state_flavor_t flavor = x86_EXCEPTION_STATE64;
-+      mach_msg_type_number_t exc_state_count = x86_EXCEPTION_STATE64_COUNT;
-+      x86_exception_state64_t exc_state;
-+#     endif
- #   else
- #     error FIXME for non-ppc darwin
- #   endif
-@@ -3838,9 +3844,9 @@
-     
-     /* This is the address that caused the fault */
- #if defined(POWERPC)
--    addr = (char*) exc_state.dar;
--#elif defined (I386)
--    addr = (char*) exc_state.faultvaddr;
-+    addr = (char*) exc_state. THREAD_FLD(dar);
-+#elif defined (I386) || defined (X86_64)
-+    addr = (char*) exc_state. THREAD_FLD(faultvaddr);
+    X86 Foreign Function Interface 
+@@ -331,11 +331,21 @@
+ .LSCIE1:
+       .long   0x0     /* CIE Identifier Tag */
+       .byte   0x1     /* CIE Version */
++#ifdef HAVE_AS_ASCII_PSEUDO_OP
+ #ifdef __PIC__
+       .ascii "zR\0"   /* CIE Augmentation */
  #else
- #   error FIXME for non POWERPC/I386
+       .ascii "\0"     /* CIE Augmentation */
  #endif
-Index: boehm-gc/Makefile.am
-===================================================================
---- 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
-+extra_ldflags_libgc = @extra_ldflags_libgc@
-+
- # Include THREADLIBS here to ensure that the correct versions of
- # linuxthread semaphore functions get linked:
- libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS) $(UNWINDLIBS)
- libgcjgc_la_DEPENDENCIES = @addobjs@
--libgcjgc_la_LDFLAGS = -version-info 1:2:0 -rpath $(toolexeclibdir)
-+libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
- libgcjgc_convenience_la_LIBADD = @addobjs@
- libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
-Index: boehm-gc/dyn_load.c
-===================================================================
---- 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 @@
- };
-     
- #ifdef DARWIN_DEBUG
--static const char *GC_dyld_name_for_hdr(struct mach_header *hdr) {
-+static const char *GC_dyld_name_for_hdr(const struct GC_MACH_HEADER *hdr) {
-     unsigned long i,c;
-     c = _dyld_image_count();
-     for(i=0;i<c;i++) if(_dyld_get_image_header(i) == hdr)
-@@ -1162,12 +1162,17 @@
- #endif
-         
- /* This should never be called by a thread holding the lock */
--static void GC_dyld_image_add(struct mach_header* hdr, unsigned long slide) {
-+static void GC_dyld_image_add(const struct GC_MACH_HEADER *hdr, intptr_t slide)
-+{
-     unsigned long start,end,i;
--    const struct section *sec;
-+    const struct GC_MACH_SECTION *sec;
-     if (GC_no_dls) return;
-     for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
--        sec = getsectbynamefromheader(
-+#   if defined (__LP64__)
-+      sec = getsectbynamefromheader_64(
-+#   else
-+      sec = getsectbynamefromheader(
-+#   endif
-             hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
-         if(sec == NULL || sec->size == 0) continue;
-         start = slide + sec->addr;
-@@ -1184,11 +1189,16 @@
- }
- /* This should never be called by a thread holding the lock */
--static void GC_dyld_image_remove(struct mach_header* hdr, unsigned long slide) {
-+static void GC_dyld_image_remove(const struct GC_MACH_HEADER *hdr,
-+                               intptr_t slide) {
-     unsigned long start,end,i;
--    const struct section *sec;
-+    const struct GC_MACH_SECTION *sec;
-     for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
--        sec = getsectbynamefromheader(
-+#   if defined (__LP64__)
-+      sec = getsectbynamefromheader_64(
-+#   else
-+      sec = getsectbynamefromheader(
-+#   endif
-             hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
-         if(sec == NULL || sec->size == 0) continue;
-         start = slide + sec->addr;
-Index: configure.in
-===================================================================
---- 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"
-   AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
--  AC_TRY_COMPILE(,,
-+  AC_TRY_COMPILE([
-+#if (__GNUC__ < 3) \
-+    || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
-+                        || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
-+#error http://gcc.gnu.org/PR29382
++#elif defined HAVE_AS_STRING_PSEUDO_OP
++#ifdef __PIC__
++      .string "zR"    /* CIE Augmentation */
++#else
++      .string ""      /* CIE Augmentation */
++#endif
++#else
++#error missing .ascii/.string
 +#endif
-+    ],,
-     [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
-     [AC_MSG_RESULT([no])])
+       .byte   0x1     /* .uleb128 0x1; CIE Code Alignment Factor */
+       .byte   0x7c    /* .sleb128 -4; CIE Data Alignment Factor */
+       .byte   0x8     /* CIE RA Column */
+Index: libffi/src/x86/unix64.S
+===================================================================
+--- libffi/src/x86/unix64.S    (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/src/x86/unix64.S    (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -322,7 +322,11 @@
+ .LUW9:
+       .size   ffi_closure_unix64,.-ffi_closure_unix64
++#ifdef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
++      .section        .eh_frame,"a",@unwind
++#else
+       .section        .eh_frame,"a",@progbits
++#endif
+ .Lframe1:
+       .long   .LECIE1-.LSCIE1         /* CIE Length */
+ .LSCIE1:
+Index: libffi/configure.ac
+===================================================================
+--- libffi/configure.ac        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libffi/configure.ac        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -12,7 +12,7 @@
+ . ${srcdir}/configure.host
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([no-dist])
+ # The same as in boehm-gc and libstdc++. Have to borrow it from there.
+ # We must force CC to /not/ be precious variables; otherwise
+@@ -245,7 +245,7 @@
+       libffi_cv_as_x86_pcrel, [
+       libffi_cv_as_x86_pcrel=yes
+       echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
+-      if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
++      if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
+           libffi_cv_as_x86_pcrel=no
+       fi
+       ])
+@@ -253,8 +253,49 @@
+       AC_DEFINE(HAVE_AS_X86_PCREL, 1,
+                 [Define if your assembler supports PC relative relocs.])
+     fi
++
++    AC_CACHE_CHECK([assembler .ascii pseudo-op support],
++       libffi_cv_as_ascii_pseudo_op, [
++       libffi_cv_as_ascii_pseudo_op=unknown
++       # Check if we have .ascii
++       AC_TRY_COMPILE([asm (".ascii \"string\"");],,
++                     [libffi_cv_as_ascii_pseudo_op=yes],
++                     [libffi_cv_as_ascii_pseudo_op=no])
++    ])
++    if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
++       AC_DEFINE(HAVE_AS_ASCII_PSEUDO_OP, 1,
++             [Define if your assembler supports .ascii.])
++    fi
++
++    AC_CACHE_CHECK([assembler .string pseudo-op support],
++       libffi_cv_as_string_pseudo_op, [
++       libffi_cv_as_string_pseudo_op=unknown
++       # Check if we have .string
++       AC_TRY_COMPILE([asm (".string \"string\"");],,
++                     [libffi_cv_as_string_pseudo_op=yes],
++                     [libffi_cv_as_string_pseudo_op=no])
++    ])
++    if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
++       AC_DEFINE(HAVE_AS_STRING_PSEUDO_OP, 1,
++             [Define if your assembler supports .string.])
++    fi
+ fi
  
-Index: ChangeLog
-===================================================================
---- ChangeLog  (.../tags/gcc_4_2_0_release)    (revision 126002)
-+++ ChangeLog  (.../branches/gcc-4_2-branch)   (revision 126002)
++if test x$TARGET = xX86_64; then
++    AC_CACHE_CHECK([assembler supports unwind section type],
++      libffi_cv_as_x86_64_unwind_section_type, [
++      libffi_cv_as_x86_64_unwind_section_type=yes
++      echo '.section .eh_frame,"a",@unwind' > conftest.s
++      if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
++          libffi_cv_as_x86_64_unwind_section_type=no
++      fi
++      ])
++    if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
++      AC_DEFINE(HAVE_AS_X86_64_UNWIND_SECTION_TYPE, 1,
++                [Define if your assembler supports unwind section type.])
++    fi
++fi
++
+ AC_CACHE_CHECK([whether .eh_frame section should be read-only],
+     libffi_cv_ro_eh_frame, [
+       libffi_cv_ro_eh_frame=no
+Index: libssp/Makefile.in
+===================================================================
+--- libssp/Makefile.in (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libssp/Makefile.in (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -38,14 +38,14 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+-DIST_COMMON = $(am__configure_deps) $(nobase_libsubinclude_HEADERS) \
+-      $(srcdir)/../compile $(srcdir)/../config.guess \
+-      $(srcdir)/../config.sub $(srcdir)/../depcomp \
+-      $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
+-      $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
+-      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(srcdir)/config.h.in $(top_srcdir)/configure \
+-      $(top_srcdir)/ssp/ssp.h.in ChangeLog
++DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub \
++      ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \
++      $(top_srcdir)/ssp/ssp.h.in $(srcdir)/../compile \
++      $(srcdir)/../depcomp $(srcdir)/../ltmain.sh \
++      $(srcdir)/../config.guess $(srcdir)/../config.sub \
++      $(nobase_libsubinclude_HEADERS)
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+@@ -94,7 +94,6 @@
+ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libssp_la_SOURCES) $(libssp_nonshared_la_SOURCES)
+-DIST_SOURCES = $(libssp_la_SOURCES) $(libssp_nonshared_la_SOURCES)
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -105,17 +104,6 @@
+ HEADERS = $(nobase_libsubinclude_HEADERS)
+ ETAGS = etags
+ CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -546,134 +534,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/.. $(distdir)/../config $(distdir)/ssp
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-am
+ all-am: Makefile $(LTLIBRARIES) all-multi $(HEADERS) config.h
+@@ -762,20 +622,18 @@
+ .PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-am \
+       clean clean-generic clean-libtool clean-multi \
+-      clean-toolexeclibLTLIBRARIES ctags dist dist-all dist-bzip2 \
+-      dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \
+-      distclean-compile distclean-generic distclean-hdr \
+-      distclean-libtool distclean-multi distclean-tags \
+-      distcleancheck distdir distuninstallcheck dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-multi \
+-      install-nobase_libsubincludeHEADERS install-strip \
+-      install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+-      installdirs maintainer-clean maintainer-clean-generic \
+-      maintainer-clean-multi mostlyclean mostlyclean-compile \
+-      mostlyclean-generic mostlyclean-libtool mostlyclean-multi pdf \
+-      pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \
++      clean-toolexeclibLTLIBRARIES ctags distclean distclean-compile \
++      distclean-generic distclean-hdr distclean-libtool \
++      distclean-multi distclean-tags dvi dvi-am html html-am info \
++      info-am install install-am install-data install-data-am \
++      install-exec install-exec-am install-info install-info-am \
++      install-man install-multi install-nobase_libsubincludeHEADERS \
++      install-strip install-toolexeclibLTLIBRARIES installcheck \
++      installcheck-am installdirs maintainer-clean \
++      maintainer-clean-generic maintainer-clean-multi mostlyclean \
++      mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
++      mostlyclean-multi pdf pdf-am ps ps-am tags uninstall \
++      uninstall-am uninstall-info-am \
+       uninstall-nobase_libsubincludeHEADERS \
+       uninstall-toolexeclibLTLIBRARIES
+Index: libssp/ChangeLog
+===================================================================
+--- libssp/ChangeLog   (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libssp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 160097)
 @@ -1,3 +1,9 @@
-+2007-05-30  Jakub Jelinek  <jakub@redhat.com>
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
 +
-+      PR bootstrap/29382
-+      * configure.in: Don't use -fkeep-inline-functions for GCC < 3.3.1.
-+      * configure: Rebuilt.
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
 +
- 2007-05-13  Release Manager
+ 2010-04-29  Release Manager
  
-       * GCC 4.2.0 released.
-Index: config/ChangeLog
+       * GCC 4.4.4 released.
+Index: libssp/configure.ac
 ===================================================================
---- 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  <mrs@apple.com>
+--- libssp/configure.ac        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libssp/configure.ac        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -8,7 +8,7 @@
+ AC_CANONICAL_SYSTEM
+ ACX_NONCANONICAL_TARGET
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([no-dist])
+ AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
+ AC_ARG_ENABLE(version-specific-runtime-libs,
+Index: contrib/ChangeLog
+===================================================================
+--- contrib/ChangeLog  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ contrib/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,13 @@
++2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * dg-extract-results.sh: Redirect grep output to /dev/null instead
++      of grep -q.
++
++      Backport from mainline:
++      2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 +
-+      * acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Fix incremental builds.
-+      (ACX_HAVE_GCC_FOR_TARGET): Likewise.
++      * dg-extract-results.sh: Don't use tail -n.
 +
- 2007-05-13  Release Manager
+ 2010-04-29  Release Manager
  
-       * GCC 4.2.0 released.
-Index: config/acx.m4
+       * GCC 4.4.4 released.
+Index: contrib/dg-extract-results.sh
 ===================================================================
---- 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
+--- contrib/dg-extract-results.sh      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ contrib/dg-extract-results.sh      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -224,7 +224,7 @@
+   VARIANTS=""
+   for VAR in $VARS
+   do
+-    grep -q "Running target $VAR" $SUM_FILES && VARIANTS="$VARIANTS $VAR"
++    grep "Running target $VAR" $SUM_FILES > /dev/null && VARIANTS="$VARIANTS $VAR"
+   done
  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)    (revision 126002)
-+++ libjava/java/lang/natClassLoader.cc        (.../branches/gcc-4_2-branch)   (revision 126002)
-@@ -235,6 +235,15 @@
-   new_class->engine = &_Jv_soleIndirectCompiledEngine;
-+  /* FIXME:  Way back before the dawn of time, we overloaded the
-+     SYNTHETIC class access modifier to mean INTERPRETED.  This was a
-+     Bad Thing, but it didn't matter then because classes were never
-+     marked synthetic.  However, it is possible to redeem the
-+     situation: _Jv_NewClassFromInitializer is only called from
-+     compiled classes, so we clear the INTERPRETED flag.  This is a
-+     kludge!  */
-+  new_class->accflags &= ~java::lang::reflect::Modifier::INTERPRETED;
-+
-   if (_Jv_CheckABIVersion ((unsigned long) new_class->next_or_version))
-     (*_Jv_RegisterClassHook) (new_class);
-   
-Index: libjava/ChangeLog
-===================================================================
---- 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  <aph@redhat.com>
+@@ -418,6 +418,6 @@
+ # This is ugly, but if there's version output from the compiler under test
+ # at the end of the file, we want it.  The other thing that might be there
+ # is the final summary counts.
+-tail -n 2 $FIRST_SUM | grep -q '^#' || tail -n 2 $FIRST_SUM
++tail -2 $FIRST_SUM | grep '^#' > /dev/null || tail -2 $FIRST_SUM
+ exit 0
+Index: libjava/Makefile.in
+===================================================================
+--- libjava/Makefile.in        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -61,20 +61,21 @@
+ @USING_WIN32_THREADS_TRUE@am__append_16 = win32-threads.cc
+ @USING_NO_THREADS_TRUE@am__append_17 = no-threads.cc
+ @ANONVERSCRIPT_TRUE@am__append_18 = $(srcdir)/libgcj.ver
+-DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
+-      $(srcdir)/../config.guess $(srcdir)/../config.sub \
+-      $(srcdir)/../depcomp $(srcdir)/../install-sh \
+-      $(srcdir)/../ltmain.sh $(srcdir)/../missing \
+-      $(srcdir)/../mkinstalldirs $(srcdir)/Makefile.am \
+-      $(srcdir)/Makefile.in $(srcdir)/libgcj-test.spec.in \
+-      $(srcdir)/libgcj.pc.in $(srcdir)/libgcj.spec.in \
+-      $(srcdir)/sources.am $(top_srcdir)/configure \
+-      $(top_srcdir)/contrib/aot-compile-rpm.in \
+-      $(top_srcdir)/contrib/aot-compile.in \
++DIST_COMMON = $(srcdir)/sources.am $(srcdir)/../config.guess \
++      $(srcdir)/../config.sub NEWS README ChangeLog THANKS \
++      $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/../mkinstalldirs $(srcdir)/libgcj.pc.in \
++      $(srcdir)/libgcj.spec.in $(srcdir)/libgcj-test.spec.in \
+       $(top_srcdir)/contrib/aotcompile.py.in \
++      $(top_srcdir)/contrib/aot-compile.in \
++      $(top_srcdir)/contrib/aot-compile-rpm.in \
+       $(top_srcdir)/contrib/generate-cacerts.pl.in \
+       $(top_srcdir)/contrib/rebuild-gcj-db.in \
+-      $(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
++      $(top_srcdir)/scripts/jar.in $(srcdir)/../compile \
++      $(srcdir)/../compile $(srcdir)/../compile $(srcdir)/../depcomp \
++      $(srcdir)/../ltmain.sh $(srcdir)/../config.guess \
++      $(srcdir)/../config.sub
+ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_19 = gen-from-JIS
+ @NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_20 = libgcj_bc.la
+ @NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_21 = libgcj.la
+@@ -307,72 +308,6 @@
+ am__DEPENDENCIES_4 = $(patsubst classpath/resource/%,%,$(addsuffix \
+       .lo,$(property_files)))
+ am__DEPENDENCIES_5 =
+-am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
+-      stacktrace.cc link.cc defineclass.cc verify.cc jvmti.cc \
+-      interpret.cc gnu/classpath/jdwp/natVMFrame.cc \
+-      gnu/classpath/jdwp/natVMMethod.cc \
+-      gnu/classpath/jdwp/natVMVirtualMachine.cc \
+-      gnu/classpath/natConfiguration.cc \
+-      gnu/classpath/natSystemProperties.cc \
+-      gnu/classpath/natVMStackWalker.cc gnu/gcj/natCore.cc \
+-      gnu/gcj/convert/JIS0208_to_Unicode.cc \
+-      gnu/gcj/convert/JIS0212_to_Unicode.cc \
+-      gnu/gcj/convert/Unicode_to_JIS.cc gnu/gcj/convert/natIconv.cc \
+-      gnu/gcj/convert/natInput_EUCJIS.cc \
+-      gnu/gcj/convert/natInput_SJIS.cc \
+-      gnu/gcj/convert/natOutput_EUCJIS.cc \
+-      gnu/gcj/convert/natOutput_SJIS.cc \
+-      gnu/gcj/io/natSimpleSHSStream.cc gnu/gcj/io/shs.cc \
+-      gnu/gcj/jvmti/natBreakpoint.cc \
+-      gnu/gcj/jvmti/natNormalBreakpoint.cc \
+-      gnu/gcj/runtime/natFinalizerThread.cc \
+-      gnu/gcj/runtime/natSharedLibLoader.cc \
+-      gnu/gcj/runtime/natSystemClassLoader.cc \
+-      gnu/gcj/runtime/natStringBuffer.cc gnu/gcj/util/natDebug.cc \
+-      gnu/gcj/util/natGCInfo.cc gnu/java/lang/natMainThread.cc \
+-      gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMCompilationMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMMemoryMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc \
+-      gnu/java/lang/management/natVMThreadMXBeanImpl.cc \
+-      gnu/java/net/natPlainDatagramSocketImpl.cc \
+-      gnu/java/net/natPlainSocketImpl.cc \
+-      gnu/java/net/protocol/core/natCoreInputStream.cc \
+-      gnu/java/nio/natVMPipe.cc gnu/java/nio/natVMSelector.cc \
+-      gnu/java/nio/natNIOServerSocket.cc \
+-      gnu/java/nio/natVMChannel.cc \
+-      gnu/java/nio/channels/natFileChannelImpl.cc \
+-      gnu/java/security/jce/prng/natVMSecureRandom.cc \
+-      java/io/natFile.cc java/io/natVMObjectInputStream.cc \
+-      java/io/natVMObjectStreamClass.cc java/lang/natCharacter.cc \
+-      java/lang/natClass.cc java/lang/natClassLoader.cc \
+-      java/lang/natConcreteProcess.cc java/lang/natVMDouble.cc \
+-      java/lang/natVMFloat.cc java/lang/natMath.cc \
+-      java/lang/natObject.cc java/lang/natRuntime.cc \
+-      java/lang/natString.cc java/lang/natAbstractStringBuffer.cc \
+-      java/lang/natSystem.cc java/lang/natThread.cc \
+-      java/lang/natThreadLocal.cc java/lang/natVMClassLoader.cc \
+-      java/lang/natVMProcess.cc java/lang/natVMThrowable.cc \
+-      java/lang/ref/natReference.cc java/lang/reflect/natArray.cc \
+-      java/lang/reflect/natConstructor.cc \
+-      java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc \
+-      java/lang/reflect/natVMProxy.cc java/net/natVMInetAddress.cc \
+-      java/net/natVMNetworkInterface.cc \
+-      java/net/natVMURLConnection.cc \
+-      java/nio/channels/natVMChannels.cc \
+-      java/nio/natVMDirectByteBufferImpl.cc \
+-      java/security/natVMAccessController.cc \
+-      java/security/natVMAccessControlState.cc \
+-      java/text/natCollator.cc java/util/natVMTimeZone.cc \
+-      java/util/concurrent/atomic/natAtomicLong.cc \
+-      java/util/logging/natLogger.cc java/util/zip/natDeflater.cc \
+-      java/util/zip/natInflater.cc sun/misc/natUnsafe.cc boehm.cc \
+-      nogc.cc posix.cc win32.cc darwin.cc posix-threads.cc \
+-      win32-threads.cc no-threads.cc
+ @INTERPRETER_TRUE@am__objects_2 = jvmti.lo interpret.lo
+ @INTERPRETER_TRUE@am__objects_3 = gnu/classpath/jdwp/natVMFrame.lo \
+ @INTERPRETER_TRUE@    gnu/classpath/jdwp/natVMMethod.lo \
+@@ -484,8 +419,6 @@
+ gcj_dbtool_OBJECTS = $(am_gcj_dbtool_OBJECTS)
+ am_gcjh_OBJECTS =
+ gcjh_OBJECTS = $(am_gcjh_OBJECTS)
+-am__gen_from_JIS_SOURCES_DIST = gnu/gcj/convert/gen-from-JIS.c \
+-      gnu/gcj/convert/make-trie.c gnu/gcj/convert/make-trie.h
+ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am_gen_from_JIS_OBJECTS = gnu/gcj/convert/gen-from-JIS.$(OBJEXT) \
+ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@   gnu/gcj/convert/make-trie.$(OBJEXT)
+ gen_from_JIS_OBJECTS = $(am_gen_from_JIS_OBJECTS)
+@@ -552,18 +485,6 @@
+       $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
+       $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
+       $(jv_convert_SOURCES)
+-DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
+-      $(libgcj_tools_la_SOURCES) $(am__libgcj_la_SOURCES_DIST) \
+-      $(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
+-      $(libgij_la_SOURCES) $(libjvm_la_SOURCES) $(ecjx_SOURCES) \
+-      $(gappletviewer_SOURCES) $(gc_analyze_SOURCES) \
+-      $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
+-      $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
+-      $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \
+-      $(gjdoc_SOURCES) $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) \
+-      $(gorbd_SOURCES) $(grmic_SOURCES) $(grmid_SOURCES) \
+-      $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
+-      $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-exec-recursive install-info-recursive \
+@@ -577,17 +498,6 @@
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = @DIRLTDL@ gcj include classpath testsuite
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -10179,149 +10089,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/../config $(distdir)/contrib $(distdir)/libltdl $(distdir)/scripts
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) all-multi \
+@@ -10491,18 +10258,16 @@
+       am--refresh check check-am clean clean-binPROGRAMS \
+       clean-dbexecLTLIBRARIES clean-generic clean-libexecsubPROGRAMS \
+       clean-libtool clean-multi clean-noinstPROGRAMS clean-recursive \
+-      clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
+-      dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
+-      distcheck distclean distclean-compile distclean-generic \
+-      distclean-libtool distclean-local distclean-multi \
+-      distclean-recursive distclean-tags distcleancheck distdir \
+-      distuninstallcheck dvi dvi-am html html-am info info-am \
+-      install install-am install-binPROGRAMS install-binSCRIPTS \
+-      install-data install-data-am install-data-local \
+-      install-dbexecDATA install-dbexecLTLIBRARIES install-exec \
+-      install-exec-am install-exec-hook install-info install-info-am \
+-      install-jarDATA install-libexecsubPROGRAMS install-man \
+-      install-multi install-strip install-toolexeclibLTLIBRARIES \
++      clean-toolexeclibLTLIBRARIES ctags ctags-recursive distclean \
++      distclean-compile distclean-generic distclean-libtool \
++      distclean-local distclean-multi distclean-recursive \
++      distclean-tags dvi dvi-am html html-am info info-am install \
++      install-am install-binPROGRAMS install-binSCRIPTS install-data \
++      install-data-am install-data-local install-dbexecDATA \
++      install-dbexecLTLIBRARIES install-exec install-exec-am \
++      install-exec-hook install-info install-info-am install-jarDATA \
++      install-libexecsubPROGRAMS install-man install-multi \
++      install-strip install-toolexeclibLTLIBRARIES \
+       install-toolexecmainlibDATA installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic maintainer-clean-multi \
+Index: libjava/libltdl/Makefile.in
+===================================================================
+--- libjava/libltdl/Makefile.in        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/libltdl/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -37,11 +37,11 @@
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-DIST_COMMON = README $(am__configure_deps) $(am__include_HEADERS_DIST) \
+-      $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \
+-      $(srcdir)/Makefile.in $(srcdir)/config-h.in \
+-      $(top_srcdir)/configure COPYING.LIB ChangeLog config.guess \
+-      config.sub install-sh ltmain.sh missing
++DIST_COMMON = config.guess config.sub README ChangeLog \
++      $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
++      $(top_srcdir)/configure $(am__configure_deps) \
++      $(srcdir)/config-h.in ltmain.sh config.guess config.sub \
++      $(am__include_HEADERS_DIST) $(am__noinst_HEADERS_DIST)
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+@@ -87,7 +87,6 @@
+ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES)
+-DIST_SOURCES = $(libltdl_la_SOURCES) $(libltdlc_la_SOURCES)
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -100,17 +99,6 @@
+ HEADERS = $(include_HEADERS) $(noinst_HEADERS)
+ ETAGS = etags
+ CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -223,7 +211,7 @@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-AUTOMAKE_OPTIONS = no-dependencies foreign
++AUTOMAKE_OPTIONS = no-dependencies foreign no-dist
+ ACLOCAL_AMFLAGS = -I ../.. -I ../../config
+ INCLUDES = $(GCINCS)
+ @INSTALL_LTDL_TRUE@include_HEADERS = ltdl.h
+@@ -445,134 +433,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/../../config
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-am
+ all-am: Makefile $(LTLIBRARIES) all-multi $(HEADERS) config.h
+@@ -661,12 +521,10 @@
+ .PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-am \
+       clean clean-generic clean-libLTLIBRARIES clean-libtool \
+-      clean-multi clean-noinstLTLIBRARIES ctags dist dist-all \
+-      dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \
+-      distclean distclean-compile distclean-generic distclean-hdr \
+-      distclean-libtool distclean-multi distclean-tags \
+-      distcleancheck distdir distuninstallcheck dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
++      clean-multi clean-noinstLTLIBRARIES ctags distclean \
++      distclean-compile distclean-generic distclean-hdr \
++      distclean-libtool distclean-multi distclean-tags dvi dvi-am \
++      html html-am info info-am install install-am install-data \
+       install-data-am install-data-local install-exec \
+       install-exec-am install-includeHEADERS install-info \
+       install-info-am install-libLTLIBRARIES install-man \
+Index: libjava/libltdl/ChangeLog
+===================================================================
+--- libjava/libltdl/ChangeLog  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/libltdl/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,9 @@
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
 +
-+      * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear
-+      INTERPRETED access modifier.
++      PR other/43620
++      * Makefile.am (AUTOMAKE_OPTIONS): Add no-dist option.
++      * Makefile.in: Regenerated.
 +
- 2007-05-13  Release Manager
+ 2010-04-29  Release Manager
  
-       * GCC 4.2.0 released.
-Index: maintainer-scripts/ChangeLog
+       * GCC 4.4.4 released.
+Index: libjava/libltdl/Makefile.am
 ===================================================================
---- 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  <mark@codesourcery.com>
+--- libjava/libltdl/Makefile.am        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/libltdl/Makefile.am        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to produce Makefile.in
+-AUTOMAKE_OPTIONS = no-dependencies foreign
++AUTOMAKE_OPTIONS = no-dependencies foreign no-dist
+ ACLOCAL_AMFLAGS = -I ../.. -I ../../config
+Index: libjava/configure.ac
+===================================================================
+--- libjava/configure.ac       (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/configure.ac       (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -164,7 +164,7 @@
+ AC_SUBST(CXXFLAGS)
+ AC_SUBST(LDFLAGS)
+-AM_INIT_AUTOMAKE([1.9.0])
++AM_INIT_AUTOMAKE([1.9.0 no-dist])
+ AC_CHECK_TOOL(AS, as)
+ AC_CHECK_TOOL(LD, ld)
+@@ -1712,8 +1712,8 @@
+ # Check if linker supports static linking on a per library basis
+ LD_START_STATIC_SPEC=
+ LD_FINISH_STATIC_SPEC=
+-if $LD --help 2>&1 | grep -q -e -call_shared ; then
+-  if $LD --help 2>&1 | grep -q -e -non_shared ; then
++if $LD --help 2>&1 | grep -- -call_shared >/dev/null 2>&1; then
++  if $LD --help 2>&1 | grep -- -non_shared >/dev/null 2>&1; then
+     LD_START_STATIC_SPEC='%{static-libgcj:-non_shared}'
+     LD_FINISH_STATIC_SPEC='%{static-libgcj:-call_shared}'
+   fi
+Index: libjava/classpath/Makefile.in
+===================================================================
+--- libjava/classpath/Makefile.in      (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/classpath/Makefile.in      (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -36,25 +36,17 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+-DIST_COMMON = README $(am__configure_deps) \
+-      $(srcdir)/../../config.guess $(srcdir)/../../config.sub \
+-      $(srcdir)/../../install-sh $(srcdir)/../../ltmain.sh \
+-      $(srcdir)/../../missing $(srcdir)/../../mkinstalldirs \
+-      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(top_srcdir)/configure \
++DIST_COMMON = $(srcdir)/../../config.guess $(srcdir)/../../config.sub \
++      INSTALL NEWS README AUTHORS ChangeLog $(srcdir)/Makefile.in \
++      $(srcdir)/Makefile.am $(top_srcdir)/configure \
++      $(am__configure_deps) $(srcdir)/../../mkinstalldirs \
+       $(top_srcdir)/gnu/classpath/Configuration.java.in \
+       $(top_srcdir)/gnu/java/security/Configuration.java.in \
+       $(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \
+       $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in \
+       $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in \
+-      ../../ABOUT-NLS ../../COPYING ../../COPYING.LIB \
+-      ../../ChangeLog ../../README ../../compile ../../config.guess \
+-      ../../config.rpath ../../config.sub ../../depcomp \
+-      ../../install-sh ../../ltmain.sh ../../missing \
+-      ../../mkinstalldirs ../../ylwrap AUTHORS COPYING ChangeLog \
+-      INSTALL NEWS TODO compile config.guess config.sub depcomp \
+-      install-sh ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig \
+-      ltmain.sh missing mkinstalldirs
++      $(srcdir)/../../ltmain.sh $(srcdir)/../../config.guess \
++      $(srcdir)/../../config.sub
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+@@ -93,7 +85,6 @@
+       resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader \
+       resource/META-INF/services/javax.sound.sampled.spi.MixerProvider
+ SOURCES =
+-DIST_SOURCES =
+ MULTISRCTOP = 
+ MULTIBUILDTOP = 
+ MULTIDIRS = 
+@@ -108,17 +99,6 @@
+       uninstall-recursive
+ ETAGS = etags
+ CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ AMDEP_FALSE = @AMDEP_FALSE@
+ AMDEP_TRUE = @AMDEP_TRUE@
+@@ -605,152 +585,6 @@
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/../.. $(distdir)/../../config $(distdir)/examples $(distdir)/gnu/classpath $(distdir)/gnu/java/security $(distdir)/lib $(distdir)/m4 $(distdir)/resource/META-INF/services $(distdir)/scripts $(distdir)/tools
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      $(MAKE) $(AM_MAKEFLAGS) \
+-        top_distdir="$(top_distdir)" distdir="$(distdir)" \
+-        dist-hook
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile all-multi
+@@ -834,20 +668,18 @@
+ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-multi \
+       am--refresh check check-am clean clean-generic clean-libtool \
+-      clean-multi clean-recursive ctags ctags-recursive dist \
+-      dist-all dist-bzip2 dist-gzip dist-hook dist-shar dist-tarZ \
+-      dist-zip distcheck distclean distclean-generic \
+-      distclean-libtool distclean-multi distclean-recursive \
+-      distclean-tags distcleancheck distdir distuninstallcheck dvi \
+-      dvi-am html html-am info info-am install install-am \
+-      install-data install-data-am install-exec install-exec-am \
+-      install-info install-info-am install-man install-multi \
+-      install-strip installcheck installcheck-am installdirs \
+-      installdirs-am maintainer-clean maintainer-clean-generic \
+-      maintainer-clean-multi maintainer-clean-recursive mostlyclean \
+-      mostlyclean-generic mostlyclean-libtool mostlyclean-multi \
+-      mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+-      uninstall uninstall-am uninstall-info-am
++      clean-multi clean-recursive ctags ctags-recursive distclean \
++      distclean-generic distclean-libtool distclean-multi \
++      distclean-recursive distclean-tags dvi dvi-am html html-am \
++      info info-am install install-am install-data install-data-am \
++      install-exec install-exec-am install-info install-info-am \
++      install-man install-multi install-strip installcheck \
++      installcheck-am installdirs installdirs-am maintainer-clean \
++      maintainer-clean-generic maintainer-clean-multi \
++      maintainer-clean-recursive mostlyclean mostlyclean-generic \
++      mostlyclean-libtool mostlyclean-multi mostlyclean-recursive \
++      pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
++      uninstall-info-am
+ native: lib
+Index: libjava/classpath/configure.ac
+===================================================================
+--- libjava/classpath/configure.ac     (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/classpath/configure.ac     (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -74,7 +74,7 @@
+ AC_SUBST(CLASSPATH_CONVENIENCE)
+ AC_PREREQ(2.59)
+-AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar -Wno-portability])
++AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar no-dist -Wno-portability])
+ AC_CONFIG_HEADERS([include/config.h])
+ AC_PREFIX_DEFAULT(/usr/local/classpath)
+Index: libjava/classpath/ChangeLog
+===================================================================
+--- libjava/classpath/ChangeLog        (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/classpath/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,9 @@
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
 +
-+      * gcc_release: Adjust placement of release candidates.
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
 +
- 2007-05-13  Release Manager
+ 2010-04-29  Release Manager
  
-       * GCC 4.2.0 released.
-Index: maintainer-scripts/gcc_release
+       * GCC 4.4.4 released.
+Index: libjava/ChangeLog
 ===================================================================
---- 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"
--  # If this is not a final release, set various parameters acordingly.
-+  # If this is not a final release, set various parameters accordingly.
-   if [ ${FINAL} -ne 1 ]; then
--    RELEASE="${RELEASE}-${DATE}"
--    FTP_PATH="${FTP_PATH}/prerelease-${RELEASE}/"
-+    RELEASE="${RELEASE}-RC-${DATE}"
-+    FTP_PATH="${SNAPSHOTS_DIR}/${RELEASE}"
-   else
-     FTP_PATH="${FTP_PATH}/releases/gcc-${RELEASE}/"
+--- libjava/ChangeLog  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -1,3 +1,16 @@
++2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
++
++      * configure.ac: Redirect grep stdout, stderr to /dev/null instead
++      of grep -q.
++      Use -- instead of grep -e.
++      * configure: Regenerate.
++
++2010-04-29  Jakub Jelinek  <jakub@redhat.com>
++
++      PR other/43620
++      * configure.ac (AM_INIT_AUTOMAKE): Add no-dist option.
++      * Makefile.in: Regenerated.
++
+ 2010-04-29  Release Manager
+       * GCC 4.4.4 released.
+Index: libjava/configure
+===================================================================
+--- libjava/configure  (.../tags/gcc_4_4_4_release)    (wersja 160097)
++++ libjava/configure  (.../branches/gcc-4_4-branch)   (wersja 160097)
+@@ -28079,8 +28079,8 @@
+ # Check if linker supports static linking on a per library basis
+ LD_START_STATIC_SPEC=
+ LD_FINISH_STATIC_SPEC=
+-if $LD --help 2>&1 | grep -q -e -call_shared ; then
+-  if $LD --help 2>&1 | grep -q -e -non_shared ; then
++if $LD --help 2>&1 | grep -- -call_shared >/dev/null 2>&1; then
++  if $LD --help 2>&1 | grep -- -non_shared >/dev/null 2>&1; then
+     LD_START_STATIC_SPEC='%{static-libgcj:-non_shared}'
+     LD_FINISH_STATIC_SPEC='%{static-libgcj:-call_shared}'
    fi
This page took 0.888852 seconds and 4 git commands to generate.