]> git.pld-linux.org Git - packages/gcc.git/commitdiff
- rel 4 auto/th/gcc-4_4_3-4
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 28 Mar 2010 20:57:20 +0000 (20:57 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gcc-branch.diff -> 1.26
    gcc.spec -> 1.600

gcc-branch.diff
gcc.spec

index 195f144316efb374cbdf38b0142d760746a9006b..375f05226d46b8edd6edc253aa62a372ab3ef682 100644 (file)
@@ -1,58 +1,90 @@
-Index: libgcc/config/libbid/ChangeLog
+Index: libgomp/env.c
 ===================================================================
---- libgcc/config/libbid/ChangeLog     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgcc/config/libbid/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+--- libgomp/env.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgomp/env.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,4 +1,5 @@
+-/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
++   Free Software Foundation, Inc.
+    Contributed by Richard Henderson <rth@redhat.com>.
  
-       * GCC 4.4.2 released.
-Index: libgcc/ChangeLog
-===================================================================
---- libgcc/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgcc/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+    This file is part of the GNU OpenMP Library (libgomp).
+@@ -145,7 +146,7 @@
+    present and it was successfully parsed.  */
+ static bool
+-parse_unsigned_long (const char *name, unsigned long *pvalue)
++parse_unsigned_long (const char *name, unsigned long *pvalue, bool allow_zero)
+ {
+   char *env, *end;
+   unsigned long value;
+@@ -161,7 +162,7 @@
+   errno = 0;
+   value = strtoul (env, &end, 10);
+-  if (errno || (long) value <= 0)
++  if (errno || (long) value <= 0 - allow_zero)
+     goto invalid;
+   while (isspace ((unsigned char) *end))
+@@ -481,8 +482,9 @@
+   parse_schedule ();
+   parse_boolean ("OMP_DYNAMIC", &gomp_global_icv.dyn_var);
+   parse_boolean ("OMP_NESTED", &gomp_global_icv.nest_var);
+-  parse_unsigned_long ("OMP_MAX_ACTIVE_LEVELS", &gomp_max_active_levels_var);
+-  parse_unsigned_long ("OMP_THREAD_LIMIT", &gomp_thread_limit_var);
++  parse_unsigned_long ("OMP_MAX_ACTIVE_LEVELS", &gomp_max_active_levels_var,
++                     true);
++  parse_unsigned_long ("OMP_THREAD_LIMIT", &gomp_thread_limit_var, false);
+   if (gomp_thread_limit_var != ULONG_MAX)
+     gomp_remaining_threads_count = gomp_thread_limit_var - 1;
+ #ifndef HAVE_SYNC_BUILTINS
+@@ -490,7 +492,8 @@
+ #endif
+   gomp_init_num_threads ();
+   gomp_available_cpus = gomp_global_icv.nthreads_var;
+-  if (!parse_unsigned_long ("OMP_NUM_THREADS", &gomp_global_icv.nthreads_var))
++  if (!parse_unsigned_long ("OMP_NUM_THREADS", &gomp_global_icv.nthreads_var,
++                          false))
+     gomp_global_icv.nthreads_var = gomp_available_cpus;
+   if (parse_affinity ())
+     gomp_init_affinity ();
+@@ -632,7 +635,7 @@
+ void
+ omp_set_max_active_levels (int max_levels)
+ {
+-  if (max_levels > 0)
++  if (max_levels >= 0)
+     gomp_max_active_levels_var = max_levels;
+ }
  
-       * GCC 4.4.2 released.
 Index: libgomp/ChangeLog
 ===================================================================
---- libgomp/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgomp/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,22 @@
-+2010-01-26  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR fortran/42866
-+      * testsuite/libgomp.fortran/allocatable5.f90: New test.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
+--- libgomp/ChangeLog  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgomp/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,18 @@
++2010-03-22  Jakub Jelinek  <jakub@redhat.com>
 +
-+2009-11-25  Jakub Jelinek  <jakub@redhat.com>
++      PR libgomp/42942
++      * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
++      (initialize_env): Adjust callers.
++      (omp_set_max_active_levels): Set gomp_max_active_levels_var even
++      when the argument is 0.
 +
-+      PR fortran/42162
-+      * testsuite/libgomp.fortran/pr42162.f90: New test.
++      * testsuite/libgomp.c/pr42942.c: New test.
 +
-+2009-11-13  Jakub Jelinek  <jakub@redhat.com>
++2010-01-26  Jakub Jelinek  <jakub@redhat.com>
 +
-+      PR middle-end/42029
-+      * testsuite/libgomp.c/pr42029.c: New test.
++      PR fortran/42866
++      * testsuite/libgomp.fortran/allocatable5.f90: New test.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
  
-       * GCC 4.4.2 released.
+       * GCC 4.4.3 released.
 Index: libgomp/testsuite/libgomp.fortran/allocatable5.f90
 ===================================================================
---- libgomp/testsuite/libgomp.fortran/allocatable5.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ libgomp/testsuite/libgomp.fortran/allocatable5.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- libgomp/testsuite/libgomp.fortran/allocatable5.f90 (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ libgomp/testsuite/libgomp.fortran/allocatable5.f90 (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -0,0 +1,17 @@
 +! PR fortran/42866
 +! { dg-do run }
@@ -71,481 +103,113 @@ Index: libgomp/testsuite/libgomp.fortran/allocatable5.f90
 +  if (any (a.ne.3)) call abort
 +  deallocate (a)
 +end
-Index: libgomp/testsuite/libgomp.fortran/pr42162.f90
-===================================================================
---- libgomp/testsuite/libgomp.fortran/pr42162.f90      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ libgomp/testsuite/libgomp.fortran/pr42162.f90      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,53 @@
-+! PR fortran/42162
-+! { dg-do run }
-+
-+subroutine sub1(k, a)
-+  implicit none
-+  integer :: k, a(3)
-+  !$omp do
-+    do k=1,3
-+      a(k) = a(k) + 1
-+    enddo
-+  !$omp end do
-+end subroutine sub1
-+
-+subroutine sub2(k, a)
-+  implicit none
-+  integer :: k, a(3)
-+  !$omp do private (k)
-+    do k=1,3
-+      a(k) = a(k) + 1
-+    enddo
-+  !$omp end do
-+end subroutine sub2
-+
-+subroutine sub3(k, a)
-+  implicit none
-+  integer :: k, a(3)
-+  !$omp do lastprivate (k)
-+    do k=1,3
-+      a(k) = a(k) + 1
-+    enddo
-+  !$omp end do
-+end subroutine sub3
-+
-+program pr42162
-+  implicit none
-+  integer :: k, a(3), b(3), c(3)
-+  a = 1
-+  b = 2
-+  c = 3
-+  k = 3
-+  !$omp parallel num_threads(3)
-+  call sub1 (k, a)
-+  !$omp end parallel
-+  k = 4
-+  !$omp parallel num_threads(3)
-+  call sub2 (k, b)
-+  !$omp end parallel
-+  k = 10
-+  !$omp parallel num_threads(3)
-+  call sub3 (k, c)
-+  !$omp end parallel
-+  if (k.ne.4.or.any(a.ne.2).or.any(b.ne.3).or.any(c.ne.4)) call abort
-+end
-Index: libgomp/testsuite/libgomp.c/pr42029.c
+Index: libgomp/testsuite/libgomp.c/pr42942.c
 ===================================================================
---- libgomp/testsuite/libgomp.c/pr42029.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ libgomp/testsuite/libgomp.c/pr42029.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+/* PR middle-end/42029 */
+--- libgomp/testsuite/libgomp.c/pr42942.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ libgomp/testsuite/libgomp.c/pr42942.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,61 @@
++/* PR libgomp/42942 */
 +/* { dg-do run } */
 +
-+extern void abort (void);
++#include <omp.h>
++#include <stdlib.h>
 +
 +int
-+main ()
++main (void)
 +{
-+  int i;
-+  _Complex int c = 0;
-+
-+#pragma omp parallel for private(i) reduction(+:c)
-+  for (i = 0; i < 8; ++i)
-+    c += 1;
-+
-+  if (c != 8)
++  int e = 0;
++  omp_set_dynamic (0);
++  omp_set_nested (1);
++  omp_set_max_active_levels (1);
++  if (omp_get_max_active_levels () != 1)
++    abort ();
++#pragma omp parallel num_threads(2) reduction(|:e)
++  if (!omp_in_parallel ()
++      || omp_get_num_threads () != 2)
++    e = 1;
++  else
++#pragma omp parallel num_threads(2) reduction(|:e)
++    if (!omp_in_parallel ()
++      || omp_get_num_threads () != 1)
++      e = 1;
++  if (e)
++    abort ();
++  omp_set_max_active_levels (0);
++  if (omp_get_max_active_levels () != 0)
++    abort ();
++#pragma omp parallel num_threads(2) reduction(|:e)
++  if (omp_in_parallel ()
++      || omp_get_num_threads () != 1)
++    e = 1;
++  else
++#pragma omp parallel num_threads(2) reduction(|:e)
++    if (omp_in_parallel ()
++      || omp_get_num_threads () != 1)
++      e = 1;
++  if (e)
++    abort ();
++  omp_set_max_active_levels (2);
++  if (omp_get_max_active_levels () != 2)
++    abort ();
++#pragma omp parallel num_threads(2) reduction(|:e)
++  if (!omp_in_parallel ()
++      || omp_get_num_threads () != 2)
++    e = 1;
++  else
++#pragma omp parallel num_threads(2) reduction(|:e)
++    if (!omp_in_parallel ()
++      || omp_get_num_threads () != 2)
++      e = 1;
++    else
++#pragma omp parallel num_threads(2) reduction(|:e)
++      if (!omp_in_parallel ()
++        || omp_get_num_threads () != 1)
++      e = 1;
++  if (e)
 +    abort ();
 +  return 0;
 +}
-Index: config.guess
-===================================================================
---- config.guess       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ config.guess       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,10 +1,10 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
- #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
- #   Free Software Foundation, Inc.
--timestamp='2008-12-18'
-+timestamp='2009-11-19'
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
-@@ -27,16 +27,16 @@
- # the same distribution terms that you use for the rest of that program.
--# Originally written by Per Bothner <per@bothner.com>.
--# Please send patches to <config-patches@gnu.org>.  Submit a context
--# diff and a properly formatted ChangeLog entry.
-+# Originally written by Per Bothner.  Please send patches (context
-+# diff format) to <config-patches@gnu.org> and include a ChangeLog
-+# entry.
- #
- # This script attempts to guess a canonical system name similar to
- # config.sub.  If it succeeds, it prints the system name on stdout, and
- # exits with 0.  Otherwise, it exits with 1.
- #
--# The plan is that this can be called by configure scripts if you
--# don't specify an explicit build system type.
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
- me=`echo "$0" | sed -e 's,.*/,,'`
-@@ -170,7 +170,7 @@
-           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
-               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
--                      | grep __ELF__ >/dev/null
-+                      | grep -q __ELF__
-               then
-                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-                   # Return netbsd for either.  FIX?
-@@ -324,6 +324,9 @@
-       case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7; exit ;;
-       esac ;;
-+    s390x:SunOS:*:*)
-+      echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+      exit ;;
-     sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
-@@ -653,7 +656,7 @@
-           # => hppa64-hp-hpux11.23
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
--              grep __LP64__ >/dev/null
-+              grep -q __LP64__
-           then
-               HP_ARCH="hppa2.0w"
-           else
-@@ -804,12 +807,12 @@
-     i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
-       exit ;;
--    *:Interix*:[3456]*)
-+    *:Interix*:*)
-       case ${UNAME_MACHINE} in
-           x86)
-               echo i586-pc-interix${UNAME_RELEASE}
-               exit ;;
--          EM64T | authenticamd | genuineintel)
-+          authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
-               exit ;;
-           IA64)
-@@ -819,6 +822,9 @@
-     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-       echo i${UNAME_MACHINE}-pc-mks
-       exit ;;
-+    8664:Windows_NT:*)
-+      echo x86_64-pc-mks
-+      exit ;;
-     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-@@ -848,6 +854,20 @@
-     i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
-       exit ;;
-+    alpha:Linux:*:*)
-+      case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-+        EV5)   UNAME_MACHINE=alphaev5 ;;
-+        EV56)  UNAME_MACHINE=alphaev56 ;;
-+        PCA56) UNAME_MACHINE=alphapca56 ;;
-+        PCA57) UNAME_MACHINE=alphapca56 ;;
-+        EV6)   UNAME_MACHINE=alphaev6 ;;
-+        EV67)  UNAME_MACHINE=alphaev67 ;;
-+        EV68*) UNAME_MACHINE=alphaev68 ;;
-+        esac
-+      objdump --private-headers /bin/sh | grep -q ld.so.1
-+      if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-+      echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+      exit ;;
-     arm*:Linux:*:*)
-       eval $set_cc_for_build
-       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-@@ -870,6 +890,17 @@
-     frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
-       exit ;;
-+    i*86:Linux:*:*)
-+      LIBC=gnu
-+      eval $set_cc_for_build
-+      sed 's/^        //' << EOF >$dummy.c
-+      #ifdef __dietlibc__
-+      LIBC=dietlibc
-+      #endif
-+EOF
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-+      echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-+      exit ;;
-     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
-@@ -879,78 +910,34 @@
-     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
--    mips:Linux:*:*)
-+    mips:Linux:*:* | mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
--      #undef mips
--      #undef mipsel
-+      #undef ${UNAME_MACHINE}
-+      #undef ${UNAME_MACHINE}el
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
--      CPU=mipsel
-+      CPU=${UNAME_MACHINE}el
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
--      CPU=mips
-+      CPU=${UNAME_MACHINE}
-       #else
-       CPU=
-       #endif
-       #endif
- EOF
--      eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
--          /^CPU/{
--              s: ::g
--              p
--          }'`"
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-       ;;
--    mips64:Linux:*:*)
--      eval $set_cc_for_build
--      sed 's/^        //' << EOF >$dummy.c
--      #undef CPU
--      #undef mips64
--      #undef mips64el
--      #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
--      CPU=mips64el
--      #else
--      #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
--      CPU=mips64
--      #else
--      CPU=
--      #endif
--      #endif
--EOF
--      eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
--          /^CPU/{
--              s: ::g
--              p
--          }'`"
--      test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
--      ;;
-     or32:Linux:*:*)
-       echo or32-unknown-linux-gnu
-       exit ;;
--    ppc:Linux:*:*)
--      echo powerpc-unknown-linux-gnu
--      exit ;;
--    ppc64:Linux:*:*)
--      echo powerpc64-unknown-linux-gnu
--      exit ;;
--    alpha:Linux:*:*)
--      case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
--        EV5)   UNAME_MACHINE=alphaev5 ;;
--        EV56)  UNAME_MACHINE=alphaev56 ;;
--        PCA56) UNAME_MACHINE=alphapca56 ;;
--        PCA57) UNAME_MACHINE=alphapca56 ;;
--        EV6)   UNAME_MACHINE=alphaev6 ;;
--        EV67)  UNAME_MACHINE=alphaev67 ;;
--        EV68*) UNAME_MACHINE=alphaev68 ;;
--        esac
--      objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
--      if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
--      echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
--      exit ;;
-     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
-       exit ;;
-+    parisc64:Linux:*:* | hppa64:Linux:*:*)
-+      echo hppa64-unknown-linux-gnu
-+      exit ;;
-     parisc:Linux:*:* | hppa:Linux:*:*)
-       # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-@@ -959,9 +946,12 @@
-         *)    echo hppa-unknown-linux-gnu ;;
-       esac
-       exit ;;
--    parisc64:Linux:*:* | hppa64:Linux:*:*)
--      echo hppa64-unknown-linux-gnu
-+    ppc64:Linux:*:*)
-+      echo powerpc64-unknown-linux-gnu
-       exit ;;
-+    ppc:Linux:*:*)
-+      echo powerpc-unknown-linux-gnu
-+      exit ;;
-     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
-       exit ;;
-@@ -983,66 +973,6 @@
-     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
--    i*86:Linux:*:*)
--      # The BFD linker knows what the default object file format is, so
--      # first see if it will tell us. cd to the root directory to prevent
--      # problems with other programs or directories called `ld' in the path.
--      # Set LC_ALL=C to ensure ld outputs messages in English.
--      ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
--                       | sed -ne '/supported targets:/!d
--                                  s/[         ][      ]*/ /g
--                                  s/.*supported targets: *//
--                                  s/ .*//
--                                  p'`
--        case "$ld_supported_targets" in
--        elf32-i386)
--              TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
--              ;;
--        a.out-i386-linux)
--              echo "${UNAME_MACHINE}-pc-linux-gnuaout"
--              exit ;;
--        "")
--              # Either a pre-BFD a.out linker (linux-gnuoldld) or
--              # one that does not give us useful --help.
--              echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
--              exit ;;
--      esac
--      # Determine whether the default compiler is a.out or elf
--      eval $set_cc_for_build
--      sed 's/^        //' << EOF >$dummy.c
--      #include <features.h>
--      #ifdef __ELF__
--      # ifdef __GLIBC__
--      #  if __GLIBC__ >= 2
--      LIBC=gnu
--      #  else
--      LIBC=gnulibc1
--      #  endif
--      # else
--      LIBC=gnulibc1
--      # endif
--      #else
--      #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
--      LIBC=gnu
--      #else
--      LIBC=gnuaout
--      #endif
--      #endif
--      #ifdef __dietlibc__
--      LIBC=dietlibc
--      #endif
--EOF
--      eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
--          /^LIBC/{
--              s: ::g
--              p
--          }'`"
--      test x"${LIBC}" != x && {
--              echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
--              exit
--      }
--      test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
--      ;;
-     i*86:DYNIX/ptx:4*:*)
-       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-       # earlier versions are messed up and put the nodename in both
-@@ -1071,7 +1001,7 @@
-     i*86:syllable:*:*)
-       echo ${UNAME_MACHINE}-pc-syllable
-       exit ;;
--    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-     i*86:*DOS:*:*)
-@@ -1115,8 +1045,11 @@
-     pc:*:*:*)
-       # Left here for compatibility:
-         # uname -m prints for DJGPP always 'pc', but it prints nothing about
--        # the processor, so we play safe by assuming i386.
--      echo i386-pc-msdosdjgpp
-+        # the processor, so we play safe by assuming i586.
-+      # Note: whatever this is, it MUST be the same as what config.sub
-+      # prints for the "djgpp" host, or else GDB configury will decide that
-+      # this is a cross-build.
-+      echo i586-pc-msdosdjgpp
-         exit ;;
-     Intel:Mach:3*:*)
-       echo i386-pc-mach3
-@@ -1154,6 +1087,16 @@
-     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-           && { echo i486-ncr-sysv4; exit; } ;;
-+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-+      OS_REL='.3'
-+      test -r /etc/.relid \
-+          && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-+      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+          && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-+      /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-+          && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-+      /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-+          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-@@ -1166,7 +1109,7 @@
-     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
--    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
-     SM[BE]S:UNIX_SV:*:*)
-@@ -1259,6 +1202,16 @@
-     *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-+          i386)
-+              eval $set_cc_for_build
-+              if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-+                    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+                    grep IS_64BIT_ARCH >/dev/null
-+                then
-+                    UNAME_PROCESSOR="x86_64"
-+                fi
-+              fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-@@ -1340,6 +1293,9 @@
-     i*86:rdos:*:*)
-       echo ${UNAME_MACHINE}-pc-rdos
-       exit ;;
-+    i*86:AROS:*:*)
-+      echo ${UNAME_MACHINE}-pc-aros
-+      exit ;;
- esac
- #echo '(No uname command or uname output not recognized.)' 1>&2
-Index: libdecnumber/ChangeLog
+Index: gcc/attribs.c
 ===================================================================
---- libdecnumber/ChangeLog     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libdecnumber/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+--- gcc/attribs.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/attribs.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Functions dealing with attribute handling, used by most front ends.
+    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+-   2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
++   2002, 2003, 2004, 2005, 2007, 2008, 2010 Free Software Foundation, Inc.
+ This file is part of GCC.
  
-       * GCC 4.4.2 released.
+@@ -277,6 +277,7 @@
+       tree *anode = node;
+       const struct attribute_spec *spec = lookup_attribute_spec (name);
+       bool no_add_attrs = 0;
++      int fn_ptr_quals = 0;
+       tree fn_ptr_tmp = NULL_TREE;
+       if (spec == NULL)
+@@ -344,6 +345,7 @@
+                This would all be simpler if attributes were part of the
+                declarator, grumble grumble.  */
+             fn_ptr_tmp = TREE_TYPE (*anode);
++            fn_ptr_quals = TYPE_QUALS (*anode);
+             anode = &fn_ptr_tmp;
+             flags &= ~(int) ATTR_FLAG_TYPE_IN_PLACE;
+           }
+@@ -440,6 +442,8 @@
+         /* Rebuild the function pointer type and put it in the
+            appropriate place.  */
+         fn_ptr_tmp = build_pointer_type (fn_ptr_tmp);
++        if (fn_ptr_quals)
++          fn_ptr_tmp = build_qualified_type (fn_ptr_tmp, fn_ptr_quals);
+         if (DECL_P (*node))
+           TREE_TYPE (*node) = fn_ptr_tmp;
+         else
 Index: gcc/loop-unswitch.c
 ===================================================================
---- gcc/loop-unswitch.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/loop-unswitch.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/loop-unswitch.c        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/loop-unswitch.c        (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1,5 +1,5 @@
  /* Loop unswitching for GNU compiler.
 -   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008
@@ -564,8 +228,8 @@ Index: gcc/loop-unswitch.c
        LABEL_NUSES (label)++;
 Index: gcc/tree-loop-linear.c
 ===================================================================
---- gcc/tree-loop-linear.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-loop-linear.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/tree-loop-linear.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/tree-loop-linear.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1,5 +1,5 @@
  /* Linear Loop transforms
 -   Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
@@ -586,106 +250,10 @@ Index: gcc/tree-loop-linear.c
          continue;
  
        if (dependence_steps_i < dependence_steps_j 
-Index: gcc/doc/tm.texi
-===================================================================
---- gcc/doc/tm.texi    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/doc/tm.texi    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -10149,18 +10149,6 @@
- @samp{#pragma pack()} (that is, a small power of two).
- @end defmac
--@findex #pragma
--@findex pragma
--@defmac HANDLE_PRAGMA_PUSH_POP_MACRO
--Define this macro if you want to support the Win32 style pragmas
--@samp{#pragma push_macro(macro-name-as-string)} and @samp{#pragma
--pop_macro(macro-name-as-string)}.  The @samp{#pragma push_macro(
--macro-name-as-string)} pragma saves the named macro and via
--@samp{#pragma pop_macro(macro-name-as-string)} it will return to the
--previous value.
--@end defmac
--
--
- @defmac DOLLARS_IN_IDENTIFIERS
- Define this macro to control use of the character @samp{$} in
- identifier names for the C family of languages.  0 means @samp{$} is
-Index: gcc/doc/invoke.texi
-===================================================================
---- gcc/doc/invoke.texi        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/doc/invoke.texi        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -7817,6 +7817,7 @@
- compilation.
- @table @gcctabopt
-+@item -Wp,@var{option}
- @opindex Wp
- You can use @option{-Wp,@var{option}} to bypass the compiler driver
- and pass @var{option} directly through to the preprocessor.  If
-@@ -7829,7 +7830,7 @@
- options instead.
- @item -Xpreprocessor @var{option}
--@opindex preprocessor
-+@opindex Xpreprocessor
- Pass @var{option} as an option to the preprocessor.  You can use this to
- supply system-specific preprocessor options which GCC does not know how to
- recognize.
-Index: gcc/tree-ssa-loop-im.c
-===================================================================
---- gcc/tree-ssa-loop-im.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-loop-im.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1767,8 +1767,8 @@
-       name = get_name (TREE_OPERAND (ref, 1));
-       if (!name)
-       name = "F";
--      lsm_tmp_name_add ("_");
-       lsm_tmp_name_add (name);
-+      break;
-     case ARRAY_REF:
-       gen_lsm_tmp_name (TREE_OPERAND (ref, 0));
-Index: gcc/java/jcf-dump.c
-===================================================================
---- gcc/java/jcf-dump.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/java/jcf-dump.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2,7 +2,7 @@
-    Functionally similar to Sun's javap.
-    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
--   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+   2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -1167,7 +1167,7 @@
- version (void)
- {
-   printf ("jcf-dump %s%s\n\n", pkgversion_string, version_string);
--  printf ("Copyright %s 2009 Free Software Foundation, Inc.\n", _("(C)"));
-+  printf ("Copyright %s 2010 Free Software Foundation, Inc.\n", _("(C)"));
-   printf (_("This is free software; see the source for copying conditions.  There is NO\n"
-           "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"));
-   exit (0);
-Index: gcc/java/ChangeLog
-===================================================================
---- gcc/java/ChangeLog (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/java/ChangeLog (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,11 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * jcf-dump.c (version): Update copyright notice dates.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
 Index: gcc/optabs.c
 ===================================================================
---- gcc/optabs.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/optabs.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/optabs.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/optabs.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1,6 +1,6 @@
  /* Expand the basic unary and binary arithmetic operations, for GNU compiler.
     Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
@@ -714,333 +282,75 @@ Index: gcc/optabs.c
                       target, target, 0);
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/DATESTAMP      (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/DATESTAMP      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/DATESTAMP      (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1 +1 @@
--20091015
-+20100311
-Index: gcc/tree-tailcall.c
-===================================================================
---- gcc/tree-tailcall.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-tailcall.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -920,8 +920,10 @@
-       if (!phis_constructed)
-       {
--        /* Ensure that there is only one predecessor of the block.  */
--        if (!single_pred_p (first))
-+        /* Ensure that there is only one predecessor of the block
-+           or if there are existing degenerate PHI nodes.  */
-+        if (!single_pred_p (first)
-+            || !gimple_seq_empty_p (phi_nodes (first)))
-           first = split_edge (single_succ_edge (ENTRY_BLOCK_PTR));
-         /* Copy the args if needed.  */
-Index: gcc/reload.c
-===================================================================
---- gcc/reload.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/reload.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -6096,6 +6096,9 @@
-             PUT_MODE (tem, GET_MODE (x));
-             if (MEM_OFFSET (tem))
-               set_mem_offset (tem, plus_constant (MEM_OFFSET (tem), offset));
-+            if (MEM_SIZE (tem)
-+                && INTVAL (MEM_SIZE (tem)) != (HOST_WIDE_INT) outer_size)
-+              set_mem_size (tem, GEN_INT (outer_size));
-             /* If this was a paradoxical subreg that we replaced, the
-                resulting memory must be sufficiently aligned to allow
-Index: gcc/ipa-cp.c
-===================================================================
---- gcc/ipa-cp.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ipa-cp.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -191,11 +191,33 @@
- static void
- ipcp_update_cloned_node (struct cgraph_node *new_node)
- {
-+  basic_block bb;
-+  gimple_stmt_iterator gsi;
-+
-   /* We might've introduced new direct calls.  */
-   push_cfun (DECL_STRUCT_FUNCTION (new_node->decl));
-   current_function_decl = new_node->decl;
--  rebuild_cgraph_edges ();
-+  FOR_EACH_BB (bb)
-+    for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
-+      {
-+      gimple stmt = gsi_stmt (gsi);
-+      tree decl;
-+
-+      if (is_gimple_call (stmt)
-+          && (decl = gimple_call_fndecl (stmt))
-+          && !cgraph_edge (new_node, stmt))
-+        {
-+          struct cgraph_edge *new_edge;
-+
-+          new_edge = cgraph_create_edge (new_node, cgraph_node (decl), stmt,
-+                                         bb->count,
-+                                         compute_call_stmt_bb_frequency (bb),
-+                                         bb->loop_depth);
-+          new_edge->indirect_call = 1;
-+        }
-+      }
-+
-   /* Indirect inlinng rely on fact that we've already analyzed
-      the body..  */
-   if (flag_indirect_inlining)
-@@ -960,7 +982,9 @@
-       for (cs = node->callers; cs; cs = next)
-         {
-           next = cs->next_caller;
--          if (ipcp_node_is_clone (cs->caller) || !ipcp_need_redirect_p (cs))
-+          if (!cs->indirect_call
-+              && (ipcp_node_is_clone (cs->caller)
-+                  || !ipcp_need_redirect_p (cs)))
-             {
-               gimple new_stmt;
-               gimple_stmt_iterator gsi;
-Index: gcc/tree-scalar-evolution.c
-===================================================================
---- gcc/tree-scalar-evolution.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-scalar-evolution.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2186,8 +2186,19 @@
-       if (CHREC_LEFT (chrec) != op0
-         || CHREC_RIGHT (chrec) != op1)
-       {
-+        unsigned var = CHREC_VARIABLE (chrec);
-+
-+        /* When the instantiated stride or base has an evolution in an
-+           innermost loop, return chrec_dont_know, as this is not a
-+           valid SCEV representation.  In the reduced testcase for
-+           PR40281 we would have {0, +, {1, +, 1}_2}_1 that has no
-+           meaning.  */
-+        if ((tree_is_chrec (op0) && CHREC_VARIABLE (op0) > var)
-+            || (tree_is_chrec (op1) && CHREC_VARIABLE (op1) > var))
-+          return chrec_dont_know;
-+
-         op1 = chrec_convert_rhs (chrec_type (op0), op1, NULL);
--        chrec = build_polynomial_chrec (CHREC_VARIABLE (chrec), op0, op1);
-+        chrec = build_polynomial_chrec (var, op0, op1);
-       }
-       return chrec;
-Index: gcc/rtlanal.c
-===================================================================
---- gcc/rtlanal.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/rtlanal.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -4508,8 +4508,16 @@
-                                          known_x, known_mode, known_ret);
-     case UMOD:
--      /* The result must be <= the second operand.  */
--      return cached_num_sign_bit_copies (XEXP (x, 1), mode,
-+      /* The result must be <= the second operand.  If the second operand
-+       has (or just might have) the high bit set, we know nothing about
-+       the number of sign bit copies.  */
-+      if (bitwidth > HOST_BITS_PER_WIDE_INT)
-+      return 1;
-+      else if ((nonzero_bits (XEXP (x, 1), mode)
-+              & ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
-+      return 1;
-+      else
-+      return cached_num_sign_bit_copies (XEXP (x, 1), mode,
-                                          known_x, known_mode, known_ret);
-     case DIV:
-Index: gcc/mips-tdump.c
+-20100121
++20100328
+Index: gcc/builtins.c
 ===================================================================
---- gcc/mips-tdump.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/mips-tdump.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/builtins.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/builtins.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1,6 +1,6 @@
- /* Read and manage MIPS symbol tables from object modules.
-    Copyright (C) 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
--   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+   2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-    Contributed by hartzell@boulder.colorado.edu,
-    Rewritten by meissner@osf.org.
-@@ -1414,7 +1414,7 @@
-   if (version)
-     {
-       printf ("mips-tdump %s%s\n", pkgversion_string, version_string);
--      fputs ("Copyright (C) 2009 Free Software Foundation, Inc.\n", stdout);
-+      fputs ("Copyright (C) 2010 Free Software Foundation, Inc.\n", stdout);
-       fputs ("This is free software; see the source for copying conditions.  There is NO\n\
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
-              stdout);
-Index: gcc/configure
-===================================================================
---- gcc/configure      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/configure      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -21680,6 +21680,42 @@
- _ACEOF
-+echo "$as_me:$LINENO: checking assembler for cfi sections directive" >&5
-+echo $ECHO_N "checking assembler for cfi sections directive... $ECHO_C" >&6
-+if test "${gcc_cv_as_cfi_sections_directive+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  gcc_cv_as_cfi_sections_directive=no
-+  if test x$gcc_cv_as != x; then
-+    echo '    .text
-+      .cfi_sections .debug_frame, .eh_frame
-+      .cfi_startproc
-+      .cfi_endproc' > 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_cfi_sections_directive=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_cfi_sections_directive" >&5
-+echo "${ECHO_T}$gcc_cv_as_cfi_sections_directive" >&6
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define HAVE_GAS_CFI_SECTIONS_DIRECTIVE `if test $gcc_cv_as_cfi_sections_directive = yes;
-+    then echo 1; else echo 0; fi`
-+_ACEOF
-+
-+
- # GAS versions up to and including 2.11.0 may mis-optimize
- # .eh_frame data.
- echo "$as_me:$LINENO: checking assembler for eh_frame optimization" >&5
-Index: gcc/mips-tfile.c
-===================================================================
---- gcc/mips-tfile.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/mips-tfile.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3,7 +3,7 @@
-    in the form of comments (the mips assembler does not support
-    assembly access to debug information).
-    Copyright (C) 1991, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
--   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ /* Expand builtin functions.
+    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
     Free Software Foundation, Inc.
-    Contributed by Michael Meissner (meissner@cygnus.com).
  
-@@ -4781,7 +4781,7 @@
-   if (version)
+ This file is part of GCC.
+@@ -2275,6 +2275,8 @@
+   /* Before working hard, check whether the instruction is available.  */
+   if (icode != CODE_FOR_nothing)
      {
-       printf (_("mips-tfile %s%s\n"), pkgversion_string, version_string);
--      fputs ("Copyright (C) 2009 Free Software Foundation, Inc.\n", stdout);
-+      fputs ("Copyright (C) 2010 Free Software Foundation, Inc.\n", stdout);
-       fputs (_("This is free software; see the source for copying conditions.  There is NO\n\
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
-            stdout);
-Index: gcc/builtins.c
-===================================================================
---- gcc/builtins.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/builtins.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -151,7 +151,7 @@
- static tree fold_builtin_constant_p (tree);
- static tree fold_builtin_expect (tree, tree);
- static tree fold_builtin_classify_type (tree);
--static tree fold_builtin_strlen (tree);
-+static tree fold_builtin_strlen (tree, tree);
- static tree fold_builtin_inf (tree, int);
- static tree fold_builtin_nan (tree, tree, int);
- static tree rewrite_call_expr (tree, int, tree, int, ...);
-@@ -3712,7 +3712,15 @@
- {
-   tree result = fold_builtin_strcpy (fndecl, dest, src, 0);
-   if (result)
--    return expand_expr (result, target, mode, EXPAND_NORMAL);
-+    {
-+      while (TREE_CODE (result) == COMPOUND_EXPR)
-+      {
-+        expand_expr (TREE_OPERAND (result, 0), const0_rtx, VOIDmode,
-+                     EXPAND_NORMAL);
-+        result = TREE_OPERAND (result, 1);
-+      }
-+      return expand_expr (result, target, mode, EXPAND_NORMAL);
-+    }
-   return expand_movstr (dest, src, target, /*endp=*/0);
- }
-@@ -7351,7 +7359,7 @@
- /* Fold a call to __builtin_strlen with argument ARG.  */
- static tree
--fold_builtin_strlen (tree arg)
-+fold_builtin_strlen (tree type, tree arg)
- {
-   if (!validate_arg (arg, POINTER_TYPE))
-     return NULL_TREE;
-@@ -7360,12 +7368,7 @@
-       tree len = c_strlen (arg, 0);
-       if (len)
--      {
--        /* Convert from the internal "sizetype" type to "size_t".  */
--        if (size_type_node)
--          len = fold_convert (size_type_node, len);
--        return len;
--      }
-+      return fold_convert (type, len);
++      rtx last = get_last_insn ();
++      tree orig_arg = arg;
+       /* Make a suitable register to place result in.  */
+       if (!target
+         || GET_MODE (target) != TYPE_MODE (TREE_TYPE (exp)))
+@@ -2295,8 +2297,10 @@
+       /* Compute into TARGET.
+        Set TARGET to wherever the result comes back.  */
+-      emit_unop_insn (icode, target, op0, UNKNOWN);
+-      return target;
++      if (maybe_emit_unop_insn (icode, target, op0, UNKNOWN))
++      return target;
++      delete_insns_since (last);
++      CALL_EXPR_ARG (exp, 0) = orig_arg;
+     }
  
-       return NULL_TREE;
+   /* If there is no optab, try generic code.  */
+@@ -2987,7 +2991,10 @@
+         && ((flag_unsafe_math_optimizations
+              && optimize_insn_for_speed_p ()
+              && powi_cost (n/2) <= POWI_MAX_MULTS)
+-            || n == 1))
++            /* Even the c==0.5 case cannot be done unconditionally
++               when we need to preserve signed zeros, as
++               pow (-0, 0.5) is +0, while sqrt(-0) is -0.  */
++            || (!HONOR_SIGNED_ZEROS (mode) && n == 1)))
+       {
+         tree call_expr = build_call_expr (fn, 1, narg0);
+         /* Use expand_expr in case the newly built call expression
+@@ -5834,9 +5841,11 @@
+   icode = signbit_optab->handlers [(int) fmode].insn_code;
+   if (icode != CODE_FOR_nothing)
+     {
++      rtx last = get_last_insn ();
+       target = gen_reg_rtx (TYPE_MODE (TREE_TYPE (exp)));
+-      emit_unop_insn (icode, target, temp, UNKNOWN);
+-      return target;
++      if (maybe_emit_unop_insn (icode, target, temp, UNKNOWN))
++      return target;
++      delete_insns_since (last);
      }
-@@ -10126,7 +10129,7 @@
-       return fold_builtin_classify_type (arg0);
-     case BUILT_IN_STRLEN:
--      return fold_builtin_strlen (arg0);
-+      return fold_builtin_strlen (type, arg0);
-     CASE_FLT_FN (BUILT_IN_FABS):
-       return fold_builtin_fabs (arg0, type);
-Index: gcc/gcc.c
-===================================================================
---- gcc/gcc.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/gcc.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3642,7 +3642,7 @@
-         /* translate_options () has turned --version into -fversion.  */
-         printf (_("%s %s%s\n"), programname, pkgversion_string,
-                 version_string);
--        printf ("Copyright %s 2009 Free Software Foundation, Inc.\n",
-+        printf ("Copyright %s 2010 Free Software Foundation, Inc.\n",
-                 _("(C)"));
-         fputs (_("This is free software; see the source for copying conditions.  There is NO\n\
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
-Index: gcc/fold-const.c
-===================================================================
---- gcc/fold-const.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fold-const.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -328,13 +328,17 @@
-   HOST_WIDE_INT h;
-   l = l1 + l2;
--  h = h1 + h2 + (l < l1);
-+  h = (HOST_WIDE_INT) ((unsigned HOST_WIDE_INT) h1
-+                     + (unsigned HOST_WIDE_INT) h2
-+                     + (l < l1));
-   *lv = l;
-   *hv = h;
-   if (unsigned_p)
--    return (unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1;
-+    return ((unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1
-+          || (h == h1
-+              && l < l1));
-   else
-     return OVERFLOW_SUM_SIGN (h1, h2, h);
- }
+   /* For floating point formats without a sign bit, implement signbit
 Index: gcc/omp-low.c
 ===================================================================
---- gcc/omp-low.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/omp-low.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/omp-low.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/omp-low.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -4606,7 +4606,7 @@
    l2_bb = region->exit;
    if (exit_reachable)
@@ -1050,154 +360,129 @@ Index: gcc/omp-low.c
        l2 = gimple_block_label (l2_bb);
        else
        {
-@@ -6790,6 +6790,27 @@
-       wi->info = context;
-       break;
-+    case GIMPLE_COND:
-+      {
-+        tree lab = gimple_cond_true_label (stmt);
-+        if (lab)
-+          {
-+            n = splay_tree_lookup (all_labels,
-+                                   (splay_tree_key) lab);
-+            diagnose_sb_0 (gsi_p, context,
-+                           n ? (gimple) n->value : NULL);
-+          }
-+        lab = gimple_cond_false_label (stmt);
-+        if (lab)
-+          {
-+            n = splay_tree_lookup (all_labels,
-+                                   (splay_tree_key) lab);
-+            diagnose_sb_0 (gsi_p, context,
-+                           n ? (gimple) n->value : NULL);
-+          }
-+      }
-+      break;
-+
-     case GIMPLE_GOTO:
-       {
-       tree lab = gimple_goto_dest (stmt);
-Index: gcc/objc/ChangeLog
-===================================================================
---- gcc/objc/ChangeLog (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/objc/ChangeLog (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: gcc/gcov.c
-===================================================================
---- gcc/gcov.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/gcov.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,7 @@
- /* Gcov.c: prepend line execution counts and branch probabilities to a
-    source file.
-    Copyright (C) 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999,
--   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by James E. Wilson of Cygnus Support.
-    Mangled by Bob Manson of Cygnus Support.
-@@ -426,7 +426,7 @@
- print_version (void)
- {
-   fnotice (stdout, "gcov %s%s\n", pkgversion_string, version_string);
--  fprintf (stdout, "Copyright %s 2009 Free Software Foundation, Inc.\n",
-+  fprintf (stdout, "Copyright %s 2010 Free Software Foundation, Inc.\n",
-          _("(C)"));
-   fnotice (stdout,
-          _("This is free software; see the source for copying conditions.\n"
-Index: gcc/vmsdbgout.c
-===================================================================
---- gcc/vmsdbgout.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/vmsdbgout.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -166,6 +166,7 @@
- static void vmsdbgout_init (const char *);
- static void vmsdbgout_finish (const char *);
-+static void vmsdbgout_assembly_start (void);
- static void vmsdbgout_define (unsigned int, const char *);
- static void vmsdbgout_undef (unsigned int, const char *);
- static void vmsdbgout_start_source_file (unsigned int, const char *);
-@@ -188,6 +189,7 @@
- const struct gcc_debug_hooks vmsdbg_debug_hooks
- = {vmsdbgout_init,
-    vmsdbgout_finish,
-+   vmsdbgout_assembly_start,
-    vmsdbgout_define,
-    vmsdbgout_undef,
-    vmsdbgout_start_source_file,
-@@ -1636,6 +1638,15 @@
- /* Not implemented in VMS Debug.  */
- static void
-+vmsdbgout_assembly_start (void)
-+{
-+  if (write_symbols == VMS_AND_DWARF2_DEBUG)
-+    (*dwarf2_debug_hooks.assembly_start) ();
-+}
-+
-+/* Not implemented in VMS Debug.  */
-+
-+static void
- vmsdbgout_define (unsigned int lineno, const char *buffer)
- {
-   if (write_symbols == VMS_AND_DWARF2_DEBUG)
-Index: gcc/debug.c
-===================================================================
---- gcc/debug.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/debug.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -27,6 +27,7 @@
- {
-   debug_nothing_charstar,
-   debug_nothing_charstar,
-+  debug_nothing_void,
-   debug_nothing_int_charstar,
-   debug_nothing_int_charstar,
-   debug_nothing_int_charstar,
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/DEV-PHASE      (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/DEV-PHASE      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/DEV-PHASE      (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -0,0 +1 @@
 +prerelease
-Index: gcc/debug.h
-===================================================================
---- gcc/debug.h        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/debug.h        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -31,6 +31,10 @@
-   /* Output debug symbols.  */
-   void (* finish) (const char *main_filename);
-+  /* Called from cgraph_optimize before starting to assemble
-+     functions/variables/toplevel asms.  */
-+  void (* assembly_start) (void);
-+
-   /* Macro defined on line LINE with name and expansion TEXT.  */
-   void (* define) (unsigned int line, const char *text);
-Index: gcc/cgraphunit.c
-===================================================================
---- gcc/cgraphunit.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cgraphunit.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1293,6 +1293,7 @@
-   timevar_pop (TV_CGRAPHOPT);
-   /* Output everything.  */
-+  (*debug_hooks->assembly_start) ();
-   if (!quiet_flag)
-     fprintf (stderr, "Assembling functions:\n");
- #ifdef ENABLE_CHECKING
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,1038 @@
+--- gcc/ChangeLog      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,381 @@
++2010-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++
++      Backport:
++      2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
++                  Janis Johnson  <janis187@us.ibm.com>
++
++      PR target/39254
++      * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
++      for the symbol ref of a constant that is the source of a move
++      - nor for any other not-obvious-label-ref constants.
++
++2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
++
++      PR target/42113
++      * config/alpha/alpha.md (*cmp_sadd_si): Change mode
++      of scratch register to DImode.  Split to DImode comparison operator.
++      Use SImode subreg of scratch register in the multiplication.
++      (*cmp_sadd_sidi): Ditto.
++      (*cmp_ssub_si): Ditto.
++      (*cmp_ssub_sidi): Ditto.
++
++2010-03-27  Joseph Myers  <joseph@codesourcery.com>
++
++      PR c/43381
++      * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
++      nested binding iff it is a FUNCTION_DECL.
++      (store_parm_decls_newstyle): Pass nested=true to bind for
++      FUNCTION_DECLs amongst parameters.
++
++2010-03-25  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c/43385
++      * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
++      argument if the argument is truth_value_p.
++
++2010-03-23  Kaz Kojima  <kkojima@gcc.gnu.org>
++
++      Backport from mainline:
++      2010-01-08  DJ Delorie  <dj@redhat.com>
++
++      * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
++      register popping order.
++
++2010-03-22  James E. Wilson  <wilson@codesourcery.com>
++
++      PR target/43348
++      * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
++      call_value_gp,sibcall_gp): Use 's' constraint not 'i'.
++
++2010-03-22  Richard Guenther  <rguenther@suse.de>
++
++      Backport from mainline:
++      2010-03-19  Richard Guenther  <rguenther@suse.de>
++
++      PR tree-optimization/43415
++      * tree-ssa-pre.c (phi_translate): Split out worker to ...
++      (phi_translate_1): ... this.
++      (phi_translate): Move all caching here.  Cache all NARY
++      and REFERENCE translations.
++
++2010-03-22  Jakub Jelinek  <jakub@redhat.com>
++
++      Backport from mainline:
++      2010-03-20  Richard Guenther  <rguenther@suse.de>
++
++      PR rtl-optimization/43438
++      * combine.c (make_extraction): Properly zero-/sign-extend an
++      extraction of the low part of a CONST_INT.  Also handle
++      CONST_DOUBLE.
++
++      2010-03-19  Michael Matz  <matz@suse.de>
++
++      PR c++/43116
++      * attribs.c (decl_attributes): When rebuilding a function pointer
++      type use the same qualifiers as the original pointer type.
++
++      PR target/43305
++      * builtins.c (expand_builtin_interclass_mathfn,
++      expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
++      if that fails.
++
++      2010-03-18  Michael Matz  <matz@suse.de>
++
++      PR middle-end/43419
++      * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
++      into sqrt(x) if we need to preserve signed zeros.
++
++2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
++
++      PR middle-end/42718
++      * pa.md (movmemsi): Set align to one if zero.
++      (movmemdi): Likewise.
++
++2010-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>
++
++      Backport from mainline:
++      2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
++
++      PR target/43417
++      * config/sh/sh.md (cbranchdi4_i): Use an "I08" constraint
++      instead of "i" constraint.
++
++2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
++
++      Backport from mainline:
++      2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
++                  Eric Botcazou  <ebotcazou@adacore.com>
++
++      PR rtl-optimization/43360
++      * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
++      note if we don't know its invariant status.
++
 +2010-03-08  Jakub Jelinek  <jakub@redhat.com>
 +
 +      Backport from mainline:
@@ -1464,27902 +749,10301 @@ Index: gcc/ChangeLog
 +      * BASE-VER: Set to 4.4.4.
 +      * DEV-PHASE: Set to prerelease.
 +
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2010-01-20  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/41826
-+      * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
-+      access to re-allocated vector fields.
-+
-+2010-01-20  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * dwarf2out.c (loc_descriptor_from_tree_1): Don't handle unsigned
-+      division.  Handle signed modulo using DW_OP_{over,over,div,mul,minus}.
-+      * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
-+      modulo instead of signed.
-+
-+      PR middle-end/42803
-+      * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
-+      argument, call initializer_constant_valid_p_1 instead of
-+      initializer_constant_valid_p, pass CACHE to it, return NULL
-+      immediately if first call returns NULL.
-+      (initializer_constant_valid_p_1): New function.
-+      (initializer_constant_valid_p): Use it.
+ 2010-01-21  Release Manager
+       * GCC 4.4.3 released.
+@@ -108,9 +486,9 @@
+       * Backport from mainline
+       2010-01-12  Julian Brown  <julian@codesourcery.com>
+-        * config/arm/neon-schedgen.ml (Utils): Don't try to
++      * config/arm/neon-schedgen.ml (Utils): Don't try to
+       open missing module.
+-        (find_with_result): New.
++      (find_with_result): New.
+ 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
+Index: gcc/testsuite/gcc.c-torture/execute/pr43438.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr43438.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr43438.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,23 @@
++extern void abort (void);
 +
-+2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
++static unsigned char g_2 = 1;
++static int g_9;
++static int *l_8 = &g_9;
 +
-+      PR target/42774
-+      * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
-+      memory references with unaligned offsets.  Remove CQImode handling.
-+      (unaligned_memory_operand): Return 1 for memory references with
-+      unaligned offsets.  Remove CQImode handling.
++static void func_12(int p_13)
++{
++  int * l_17 = &g_9;
++  *l_17 &= 0 < p_13;
++}
 +
-+2010-01-17  H.J. Lu  <hongjiu.lu@intel.com>
++int main(void)
++{
++  unsigned char l_11 = 254;
++  *l_8 |= g_2;
++  l_11 |= *l_8;
++  func_12(l_11);
++  if (g_9 != 1)
++    abort ();
++  return 0;
++} 
 +
-+      Backport from mainline:
-+      2010-01-13  Steve Ellcey  <sje@cup.hp.com>
+Index: gcc/testsuite/gcc.c-torture/execute/pr43269.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr43269.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr43269.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,31 @@
++int g_21;
++int g_211;
++int g_261;
 +
-+      PR target/42542
-+      * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
-+      for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
-+      them signed.
++static void __attribute__((noinline,noclone))
++func_32 (int b)
++{
++  if (b) {
++lbl_370:
++      g_21 = 1;
++  }
 +
-+2010-01-17  Richard Guenther  <rguenther@suse.de>
++  for (g_261 = -1; g_261 > -2; g_261--) {
++      if (g_211 + 1) {
++        return;
++      } else {
++        g_21 = 1;
++        goto lbl_370;
++      }
++  }
++}
 +
-+      PR tree-optimization/42773
-+      * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
-+      (compute_antic_aux): Likewise.
-+      (compute_partial_antic_aux): Likewise.
++extern void abort (void);
 +
-+2010-01-16  Jakub Jelinek  <jakub@redhat.com>
++int main(void)
++{
++  func_32(0);
++  if (g_261 != -1)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/execute/pr43220.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr43220.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr43220.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,28 @@
++void *volatile p;
 +
-+      PR middle-end/42760
-+      Backport from trunk
-+      2009-06-17  Steve Ellcey  <sje@cup.hp.com>
-+
-+      * expr.c (expand_assignment): Change complex type check.
-+
-+2010-01-15  Jing Yu  <jingyu@google.com>
-+
-+      PR rtl-optimization/42691
-+      * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
-+      a pseudo to a constant and are merged, and adjust comments.
-+
-+2010-01-15  Richard Guenther  <rguenther@suse.de>
-+
-+      * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/42674
-+      * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
-+      functions with noreturn attribute.
-+
-+      PR c++/42608
-+      * varasm.c (declare_weak): Add weak attribute to decl if it
-+      doesn't have one already.
-+      (assemble_external): Only add decls to weak_decls if they also
-+      have weak attribute.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c/42721
-+      Port from no-undefined-overflow branch
-+      2009-03-09  Richard Guenther  <rguenther@suse.de>
-+
-+      * fold-const.c (add_double_with_sign): Fix unsigned overflow
-+      detection.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      Backport from mainline
-+      2010-01-10  Richard Guenther  <rguenther@suse.de>
-+
-+      PR middle-end/42667
-+      * builtins.c (fold_builtin_strlen): Add type argument and
-+      convert the resulting length to it.
-+      (fold_builtin_1): Adjust.
-+
-+2010-01-13  Sebastian Pop  <sebastian.pop@amd.com>
-+
-+      PR middle-end/40281
-+      * tree-scalar-evolution.c (instantiate_scev_1): Base and stride
-+      evolutions should not variate in inner loops.
-+
-+2010-01-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      * Backport from mainline
-+      2010-01-12  Julian Brown  <julian@codesourcery.com>
-+
-+      * config/arm/neon-schedgen.ml (Utils): Don't try to
-+      open missing module.
-+      (find_with_result): New.
-+
-+2010-01-12  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/42662
-+      * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
-+      sharing when canonicalizing ({lt,ge}u (plus a b) b).
-+
-+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * gcc.c (process_command): Update copyright notice dates.
-+      * gcov.c (print_version): Likewise.
-+      * gcov-dump.c (print_version): Likewise.
-+      * mips-tfile.c (main): Likewise.
-+      * mips-tdump.c (main): Likewise.
-+
-+2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline
-+      2010-01-05  Paolo Bonzini  <bonzini@gnu.org>
-+                  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR target/42542
-+      * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
-+      for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
-+      operands to make them signed.
-+
-+2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
-+
-+      PR target/42511
-+      * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
-+      note itself is not function_invariant_p.
-+
-+2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      PR target/42564
-+      * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
-+      * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
-+      (legitimize_tls_address): Likewise.
-+      (sparc_tls_referenced_p): Likewise.
-+      * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
-+      and adjust calls to legitimize_pic_address.
-+      (legitimate_constant_p) Use sparc_tls_referenced_p.
-+      (legitimate_pic_operand_p): Likewise.
-+      (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
-+      (sparc_tls_symbol_ref_1): Delete.
-+      (sparc_tls_referenced_p): Make static, recognize specific patterns.
-+      (legitimize_tls_address): Make static, handle CONST patterns.
-+      (legitimize_pic_address): Make static, remove unused parameter and
-+      adjust recursive calls.
-+      (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
-+      and adjust call to legitimize_pic_address.
-+      (sparc_output_mi_thunk): Likewise.
-+
-+2010-01-05  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/42614
-+      * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
-+      Compute SMT aliases before symbol aliases.
-+
-+2010-01-05  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR other/42611
-+      * cfgexpand.c (expand_one_var): Diagnose too large variables.
-+
-+2010-01-04  Mikael Pettersson  <mikpe@it.uu.se>
-+
-+      PR target/42503
-+
-+      Backport from mainline:
-+
-+      2009-09-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
-+      New variables.
-+      (SHLIB_LINK, SHLIB_INSTALL): Use them.
-+      * config/t-slibgcc-libgcc: New file.
-+
-+      2009-10-19  Matthias Klose  <doko@ubuntu.com>
-+
-+      PR target/40134
-+      * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
-+
-+2010-01-04  Ira Rosen  <irar@il.ibm.com>
-+
-+      PR tree-optimization/41956
-+      * tree-vect-analyze.c (vect_supported_load_permutation_p): Add check
-+      that the load indices differ.
-+
-+2010-01-02  Richard Guenther  <rguenther@suse.de>
-+
-+      Backport from mainline
-+      2009-12-10  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/42337
-+      * tree-ssa-pre.c (seen_during_translate): Remove.
-+      (phi_translate_1): Collapse into ...
-+      (phi_translate): ... this.  Remove seen parameter and
-+      adjust recursive calls.
-+
-+2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/42448
-+      * config/alpha/predicates.md (aligned_memory_operand): Return false
-+      for CQImode.
-+      (unaligned_memory_operand): Return true for CQImode.
-+      * config/alpha/alpha.c (get_aligned_mem): Assert that location
-+      doesn not cross aligned SImode word boundary.
-+
-+2009-12-30  Ian Lance Taylor  <iant@google.com>
-+
-+      PR middle-end/42099
-+      * expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more
-+      than HOST_BITS_PER_WIDE_INT.
-+
-+2009-12-30  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/42549
-+      * config/i386/mmx.md (*mmx_subv2sf3): Fix insn operand number for
-+      alternative 1.
-+
-+2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR middle-end/41344
-+      * omp-low.c (diagnose_sb_2): Handle GIMPLE_COND.
-+
-+2009-12-27  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42231
-+      * ipa-cp.c (ipcp_update_cloned_node): Add missing edges manually
-+      instead of relying on rebuild_cgraph_edges and mark them as
-+      indirect calls.
-+      (ipcp_update_callgraph): Always redirect indirect edges.
-+
-+2009-12-23  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR rtl-optimization/42475
-+      * combine.c (make_compound_operation) <case SUBREG>: Use mode of
-+      SUBREG_REG (x) instead of tem's mode.
-+
-+2009-12-21  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR rtl-optimization/42429
-+      * reload.c (find_reloads_subreg_address): When adjusting mode of
-+      MEM, update also MEM_SIZE if it is set.
-+
-+2009-12-17  Dave Korn  <dave.korn.cygwin@gmail.com>
-+
-+      * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
-+
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      PR target/42263
-+      Backport from mainline
-+
-+      2009-12-03  Richard Earnshaw  <rearnsha@arm.com>
-+
-+      * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
-+      before the lock release.
-+
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      PR target/42263
-+      2009-08-11  Andrew Haley  <aph@redhat.com>
-+      * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
-+
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      PR target/41196
-+      2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
-+
-+      * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
-+
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      2009-10-05  Doug Kwan  <dougkwan@google.com>
-+
-+      PR rtl-optimization/41574
-+      * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
-+      floating point and we are not doing unsafe math optimizations.
-+
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      PR target/41939
-+      Backport from mainline:
-+      2009-06-05  Julian Brown  <julian@codesourcery.com>
++int
++main (void)
++{
++  int n = 0;
++lab:;
++    {
++      int x[n % 1000 + 1];
++      x[0] = 1;
++      x[n % 1000] = 2;
++      p = x;
++      n++;
++    }
 +
-+      * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
-+      * config/arm/ieee754-sf.S (cmpsf2): Likewise.
++    {
++      int x[n % 1000 + 1];
++      x[0] = 1;
++      x[n % 1000] = 2;
++      p = x;
++      n++;
++    }
 +
-+2009-12-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
++  if (n < 1000000)
++    goto lab;
 +
-+      * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
++  return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/execute/pr43385.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr43385.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr43385.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,59 @@
++/* PR c/43385 */
 +
-+2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
++extern void abort (void);
 +
-+      * config/i386/i386.md (*iorqi_ext_2): Fix insn mnemonic typo.
++int e;
 +
-+2009-12-06  Richard Henderson  <rth@redhat.com>
++__attribute__((noinline)) void
++foo (int x, int y)
++{
++  if (__builtin_expect (x, 0) && y != 0)
++    e++;
++}
 +
-+      * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
-+      argument earlier.
++__attribute__((noinline)) int
++bar (int x, int y)
++{
++  if (__builtin_expect (x, 0) && y != 0)
++    return 1;
++  else
++    return 0;
++}
 +
-+2009-12-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
++int
++main (void)
++{
++  int z = 0;
++  asm ("" : "+r" (z));
++  foo (z + 2, z + 1);
++  if (e != 1)
++    abort ();
++  foo (z + 2, z);
++  if (e != 1)
++    abort ();
++  foo (z + 1, z + 1);
++  if (e != 2)
++    abort ();
++  foo (z + 1, z);
++  if (e != 2)
++    abort ();
++  foo (z, z + 1);
++  if (e != 2)
++    abort ();
++  foo (z, z);
++  if (e != 2)
++    abort ();
++  if (bar (z + 2, z + 1) != 1)
++    abort ();
++  if (bar (z + 2, z) != 0)
++    abort ();
++  if (bar (z + 1, z + 1) != 1)
++    abort ();
++  if (bar (z + 1, z) != 0)
++    abort ();
++  if (bar (z, z + 1) != 0)
++    abort ();
++  if (bar (z, z) != 0)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/execute/pr43008.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr43008.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr43008.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,23 @@
++int i;
++struct X {
++  int *p;
++};
++struct X * __attribute__((malloc))
++my_alloc (void)
++{
++  struct X *p = __builtin_malloc (sizeof (struct X));
++  p->p = &i;
++  return p;
++}
++extern void abort (void);
++int main()
++{
++  struct X *p, *q;
++  p = my_alloc ();
++  q = my_alloc ();
++  *(p->p) = 1;
++  *(q->p) = 0;
++  if (*(p->p) != 0)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/execute/pr42248.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr42248.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr42248.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,27 @@
++typedef struct {
++  _Complex double a;
++  _Complex double b;
++} Scf10;
 +
-+      Backport from mainline:
++Scf10 g1s;
 +
-+      2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
-+
-+      * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
-+      (spu_split_load, spu_split_store): Change return type to int.
-+      (spu_split_convert): Declare.
-+      * config/spu/predicates.md (spu_mem_operand): Remove.
-+      (spu_mov_operand): Update.
-+      (spu_dest_operand, shiftrt_operator, extend_operator): Define.
-+      * config/spu/spu.c (regno_aligned_for_load): Remove.
-+      (reg_aligned_for_addr, spu_expand_load): Define.
-+      (spu_expand_extv): Reimplement and handle MEM.
-+      (spu_expand_insv): Handle MEM.
-+      (spu_sched_reorder): Handle insn's with length 0.
-+      (spu_legitimate_address): Reimplement.
-+      (store_with_one_insn_p): Return TRUE for any mode with size
-+      larger than 16 bytes.
-+      (address_needs_split): Define.
-+      (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
-+      operands.
-+      (spu_convert_move): Define.
-+      (spu_split_load): Use spu_expand_load and change all MEM's to
-+      TImode.
-+      (spu_split_store): Change all MEM's to TImode.
-+      (spu_init_expanders): Preallocate registers that correspond to
-+      LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
-+      mark_reg_pointer.
-+      (spu_split_convert): Define.
-+      * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
-+      (_move<mode>, _movdi, _movti): Update predicate and condition.
-+      (load, store): Change to define_split.
-+      (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
-+      extend<mode>ti2.
-+      (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
-+      (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
-+      define_insn_and_split of lshr<mode>3.
-+      (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
-+      (<v>ashr<mode>3_imm): Define.
-+      (extv, extzv, insv): Allow MEM operands.
-+      (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
-+      shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
-+      sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
-+      (_spu_convert2): Change to define_insn_and_split and remove the
-+      corresponding define_peephole2.
-+      (stack_protect_set, stack_protect_test, stack_protect_test_si):
-+      Change predicates to memory_operand.
-+
-+      2009-04-27  Trevor Smigiel <trevor_smigiel@playstation.sony.com>
-+
-+      * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
-+      instruction is correct.
-+
-+      2009-04-27  Trevor Smigiel <trevor_smigiel@playstation.sony.com>
-+
-+      Allow non-constant arguments to conversion intrinsics.
-+      * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
-+      * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
-+      * spu.c (print_operand): Handle 'v' and 'w'.
-+      (exp2_immediate_p, spu_gen_exp2): Define.
-+      * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
-+      spu_convtf_1): Update parameter descriptions.
-+      * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu):
-+      Update.
-+      * constraints.md ('v', 'w'): New.
-+      * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
-+      Remove.
-+      (i2f, I2F): New define_mode_attr.
-+      (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
-+      floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
-+      fixuns_truncv4sfv4si2):  Update to use mode attribute.
-+      (float<mode><i2f>2_mul, float<mode><i2f>2_div,
-+      fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
-+      floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
-+      patterns for combine.
-+
-+2009-12-03  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/42049
-+      * builtins.c (expand_builtin_strcpy_args): Handle COMPOUND_EXPRs
-+      potentially returned from folding strcpy.
-+
-+2009-12-02  Chao-ying Fu  <fu@mips.com>
-+
-+      Backport from mainline
-+      2009-11-30  Chao-ying Fu  <fu@mips.com>
-+
-+      * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
-+
-+2009-12-02  Richard Earnshaw  <rearnsha@arm.com>
-+
-+      * arm/thumb2.md (thumb_andsi_not_shiftsi_si): Final condition should
-+      be TARGET_THUMB2.
-+
-+2009-12-01  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42234
-+      * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
-+      contains no statements.
-+
-+2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
-+
-+      * config/s390/s390.c (last_scheduled_insn): New variable.
-+      (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
-+      functions.
-+      (s390_sched_reorder, s390_sched_variable_issue): New functions.
-+      (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
-+      defined.
-+
-+2009-11-27  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * opts.c (decode_options): If optimize is bigger than 255,
-+      set it to 255.
-+
-+2009-11-25  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR target/42165
-+      * config/i386/i386.c (print_operand): For 32-byte memory use
-+      YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
-+      * config/i386/i386.md (crc32modesuffix): Expand to nothing
-+      in -masm=intel mode.
-+      (sse4_2_crc32di): Print just crc32 instead of crc32q in
-+      -masm=intel mode.
-+      * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
-+      memory operand in -masm=intel mode.
-+      * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
-+      *sse2_pinsrw): Likewise.
-+      (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
-+      q suffix in -masm=intel mode.
-+
-+2009-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-+
-+      * pa.c (output_call): Only use sr4 for long interspace calls if
-+      call binds local and generating non PIC code.
-+      (attr_length_call): Adjust length calculation for above.
-+
-+2009-11-24  Wolfgang Gellerich  <gellerich@de.ibm.com>
-+
-+      * config/s390/s390.md: Added agen condition to operand
-+      forwarding bypasses.
-+      Added bypass for early address generation use of int results.
-+      Updated comments.
++void
++check (Scf10 x, _Complex double y)
++{
++  if (x.a != y) __builtin_abort ();
++}
 +
-+2009-11-23  Uros Bizjak  <ubizjak@gmail.com>
++void
++init (Scf10 *p, _Complex double y)
++{
++  p->a = y;
++}
 +
-+      PR target/42113
-+      * config/alpha/alpha.md (*cmp_sadd_si): Change mode
-+      of scratch register to SImode.
-+      (*cmp_sadd_sidi): Ditto.
-+      (*cmp_ssub_si): Ditto.
-+      (*cmp_ssub_sidi): Ditto.
++int
++main ()
++{
++  init (&g1s, (_Complex double)1);
++  check (g1s, (_Complex double)1);
 +
-+2009-11-18  Matthias Klose  <doko@ubuntu.com>
++  return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/execute/20100209-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/20100209-1.c   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/20100209-1.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,12 @@
++int bar(int foo)
++{
++  return (int)(((unsigned long long)(long long)foo) / 8);
++}
++extern void abort (void);
++int main()
++{
++  if (sizeof (long long) > sizeof (int)
++      && bar(-1) != -1)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/execute/pr42512.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr42512.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr42512.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,13 @@
++extern void abort (void);
 +
-+      * config.gcc: Update ARM --with-fpu option list.
++short g_3;
 +
-+2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
++int main (void)
++{
++    int l_2;
++    for (l_2 = -1; l_2 != 0; l_2 = (unsigned char)(l_2 - 1))
++      g_3 |= l_2;
++    if (g_3 != -1)
++      abort ();
++    return 0;
++}
+Index: gcc/testsuite/gcc.c-torture/compile/20000804-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/20000804-1.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.c-torture/compile/20000804-1.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,8 +1,7 @@
+ /* This does not work on m68hc11 or h8300 due to the use of an asm
+    statement to force a 'long long' (64-bits) to go in a register.  */
+ /* { dg-do assemble } */
+-/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
+-/* { dg-skip-if "PIC default" { { i?86-*-darwin*  x86_64-*-darwin* } && ilp32 } { "*" } { "" } } */
++/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */
+ /* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */
+ /* { dg-xfail-if "" { m6811-*-* m6812-*-* h8300-*-* } { "*" } { "" } } */
+Index: gcc/testsuite/gcc.c-torture/compile/pr42703.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42703.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42703.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,12 @@
++__extension__ typedef unsigned long long int uint64_t;
++typedef uint64_t ScmUInt64;
++void swapb64(ScmUInt64 *loc) 
++{
++    union {
++        ScmUInt64 l;
++        unsigned char c[4];
++    } dd;
++    unsigned char t;
++    dd.l = *loc;
++    (t = dd.c[3], dd.c[3] = dd.c[4], dd.c[4] = t);
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr42730.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42730.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42730.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++union bzz
++{
++  unsigned *pa;
++  void *pv;
++};
 +
-+      * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
-+      registers in leaf functions if possible.
-+
-+2009-11-14  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      * config/i386/predicates.md (call_register_no_elim_operand):
-+      New predicate.  Reject stack register as valid call operand
-+      for 32bit targets.
-+      (call_insn_operand): Use call_register_no_elim_operand.
-+
-+2009-11-13  Richard Henderson  <rth@redhat.com>
-+
-+      * function.c (stack_protect_prologue): Don't bypass expand_expr
-+      for stack_protect_guard and guard_decl.
-+      (stack_protect_epilogue): Likewise.
-+
-+2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/41900
-+      (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): Use "lsm"
-+      as operand 1 constraint.
-+      * config/i386/predicates.md (call_insn_operand): Depend on
-+      index_register_operand to avoid %esp register.
-+
-+2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      Revert:
-+      2009-11-04  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/41900
-+      * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
-+      (TARGET_CALL_ESP): New define.
-+      * config/i386/i386.c (initial_ix86_tune_features): Initialize
-+      X86_ARCH_CALL_ESP.
-+      * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
-+      *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
-+      *call_1, *call_value_pop_1 and *call_value_1.  Depend on
-+      TARGET_CALL_ESP.
-+      (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
-+      New patterns, use "lsm" as operand 1 constraint.
-+      * config/i386/predicates.md (call_insn_operand): Depend on
-+      index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
-+
-+2009-11-13  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/42029
-+      * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
-+      tmp_load if needed.
-+
-+2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
-+
-+      Backported from trunk
-+      * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
-+      * c-pragma.c (def_pragma_macro_value): Likewise.
-+      (def_pragma_macro): Likewise.
-+      (pushed_macro_table): Likewise.
-+      (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
-+      * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
-+
-+2009-11-10  Chao-ying Fu  <fu@mips.com>
-+
-+      Backport from mainline
-+      2009-10-29  Chao-ying Fu  <fu@mips.com>
-+
-+      * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
-+      functions.
-+      (mips_expand_synci_loop):  Use the length rtx to control the
-+      synci loop from the begin rtx that points to the first byte of
-+      the cache line.
-+
-+2009-11-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/40946
-+      Backport from mainline
-+      2009-09-09  Richard Guenther  <rguenther@suse.de>
++void foo (void)
++{
++  union bzz u;
++  void **x;
++  void *y = 0;
++  x = &u.pv;
++  *x = y;
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr42705.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42705.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42705.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,58 @@
++typedef int GLint;
++typedef unsigned char GLubyte;
++typedef unsigned int uint32_t;
++struct radeon_bo {
++    void *ptr;
++    uint32_t flags;
++};
++struct radeon_renderbuffer {
++    struct radeon_bo *bo;
++    unsigned int cpp;
++    int has_surface;
++};
++static inline
++GLint r600_1d_tile_helper(const struct radeon_renderbuffer * rrb,
++                        GLint x, GLint y, GLint is_depth, GLint is_stencil)
++{
++  GLint element_bytes = rrb->cpp;
++  GLint num_samples = 1;
++  GLint tile_width = 8;
++  GLint tile_height = 8;
++  GLint tile_thickness = 1;
++  GLint tile_bytes;
++  GLint tiles_per_row;
++  GLint slice_offset;
++  GLint tile_row_index;
++  GLint tile_column_index;
++  GLint tile_offset;
++  GLint pixel_number = 0;
++  GLint element_offset;
++  GLint offset = 0;
++  tile_bytes = tile_width * tile_height * tile_thickness
++      * element_bytes * num_samples;
++  tile_column_index = x / tile_width;
++  tile_offset = ((tile_row_index * tiles_per_row)
++               + tile_column_index) * tile_bytes;
++  if (is_depth) {
++  }
++  else {
++      GLint sample_offset;
++      switch (element_bytes) {
++        case 1:       pixel_number |= ((x >> 0) & 1) << 0;
++      }
++      element_offset = sample_offset + (pixel_number * element_bytes);
++  }
++  offset = slice_offset + tile_offset + element_offset;
++  return offset;
++}
++GLubyte *r600_ptr_color(const struct radeon_renderbuffer * rrb,
++                      GLint x, GLint y)
++{
++  GLubyte *ptr = rrb->bo->ptr;
++  uint32_t mask = 1 | 2;
++  GLint offset;
++  if (rrb->has_surface || !(rrb->bo->flags & mask)) {
++      offset = r600_1d_tile_helper(rrb, x, y, 0, 0);
++  }
++  return &ptr[offset];
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr42708-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42708-1.c    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42708-1.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,10 @@
++typedef __SIZE_TYPE__ size_t;
++void *malloc(size_t);
++typedef union YYSTYPE {
++    char *id;
++}  YYSTYPE;
++extern YYSTYPE yylval;
++void yylex (int b)
++{
++  yylval = (YYSTYPE) (b ? 0 : (char *) malloc (4));
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr42716.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42716.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42716.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,18 @@
++static short foo (long long si1, short si2)
++{
++  return si1 > 0 && si2 > 0 || si1 < 0
++      && si2 < 0 && si1 < 1 - si2 ? : si1 + si2;
++}
 +
-+      PR middle-end/41317
-+      * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
-+      code dealing with plain pointer bases.
-+      (maybe_fold_offset_to_reference): Likewise.
-+      (maybe_fold_stmt_addition): Adjust.
++int g_13;
++unsigned g_17;
 +
-+2009-11-08  Uros Bizjak  <ubizjak@gmail.com>
++int safe (int, int);
 +
-+      Backport from mainline:
-+      2009-11-06  Michael Matz  <matz@suse.de>
++void bar (short p_51, short * p_52)
++{
++  int *const l_55 = &g_13;
++  if (safe (*p_52, g_13 != foo (*p_52 & *l_55 == g_13 && g_17 >= 1, 0)))
++    {
++    }
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr43367.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43367.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43367.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,30 @@
++unsigned char g_17;
 +
-+      PR middle-end/41963
-+      * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
-+      of a potential reciprocal to really be reciprocals.
++const unsigned char func_39 (unsigned char p_40, unsigned char * p_41)
++{
++  return 0;
++}
 +
-+2009-11-07  Jakub Jelinek  <jakub@redhat.com>
++void int327 (const unsigned char p_48, unsigned char p_49)
++{
++  unsigned l_52;
++  unsigned char l_58[2];
++  int i, j;
++  if (func_39 (l_52, &p_49), p_48) {
++      unsigned char *l_60;
++      unsigned char *l = &l_58[1];
++      for (j; j; j++) {
++lbl_59:
++        break;
++      }
++      for (l = 0; 1; l += 1) {
++        for (p_49 = 1; p_49; p_49 += 0) {
++            unsigned char **l_61[1][6];
++            for (j = 0; j < 1; j++)
++              l_61[i][j] = &l_60;
++            goto lbl_59;
++        }
++      }
++  }
++}
 +
-+      PR tree-optimization/41643
-+      Backport from mainline
-+      2009-04-03  Richard Guenther  <rguenther@suse.de>
+Index: gcc/testsuite/gcc.c-torture/compile/pr42927.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42927.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42927.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,32 @@
++typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
++typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
++typedef enum { READ_SHARED = 0, WRITE_EXCLUSIVE = 1,
++    READ_EXCLUSIVE = 2, EXCLUSIVE_ACCESS = 3 } scsires_access_mode;
++struct scsires_extent_elem {
++    scsires_access_mode mode;
++    unsigned relative_address;
++    u_int32_t first_block;
++    u_int32_t length;
++};
++typedef struct scsires_extent_elem scsires_extent_elem_t;
++struct scsires_extent {
++    u_int8_t num_elements;
++    scsires_extent_elem_t *elements;
++};
++typedef struct scsires_extent scsires_extent_t;
++unsigned char buf[512];
++void scsires_issue_reservation(scsires_extent_t * new_extent)
++{
++  int i;
++  for (i = 0; i < new_extent->num_elements; i++)
++    {
++      buf[(i * 8)] = new_extent->elements[i].mode;
++      buf[(i * 8) + 1] = ((new_extent->elements[i].length >> 16) & 0xff); 
++      buf[(i * 8) + 2] = ((new_extent->elements[i].length >> 8) & 0xff);
++      buf[(i * 8) + 3] = (new_extent->elements[i].length & 0xff);
++      buf[(i * 8) + 4] = ((new_extent->elements[i].first_block >> 24) & 0xff); 
++      buf[(i * 8) + 5] = ((new_extent->elements[i].first_block >> 16) & 0xff);
++      buf[(i * 8) + 6] = ((new_extent->elements[i].first_block >> 8) & 0xff);
++      buf[(i * 8) + 7] = (new_extent->elements[i].first_block & 0xff);
++    }
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr42749.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42749.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42749.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,5 @@
++struct pdf_object { int val; };
++int pdf_count_size_object (struct pdf_object * p_obj)
++{
++    return pdf_count_size_object(p_obj) + 2 * sizeof(struct pdf_object);
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr43415.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43415.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43415.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,36 @@
++int main()                                                                      
++{                                                                               
++  unsigned long long table[256];                                          
++  unsigned int i;
++  for (i=0; i<256; ++i) {
++      unsigned long long j;
++      unsigned char x=i;
++      for (j=0; j<5; ++j) {
++        x += x<<1;
++        x ^= x>>1;
++      }
++      for (j=0; j<5; ++j) {
++        x += x<<1;
++        x ^= x>>1;
++      }
++      for (j=0; j<5; ++j) {
++        x += x<<1;
++        x ^= x>>1;
++      }
++      for (j=0; j<5; ++j) {
++        x += x<<1;
++        x ^= x>>1;
++      }
++      for (j=0; j<5; ++j) {
++        x += x<<1;
++        x ^= x>>1;
++      }
++      table[i] ^= (((unsigned long long)x)<<16);
++  }
++  for (i=0; i<256; ++i) {
++      if ((table[i]&0xff)==i)
++      return 1;
++  }
++  return 0;
++}
 +
-+      * tree-tailcall.c (tree_optimize_tail_calls_1): Also split the
-+      edge from the entry block if we have degenerate PHI nodes in
-+      the first basic block.
+Index: gcc/testsuite/gcc.c-torture/compile/pr43164.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43164.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43164.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++struct S0
++{
++  unsigned char f0;
++  int:0;
++};
 +
-+2009-11-05  Jakub Jelinek  <jakub@redhat.com>
++struct S1
++{
++  struct S0 f0;
++};
 +
-+      * c-common.c (fold_offsetof_1): Revert the recently added
-+      -Warray-bounds checking of offsetof arguments.
++struct S1 func_34 (void)
++{
++  struct S1 l_221 = { { 1 } };
++  return l_221;
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr43066.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43066.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43066.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++struct S {
++  struct { } empty[1];
++  int i;
++};
 +
-+2009-11-04  Jason Merrill  <jason@redhat.com>
++int foo(int i, ...)
++{
++  struct S s;
++  __builtin_va_list va;
++  __builtin_va_start(va, i);
++  s = __builtin_va_arg(va, struct S);
++  __builtin_va_end(va);
++  return s.i;
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr43191.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43191.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43191.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,46 @@
++struct S0
++{
++};
 +
-+      PR c++/36912
-+      * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
-+      or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
-+      (output_constant): Avoid crash after error.
++struct S1
++{
++  unsigned f0:27;
++  const unsigned:0;
++};
 +
-+2009-11-04  Uros Bizjak  <ubizjak@gmail.com>
++struct S2
++{
++  unsigned f2:1;
++};
 +
-+      PR target/41900
-+      * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
-+      (TARGET_CALL_ESP): New define.
-+      * config/i386/i386.c (initial_ix86_tune_features): Initialize
-+      X86_ARCH_CALL_ESP.
-+      * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
-+      *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
-+      *call_1, *call_value_pop_1 and *call_value_1.  Depend on
-+      TARGET_CALL_ESP.
-+      (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
-+      New patterns, use "lsm" as operand 1 constraint.
-+      * config/i386/predicates.md (call_insn_operand): Depend on
-+      index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
++unsigned char g_4[1][8][3][1][1][1];
++unsigned char *g_17;
++unsigned char **g_16[1][10][7];
 +
-+2009-11-04  Jakub Jelinek  <jakub@redhat.com>
++struct S2 g_35 = {
++  0
++};
 +
-+      * c-common.c (fold_offsetof_1): Use %wd instead of
-+      HOST_WIDE_INT_PRINT_DEC.
++struct S2 *g_34 = &g_35;
 +
-+2009-11-03  Jakub Jelinek  <jakub@redhat.com>
++struct S1 func_86 (unsigned char p_87, struct S2 **p_89)
++{
++  struct S1 l_92[6][8][1][1] = {
++    16143586
++  }
++  ;
++  return l_92[0][0][0][0];
++}
 +
-+      PR rtl-optimization/41917
-+      * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
-+      operand isn't known to be 0, return 1.
++void func_28 (struct S1 p_30, const struct S1 p_32)
++{
++}
 +
-+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
++void func_70 (unsigned char p_72)
++{
++  unsigned char *const *l_93 = &g_17;
++  struct S2 **l_94;
++  unsigned char *const *l_97 = &g_17;
++  func_28 (func_86 (p_72, 0),
++           func_86 (p_72, &g_34));
++}
+Index: gcc/testsuite/gcc.c-torture/compile/pr43255.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr43255.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43255.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,33 @@
++int safe (int);
 +
-+      * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
++static unsigned foo (unsigned ui1, unsigned ui2)
++{
++  return ui1 + ui2;
++}
 +
-+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
++int g_22;
++int *volatile g_23 = &g_22;
++int **g_282[8][10][1];
++int *g_330 = &g_22;
++volatile unsigned g_348;
++int g_397;
 +
-+      PR c++/38699
-+      * c-common.c (fold_offsetof_1): Issue errors when the member
-+      designator of the offsetof expression is not legitimate.
++void int32func (const unsigned char p_10)
++{
++  if (foo
++      (~
++       (p_10 |
++      (*g_282[(unsigned long) g_397 % 8][(unsigned) g_22 % 10][g_348 % 1]) ==
++      (*g_282[(unsigned long) g_397 % 8][(unsigned) g_22 % 10][g_348 % 1])),
++       1))
++    {
++    }
++  else if (*g_330 >=
++         safe (*g_23 ^
++               (**g_282[(unsigned long) g_397 % 8][(unsigned) g_22 % 10]
++                [g_348 % 1])) & **g_282[8][10][1], 1)
++    {
++    }
++}
 +
-+2009-10-28  Jakub Jelinek  <jakub@redhat.com>
 +
-+      PR target/41762
-+      * config/i386/i386.c (ix86_pic_register_p): Don't call
-+      rtx_equal_for_cselib_p for VALUEs discarded as useless.
+Index: gcc/testsuite/gcc.c-torture/compile/pr42717.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr42717.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42717.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,30 @@
++static signed char
++foo (signed char si1, unsigned char si2)
++{
++  return (si1 ^ si2) & (-si2 ^ si2) ? : si1 - si2;
++}
 +
-+2009-10-27  Jakub Jelinek  <jakub@redhat.com>
++struct S0
++{
++};
 +
-+      PR c/41842
-+      * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
-+      error_mark_node.
++unsigned char g_21;
 +
-+2009-10-27  Kai Tietz  <kai.tietz@onevision.com>
-+
-+      Backport from mainline:
-+      2009-10-20  Pascal Obry  <obry@adacore.com>
-+                  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
-+
-+2009-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-+
-+      Backport from mainline:
-+      2009-08-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-+
-+      * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
-+      patterns.
-+      * pa.c (emit_move_sequence): Check if address of operand1 is valid
-+      for mode mode of operand0 when doing secondary reload for SAR.
-+
-+2009-10-21  Jakub Jelinek  <jakub@redhat.com>
-+
-+      Backport from mainline:
-+      2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
-+
-+      * doc/invoke.texi: Add missing option -Wp,OPTION in list,
-+      fix index entry for -Xpreprocessor.
-+
-+2009-10-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-+
-+      Backport from mainline:
-+      2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-+
-+      PR target/41702
-+      * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
-+      (casesi64p): Update pattern to reflect above.
-+
-+2009-10-20  Joseph Myers  <joseph@codesourcery.com>
-+
-+      * config/arm/arm.c (output_move_neon): Use DImode in call to
-+      adjust_address.
-+
-+2009-10-19  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * unwind-dw2.c (execute_stack_op): Fix operand order for
-+      DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
-+
-+2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
-+
-+      * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
-+
-+2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
-+
-+      * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes and debug
-+      insns when investigating previous or next insns.
-+
-+2009-10-19  Jakub Jelinek  <jakub@redhat.com>
-+
-+      Backport from mainline:
-+      2009-10-16  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/40521
-+      * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
-+      * cgraphunit.c (cgraph_optimize): Call it.
-+      * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
-+      (dwarf2out_assembly_start): ... here.  New hook.
-+      (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
-+      * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
-+      hook.
-+      * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
-+      * sdbout.c (sdb_debug_hooks): Likewise.
-+      * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
-+      (vmsdbgout_assembly_start): New hook.
-+
-+      2009-10-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/40521
-+      * dwarf2out.c (dwarf2out_init): Test whether
-+      HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
-+      it is defined.
-+
-+      2009-10-02  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/40521
-+      * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
-+      * configure: Regenerated.
-+      * config.in: Regenerated.
-+      * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
-+      !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
-+      (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
-+      not emitting .eh_frame, emit .cfi_sections .debug_frame
-+      directive.
-+
-+2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-+
-+      Backport from mainline
-+      2009-09-17  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
-+
-+      PR target/40913
-+      * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
-+
-+      Backport from mainline
-+      2009-05-05  Ben Elliston  <bje@au.ibm.com>
-+
-+      * config/pa/linux-atomic.c: Eliminate conditional include of
-+      errno.h on non-LP64 systems to simplify build requirements.
-+
-+2009-10-15  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      Backport from mainline:
-+      2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>
-+
-+      PR middle-end/22072
-+      * ira-lives.c (check_and_make_def_conflict): Process all operands.
-+
-+2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR target/41665
-+      * config/i386/i386.md (addsi_1_zext): Get the proper second
-+      operand for lea.
-+
-+2009-10-15  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * BASE-VER: Set to 4.4.3.
-+      * DEV-PHASE: Set to prerelease.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-@@ -43,12 +1078,12 @@
- 2009-10-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       Backport from mainline.
--        * config/arm/arm.c (arm_override_options): Really initialize
--        flag_dwarf2_cfi_asm to 0.
-+      * config/arm/arm.c (arm_override_options): Really initialize
-+      flag_dwarf2_cfi_asm to 0.
- 2009-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
--      Backport from mainline. 
-+      Backport from mainline.
-       2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-       * config/arm/arm.c (arm_override_options): Turn off
-       flag_dwarf2_cfi_asm for AAPCS variants.
-@@ -113,7 +1148,7 @@
-       premark_types_used_by_global_vars): New functions.
-       (prune_unused_types): Do not prune types used by global variables.
--2009-09-23 Uros Bizjak <ubizjak@gmail.com>
-+2009-09-23  Uros Bizjak  <ubizjak@gmail.com>
-       PR c/39779
-       * c-typeck.c (build_binary_op) <short_shift>: Check that integer
-Index: gcc/testsuite/gcc.c-torture/execute/pr42614.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42614.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42614.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,68 @@
-+extern void *malloc(__SIZE_TYPE__);
-+extern void abort(void);
-+extern void free(void *);
-+
-+typedef struct SEntry
-+{
-+  unsigned char num;
-+} TEntry;
-+
-+typedef struct STable
-+{
-+  TEntry data[2];
-+} TTable;
-+
-+TTable *init ()
-+{
-+  return malloc(sizeof(TTable));
-+}
-+
-+void
-+expect_func (int a, unsigned char *b) __attribute__ ((noinline));
-+
-+static inline void
-+inlined_wrong (TEntry *entry_p, int flag);
++struct S0 g_34;
 +
 +void
-+inlined_wrong (TEntry *entry_p, int flag)
++bar (unsigned char p_20)
 +{
-+  unsigned char index;
-+  entry_p->num = 0;
-+
-+  if (flag == 0)
-+    abort();
-+
-+  for (index = 0; index < 1; index++)
-+    entry_p->num++;
-+
-+  if (!entry_p->num)
++  unsigned char *l_22 = &g_21;
++  unsigned char l_23 = 0;
++  struct S0 *l = &g_34;
++  goto lbl_42;
++  for (; l_23; l_23 = foo (l_23, 1))
 +    {
-+      abort();
++      for (p_20 = 0; 0; p_20 = foo (p_20, 1))
++      lbl_42:;
++      (l == &g_34) ? 0 : "";
++lbl_85:*l_22 = p_20;
 +    }
++  goto lbl_85;
 +}
-+
-+void
-+expect_func (int a, unsigned char *b)
-+{
-+  if (abs ((a == 0)))
-+    abort ();
-+  if (abs ((b == 0)))
-+    abort ();
-+}
-+
-+int
-+main ()
-+{
-+  unsigned char index = 0;
-+  TTable *table_p = init();
-+  TEntry work;
-+
-+  inlined_wrong (&(table_p->data[1]), 1);
-+  expect_func (1, &index);
-+  inlined_wrong (&work, 1);
-+
-+  free (table_p);
-+
-+  return 0;
-+}
-+
-Index: gcc/testsuite/gcc.c-torture/execute/pr42721.c
+Index: gcc/testsuite/gcc.c-torture/compile/pr42998.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42721.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42721.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+/* PR c/42721 */
-+
-+extern void abort (void);
-+
-+static unsigned long long
-+foo (unsigned long long x, unsigned long long y)
+--- gcc/testsuite/gcc.c-torture/compile/pr42998.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr42998.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,15 @@
++void foo(void *);
++void bar(void *);
++void ndisc_fill_addr_option(unsigned char *opt, int data_len,
++                          unsigned short addr_type) 
 +{
-+  return x / y;
++  int pad;
++  if (addr_type == 32)
++    pad = 2;
++  else
++    pad = 0;
++  __builtin_memset(opt + 2, 0, pad);
++  opt += pad;
++  __builtin_constant_p(data_len) ? foo (opt+2) : bar (opt+2);
 +}
 +
-+static int a, b;
-+
-+int
-+main (void)
-+{
-+  unsigned long long c = 1;
-+  b ^= c && (foo (a, -1ULL) != 1L);
-+  if (b != 1)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr41750.c
+Index: gcc/testsuite/gcc.c-torture/compile/pr43188.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr41750.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr41750.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,68 @@
-+/* PR 41750 - IPA-SRA used to pass hash->sgot by value rather than by
-+   reference.  */
-+
-+struct bfd_link_hash_table
-+{
-+  int hash;
-+};
-+
-+struct foo_link_hash_table
-+{
-+  struct bfd_link_hash_table root;
-+  int *dynobj;
-+  int *sgot;
-+};
-+
-+struct foo_link_info
-+{
-+  struct foo_link_hash_table *hash;
-+};
-+
-+extern void abort (void);
-+
-+int __attribute__((noinline))
-+foo_create_got_section (int *abfd, struct foo_link_info *info)
-+{
-+  info->hash->sgot = abfd;
-+  return 1;
-+}
-+
-+static int *
-+get_got (int *abfd, struct foo_link_info *info,
-+       struct foo_link_hash_table *hash)
-+{
-+  int *got;
-+  int *dynobj;
-+
-+  got = hash->sgot;
-+  if (!got)
-+    {
-+      dynobj = hash->dynobj;
-+      if (!dynobj)
-+      hash->dynobj = dynobj = abfd;
-+      if (!foo_create_got_section (dynobj, info))
-+      return 0;
-+      got = hash->sgot;
-+    }
-+  return got;
-+}
-+
-+int * __attribute__((noinline,noclone))
-+elf64_ia64_check_relocs (int *abfd, struct foo_link_info *info)
-+{
-+  return get_got (abfd, info, info->hash);
-+}
-+
-+struct foo_link_info link_info;
-+struct foo_link_hash_table hash;
-+int abfd;
+--- gcc/testsuite/gcc.c-torture/compile/pr43188.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43188.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,6 @@
++int *__attribute__((__aligned__(16))) *p;
 +
-+int
-+main ()
++int main (void)
 +{
-+  link_info.hash = &hash;
-+  if (elf64_ia64_check_relocs (&abfd, &link_info) != &abfd)
-+    abort ();
-+  return 0;
++  return **p;
 +}
-+
-Index: gcc/testsuite/gcc.c-torture/execute/pr42570.c
+Index: gcc/testsuite/gcc.c-torture/compile/pr43288.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42570.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42570.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+typedef unsigned char uint8_t;
-+uint8_t foo[1][0];
-+extern void abort (void);
-+int main()
-+{
-+  if (sizeof (foo) != 0)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr42006.c
+--- gcc/testsuite/gcc.c-torture/compile/pr43288.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr43288.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1 @@
++static int a __attribute__ ((common));
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42006.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42006.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+extern void abort (void);
-+
-+static unsigned int
-+my_add(unsigned int si1, unsigned int si2)
-+{
-+  return (si1 > (50-si2)) ? si1 : (si1 + si2);
-+}
-+
-+static unsigned int
-+my_shift(unsigned int left, unsigned int right)
-+{
-+  return  (right > 100) ? left : (left >> right);
-+}
-+
-+static int func_4(unsigned int p_6)
-+{
-+  int count = 0;
-+  for (p_6 = 1; p_6 < 3; p_6 = my_add(p_6, 1))
-+    {
-+      if (count++ > 1)
-+      abort ();
-+
-+      if (my_shift(p_6, p_6))
-+      return 0;
-+    }
-+  return 0;
-+}
-+
-+int main(void)
-+{
-+  func_4(0);
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr42269-2.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lowp8 (void)
+ {
+-  poly8x8_t out_poly8x8_t;
++  register poly8x8_t out_poly8x8_t asm ("d18");
+   poly8x16_t arg0_poly8x16_t;
+   out_poly8x8_t = vget_low_p8 (arg0_poly8x16_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lows64.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42269-2.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42269-2.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+/* Make sure that language + abi extensions in passing S interoperate.  */
-+
-+static long long __attribute__((noinline))
-+foo (unsigned short s)
-+{
-+  return (short) s;
-+}
-+
-+unsigned short s = 0xFFFF;
-+
-+int
-+main (void)
-+{
-+  return foo (s) + 1 != 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr43220.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lows64.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lows64.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -15,5 +15,4 @@
+   out_int64x1_t = vget_low_s64 (arg0_int64x2_t);
+ }
+-/* { dg-final { scan-assembler "vmov\[        \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[         \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
+ /* { dg-final { cleanup-saved-temps } } */
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr43220.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr43220.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+void *volatile p;
-+
-+int
-+main (void)
-+{
-+  int n = 0;
-+lab:;
-+    {
-+      int x[n % 1000 + 1];
-+      x[0] = 1;
-+      x[n % 1000] = 2;
-+      p = x;
-+      n++;
-+    }
-+
-+    {
-+      int x[n % 1000 + 1];
-+      x[0] = 1;
-+      x[n % 1000] = 2;
-+      p = x;
-+      n++;
-+    }
-+
-+  if (n < 1000000)
-+    goto lab;
-+
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr42231.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -15,5 +15,4 @@
+   out_uint64x1_t = vget_low_u64 (arg0_uint64x2_t);
+ }
+-/* { dg-final { scan-assembler "vmov\[        \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[         \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
+ /* { dg-final { cleanup-saved-temps } } */
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42231.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42231.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,35 @@
-+extern void abort (void);
-+
-+static max;
-+
-+static void __attribute__((noinline)) storemax (int i)
-+{
-+  if (i > max)
-+    max = i;
-+}
-+
-+static int CallFunctionRec(int (*fun)(int depth), int depth) {
-+  if (!fun(depth)) {
-+    return 0;
-+  }
-+  if (depth < 10) {
-+    CallFunctionRec(fun, depth + 1);
-+  }
-+  return 1;
-+}
-+
-+static int CallFunction(int (*fun)(int depth)) {
-+  return CallFunctionRec(fun, 1) && !fun(0);
-+}
-+
-+static int callback(int depth) {
-+  storemax (depth);
-+  return depth != 0;
-+}
-+
-+int main() {
-+  CallFunction(callback);
-+  if (max != 10)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr42142.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lowp16 (void)
+ {
+-  poly16x4_t out_poly16x4_t;
++  register poly16x4_t out_poly16x4_t asm ("d18");
+   poly16x8_t arg0_poly16x8_t;
+   out_poly16x4_t = vget_low_p16 (arg0_poly16x8_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lows8.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42142.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42142.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,26 @@
-+int __attribute__((noinline,noclone))
-+sort(int L)
-+{
-+  int end[2] = { 10, 10, }, i=0, R;
-+  while (i<2)
-+    {
-+      R = end[i];
-+      if (L<R)
-+        {
-+          end[i+1] = 1;
-+          end[i] = 10;
-+          ++i;
-+        }
-+      else
-+        break;
-+    }
-+  return i;
-+}
-+extern void abort (void);
-+int main()
-+{
-+  if (sort (5) != 1)
-+    abort ();
-+  return 0;
-+}
-+
-Index: gcc/testsuite/gcc.c-torture/execute/pr43008.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lows8.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lows8.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lows8 (void)
+ {
+-  int8x8_t out_int8x8_t;
++  register int8x8_t out_int8x8_t asm ("d18");
+   int8x16_t arg0_int8x16_t;
+   out_int8x8_t = vget_low_s8 (arg0_int8x16_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr43008.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr43008.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,23 @@
-+int i;
-+struct X {
-+  int *p;
-+};
-+struct X * __attribute__((malloc))
-+my_alloc (void)
-+{
-+  struct X *p = __builtin_malloc (sizeof (struct X));
-+  p->p = &i;
-+  return p;
-+}
-+extern void abort (void);
-+int main()
-+{
-+  struct X *p, *q;
-+  p = my_alloc ();
-+  q = my_alloc ();
-+  *(p->p) = 1;
-+  *(q->p) = 0;
-+  if (*(p->p) != 0)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr41317.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lowu8 (void)
+ {
+-  uint8x8_t out_uint8x8_t;
++  register uint8x8_t out_uint8x8_t asm ("d18");
+   uint8x16_t arg0_uint8x16_t;
+   out_uint8x8_t = vget_low_u8 (arg0_uint8x16_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lows32.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr41317.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr41317.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+extern void abort (void);
-+
-+struct A
-+{
-+  int i;
-+};
-+struct B
-+{
-+  struct A a;
-+  int j;
-+};
-+
-+static void
-+foo (struct B *p)
-+{
-+  ((struct A *)p)->i = 1;
-+}
-+
-+int main()
-+{
-+  struct A a;
-+  a.i = 0;
-+  foo ((struct B *)&a);
-+  if (a.i != 1)
-+    abort ();
-+  return 0;
-+}
-+
-Index: gcc/testsuite/gcc.c-torture/execute/pr42248.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lows32.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lows32.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lows32 (void)
+ {
+-  int32x2_t out_int32x2_t;
++  register int32x2_t out_int32x2_t asm ("d18");
+   int32x4_t arg0_int32x4_t;
+   out_int32x2_t = vget_low_s32 (arg0_int32x4_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lows16.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42248.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42248.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+typedef struct {
-+  _Complex double a;
-+  _Complex double b;
-+} Scf10;
-+
-+Scf10 g1s;
-+
-+void
-+check (Scf10 x, _Complex double y)
-+{
-+  if (x.a != y) __builtin_abort ();
-+}
-+
-+void
-+init (Scf10 *p, _Complex double y)
-+{
-+  p->a = y;
-+}
-+
-+int
-+main ()
-+{
-+  init (&g1s, (_Complex double)1);
-+  check (g1s, (_Complex double)1);
-+
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/20091229-1.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lows16.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lows16.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lows16 (void)
+ {
+-  int16x4_t out_int16x4_t;
++  register int16x4_t out_int16x4_t asm ("d18");
+   int16x8_t arg0_int16x8_t;
+   out_int16x4_t = vget_low_s16 (arg0_int16x8_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/20091229-1.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20091229-1.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,2 @@
-+long long foo(long long v) { return v / -0x080000000LL; }
-+void main() { if (foo(0x080000000LL) != -1) abort(); exit (0); }
-Index: gcc/testsuite/gcc.c-torture/execute/pr41917.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lowu32 (void)
+ {
+-  uint32x2_t out_uint32x2_t;
++  register uint32x2_t out_uint32x2_t asm ("d18");
+   uint32x4_t arg0_uint32x4_t;
+   out_uint32x2_t = vget_low_u32 (arg0_uint32x4_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr41917.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr41917.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+/* PR rtl-optimization/41917 */
-+
-+extern void abort (void);
-+unsigned int a = 1;
-+
-+int
-+main (void)
-+{
-+  unsigned int b, c, d;
-+
-+  if (sizeof (int) != 4 || (int) 0xc7d24b5e > 0)
-+    return 0;
-+
-+  c = 0xc7d24b5e;
-+  d = a | -2;
-+  b = (d == 0) ? c : (c % d);
-+  if (b != c)
-+    abort ();
-+
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr41935.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lowu16 (void)
+ {
+-  uint16x4_t out_uint16x4_t;
++  register uint16x4_t out_uint16x4_t asm ("d18");
+   uint16x8_t arg0_uint16x8_t;
+   out_uint16x4_t = vget_low_u16 (arg0_uint16x8_t);
+Index: gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr41935.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr41935.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+/* PR middle-end/41935 */
-+
-+extern void abort (void);
-+
-+long int
-+foo (int n, int i, int j)
-+{
-+  typedef int T[n];
-+  struct S { int a; T b[n]; };
-+  return __builtin_offsetof (struct S, b[i][j]);
-+}
-+
-+int
-+main (void)
-+{
-+  typedef int T[5];
-+  struct S { int a; T b[5]; };
-+  if (foo (5, 2, 3)
-+      != __builtin_offsetof (struct S, b) + (5 * 2 + 3) * sizeof (int))
-+    abort ();
-+  if (foo (5, 5, 5)
-+      != __builtin_offsetof (struct S, b) + (5 * 5 + 5) * sizeof (int))
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.c-torture/execute/pr41919.c
+--- gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -9,7 +9,7 @@
+ void test_vget_lowf32 (void)
+ {
+-  float32x2_t out_float32x2_t;
++  register float32x2_t out_float32x2_t asm ("d18");
+   float32x4_t arg0_float32x4_t;
+   out_float32x2_t = vget_low_f32 (arg0_float32x4_t);
+Index: gcc/testsuite/gcc.target/arm/sibcall-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr41919.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr41919.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,39 @@
-+extern void abort (void);
-+
-+#define assert(x) if(!(x)) abort()
+--- gcc/testsuite/gcc.target/arm/sibcall-1.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/arm/sibcall-1.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -30,5 +30,6 @@
+   return result;
+ }
+-/* { dg-final { scan-assembler "\tb\tfunc2\n" } } */
++/* The PLT marker may appear if the test is run with -fpic/-fPIC.  */
++/* { dg-final { scan-assembler "\tb\tfunc2(\\(PLT\\))?\n" } } */
+Index: gcc/testsuite/gcc.target/arm/thumb2-cbnz.c
+===================================================================
+--- gcc/testsuite/gcc.target/arm/thumb2-cbnz.c (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/arm/thumb2-cbnz.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,110 @@
++/* { dg-do assemble } */
++/* { dg-options "-O1 -mthumb -march=armv7-a" } */
 +
-+struct S1
++typedef short int int16_t;
++typedef unsigned char uint8_t;
++struct component
 +{
-+  signed char f0;
++  float *Q_table;
 +};
-+
-+int g_23 = 0;
-+
-+static struct S1
-+foo (void)
-+{
-+  int *l_100 = &g_23;
-+  int **l_110 = &l_100;
-+  struct S1 l_128 = { 1 };
-+  assert (l_100 == &g_23);
-+  assert (l_100 == &g_23);
-+  assert (l_100 == &g_23);
-+  assert (l_100 == &g_23);
-+  assert (l_100 == &g_23);
-+  assert (l_100 == &g_23);
-+  assert (l_100 == &g_23);
-+  return l_128;
-+}
-+
-+static signed char bar(signed char si1, signed char si2)
-+{
-+  return (si1 <= 0) ? si1 : (si2 * 2);
-+}
-+int main (void)
++static inline unsigned char descale_and_clamp(int x, int shift)
 +{
-+  struct S1 s = foo();
-+  if (bar(0x99 ^ (s.f0 && 1), 1) != -104)
-+    abort ();
-+  return 0;
++  x += (1UL<<(shift-1));
++  if (x<0)
++    x = (x >> shift) | ((~(0UL)) << (32-(shift)));
++    x >>= shift;
++  x += 128;
++  if (x>255)
++    return 255;
++  else if (x<0)
++    return 0;
++    return x;
 +}
-+
-Index: gcc/testsuite/gcc.c-torture/execute/pr42691.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42691.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42691.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,41 @@
-+extern void abort (void);
-+
-+union _D_rep
-+{
-+  unsigned short rep[4];
-+  double val;
-+};
-+
-+int add(double* key, double* table)
++void
++tinyjpeg_idct_float (struct component *compptr, uint8_t *output_buf, int stride)
 +{
-+  unsigned i = 0;
-+  double* deletedEntry = 0;
-+  while (1) {
-+    double* entry = table + i;
-+
-+    if (*entry == *key)
-+      break;
-+
-+    union _D_rep _D_inf = {{ 0, 0, 0, 0x7ff0 }};
-+    if (*entry != _D_inf.val)
-+      abort ();
-+
-+    union _D_rep _D_inf2 = {{ 0, 0, 0, 0x7ff0 }};
-+    if (!_D_inf2.val)
-+      deletedEntry = entry;
-+
-+    i++;
++  float tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
++  float tmp10, tmp11, tmp12, tmp13;
++  float z5, z10, z11, z12, z13;
++  int16_t *inptr;
++  float *quantptr;
++  float *wsptr;
++  uint8_t *outptr;
++  int ctr;
++  float workspace[(8*8)];
++  quantptr = compptr->Q_table;
++  wsptr = workspace;
++  for (ctr = 8; ctr > 0; ctr--) {
++    if (inptr[8*1] == 0 && inptr[8*2] == 0 &&
++ inptr[8*3] == 0 && inptr[8*4] == 0 &&
++ inptr[8*5] == 0 && inptr[8*6] == 0 &&
++ inptr[8*7] == 0) {
++      float dcval = (((float) (inptr[8*0])) * (quantptr[8*0]));
++      wsptr[8*0] = dcval;
++      wsptr[8*1] = dcval;
++      wsptr[8*2] = dcval;
++      wsptr[8*3] = dcval;
++      wsptr[8*4] = dcval;
++      wsptr[8*5] = dcval;
++      wsptr[8*6] = dcval;
++      wsptr[8*7] = dcval;
++      inptr++;
++      quantptr++;
++      wsptr++;
++      continue;
++    }
++    tmp0 = (((float) (inptr[8*0])) * (quantptr[8*0]));
++    tmp1 = (((float) (inptr[8*2])) * (quantptr[8*2]));
++    tmp2 = (((float) (inptr[8*4])) * (quantptr[8*4]));
++    tmp3 = (((float) (inptr[8*6])) * (quantptr[8*6]));
++    tmp10 = tmp0 + tmp2;
++    tmp11 = tmp0 - tmp2;
++    tmp13 = tmp1 + tmp3;
++    tmp12 = (tmp1 - tmp3) * ((float) 1.414213562) - tmp13;
++    tmp0 = tmp10 + tmp13;
++    tmp3 = tmp10 - tmp13;
++    tmp1 = tmp11 + tmp12;
++    tmp2 = tmp11 - tmp12;
++    tmp4 = (((float) (inptr[8*1])) * (quantptr[8*1]));
++    tmp5 = (((float) (inptr[8*3])) * (quantptr[8*3]));
++    tmp6 = (((float) (inptr[8*5])) * (quantptr[8*5]));
++    tmp7 = (((float) (inptr[8*7])) * (quantptr[8*7]));
++    z13 = tmp6 + tmp5;
++    z10 = tmp6 - tmp5;
++    z11 = tmp4 + tmp7;
++    z12 = tmp4 - tmp7;
++    tmp7 = z11 + z13;
++    tmp11 = (z11 - z13) * ((float) 1.414213562);
++    z5 = (z10 + z12) * ((float) 1.847759065);
++    tmp10 = ((float) 1.082392200) * z12 - z5;
++    tmp12 = ((float) -2.613125930) * z10 + z5;
++    tmp6 = tmp12 - tmp7;
++    tmp5 = tmp11 - tmp6;
++    tmp4 = tmp10 + tmp5;
++    wsptr[8*0] = tmp0 + tmp7;
++    wsptr[8*7] = tmp0 - tmp7;
++    wsptr[8*1] = tmp1 + tmp6;
++    wsptr[8*2] = tmp2 + tmp5;
++    wsptr[8*5] = tmp2 - tmp5;
++    wsptr[8*4] = tmp3 + tmp4;
++    wsptr[8*3] = tmp3 - tmp4;
++    inptr++;
++    quantptr++;
++    wsptr++;
++  }
++  for (ctr = 0; ctr < 8; ctr++) {
++    tmp11 = wsptr[0] - wsptr[4];
++    tmp12 = (wsptr[2] - wsptr[6]) * ((float) 1.414213562) - tmp13;
++    tmp0 = tmp10 + tmp13;
++    tmp1 = tmp11 + tmp12;
++    z10 = wsptr[5] - wsptr[3];
++    tmp12 = ((float) -2.613125930) * z10 + z5;
++    tmp6 = tmp12 - tmp7;
++    outptr[0] = descale_and_clamp((int)(tmp0 + tmp7), 3);
++    outptr[7] = descale_and_clamp((int)(tmp0 - tmp7), 3);
++    outptr[1] = descale_and_clamp((int)(tmp1 + tmp6), 3);
++    outptr[6] = descale_and_clamp((int)(tmp1 - tmp6), 3);
++    outptr[2] = descale_and_clamp((int)(tmp2 + tmp5), 3);
++    outptr += stride;
 +  }
-+  if (deletedEntry)
-+    *deletedEntry = 0.0;
-+  return 0;
 +}
+Index: gcc/testsuite/gcc.target/arm/pr40887.c
+===================================================================
+--- gcc/testsuite/gcc.target/arm/pr40887.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/arm/pr40887.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
++/* { dg-options "-O2 -march=armv5te" }  */
++/* { dg-final { scan-assembler "blx" } } */
 +
-+int main ()
++int (*indirect_func)();
++
++int indirect_call()
 +{
-+  union _D_rep infinit = {{ 0, 0, 0, 0x7ff0 }};
-+  double table[2] = { infinit.val, 23 };
-+  double key = 23;
-+  int ret = add (&key, table);
-+  return ret;
++    return indirect_func();
 +}
-Index: gcc/testsuite/gcc.c-torture/execute/20100209-1.c
+Index: gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/20100209-1.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20100209-1.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+int bar(int foo)
-+{
-+  return (int)(((unsigned long long)(long long)foo) / 8);
-+}
-+extern void abort (void);
-+int main()
+--- gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target { { powerpc*-*-linux* && ilp32 } || { powerpc-*-eabi* } } } } */
+ /* { dg-options "-O2 -fno-common -G 8 -msdata=sysv" } */
++/* { dg-require-effective-target nonpic } */
+ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */
+ /* { dg-final { scan-assembler-not "\\.section\[ \t\]\\.sdata2," } } */
+ /* { dg-final { scan-assembler "sdat@sdarel\\(13\\)" } } */
+Index: gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,6 @@
+ /* { dg-do compile { target { { powerpc*-*-linux* && ilp32 } || { powerpc-*-eabi* } } } } */
+ /* { dg-options "-O2 -fno-common -G 8 -meabi -msdata=eabi" } */
++/* { dg-require-effective-target nonpic } */
+ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */
+ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata2," } } */
+ /* { dg-final { scan-assembler "sdat@sda21\\((13|0)\\)" } } */
+Index: gcc/testsuite/gcc.target/i386/pr42881.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr42881.c    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr42881.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,13 @@
++/* PR target/42881 */
++/* { dg-do run } */
++/* { dg-options "-O0 -msse2" } */
++#include "sse2-check.h"
++static void
++sse2_test (void)
 +{
-+  if (sizeof (long long) > sizeof (int)
-+      && bar(-1) != -1)
-+    abort ();
-+  return 0;
++  double a[2];
++  __m128d x = _mm_set1_pd(3);
++  _mm_storeu_pd(a,x);
++  if (a[0] != 3.0 || a[1] != 3.0)
++    __builtin_abort ();
 +}
-Index: gcc/testsuite/gcc.c-torture/execute/pr42512.c
+Index: gcc/testsuite/gcc.target/i386/clobbers.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42512.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42512.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+extern void abort (void);
+--- gcc/testsuite/gcc.target/i386/clobbers.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.target/i386/clobbers.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,7 +1,6 @@
+ /* Test asm clobbers on x86. */
+ /* { dg-do run } */
+-/* { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } } */
+ extern void abort (void);
+@@ -13,11 +12,15 @@
+                 abort ();
+       /* On darwin you can't call external functions from non-pic code,
+          however, clobbering ebx isn't valid in pic code. Instead of
+-         disabling the whole test, just disable the ebx clobbering part.  */
++         disabling the whole test, just disable the ebx clobbering part.
++         Ditto for any x86 system that is ilp32 && pic.
++      */
+ #if !(defined (__MACH__))
++#if ! defined (__PIC__) || defined (__LP64__)
+         __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx");
+         if (i != 1)
+                 abort ();
++#endif /* ! pic || lp64 */
+ #endif
+         __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx");
+         if (i != 1)
+Index: gcc/testsuite/gcc.target/i386/pr43107.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr43107.c    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr43107.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,20 @@
++/* PR target/43107 */
++/* { dg-do compile } */
++/* { dg-options "-O3 -mavx" } */
 +
-+short g_3;
++extern void bar (float b[4][4]);
 +
-+int main (void)
++void
++foo ()
 +{
-+    int l_2;
-+    for (l_2 = -1; l_2 != 0; l_2 = (unsigned char)(l_2 - 1))
-+      g_3 |= l_2;
-+    if (g_3 != -1)
-+      abort ();
-+    return 0;
++  float a[4][4], b[4][4];
++  int i, j;
++  for (i = 0; i < 4; i++)
++    {
++      for (j = 0; j < 4; j++)
++      a[i][j] = 0;
++      for (j = 0; j < 4; j++)
++      b[i][j] = a[i][j];
++    }
++  bar (b);
 +}
-Index: gcc/testsuite/gcc.c-torture/execute/pr42154.c
+Index: gcc/testsuite/gcc.target/i386/pr42891.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pr42154.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr42154.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+struct A { char x[1]; };
-+extern void abort (void);
-+void __attribute__((noinline,noclone))
-+foo (struct A a)
-+{
-+  if (a.x[0] != 'a')
-+    abort ();
-+}
-+int main ()
-+{
-+  struct A a;
-+  int i;
-+  for (i = 0; i < 1; ++i)
-+    a.x[i] = 'a';
-+  foo (a);
-+  return 0;
-+}
+--- gcc/testsuite/gcc.target/i386/pr42891.c    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr42891.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,13 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
 +
-Index: gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+extern void abort ();
++union B { int i; float f; };
 +
-+#define _ 2
-+#pragma push_macro("_")
-+#undef _
-+#define _ 1
-+#pragma pop_macro("_")
++extern void bar (void);
 +
-+int main ()
++void
++foo (union B x, union B y)
 +{
-+  if (_ != 2)
-+    abort ();
-+  return 0;
++  if (!(y.f > x.i))
++    bar ();
 +}
-+
-
-Zmiany atrybutów dla: gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c
-___________________________________________________________________
-Dodane: svn:mime-type
-   + text/plain
-Dodane: svn:eol-style
-   + native
-
-Index: gcc/testsuite/gcc.c-torture/compile/pr33009.c
+Index: gcc/testsuite/gnat.dg/thin_pointer.adb
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr33009.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.c-torture/compile/pr33009.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,41 +0,0 @@
--/* { dg-do compile } */
--/* Currently ICEs for Alpha, IA64, HPPA, MIPS, CRIS, Xtensa, PowerPC, SH and SPARC; see PR33642.  */
--/* { dg-xfail-if "PR33642" { alpha*-*-* hppa*-*-* mips*-*-* powerpc*-*-* cris-*-* crisv32-*-* ia64-*-* xtensa*-*-* sh*-*-* sparc*-*-* s390*-*-* } { "*" } { "" } } */
--/* Currently ICEs for (x86 && ilp32 && pic).  */
--/* { dg-xfail-if "PR33642/36240" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */
--/* { dg-prune-output ".*internal compiler error.*" }
--/* { dg-options "-frtl-abstract-sequences" } */
+--- gcc/testsuite/gnat.dg/thin_pointer.adb     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gnat.dg/thin_pointer.adb     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,11 +0,0 @@
+--- { dg-do compile }
+--- { dg-options "-O" }
 -
--char *progName;
--int bar0 (char *, ...);
--void bar1 (char *);
--void exit (int);
+-package body Thin_Pointer is
 -
+-   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr) is
+-   begin
+-      AD.B.A := Buffer (Buffer'First)'Address;
+-   end Set_Buffer;
 -
--#define SAME \
-- bar0 ("%s: Bad flag `%s'\n", argv[i], argv[i] );\
-- bar1 ( progName ); \
-- exit ( 1 );
+-end Thin_Pointer;
+Index: gcc/testsuite/gnat.dg/thin_pointer.ads
+===================================================================
+--- gcc/testsuite/gnat.dg/thin_pointer.ads     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gnat.dg/thin_pointer.ads     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,22 +0,0 @@
+-with System;
 -
+-package Thin_Pointer is
 -
--int foo ( int argc, char *argv[] )
--{
--    int i;
--    for (i = 0; i < argc; i++) {
--      switch (argv[i][0]) {
--      case 'c':
--          break;
--      default: 
--      
--          SAME
--          
--          break;
--      }
--    }
--    for (i = 0; i < argc; i++) {
--    
--      SAME
--      
--    }
--    return 0;
--}
-Index: gcc/testsuite/gcc.c-torture/compile/pr11832.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr11832.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.c-torture/compile/pr11832.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,35 +0,0 @@
--/* { dg-do compile } */
--/* Currently ICEs for Alpha, IA64, HPPA, MIPS, CRIS, Xtensa, PowerPC, SH and SPARC; see PR33642.  */
--/* { dg-xfail-if "PR33642" { alpha*-*-* hppa*-*-* mips*-*-* powerpc*-*-* cris-*-* crisv32-*-* ia64-*-* xtensa*-*-* sh*-*-* sparc*-*-* s390*-*-* } { "*" } { "" } } */
--/* Currently ICEs for (x86 && ilp32 && pic).  */
--/* { dg-xfail-if "PR33642/36240" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */
--/* { dg-prune-output ".*internal compiler error.*" }
--/* { dg-options "-frtl-abstract-sequences" } */
+-   type Stream is array (Integer range <>) of Character;
 -
--int a, b, e;
--unsigned char *c;
--void foo()
--{
--  int d = 13;
--  b = -1;   
--  switch (e) {
--    case 1:
--      b++; c[b] = (unsigned char)d;
--      break;
--    case 2:
--      b++; c[b] = (unsigned char)d;
--      b++; c[b] = (unsigned char)d;
--      break;
--    case 3:
--      b++; c[b] = (unsigned char)d;
--      b++; c[b] = (unsigned char)d;
--      b++; c[b] = (unsigned char)d;
--      break;
--    default:
--      a = 1;
--      b++; c[b] = (unsigned char)d;
--      b++; c[b] = (unsigned char)d;
--      b++; c[b] = (unsigned char)d;
--      b++; c[b] = (unsigned char)d;
--  }
--}
-Index: gcc/testsuite/gcc.c-torture/compile/20000804-1.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20000804-1.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.c-torture/compile/20000804-1.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,8 +1,7 @@
- /* This does not work on m68hc11 or h8300 due to the use of an asm
-    statement to force a 'long long' (64-bits) to go in a register.  */
- /* { dg-do assemble } */
--/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
--/* { dg-skip-if "PIC default" { { i?86-*-darwin*  x86_64-*-darwin* } && ilp32 } { "*" } { "" } } */
-+/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */
- /* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */
- /* { dg-xfail-if "" { m6811-*-* m6812-*-* h8300-*-* } { "*" } { "" } } */
-Index: gcc/testsuite/gcc.c-torture/compile/pr42703.c
+-   type Stream_Ptr is access Stream;
+-   for Stream_Ptr'Size use Standard'Address_Size;
+-
+-   type Buf is record
+-      A : System.Address;
+-   end record;
+-
+-   type Buf_Wrapper is record
+-      B : Buf;
+-   end record;
+-
+-   type Buf_Ptr is access Buf_Wrapper;
+-
+-   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr);
+-
+-end Thin_Pointer;
+Index: gcc/testsuite/gnat.dg/thin_pointer1.adb
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42703.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42703.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+__extension__ typedef unsigned long long int uint64_t;
-+typedef uint64_t ScmUInt64;
-+void swapb64(ScmUInt64 *loc) 
-+{
-+    union {
-+        ScmUInt64 l;
-+        unsigned char c[4];
-+    } dd;
-+    unsigned char t;
-+    dd.l = *loc;
-+    (t = dd.c[3], dd.c[3] = dd.c[4], dd.c[4] = t);
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr41634.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr41634.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr41634.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+extern int _xgetw();
-+extern int foo(char*);
+--- gcc/testsuite/gnat.dg/thin_pointer1.adb    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gnat.dg/thin_pointer1.adb    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,11 @@
++-- { dg-do compile }
++-- { dg-options "-O" }
 +
-+void test_readmode( int ascii_mode )
-+{
-+  static const char outbuffer[]
-+    = "0,1,2,3,4,5,6,7,8,9\r\n\r\nA,B,C,D,E\r\nX,Y,Z";
-+  char buffer[2*512 +256];
-+  int i, j, ao;
-+  unsigned int fp;
++package body Thin_Pointer1 is
 +
-+  foo(buffer);
++   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr) is
++   begin
++      AD.B.A := Buffer (Buffer'First)'Address;
++   end Set_Buffer;
 +
-+  for (i=0, j=0; i<6; i++) {
-+      if (ao==0 || outbuffer[fp-3+i] != '\r')
-+      buffer[j++] = outbuffer[fp-3+i];
-+  }
-+  _xgetw();
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42730.c
++end Thin_Pointer1;
+Index: gcc/testsuite/gnat.dg/thin_pointer1.ads
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42730.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42730.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+union bzz
-+{
-+  unsigned *pa;
-+  void *pv;
-+};
+--- gcc/testsuite/gnat.dg/thin_pointer1.ads    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gnat.dg/thin_pointer1.ads    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,22 @@
++with System;
 +
-+void foo (void)
-+{
-+  union bzz u;
-+  void **x;
-+  void *y = 0;
-+  x = &u.pv;
-+  *x = y;
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42632.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42632.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42632.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+static inline __attribute__((always_inline)) int
-+__pskb_trim(void)
-+{
-+  return ___pskb_trim();
-+}
-+static inline __attribute__((always_inline))
-+int pskb_trim(void)
-+{
-+  return __pskb_trim();
-+}
-+int ___pskb_trim(void)
-+{
-+  pskb_trim();
-+  return 0;
-+}
++package Thin_Pointer1 is
 +
-Index: gcc/testsuite/gcc.c-torture/compile/pr42705.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42705.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42705.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,58 @@
-+typedef int GLint;
-+typedef unsigned char GLubyte;
-+typedef unsigned int uint32_t;
-+struct radeon_bo {
-+    void *ptr;
-+    uint32_t flags;
-+};
-+struct radeon_renderbuffer {
-+    struct radeon_bo *bo;
-+    unsigned int cpp;
-+    int has_surface;
-+};
-+static inline
-+GLint r600_1d_tile_helper(const struct radeon_renderbuffer * rrb,
-+                        GLint x, GLint y, GLint is_depth, GLint is_stencil)
-+{
-+  GLint element_bytes = rrb->cpp;
-+  GLint num_samples = 1;
-+  GLint tile_width = 8;
-+  GLint tile_height = 8;
-+  GLint tile_thickness = 1;
-+  GLint tile_bytes;
-+  GLint tiles_per_row;
-+  GLint slice_offset;
-+  GLint tile_row_index;
-+  GLint tile_column_index;
-+  GLint tile_offset;
-+  GLint pixel_number = 0;
-+  GLint element_offset;
-+  GLint offset = 0;
-+  tile_bytes = tile_width * tile_height * tile_thickness
-+      * element_bytes * num_samples;
-+  tile_column_index = x / tile_width;
-+  tile_offset = ((tile_row_index * tiles_per_row)
-+               + tile_column_index) * tile_bytes;
-+  if (is_depth) {
-+  }
-+  else {
-+      GLint sample_offset;
-+      switch (element_bytes) {
-+        case 1:       pixel_number |= ((x >> 0) & 1) << 0;
-+      }
-+      element_offset = sample_offset + (pixel_number * element_bytes);
-+  }
-+  offset = slice_offset + tile_offset + element_offset;
-+  return offset;
-+}
-+GLubyte *r600_ptr_color(const struct radeon_renderbuffer * rrb,
-+                      GLint x, GLint y)
-+{
-+  GLubyte *ptr = rrb->bo->ptr;
-+  uint32_t mask = 1 | 2;
-+  GLint offset;
-+  if (rrb->has_surface || !(rrb->bo->flags & mask)) {
-+      offset = r600_1d_tile_helper(rrb, x, y, 0, 0);
-+  }
-+  return &ptr[offset];
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42708-1.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42708-1.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42708-1.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+typedef __SIZE_TYPE__ size_t;
-+void *malloc(size_t);
-+typedef union YYSTYPE {
-+    char *id;
-+}  YYSTYPE;
-+extern YYSTYPE yylval;
-+void yylex (int b)
-+{
-+  yylval = (YYSTYPE) (b ? 0 : (char *) malloc (4));
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr41661.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr41661.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr41661.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,20 @@
-+/* PR tree-optimization/41661 */
-+/* { dg-do compile } */
-+/* { dg-options "-fno-early-inlining" } */
++   type Stream is array (Integer range <>) of Character;
 +
-+int g;
++   type Stream_Ptr is access Stream;
++   for Stream_Ptr'Size use Standard'Address_Size;
 +
-+void foo (int x)
-+{
-+  g = x;
-+}
++   type Buf is record
++      A : System.Address;
++   end record;
 +
-+void bar (double d)
-+{
-+  foo (d == 1);
-+}
++   type Buf_Wrapper is record
++      B : Buf;
++   end record;
 +
-+void baz (int a)
-+{
-+  bar (1);
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
++   type Buf_Ptr is access Buf_Wrapper;
++
++   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr);
++
++end Thin_Pointer1;
+Index: gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42196-1.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42196-1.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+union U
-+{
-+  double d;
-+  __complex__ int c;
-+};
+--- gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,18 @@
++package body Thin_Pointer2_Pkg is
 +
-+double gd;
-+extern double bar (union U);
++   type SB is access constant String;
 +
-+double foo (int b, double d, int c1, int c2)
-+{
-+  union U u;
-+  double r;
++   function Inner (S : SB) return Character is
++   begin
++      if S /= null and then S'Length > 0 then
++         return S (S'First);
++      end if;
++      return '*';
++   end;
 +
-+  if (b)
-+    {
-+      u.d = d;
-+      r = u.d;
-+    }
-+  else
-+    {
-+      __real__ u.c = c1;
-+      __imag__ u.c = c2;
-+      r = bar (u);
-+    }
++   function F return Character is
++   begin
++      return Inner (SB (S));
++   end;
 +
-+  return r;
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr41182-1.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr41182-1.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr41182-1.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,6 @@
-+typedef long unsigned int size_t;
-+int _lae_process_opts(char *pr, char *pe)
-+{ 
-+  return (strlen ("on") < ((size_t) ((pe-&pr[2])>(strlen("on"))                
-+                                     ? (pe-&pr[2]) : (strlen("on")))));
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42716.c
++end Thin_Pointer2_Pkg;
+Index: gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42716.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42716.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+static short foo (long long si1, short si2)
-+{
-+  return si1 > 0 && si2 > 0 || si1 < 0
-+      && si2 < 0 && si1 < 1 - si2 ? : si1 + si2;
-+}
+--- gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
++package Thin_Pointer2_Pkg is
 +
-+int g_13;
-+unsigned g_17;
++   type SA is access String;
++   for SA'Size use Standard'Address_Size;
++   S : SA;
 +
-+int safe (int, int);
++   function F return Character;
 +
-+void bar (short p_51, short * p_52)
-+{
-+  int *const l_55 = &g_13;
-+  if (safe (*p_52, g_13 != foo (*p_52 & *l_55 == g_13 && g_17 >= 1, 0)))
-+    {
-+    }
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
++end Thin_Pointer2_Pkg;
+Index: gcc/testsuite/gnat.dg/thin_pointer2.adb
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42196-3.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42196-3.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+union U
-+{
-+  __complex__ int ci;
-+  __complex__ float cf;
-+};
-+
-+float gd;
-+extern float bar (float, float);
+--- gcc/testsuite/gnat.dg/thin_pointer2.adb    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gnat.dg/thin_pointer2.adb    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,13 @@
++-- PR ada/42253
++-- Testcase by Duncan Sands <baldrick@gcc.gnu.org>
 +
-+float foo (int b, union U u)
-+{
-+  float f1, f2, r;
++-- { dg-do run }
 +
-+  if (b)
-+    {
-+      f1 = __real__ u.cf;
-+      f1 = __imag__ u.cf;
-+    }
-+  else
-+    {
-+      f1 = __real__ u.ci;
-+      f1 = __imag__ u.ci;
-+    }
++with Thin_Pointer2_Pkg; use Thin_Pointer2_Pkg;
 +
-+  r = bar (f1, f2);
-+  return r;
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42398.c
++procedure Thin_Pointer2 is
++begin
++   if F /= '*' then
++      raise Program_Error;
++   end if;
++end;
+Index: gcc/testsuite/ada/acats/run_all.sh
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42398.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42398.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,6 @@
-+int ptrace_setregs(void)
-+{
-+  union { unsigned int l; int t; } __gu_tmp;
-+  __asm__ __volatile__("" : "=r" (__gu_tmp.l));
-+  return __gu_tmp.t;
-+}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42927.c
+--- gcc/testsuite/ada/acats/run_all.sh (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/ada/acats/run_all.sh (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -129,6 +129,7 @@
+ cp $testdir/tests/cd/*.c $dir/support
+ cp $testdir/tests/cxb/*.c $dir/support
++grep -v '^#' $testdir/norun.lst | sort > $dir/support/norun.lst
+ rm -rf $dir/run
+ mv $dir/tests $dir/tests.$$ 2> /dev/null
+@@ -206,7 +207,7 @@
+    cd $dir/tests/$chapter
+    ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \
+-   cut -c1-7 | sort | uniq | comm -23 - $testdir/norun.lst \
++   cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \
+      > $dir/tests/$chapter/${chapter}.lst 
+    countn=`wc -l < $dir/tests/$chapter/${chapter}.lst`
+    glob_countn=`expr $glob_countn + $countn`
+Index: gcc/testsuite/gcc.dg/Wunreachable-2.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42927.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42927.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,32 @@
-+typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
-+typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
-+typedef enum { READ_SHARED = 0, WRITE_EXCLUSIVE = 1,
-+    READ_EXCLUSIVE = 2, EXCLUSIVE_ACCESS = 3 } scsires_access_mode;
-+struct scsires_extent_elem {
-+    scsires_access_mode mode;
-+    unsigned relative_address;
-+    u_int32_t first_block;
-+    u_int32_t length;
-+};
-+typedef struct scsires_extent_elem scsires_extent_elem_t;
-+struct scsires_extent {
-+    u_int8_t num_elements;
-+    scsires_extent_elem_t *elements;
-+};
-+typedef struct scsires_extent scsires_extent_t;
-+unsigned char buf[512];
-+void scsires_issue_reservation(scsires_extent_t * new_extent)
+--- gcc/testsuite/gcc.dg/Wunreachable-2.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/Wunreachable-2.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,19 +0,0 @@
+-/* { dg-do compile } */
+-/* { dg-options "-O2 -Wunreachable-code" } */
+-
+-extern int foo (const char *);
+-extern void baz (void);
+-const char *a[] = { "one", "two" };
+-
+-void bar (void)
+-{
+-  int i;
+-
+-  for (i = 0; i < 2; i++)
+-    if (! foo (a[i]))
+-      return;
+-
+-  baz ();     /* { dg-bogus "will never be executed" } */
+-  baz ();
+-  baz ();
+-}
+Index: gcc/testsuite/gcc.dg/inline-33.c
+===================================================================
+--- gcc/testsuite/gcc.dg/inline-33.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/inline-33.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fdump-tree-optimized"  } */
+-/* { dg-options "-O3 -fdump-tree-optimized -fpie" { target { ! nonpic } } } */
++/* { dg-add-options bind_pic_locally } */
+ int i;
+Index: gcc/testsuite/gcc.dg/parm-impl-decl-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/parm-impl-decl-3.c    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/parm-impl-decl-3.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,28 @@
++/* Like parm-impl-decl-1.c, but with -g.  PR 43381.  */
++/* Origin: Joseph Myers <joseph@codesourcery.com> */
++/* { dg-do compile } */
++/* { dg-options "-g" } */
++
++int
++foo (int __attribute__ ((__mode__ (vector_size(8)))) i) /* { dg-warning "'__mode__' attribute ignored" } */
 +{
-+  int i;
-+  for (i = 0; i < new_extent->num_elements; i++)
-+    {
-+      buf[(i * 8)] = new_extent->elements[i].mode;
-+      buf[(i * 8) + 1] = ((new_extent->elements[i].length >> 16) & 0xff); 
-+      buf[(i * 8) + 2] = ((new_extent->elements[i].length >> 8) & 0xff);
-+      buf[(i * 8) + 3] = (new_extent->elements[i].length & 0xff);
-+      buf[(i * 8) + 4] = ((new_extent->elements[i].first_block >> 24) & 0xff); 
-+      buf[(i * 8) + 5] = ((new_extent->elements[i].first_block >> 16) & 0xff);
-+      buf[(i * 8) + 6] = ((new_extent->elements[i].first_block >> 8) & 0xff);
-+      buf[(i * 8) + 7] = (new_extent->elements[i].first_block & 0xff);
-+    }
++  return (long long) i;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42749.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42749.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42749.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,5 @@
-+struct pdf_object { int val; };
-+int pdf_count_size_object (struct pdf_object * p_obj)
++
++int f (int [sizeof(g())]);
++int f1 (int [sizeof(g1())]);
++
++int g () { return 1; }
++
++int
++h (int (*p)[sizeof(i())])
 +{
-+    return pdf_count_size_object(p_obj) + 2 * sizeof(struct pdf_object);
++  int g2 (), g3 ();
++  return (*p)[0] + g3() + g2();
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42025-2.c
++
++int i () { return 2; }
++
++int f2 (int [sizeof(g2())]);
++int f3 (int [sizeof(g3())]);
++int g3 () { return 4; }
+Index: gcc/testsuite/gcc.dg/errno-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42025-2.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42025-2.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,32 @@
-+typedef struct
+--- gcc/testsuite/gcc.dg/errno-1.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/errno-1.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,17 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++#include <errno.h>
++#include <stdlib.h>
++
++int main()
 +{
 +  void *p;
-+} Ptr;
++  errno = 0;
++  p = malloc (-1);
++  if (errno != 0)
++    do_not_optimize_away ();
++  return 0;
++}
 +
-+struct A
-+{
-+  int i;
-+  union
-+  {
-+    Ptr p;
-+    char *q;
-+  } u;
-+};
++/* { dg-final { scan-assembler "do_not_optimize_away" } } */
+Index: gcc/testsuite/gcc.dg/pr42427.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr42427.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr42427.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,21 @@
++/* { dg-do assemble } */
++/* { dg-options "-O2 -fexceptions -fnon-call-exceptions -fpeel-loops" } */
++/* { dg-require-effective-target ilp32 } */
 +
-+extern Ptr get_stuff (void);
-+extern void use_stuff (char *);
++#include <complex.h>
 +
-+static void foo(struct A p, char *q)
-+{
-+  if (p.i)
-+    p.u.p = get_stuff ();
-+  else
-+    p.u.q = q;
++extern double myabs (complex double);
 +
-+  use_stuff (p.u.q);
++void
++test (double *help, complex double *wm, long nz)
++{
++  long k;
++  double znew;
++  double zold;
++  for (k = 0; k < nz; k++)
++    {
++      znew = myabs (wm[k]);
++      zold = help[k];
++      help[k] = znew;
++    }
 +}
+Index: gcc/testsuite/gcc.dg/pr43300.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr43300.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43300.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,17 @@
++/* { dg-do compile } */
++/* { dg-options "-Os -w" } */
++typedef float V2SF __attribute__ ((vector_size (128)));
 +
-+void bar(struct A *p, char *q)
++V2SF
++foo (int x, V2SF a)
 +{
-+  foo(*p, q);
++  V2SF b;
++  if (x & 42)
++    b = a;
++  else
++    b = a + (V2SF) {1.0f/0.0f - 1.0f/0.0f, 1.0f/0.0f - 1.0f/0.0f};
++  while (x--)
++    a += b;
++      
++  return a;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42164.c
+Index: gcc/testsuite/gcc.dg/pr43211.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42164.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42164.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+typedef struct
-+{
-+  unsigned long long pte;
-+} pte_t;
-+pte_t mk_swap_pte (unsigned long offset)
+--- gcc/testsuite/gcc.dg/pr43211.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43211.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,15 @@
++/* { dg-do compile } */
++
++struct T;
++
++struct S {
++  void (*bar)(struct S);
++};
++
++void bar(struct T t) {} /* { dg-error "" }  */
++
++void foo(struct S *s)
 +{
-+  pte_t pte;
-+  pte.pte = (offset << 40);
-+  return pte;
++  s->bar = bar;
 +}
-+int pte_file (pte_t pte)
++
+Index: gcc/testsuite/gcc.dg/vla-22.c
+===================================================================
+--- gcc/testsuite/gcc.dg/vla-22.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/vla-22.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,22 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++extern void bar (int *);
++
++static inline __attribute__((always_inline))
++int
++foo (int i)
 +{
-+  return pte.pte & (1 << 4);
++  struct S {
++    int ar[1][i];
++  } s;
++
++  s.ar[0][0] = 0;
++  bar (&s.ar[0][0]);
 +}
-+typedef struct
-+{
-+  unsigned long val;
-+} swp_entry_t;
-+pte_t swp_entry_to_pte (swp_entry_t entry)
++
++void
++baz (int i)
 +{
-+  swp_entry_t arch_entry;
-+  arch_entry = (swp_entry_t){mk_swap_pte (swp_offset (entry)).pte};
-+  __BUG_ON ((unsigned long) pte_file ((pte_t) {arch_entry.val}));
-+  return (pte_t) {arch_entry.val};
++  foo (i + 2);
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42237.c
+Index: gcc/testsuite/gcc.dg/fold-div-3.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42237.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42237.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,32 @@
-+struct A
+--- gcc/testsuite/gcc.dg/fold-div-3.c  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/fold-div-3.c  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,15 @@
++/* { dg-do compile } */
++/* { dg-options "-O -fdump-tree-original" } */
++
++unsigned int
++apply_frontend_param (unsigned int spi_bias)
 +{
-+  int p;
++  static const int ppm = 8000;
++  spi_bias /= 1000ULL + ppm/1000;
++  return spi_bias;
++}
++
++/* Make sure we perform the division in the narrower type.  */
++
++/* { dg-final { scan-tree-dump "spi_bias = spi_bias / 1008;" "original" } } */
++/* { dg-final { cleanup-tree-dump "original" } } */
+Index: gcc/testsuite/gcc.dg/pr43402.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr43402.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43402.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,58 @@
++/* { dg-do run } */
++/* { dg-options "-O1 -fno-inline" } */
++extern void abort (void);
++
++static int something;
++
++static int * converterData[2]={
++    &something, &something,
 +};
 +
-+struct B
-+{
-+  struct A n;
-+  struct A m;
-+  int x;
-+  int y;
-+  int z;
++static struct {
++  const char *name;
++  int type;
++} const cnvNameType[] = {
++  { "bocu1", 1 },
++  { "utf7", 1 },
++  { "utf8", 1 }
 +};
 +
-+extern int g1, g2;
 +
-+static void __attribute__((noinline)) foo (struct B *b)
++const int * getAlgorithmicTypeFromName(const char *realName);
++const int *
++getAlgorithmicTypeFromName(const char *realName)
 +{
-+  int t;
++    unsigned mid, start, limit;
++    unsigned lastMid;
++    int result;
++    start = 0;
++    limit = sizeof(cnvNameType)/sizeof(cnvNameType[0]);
++    mid = limit;
++    lastMid = 0xffffffff;
 +
-+  t = b->n.p;
-+  g1 = t;
-+  b->n.p = t+1;
-+  g2 = b->m.p;
++    for (;;) {
++        mid = (start + limit) / 2;
++        if (lastMid == mid) {   /* Have we moved? */
++            break;  /* We haven't moved, and it wasn't found. */
++        }
++        lastMid = mid;
++        result = __builtin_strcmp(realName, cnvNameType[mid].name);
++
++        if (result < 0) {
++            limit = mid;
++        } else if (result > 0) {
++            start = mid;
++        } else {
++            return converterData[cnvNameType[mid].type];
++        }
++    }
 +
-+  b->m = b->n;
++    return 0;
 +}
 +
-+void bar (struct B *b)
++int main (void)
 +{
-+  foo (b);
++  if (!getAlgorithmicTypeFromName ("utf8"))
++    abort ();
++  return 0;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr43066.c
+Index: gcc/testsuite/gcc.dg/torture/pr42952.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr43066.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr43066.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+struct S {
-+  struct { } empty[1];
-+  int i;
-+};
+--- gcc/testsuite/gcc.dg/torture/pr42952.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr42952.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,19 @@
++/* { dg-do run } */
++/* { dg-options "-fno-tree-ccp -fno-tree-fre" } */
 +
-+int foo(int i, ...)
++extern void abort (void);
++
++static int g[1];
++
++static int * const p = &g[0];
++static int * const q = &g[0];
++
++int main(void)
 +{
-+  struct S s;
-+  __builtin_va_list va;
-+  __builtin_va_start(va, i);
-+  s = __builtin_va_arg(va, struct S);
-+  __builtin_va_end(va);
-+  return s.i;
++  g[0] = 1;
++  *p = 0;
++  *p = *q;
++  if (g[0] != 0)
++    abort ();
++  return 0;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
+Index: gcc/testsuite/gcc.dg/torture/pr43002.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42196-2.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42196-2.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+union U
-+{
-+  __complex__ int ci;
-+  __complex__ float cf;
-+};
+--- gcc/testsuite/gcc.dg/torture/pr43002.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr43002.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++/* { dg-do compile } */
++/* { dg-options "-Wall -fwrapv" } */
 +
-+float gd;
-+extern float bar (union U);
++long A[4], B[100];
 +
-+float foo (int b, double f1, double f2, int c1, int c2)
++void foo(void)
 +{
-+  union U u;
-+  double r;
-+
-+  if (b)
-+    {
-+      __real__ u.cf = f1;
-+      __imag__ u.cf = f2;
-+    }
-+  else
-+    {
-+      __real__ u.ci = c1;
-+      __imag__ u.ci = c2;
++  int i, j, k = 3;
++  while (A[k] && k > 0) k--; /* k = {0, 1, 2, 3} */
++  for (i = 3 - k; i >= 0; i--) /* i = {0..3-k} */
++    for (j = 0; j <= k; j++) { /* line 8; j = {0..k} */
++      B[i + j] = 0; /* line 9; i + j = {0..3-k+k} = {0..3} */
++      for (j = 0; j <= k; j++); /* only one iteration is done, with j == 0 */
 +    }
-+
-+  r = bar (u);
-+  return r;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42717.c
++
+Index: gcc/testsuite/gcc.dg/torture/pr43360.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42717.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42717.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,30 @@
-+static signed char
-+foo (signed char si1, unsigned char si2)
+--- gcc/testsuite/gcc.dg/torture/pr43360.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr43360.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,20 @@
++/* { dg-do run } */
++
++int l_5_5_2 = 4;
++int g_3[1][1];
++
++void func_1 (void)
 +{
-+  return (si1 ^ si2) & (-si2 ^ si2) ? : si1 - si2;
++  for (g_3[0][0] = 1; g_3[0][0] < 8; g_3[0][0] += 7) {
++    int *l_6 = &g_3[0][0];
++    *l_6 = l_5_5_2;
++  }
 +}
 +
-+struct S0
++int main (void)
 +{
++  func_1 ();
++  if (g_3[0][0] != 11)
++      __builtin_abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/torture/pr42898-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr42898-2.c   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr42898-2.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,25 @@
++/* { dg-do compile } */
++/* { dg-options "-fdump-tree-optimized" } */
++
++struct hardware {
++  int parm1:8;
++  int :4;
++  int parm2:4;
++  int parm3:15;
++  int parm4:1;
 +};
 +
-+unsigned char g_21;
-+
-+struct S0 g_34;
++const struct hardware h = {
++  .parm1=42,
++  .parm2=13,
++  .parm3=11850,
++  .parm4=1,
++};
 +
-+void
-+bar (unsigned char p_20)
++void f1(volatile struct hardware *ptr)
 +{
-+  unsigned char *l_22 = &g_21;
-+  unsigned char l_23 = 0;
-+  struct S0 *l = &g_34;
-+  goto lbl_42;
-+  for (; l_23; l_23 = foo (l_23, 1))
-+    {
-+      for (p_20 = 0; 0; p_20 = foo (p_20, 1))
-+      lbl_42:;
-+      (l == &g_34) ? 0 : "";
-+lbl_85:*l_22 = p_20;
-+    }
-+  goto lbl_85;
++  *ptr = h;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr41728.c
++
++/* { dg-final { scan-tree-dump-times "\\*ptr" 1 "optimized" } } */
++/* { dg-final { cleanup-tree-dump "optimized" } } */
+Index: gcc/testsuite/gcc.dg/torture/pr42898.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr41728.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr41728.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+int a[8];
-+int s244(void)
+--- gcc/testsuite/gcc.dg/torture/pr42898.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr42898.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,23 @@
++/* { dg-do compile } */
++/* { dg-options "-fdump-tree-optimized" } */
++
++struct hardware {
++  int parm1:8;
++  int :4;
++  int parm2:4;
++  int parm3:15;
++  int parm4:1;
++};
++
++void f1(volatile struct hardware *ptr)
 +{
-+  int lrc, j;
-+  lrc = 0;
-+  for (j=0; j<7; j++)
-+    if(a[j] != a[j+1])
-+      lrc = 1;
-+  if (lrc != 0)
-+    return 0;
-+  return 1;
++  *ptr=(struct hardware) {
++    .parm1=42,
++    .parm2=13,
++    .parm3=11850,
++    .parm4=1,
++  };
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42998.c
++
++/* { dg-final { scan-tree-dump-times "\\*ptr" 1 "optimized" } } */
++/* { dg-final { cleanup-tree-dump "optimized" } } */
+Index: gcc/testsuite/gcc.dg/torture/pr42363.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42998.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42998.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+void foo(void *);
-+void bar(void *);
-+void ndisc_fill_addr_option(unsigned char *opt, int data_len,
-+                          unsigned short addr_type) 
+--- gcc/testsuite/gcc.dg/torture/pr42363.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr42363.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,84 @@
++/* PR middle-end/pr42363, extended from the test for PR middle-end/37913.  */
++/* { dg-do compile } */
++/* { dg-options "-g" } */
++
++void foo (void) __attribute__ ((noreturn));
++
++static int __attribute__ ((noreturn))
++bar (void)
 +{
-+  int pad;
-+  if (addr_type == 32)
-+    pad = 2;
-+  else
-+    pad = 0;
-+  __builtin_memset(opt + 2, 0, pad);
-+  opt += pad;
-+  __builtin_constant_p(data_len) ? foo (opt+2) : bar (opt+2);
++  foo ();
 +}
 +
-Index: gcc/testsuite/gcc.c-torture/compile/pr42559.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42559.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42559.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,8 @@
-+void jumpfunc(int copy, void *p)
++int
++baz (void)
 +{
-+  void *l = &&jumplabel;
-+  if (copy)
-+    __builtin___memcpy_chk (p, l, 128, __builtin_object_size (p, 0));
-+jumplabel:
-+  return;
++  int i = bar ();
++  return i + 1;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42299.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42299.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42299.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,23 @@
-+/* { dg-options "-g" } */
 +
-+static int
-+foo (int x, int y)
++int fooz (void) __attribute__ ((noreturn));
++
++static int __attribute__ ((noreturn))
++bart (void)
 +{
-+  if (y)
-+    goto lab;
-+  if (x)
-+    y = 0;
-+  if (y)
-+    goto lab;
-+  y = 0;
-+lab:
-+  return y;
++  return fooz (); /* { dg-warning "noreturn" } */
 +}
 +
-+void
-+baz (int x, int y)
++int bazr (void)
 +{
-+  y = foo (x, y);
-+  if (y != 0)
-+    bar ();
++  int i = bart ();
++  return i + 1;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42234.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42234.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42234.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+/* { dg-options "-g" } */
 +
-+void
-+foo (int x)
++static inline int
++bard (void)
 +{
-+  struct S { int s; } d = { 1 };
-+  unsigned int e = 1;
-+  if (x)
-+    e = x && d.s;
-+  else
-+    for (e = 0; e <= 3; e--)
-+      ;
-+  e++;
++  return fooz ();
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42025-1.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42025-1.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42025-1.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,24 @@
-+typedef void* Ptr;
 +
-+struct A
++int bizr (void)
 +{
-+  int i;
-+  union
-+  {
-+    Ptr p;
-+    char *q;
-+  } u;
-+};
++  int i, j;
++
++  i = j = bard ();
++
++  return i + 1;
++}
 +
-+static void foo(struct A *p, char *q)
++/* This might be regarded as pure and folded, rather than inlined.
++   It's pure evil.  */
++static int __attribute__ ((pure, const, noreturn))
++barf (void)
 +{
-+  if (p->i)
-+    p->u.p = 0;
-+  else
-+    p->u.q = q;
++} /* { dg-warning "does return" } */
++
++static int __attribute__ ((pure, const))
++bark (void)
++{
++  barf ();
 +}
 +
-+void bar(struct A *p, char *q)
++int buzr (void)
 +{
-+  foo(p, q);
++  int i, j;
++
++  i = j = bark () + bark ();
++
++  return i + 1;
 +}
-Index: gcc/testsuite/gcc.c-torture/compile/pr42049.c
-===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr42049.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr42049.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+/* PR middle-end/42049 */
 +
-+extern char *strcpy (char *s1, const char *s2);
-+struct S { char s[4]; };
++int buzt (void)
++{
++  int i, j;
 +
-+int
-+foo (int x, char **y)
++  i = j = barf () + barf ();
++
++  return i + 1;
++}
++
++void bust (void)
 +{
-+  char const *a;
-+  char const *b;
-+  struct S s[9];
-+  long i;
-+  if (x > 1)
-+    a = y[1];
-+  else
-+    a = "abc";
-+  if (x > 2)
-+    b = y[2];
-+  else
-+    b = "def";
-+  strcpy (s[0].s, a);
-+  strcpy (s[1].s, b);
-+  for (i = 2; i < x - 2 && i < 8; i++)
-+    strcpy (s[i].s, y[i + 1]);
-+  s[i].s[0] = '\0';
++  while (barf ())
++    ;
++}
+Index: gcc/testsuite/gcc.dg/torture/pr43000.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr43000.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr43000.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,24 @@
++/* { dg-do run } */
++/* { dg-options "-fwrapv" } */
++
++int __attribute__((noinline))
++foo (long i, long j)
++{
++  if (i >= 1)
++    if (j > -(long)(((unsigned long)(long)-1)>>1))
++      {
++        long x;
++      j--;
++      x = i + j;
++      if (x >= 0)
++        return 1;
++      }
++  return 0;
++}
++extern void abort (void);
++int main()
++{
++  if (foo (1, 1) != 1)
++    abort ();
 +  return 0;
 +}
-Index: gcc/testsuite/gcc.target/arm/synchronize.c
+Index: gcc/testsuite/gcc.dg/torture/pr43165.c
 ===================================================================
---- gcc/testsuite/gcc.target/arm/synchronize.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/synchronize.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,6 @@
-+/* { dg-final { scan-assembler "__sync_synchronize" { target arm*-*-linux-*eabi } } } */
+--- gcc/testsuite/gcc.dg/torture/pr43165.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr43165.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,17 @@
++/* PR debug/43165 */
++/* { dg-options "-g" } */
++
++struct __attribute__((packed)) S
++{
++  unsigned char a;
++  unsigned short b;
++  unsigned short c;
++  unsigned d : 24;
++};
 +
-+void *foo (void)
++void 
++foo (struct S p)
 +{
-+  __sync_synchronize();
++  for (; p.c; p.c++)
++    ;
 +}
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c
+Index: gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c
 ===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lowp8 (void)
- {
--  poly8x8_t out_poly8x8_t;
-+  register poly8x8_t out_poly8x8_t asm ("d18");
-   poly8x16_t arg0_poly8x16_t;
-   out_poly8x8_t = vget_low_p8 (arg0_poly8x16_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lows64.c
+--- gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,8 @@
++/* { dg-do compile } */
++/* { dg-options "-O1" } */
++void foo(int *p, long i, int j)
++{
++  do {
++      p[i]++;
++  } while (i += j);
++}
+Index: gcc/testsuite/gcc.dg/tree-ssa/pr42585.c
 ===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lows64.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lows64.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -15,5 +15,4 @@
-   out_int64x1_t = vget_low_s64 (arg0_int64x2_t);
- }
--/* { dg-final { scan-assembler "vmov\[        \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[         \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
- /* { dg-final { cleanup-saved-temps } } */
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c
+--- gcc/testsuite/gcc.dg/tree-ssa/pr42585.c    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/tree-ssa/pr42585.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,37 @@
++/* { dg-do compile } */
++/* { dg-options "-O1 -fdump-tree-optimized" } */
++
++struct _fat_ptr
++{
++  unsigned char *curr;
++  unsigned char *base;
++  unsigned char *last_plus_one;
++};
++int Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr);
++int
++Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr)
++{
++  struct _fat_ptr *_T0;
++  struct _fat_ptr *_T1;
++  struct _fat_ptr _T2;
++  int _T3;
++  struct _fat_ptr _ans;
++  int _change;
++
++  {
++    _T0 = sptr;
++    _T1 = sptr;
++    _T2 = *sptr;
++    _T3 = -1;
++    _ans = _T2;
++    _change = -1;
++    _ans.curr += 4294967295U;
++    *sptr = _ans;
++    return (0);
++  }
++}
++
++/* The local aggregates . */
++/* { dg-final { scan-tree-dump-times "struct _fat_ptr _ans" 0 "optimized"} } */
++/* { dg-final { scan-tree-dump-times "struct _fat_ptr _T2" 0 "optimized"} } */
++/* { dg-final { cleanup-tree-dump "optimized" } } */
+Index: gcc/testsuite/gcc.dg/tree-ssa/inline-4.c
 ===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -15,5 +15,4 @@
-   out_uint64x1_t = vget_low_u64 (arg0_uint64x2_t);
- }
--/* { dg-final { scan-assembler "vmov\[        \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[         \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
- /* { dg-final { cleanup-saved-temps } } */
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lowp16 (void)
- {
--  poly16x4_t out_poly16x4_t;
-+  register poly16x4_t out_poly16x4_t asm ("d18");
-   poly16x8_t arg0_poly16x8_t;
-   out_poly16x4_t = vget_low_p16 (arg0_poly16x8_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lows8.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lows8.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lows8.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lows8 (void)
- {
--  int8x8_t out_int8x8_t;
-+  register int8x8_t out_int8x8_t asm ("d18");
-   int8x16_t arg0_int8x16_t;
-   out_int8x8_t = vget_low_s8 (arg0_int8x16_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lowu8 (void)
- {
--  uint8x8_t out_uint8x8_t;
-+  register uint8x8_t out_uint8x8_t asm ("d18");
-   uint8x16_t arg0_uint8x16_t;
-   out_uint8x8_t = vget_low_u8 (arg0_uint8x16_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lows32.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lows32.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lows32.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lows32 (void)
- {
--  int32x2_t out_int32x2_t;
-+  register int32x2_t out_int32x2_t asm ("d18");
-   int32x4_t arg0_int32x4_t;
-   out_int32x2_t = vget_low_s32 (arg0_int32x4_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lows16.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lows16.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lows16.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lows16 (void)
- {
--  int16x4_t out_int16x4_t;
-+  register int16x4_t out_int16x4_t asm ("d18");
-   int16x8_t arg0_int16x8_t;
-   out_int16x4_t = vget_low_s16 (arg0_int16x8_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lowu32 (void)
- {
--  uint32x2_t out_uint32x2_t;
-+  register uint32x2_t out_uint32x2_t asm ("d18");
-   uint32x4_t arg0_uint32x4_t;
-   out_uint32x2_t = vget_low_u32 (arg0_uint32x4_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lowu16 (void)
- {
--  uint16x4_t out_uint16x4_t;
-+  register uint16x4_t out_uint16x4_t asm ("d18");
-   uint16x8_t arg0_uint16x8_t;
-   out_uint16x4_t = vget_low_u16 (arg0_uint16x8_t);
-Index: gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -9,7 +9,7 @@
- void test_vget_lowf32 (void)
- {
--  float32x2_t out_float32x2_t;
-+  register float32x2_t out_float32x2_t asm ("d18");
-   float32x4_t arg0_float32x4_t;
-   out_float32x2_t = vget_low_f32 (arg0_float32x4_t);
-Index: gcc/testsuite/gcc.target/arm/neon-thumb2-move.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/neon-thumb2-move.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/neon-thumb2-move.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,98 @@
+--- gcc/testsuite/gcc.dg/tree-ssa/inline-4.c   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/tree-ssa/inline-4.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,27 @@
 +/* { dg-do compile } */
-+/* { dg-require-effective-target arm_neon_ok } */
-+/* { dg-options "-O2 -mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
++/* { dg-options "-O2 -fdump-tree-einline2" } */
++/* { dg-add-options bind_pic_locally } */
 +
-+#include <arm_neon.h>
-+#include <stddef.h>
++extern int rand(void);
 +
-+void *
-+memset (DST, C, LENGTH)
-+     void *DST;
-+     int C;
-+     size_t LENGTH;
++int get_data_for (int id)
 +{
-+  void* DST0 = DST;
-+  unsigned char C_BYTE = C;
++  return rand();
++}
 +
++int my_id;
 +
-+  if (__builtin_expect(LENGTH < 4, 1)) {
-+    size_t i = 0;
-+    while (i < LENGTH) {
-+      ((char*)DST)[i] = C_BYTE;
-+      i++;
++int main()
++{
++  int res = get_data_for (my_id);
++  switch (res)
++    {
++      case 0:
++        return 666;
++      default:
++        return -1;
 +    }
-+    return DST;
-+  }
-+
-+  const char* DST_end = (char*)DST + LENGTH;
++}
 +
++/* { dg-final { scan-tree-dump "Inlining get_data_for into main" "einline2" } } */
++/* { dg-final { cleanup-tree-dump "einline2" } } */
+Index: gcc/testsuite/gcc.dg/compound-literal-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/compound-literal-1.c  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/compound-literal-1.c  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
++/* { dg-do compile } */
 +
-+  while ((uintptr_t)DST % 4 != 0) {
-+    *(char*) (DST++) = C_BYTE;
-+  }
++/* PR c/43248 */
 +
++int foo(__SIZE_TYPE__ i)
++{
++  i ? : (void *){}; /* { dg-error "" } */
++}
 +
-+  uint32_t C_SHORTWORD = (uint32_t)(unsigned char)(C_BYTE) * 0x01010101;
+Index: gcc/testsuite/gcc.dg/pr43280.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr43280.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43280.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,30 @@
++/* { dg-do run } */
++/* { dg-require-effective-target stdint_types } */
++/* { dg-options "-O2" } */
 +
++#include <stdint.h>
 +
-+  if (__builtin_expect(DST_end - (char*)DST >= 16, 0)) {
-+    while ((uintptr_t)DST % 16 != 0) {
-+      *((uint32_t*)((char*)(DST) + (0))) = C_SHORTWORD;
-+      DST += 4;
-+    }
++extern void abort (void);
 +
++uint64_t __attribute__((noinline))
++byteswap64(uint64_t x)
++{
++  uint32_t a = x >> 32;
++  uint32_t b = (uint32_t) x;
++  return ((uint64_t) ((((((b)) >> (8)) | (((b)) << (32 - (8)))) & 0xff00ff00L)
++                    | (((((b)) << (8)) | (((b)) >> (32 - (8)))) & 0x00ff00ffL)) << 32)
++          | (uint64_t) ((((((a)) >> (8)) | (((a)) << (32 - (8)))) & 0xff00ff00L)
++                      | (((((a)) << (8)) | (((a)) >> (32 - (8)))) & 0x00ff00ffL));
++}
 +
-+    uint8x16_t C_WORD = vdupq_n_u8(C_BYTE);
++int
++main ()
++{
++  uint64_t in = (uint64_t)0x01020304 << 32 | 0x05060708;
++  uint64_t cmp = (uint64_t)0x08070605 << 32 | 0x04030201;
 +
++  if (cmp != byteswap64 (in))
++    abort ();
 +
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c
+===================================================================
+--- gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,31 @@
++/* PR debug/43237 */
++/* { dg-do compile } */
++/* { dg-options "-g -O2 -dA -fno-merge-debug-strings" } */
 +
++struct S
++{
++  int *a;
++  int b;
++  int **c;
++  int d;
++};
 +
++void foo (struct S *);
++void bar (struct S *);
 +
-+    size_t i = 0;
-+    LENGTH = DST_end - (char*)DST;
-+    while (i + 16 * 16 <= LENGTH) {
-+      *((uint8x16_t*)((char*)(DST) + (i))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 1))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 2))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 3))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 4))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 5))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 6))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 7))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 8))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 9))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 10))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 11))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 12))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 13))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 14))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 15))) = C_WORD;
-+      i += 16 * 16;
-+    }
-+    while (i + 16 * 4 <= LENGTH) {
-+      *((uint8x16_t*)((char*)(DST) + (i))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 1))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 2))) = C_WORD;
-+      *((uint8x16_t*)((char*)(DST) + (i + 16 * 3))) = C_WORD;
-+      i += 16 * 4;
-+    }
-+    while (i + 16 <= LENGTH) {
-+      *((uint8x16_t*)((char*)(DST) + (i))) = C_WORD;
-+      i += 16;
-+    }
-+    DST += i;
++int
++baz (void)
++{
++  struct S s;
++  foo (&s);
++  {
++    int a[s.b];
++    int *c[s.d];
++    s.a = a;
++    s.c = c;
++    bar (&s);
 +  }
++  return 0;
++}
 +
-+  while (4 <= DST_end - (char*)DST) {
-+    *((uint32_t*)((char*)(DST) + (0))) = C_SHORTWORD;
-+    DST += 4;
-+  }
++/* { dg-final { scan-assembler-not "LLST\[^\\r\\n\]*DW_AT_upper_bound" } } */
+Index: gcc/testsuite/gcc.dg/pr42715.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr42715.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr42715.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,59 @@
++/* { dg-do compile { target fpic } } */
++/* { dg-options "-fPIC -g -O2 -w" } */
++/* var-tracking failed to clobber the reg holding v at the asm insn,
++   so v ended up bound to an intermediate PIC expression.  */
 +
++struct A { unsigned a1; char a2[15]; };
++struct B { long b1; unsigned char b2; long b3; };
++struct C { void *c1; unsigned c2; unsigned c3; };
 +
-+  while ((char*)DST < DST_end) {
-+    *((char*)DST) = C_BYTE;
-+    DST++;
-+  }
++static struct A v1;
++struct A *const v2 = &v1;
 +
-+  return DST0;
++static inline
++int foo (void)
++{
++  int *v;
++  __asm__ __volatile__ ("" : "=r" (v));
++  return v[1];
 +}
-Index: gcc/testsuite/gcc.target/arm/thumb2-cbnz.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/thumb2-cbnz.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/thumb2-cbnz.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,110 @@
-+/* { dg-do assemble } */
-+/* { dg-options "-O1 -mthumb -march=armv7-a" } */
 +
-+typedef short int int16_t;
-+typedef unsigned char uint8_t;
-+struct component
-+{
-+  float *Q_table;
-+};
-+static inline unsigned char descale_and_clamp(int x, int shift)
++static void
++bar (struct C *x)
 +{
-+  x += (1UL<<(shift-1));
-+  if (x<0)
-+    x = (x >> shift) | ((~(0UL)) << (32-(shift)));
-+    x >>= shift;
-+  x += 128;
-+  if (x>255)
-+    return 255;
-+  else if (x<0)
-+    return 0;
-+    return x;
++  if (x->c2 == x->c3 && x->c1)
++    f1 (foo (), x->c1, x->c3 * sizeof (x->c1[0]));
 +}
++
 +void
-+tinyjpeg_idct_float (struct component *compptr, uint8_t *output_buf, int stride)
++baz (struct B *y)
 +{
-+  float tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
-+  float tmp10, tmp11, tmp12, tmp13;
-+  float z5, z10, z11, z12, z13;
-+  int16_t *inptr;
-+  float *quantptr;
-+  float *wsptr;
-+  uint8_t *outptr;
-+  int ctr;
-+  float workspace[(8*8)];
-+  quantptr = compptr->Q_table;
-+  wsptr = workspace;
-+  for (ctr = 8; ctr > 0; ctr--) {
-+    if (inptr[8*1] == 0 && inptr[8*2] == 0 &&
-+ inptr[8*3] == 0 && inptr[8*4] == 0 &&
-+ inptr[8*5] == 0 && inptr[8*6] == 0 &&
-+ inptr[8*7] == 0) {
-+      float dcval = (((float) (inptr[8*0])) * (quantptr[8*0]));
-+      wsptr[8*0] = dcval;
-+      wsptr[8*1] = dcval;
-+      wsptr[8*2] = dcval;
-+      wsptr[8*3] = dcval;
-+      wsptr[8*4] = dcval;
-+      wsptr[8*5] = dcval;
-+      wsptr[8*6] = dcval;
-+      wsptr[8*7] = dcval;
-+      inptr++;
-+      quantptr++;
-+      wsptr++;
-+      continue;
-+    }
-+    tmp0 = (((float) (inptr[8*0])) * (quantptr[8*0]));
-+    tmp1 = (((float) (inptr[8*2])) * (quantptr[8*2]));
-+    tmp2 = (((float) (inptr[8*4])) * (quantptr[8*4]));
-+    tmp3 = (((float) (inptr[8*6])) * (quantptr[8*6]));
-+    tmp10 = tmp0 + tmp2;
-+    tmp11 = tmp0 - tmp2;
-+    tmp13 = tmp1 + tmp3;
-+    tmp12 = (tmp1 - tmp3) * ((float) 1.414213562) - tmp13;
-+    tmp0 = tmp10 + tmp13;
-+    tmp3 = tmp10 - tmp13;
-+    tmp1 = tmp11 + tmp12;
-+    tmp2 = tmp11 - tmp12;
-+    tmp4 = (((float) (inptr[8*1])) * (quantptr[8*1]));
-+    tmp5 = (((float) (inptr[8*3])) * (quantptr[8*3]));
-+    tmp6 = (((float) (inptr[8*5])) * (quantptr[8*5]));
-+    tmp7 = (((float) (inptr[8*7])) * (quantptr[8*7]));
-+    z13 = tmp6 + tmp5;
-+    z10 = tmp6 - tmp5;
-+    z11 = tmp4 + tmp7;
-+    z12 = tmp4 - tmp7;
-+    tmp7 = z11 + z13;
-+    tmp11 = (z11 - z13) * ((float) 1.414213562);
-+    z5 = (z10 + z12) * ((float) 1.847759065);
-+    tmp10 = ((float) 1.082392200) * z12 - z5;
-+    tmp12 = ((float) -2.613125930) * z10 + z5;
-+    tmp6 = tmp12 - tmp7;
-+    tmp5 = tmp11 - tmp6;
-+    tmp4 = tmp10 + tmp5;
-+    wsptr[8*0] = tmp0 + tmp7;
-+    wsptr[8*7] = tmp0 - tmp7;
-+    wsptr[8*1] = tmp1 + tmp6;
-+    wsptr[8*2] = tmp2 + tmp5;
-+    wsptr[8*5] = tmp2 - tmp5;
-+    wsptr[8*4] = tmp3 + tmp4;
-+    wsptr[8*3] = tmp3 - tmp4;
-+    inptr++;
-+    quantptr++;
-+    wsptr++;
-+  }
-+  for (ctr = 0; ctr < 8; ctr++) {
-+    tmp11 = wsptr[0] - wsptr[4];
-+    tmp12 = (wsptr[2] - wsptr[6]) * ((float) 1.414213562) - tmp13;
-+    tmp0 = tmp10 + tmp13;
-+    tmp1 = tmp11 + tmp12;
-+    z10 = wsptr[5] - wsptr[3];
-+    tmp12 = ((float) -2.613125930) * z10 + z5;
-+    tmp6 = tmp12 - tmp7;
-+    outptr[0] = descale_and_clamp((int)(tmp0 + tmp7), 3);
-+    outptr[7] = descale_and_clamp((int)(tmp0 - tmp7), 3);
-+    outptr[1] = descale_and_clamp((int)(tmp1 + tmp6), 3);
-+    outptr[6] = descale_and_clamp((int)(tmp1 - tmp6), 3);
-+    outptr[2] = descale_and_clamp((int)(tmp2 + tmp5), 3);
-+    outptr += stride;
-+  }
-+}
-Index: gcc/testsuite/gcc.target/arm/pr40887.c
-===================================================================
---- gcc/testsuite/gcc.target/arm/pr40887.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/pr40887.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+/* { dg-options "-O2 -march=armv5te" }  */
-+/* { dg-final { scan-assembler "blx" } } */
-+
-+int (*indirect_func)();
-+
-+int indirect_call()
-+{
-+    return indirect_func();
-+}
-Index: gcc/testsuite/gcc.target/alpha/pr42113.c
-===================================================================
---- gcc/testsuite/gcc.target/alpha/pr42113.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/alpha/pr42113.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+
-+int foo (int a, int b)
-+{
-+  int bar = a * sizeof (int);
-+
-+  if (b)
-+    bar += sizeof (int);
-+
-+  return bar;
++  int i;
++  const char *j;
++  char *k;
++  char x[64];
++  for (i = 0; i < sizeof (struct B); i++, y)
++    {
++      switch (y->b2)
++        {
++        case 0x20:
++          if (__builtin_strchr (j, '='))
++            continue;
++        }
++      switch (y->b2)
++        {
++        case 0x80:
++          bar (&x);
++          f2 (y->b3);
++        case 0x2e:
++        case 0x4e:
++          break;
++        default:
++          if (v2->a1)
++            f2 (y->b2);
++        }
++      k[0] = '\0';
++      if (v2->a1)
++        f2 (y->b1);
++    }
 +}
-Index: gcc/testsuite/gcc.target/alpha/pr42448-1.c
+Index: gcc/testsuite/gcc.dg/pr43419.c
 ===================================================================
---- gcc/testsuite/gcc.target/alpha/pr42448-1.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/alpha/pr42448-1.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
+--- gcc/testsuite/gcc.dg/pr43419.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43419.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,19 @@
 +/* { dg-do run } */
-+/* { dg-options "-mcpu=21064 -O0" } */
++/* { dg-options "-O1" } */
++/* { dg-options "-mieee -O1" { target alpha*-*-* sh*-*-* } } */
++#include <math.h>
 +
 +extern void abort (void);
-+
-+struct S2180
-+{
-+  char t;
-+  _Complex char u[2];
-+};
-+
-+struct S2180 s2180;
-+
-+int
-+main (void)
++void __attribute__((noinline)) f (double x)
 +{
-+  volatile struct S2180 x;
-+
-+  s2180.u[1] = 3 + 4i;
-+
-+  x.u[1] = s2180.u[1];
-+
-+  if (x.u[1] != s2180.u[1])
++  double pluszero = pow (x, 0.5);
++  double minuszero = sqrt (x);
++  if (signbit (pluszero) == signbit (minuszero))
 +    abort ();
-+
-+  return 0;
 +}
-Index: gcc/testsuite/gcc.target/alpha/pr42448-2.c
-===================================================================
---- gcc/testsuite/gcc.target/alpha/pr42448-2.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/alpha/pr42448-2.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+/* { dg-do run } */
-+/* { dg-options "-mcpu=21064 -O0" } */
-+
-+extern void abort (void);
-+
-+struct S2180
-+{
-+  char t;
-+  _Complex char u[4];
-+};
 +
-+struct S2180 s2180;
-+
-+int
-+main (void)
++int main(void)
 +{
-+  volatile struct S2180 x;
-+
-+  s2180.u[3] = 3 + 4i;
-+
-+  x.u[3] = s2180.u[3];
-+
-+  if (x.u[3] != s2180.u[3])
-+    abort ();
-+
++  f (-0.0);
 +  return 0;
 +}
-Index: gcc/testsuite/gcc.target/alpha/pr42774.c
+Index: gcc/testsuite/gcc.dg/ipa/ipacost-2.c
 ===================================================================
---- gcc/testsuite/gcc.target/alpha/pr42774.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/alpha/pr42774.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -mcpu=ev4" } */
-+
-+unsigned int ntfs_getinfo(void *p)
-+{
-+    char bootsect[8];
-+
-+    __builtin_memcpy(bootsect, p, sizeof bootsect);
-+    return *(unsigned short *)(bootsect + 3);
-+}
-Index: gcc/testsuite/gcc.target/i386/pr42542-2b.c
+--- gcc/testsuite/gcc.dg/ipa/ipacost-2.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipacost-2.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized"  } */
+-/* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized -fpie" { target { ! nonpic } } } */
++/* { dg-add-options bind_pic_locally } */
+ int array[100];
+Index: gcc/testsuite/gcc.dg/ipa/ipa-1.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-2b.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-2b.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O1 -msse4.1 -ftree-vectorize" } */
-+
-+#define CHECK_H "sse4_1-check.h"
-+#define TEST sse4_1_test
-+
-+#include "pr42542-2.c"
-+
-+/* { dg-final { scan-assembler "pmaxuw" } } */
-+/* { dg-final { scan-assembler "pminuw" } } */
-Index: gcc/testsuite/gcc.target/i386/pr42542-3a.c
+--- gcc/testsuite/gcc.dg/ipa/ipa-1.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipa-1.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
+-/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
+ #include <stdio.h>
+ int g (int b, int c)
+Index: gcc/testsuite/gcc.dg/ipa/ipa-2.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-3a.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-3a.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,7 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O1 -msse2 -ftree-vectorize" } */
-+
-+#include "pr42542-3.c"
-+
-+/* { dg-final { scan-assembler "pmaxub" } } */
-+/* { dg-final { scan-assembler "pminub" } } */
-Index: gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
+--- gcc/testsuite/gcc.dg/ipa/ipa-2.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipa-2.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
+-/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
+ #include <stdio.h>
+ int g (int b, int c)
+Index: gcc/testsuite/gcc.dg/ipa/ipa-3.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include "cpuid.h"
-+
-+static void mmx_3dnow_test (void);
+--- gcc/testsuite/gcc.dg/ipa/ipa-3.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipa-3.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
+-/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
+ /* Double constants.  */
+Index: gcc/testsuite/gcc.dg/ipa/ipa-4.c
+===================================================================
+--- gcc/testsuite/gcc.dg/ipa/ipa-4.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipa-4.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp"  } */
+-/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
+ #include <stdio.h>
+ int g (int b, int c)
+Index: gcc/testsuite/gcc.dg/ipa/ipa-5.c
+===================================================================
+--- gcc/testsuite/gcc.dg/ipa/ipa-5.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipa-5.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
+-/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
+ /* Float & short constants.  */
+Index: gcc/testsuite/gcc.dg/ipa/ipa-7.c
+===================================================================
+--- gcc/testsuite/gcc.dg/ipa/ipa-7.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gcc.dg/ipa/ipa-7.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
+-/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
+ #include <stdio.h>
+ void send_addr (int *);
+Index: gcc/testsuite/gcc.dg/pr42388.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr42388.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr42388.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,67 @@
++/* { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } */
++/* { dg-options "-O2 -fselective-scheduling -fmodulo-sched" } */
 +
-+int
-+main ()
++enum rtx_code
 +{
-+  unsigned int eax, ebx, ecx, edx;
-+ 
-+  if (!__get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx))
-+    return 0;
-+
-+  /* Run 3DNow! test only if host has 3DNow! support.  */
-+  if (edx & bit_3DNOW)
-+    mmx_3dnow_test ();
-+
-+  return 0;
++  INSN, ADDR_VEC, ADDR_DIFF_VEC, CALL_INSN, CODE_LABEL, BARRIER, NOTE
++};
++typedef union rtunion_def
++{
++  int rtint;
++  char *rtstr;
++  struct rtx_def *rtx;
++  struct rtvec_def *rtvec;
 +}
-Index: gcc/testsuite/gcc.target/i386/pr42549.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/pr42549.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42549.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,37 @@
-+/* { dg-do run } */
-+/* { dg-options "-O2 -m3dnow" } */
-+
-+#include "mmx-3dnow-check.h"
-+
-+#include <mm3dnow.h>
-+
-+typedef union {
-+  float f[2];
-+  __m64 v;
-+} vec_t;
-+
-+void __attribute__ ((noinline))
-+Butterfly_3 (__m64 * D, __m64 SC)
++rtunion;
++typedef struct rtx_def
 +{
-+  __m64 T, T1;
-+
-+  T = _m_pfmul (D[1], SC);
-+  T1 = D[0];
-+  D[0] = _m_pfadd (T1, T);
-+  D[1] = _m_pfsub (T1, T);
++  unsigned short code;
++  rtunion fld[1];
 +}
-+
-+static void
-+mmx_3dnow_test (void)
++ *rtx;
++typedef struct rtvec_def
 +{
-+  vec_t D[2] = { { .f = { 2.0f, 3.0f } },
-+               { .f = { 4.0f, 5.0f } } };
-+
-+  const vec_t SC = { .f = { 1.0f, 1.0f } };
-+
-+  Butterfly_3 (&D[0].v, SC.v);
-+  _m_femms ();
-+
-+  if (D[1].f[0] != -2.0f || D[1].f[1] != -2.0f)
-+    abort ();
++  unsigned num_elem;
++  rtunion elem[1];
 +}
-Index: gcc/testsuite/gcc.target/i386/pr41963.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/pr41963.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr41963.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,36 @@
-+/* { dg-do run } */
-+/* { dg-options "-O2 -ffast-math -mrecip" } */
-+#include <math.h>
-+
-+extern float sqrtf(float);
++ *rtvec;
++extern rtx emit_barrier (void);
++extern rtx emit_note (char *);
 +
-+static __attribute__((noinline)) void f (float *dst, float *src)
++static void
++copy_loop_body (rtx *map)
 +{
-+  int i, j;
-+  for (i = 0; i < 2; i++)
++  int i;
++  rtx insn, copy;
++  rtx pat = copy->fld[3].rtx;
++
++  switch (insn->code)
 +    {
-+      float len;
-+      dst[0] = src[0];
-+      dst[1] = src[1];
-+      len = sqrtf (dst[0] * dst[0] + dst[1] * dst[1]);
-+      if (len > 0.5f)
-+      {
-+        len = 1.0f / len;
-+        dst[0] *= len;
-+        dst[1] *= len;
++    case INSN:
++      if (insn->fld[7].rtx)
++      {
++      }
++      else if (pat->code == ADDR_VEC || pat->code == ADDR_DIFF_VEC)
++      {
++        int diff_vec_p = pat->code == ADDR_DIFF_VEC;
++        int len = pat->fld[diff_vec_p].rtvec->num_elem;
++        for (i = 0; i < len; i++)
++          pat->fld[diff_vec_p].rtvec->elem[i].rtx->fld[5].rtint++;
 +      }
++    case CALL_INSN:
++      for (i = 0; i < 64; i++)
++      map[i] = 0;
++    case CODE_LABEL:
++    case BARRIER:
++      copy = emit_barrier ();
++    case NOTE:
++      copy = emit_note ("x");
 +    }
 +}
-+
-+extern void abort (void);
-+
-+int main()
++void
++unroll_loop (int insn_count, rtx *map)
 +{
-+  float dst[2], src[2];
-+  src[0] = 2.0f;
-+  src[1] = 5.0f;
-+  f (dst, src);
-+  if (fabsf (dst[0] * dst[0] + dst[1] * dst[1] - 1.0f) > 0.01f)
-+    abort ();
-+  return 0;
++  if (insn_count > 50)
++    copy_loop_body (map);
 +}
-Index: gcc/testsuite/gcc.target/i386/pr42542-2.c
++
+Index: gcc/testsuite/gcc.dg/pr42250.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-2.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-2.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,77 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -msse2 -ftree-vectorize" } */
+--- gcc/testsuite/gcc.dg/pr42250.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr42250.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,68 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fipa-type-escape" } */
 +
-+#ifndef CHECK_H
-+#define CHECK_H "sse2-check.h"
-+#endif
++extern double log10 (double __x);
++extern double ceil (double __x);
++extern double floor (double __x);
++extern void free (void *__ptr);
++extern void *my_malloc (unsigned int);
++extern int num_rr_nodes;
++static float get_cblock_trans (int *num_inputs_to_cblock,
++                             int max_inputs_to_cblock,
++                             float trans_cblock_to_lblock_buf,
++                             float trans_sram_bit);
++static float trans_per_mux (int num_inputs, float trans_sram_bit);
++void
++count_routing_transistors (int num_switch, float R_minW_nmos,
++                         float R_minW_pmos)
++{
++  int *num_inputs_to_cblock;
++  int iswitch, i, j, iseg, max_inputs_to_cblock;
++  float input_cblock_trans;
++  const float trans_sram_bit = 6.;
++  float trans_cblock_to_lblock_buf;
++  input_cblock_trans =
++    get_cblock_trans (num_inputs_to_cblock, max_inputs_to_cblock,
++                    trans_cblock_to_lblock_buf, trans_sram_bit);
++}
 +
-+#ifndef TEST
-+#define TEST sse2_test
-+#endif
++static float
++get_cblock_trans (int *num_inputs_to_cblock, int max_inputs_to_cblock,
++                float trans_cblock_to_lblock_buf, float trans_sram_bit)
++{
++  float *trans_per_cblock;
++  float trans_count;
++  int i, num_inputs;
 +
-+#include CHECK_H
++  trans_per_cblock =
++    (float *) my_malloc ((max_inputs_to_cblock + 1) * sizeof (float));
++  for (i = 1; i <= max_inputs_to_cblock; i++)
++    trans_per_cblock[i] =
++      trans_per_mux (i, trans_sram_bit) + trans_cblock_to_lblock_buf;
++  for (i = 0; i < num_rr_nodes; i++)
++    {
++      num_inputs = num_inputs_to_cblock[i];
++      trans_count += trans_per_cblock[num_inputs];
++    }
++  free (trans_per_cblock);
++  return (trans_count);
++}
 +
-+unsigned short v1[] __attribute__ ((aligned(16))) =
-+{
-+  0x8000, 0x9000, 1, 10, 0xa000, 0xb000, 2, 20,
-+  3, 30, 0xd000, 0xe000, 0xf000, 0xe000, 25, 30
-+};
-+unsigned short v2[] __attribute__ ((aligned(16))) =
++static float
++trans_per_mux (int num_inputs, float trans_sram_bit)
 +{
-+  4, 40, 0xb000, 0x8000, 5, 50, 0xc000, 0xf000,
-+  0xd000, 0xa000, 6, 65, 7, 75, 0xe000, 0xc000
-+};
++  int nlevels, ilevel, current_inps;
++  float ntrans = 0;
 +
-+unsigned short max[] =
-+{
-+  0x8000, 0x9000, 0xb000, 0x8000, 0xa000, 0xb000, 0xc000, 0xf000,
-+  0xd000, 0xa000, 0xd000, 0xe000, 0xf000, 0xe000, 0xe000, 0xc000
-+};
++  if (num_inputs <= 1)
++    return (0);
++  nlevels = ceil (log10 (num_inputs) / log10 (2.) - 0.00001);
++  current_inps = num_inputs;
++  for (ilevel = 1; ilevel <= nlevels; ilevel++)
++    {
++      ntrans += 2 * floor (current_inps / 2.);
++      current_inps = ceil (current_inps / 2.);
++    }
++  ntrans += trans_sram_bit * nlevels;
++  return (ntrans);
++}
+Index: gcc/testsuite/gcc.dg/pr43379.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr43379.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43379.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,11 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ftracer -w" } */
 +
-+unsigned short min[] =
++void *foo(int i, int *p)
 +{
-+  4, 40, 1, 10, 5, 50, 2, 20,
-+  3, 30, 6, 65, 7, 75, 25, 30
-+};
++lab:
++  if (p) *p = i;
++  goto *p;
++  return &&lab;
++}
 +
-+unsigned short res[16] __attribute__ ((aligned(16)));
+Index: gcc/testsuite/gcc.dg/pr43299.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr43299.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43299.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,28 @@
++/* PR debug/43299 */
++/* { dg-do assemble } */
++/* { dg-options "-g -O2" } */
 +
-+extern void abort (void);
++extern void *emit_insn (void *);
 +
-+void
-+find_max (void)
++__attribute__((noinline))
++void *gen_load_locked_si (void *x, void *y)
 +{
-+  int i;
++  return x;
++}
 +
-+  for (i = 0; i < 16; i++)
-+    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
++__attribute__((noinline))
++void *gen_load_locked_di (void *x, void *y)
++{
++  return x;
 +}
 +
 +void
-+find_min (void)
++emit_load_locked (int mode, void *reg, void *mem)
 +{
-+  int i;
-+
-+  for (i = 0; i < 16; i++)
-+    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
++  void * (*fn) (void *, void *) = ((void *)0);
++  if (mode == 9)
++    fn = gen_load_locked_si;
++  else if (mode == 10)
++    fn = gen_load_locked_di;
++  emit_insn (fn (reg, mem));
 +}
+Index: gcc/testsuite/gcc.dg/pr43305.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr43305.c     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr43305.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++/* { dg-do compile } */
++/* { dg-options "-Os -ffast-math" } */
++extern int ilogbl(long double);
++extern int printf(const char *format, ...);
 +
-+static void
-+TEST (void)
++__attribute__((noinline))
++int foo(long double x)
 +{
-+  int i;
-+  int err = 0;
-+
-+  find_max ();
-+  for (i = 0; i < 16; i++)
-+    if (res[i] != max[i])
-+      err++;
-+
-+  find_min ();
-+  for (i = 0; i < 16; i++)
-+    if (res[i] != min[i])
-+      err++;
-+
-+  if (err)
-+    abort ();
++  return ilogbl(x);
 +}
-Index: gcc/testsuite/gcc.target/i386/pr42881.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/pr42881.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42881.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* PR target/42881 */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -msse2" } */
-+#include "sse2-check.h"
-+static void
-+sse2_test (void)
++
++int main()
 +{
-+  double a[2];
-+  __m128d x = _mm_set1_pd(3);
-+  _mm_storeu_pd(a,x);
-+  if (a[0] != 3.0 || a[1] != 3.0)
-+    __builtin_abort ();
++  printf("%d\n", foo(100));
++  return 0;
 +}
-Index: gcc/testsuite/gcc.target/i386/pr42542-1b.c
+Index: gcc/testsuite/gcc.dg/vect/pr42604.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-1b.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-1b.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
+--- gcc/testsuite/gcc.dg/vect/pr42604.c        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/vect/pr42604.c        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,35 @@
++/* PR debug/42604 */
 +/* { dg-do compile } */
-+/* { dg-options "-O1 -msse4.1 -ftree-vectorize" } */
++/* { dg-options "-O3 -ftree-vectorize -g -ffast-math" } */
 +
-+#define CHECK_H "sse4_1-check.h"
-+#define TEST sse4_1_test
++unsigned *d;
++unsigned short e;
++int f;
++float h[3][4];
 +
-+#include "pr42542-1.c"
++void
++test (unsigned short *b)
++{
++  int a, c, i;
++  float g[3];
++  unsigned j[32] = { 10, 0x63707274 };
++  for (i = 0; i < (int) j[0]; i++)
++    {
++      j[i * 3 + 2] = d[0];
++      d[0] += (j[i * 3 + 3] + 3) & -4;
++    }
++  for (a = 0; a < e; a++)
++    {
++      g[0] = g[1] = g[2] = 0;
++      for (c = 0; c < f; c++)
++      {
++        g[0] += h[0][c] * b[c];
++        g[1] += h[1][c] * b[c];
++      }
++      for (c = 0; c < 3; c++)
++      b[c] = 0 > ((int) g[c] < 65535 ? ((int) g[c]) : 65535)
++        ? 0 : ((int) g[c]) < 65535 ? (int) g[c] : 65535;
++    }
++}
 +
-+/* { dg-final { scan-assembler "pmaxud" } } */
-+/* { dg-final { scan-assembler "pminud" } } */
-Index: gcc/testsuite/gcc.target/i386/pr41900.c
++/* { dg-final { cleanup-tree-dump "vect" } } */
+Index: gcc/testsuite/gcc.dg/vect/pr42395.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr41900.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr41900.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
+--- gcc/testsuite/gcc.dg/vect/pr42395.c        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/vect/pr42395.c        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,10 @@
++/* PR debug/42395 */
 +/* { dg-do compile } */
-+/* { dg-require-effective-target ilp32 } */
-+/* { dg-options "-O2 -fomit-frame-pointer -mpreferred-stack-boundary=2" } */
++/* { dg-options "-O3 -ftree-vectorize -g" } */
 +
-+int main ()
++void foo(int j, int *A)
 +{
-+  volatile unsigned code = 0xc3;
-+
-+  ((void (*)(void)) &code) ();
-+  return 0;
++  int i;
++  for (i = 0; i < j; i ++) A[i] = i;
++  for (; i < 4096; i ++) A[i] = 0;
 +}
-+
-+/* { dg-final { scan-assembler-not "call\[ \\t\]+\\*%esp" } } */
-Index: gcc/testsuite/gcc.target/i386/pr42542-2a.c
+Index: gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-2a.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-2a.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,8 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target sse4 } */
-+/* { dg-options "-O1 -msse4.1 -ftree-vectorize" } */
+--- gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++/* { dg-do compile } */
 +
-+#define CHECK_H "sse4_1-check.h"
-+#define TEST sse4_1_test
++float
++pvslockprocess(float *fout, float *fin, int framesize)
++{
++  int i;
++  float mag=0.0f, diff;
++  for (i = 0; i < framesize; i += 2) {
++      mag += fin[i];
++      fout[i] = fin[i];
++      fout[i+1] = fin[i+1];
++  }
++  return mag;
++}
 +
-+#include "pr42542-2.c"
-Index: gcc/testsuite/gcc.target/i386/clobbers.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/clobbers.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/i386/clobbers.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,6 @@
- /* Test asm clobbers on x86. */
- /* { dg-do run } */
--/* { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } } */
- extern void abort (void);
-@@ -13,11 +12,15 @@
-                 abort ();
-       /* On darwin you can't call external functions from non-pic code,
-          however, clobbering ebx isn't valid in pic code. Instead of
--         disabling the whole test, just disable the ebx clobbering part.  */
-+         disabling the whole test, just disable the ebx clobbering part.
-+         Ditto for any x86 system that is ilp32 && pic.
-+      */
- #if !(defined (__MACH__))
-+#if ! defined (__PIC__) || defined (__LP64__)
-         __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx");
-         if (i != 1)
-                 abort ();
-+#endif /* ! pic || lp64 */
- #endif
-         __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx");
-         if (i != 1)
-Index: gcc/testsuite/gcc.target/i386/pr42542-1.c
++/* { dg-final { cleanup-tree-dump "vect" } } */
+Index: gcc/testsuite/gcc.dg/vect/pr42709.c
 ===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-1.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-1.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,77 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -msse2 -ftree-vectorize" } */
-+
-+#ifndef CHECK_H
-+#define CHECK_H "sse2-check.h"
-+#endif
+--- gcc/testsuite/gcc.dg/vect/pr42709.c        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/vect/pr42709.c        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,28 @@
++/* { dg-do compile } */
++/* { dg-require-effective-target vect_int } */
 +
-+#ifndef TEST
-+#define TEST sse2_test
-+#endif
++#include <stdarg.h>
++#include "tree-vect.h"
 +
-+#include CHECK_H
++#define N 128 
 +
-+unsigned int v1[] __attribute__ ((aligned(16))) =
-+{
-+  0x80000000, 1, 0xa0000000, 2,
-+  3, 0xd0000000, 0xf0000000, 0xe0000000
-+};
-+unsigned int v2[] __attribute__ ((aligned(16))) =
-+{
-+  4, 0xb0000000, 5, 0xc0000000,
-+  0xd0000000, 6, 7, 8
-+};
++int *res[N];
 +
-+unsigned int max[] =
++int
++main1 (int *a, int *b, int *c, int *d, int dummy)
 +{
-+  0x80000000, 0xb0000000, 0xa0000000, 0xc0000000,
-+  0xd0000000, 0xd0000000, 0xf0000000, 0xe0000000
-+};
++  int i;
 +
-+unsigned int min[] =
-+{
-+  4, 1, 5, 2,
-+  3, 6, 7, 8
-+};
++  for (i = 0; i < N/2; i+=4)
++    {
++      res[i] = a + 16;
++      res[i+1] = b + 16;
++      res[i+2] = c + 16;
++      res[i+3] = d + 16;
++      if (dummy == 32)
++        abort ();
++    } 
++}
 +
-+unsigned int res[8] __attribute__ ((aligned(16)));
++/* { dg-final { cleanup-tree-dump "vect" } } */
++  
+Index: gcc/testsuite/ChangeLog
+===================================================================
+--- gcc/testsuite/ChangeLog    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,733 @@
++2010-03-27  Joseph Myers  <joseph@codesourcery.com>
 +
-+extern void abort (void);
++      PR c/43381
++      * gcc.dg/parm-impl-decl-3.c: New test.
 +
-+void
-+find_max (void)
-+{
-+  int i;
++2010-03-26  Volker Reichelt  <reichelt@gcc.gnu.org>
 +
-+  for (i = 0; i < 8; i++)
-+    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
-+}
++      PR c++/43024
++      * g++.dg/opt/ice1.C: New.
 +
-+void
-+find_min (void)
-+{
-+  int i;
++2010-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+  for (i = 0; i < 8; i++)
-+    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
-+}
++      PR libfortran/43517
++      * gfortran.dg/read_eof_7.f90: New test.
 +
-+static void
-+TEST (void)
-+{
-+  int i;
-+  int err = 0;
++2010-03-25  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+  find_max ();
-+  for (i = 0; i < 8; i++)
-+    if (res[i] != max[i])
-+      err++;
++      Backport from mainline:
++      2010-03-22  Jason Merrill  <jason@redhat.com>
 +
-+  find_min ();
-+  for (i = 0; i < 8; i++)
-+    if (res[i] != min[i])
-+      err++;
++      PR c++/43333
++      * g++.dg/ext/is_pod_98.C: New.
 +
-+  if (err)
-+    abort ();
-+}
-Index: gcc/testsuite/gcc.target/i386/pr42542-3.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-3.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-3.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,85 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -msse2 -ftree-vectorize" } */
++      2010-03-22  Michael Matz  <matz@suse.de>
 +
-+#ifndef CHECK_H
-+#define CHECK_H "sse2-check.h"
-+#endif
++      PR middle-end/43475
++      * gfortran.dg/pr43475.f90: New testcase.
 +
-+#ifndef TEST
-+#define TEST sse2_test
-+#endif
++      2010-03-22  Richard Guenther  <rguenther@suse.de>
 +
-+#include CHECK_H
++      PR tree-optimization/43390
++      * gfortran.fortran-torture/execute/pr43390.f90: New testcase.
 +
-+unsigned char v1[] __attribute__ ((aligned(16))) =
-+{
-+  0x80, 0xd0, 0x90, 0xa0, 1, 15, 10, 15,
-+  0xa0, 0xc0, 0xb0, 0xf0, 2, 25, 20, 35,
-+  3, 34, 30, 36, 0xd0, 0x80, 0xe0, 0xb0,
-+  0xf0, 0xe0, 0xe0, 0x80, 25, 34, 30, 40
-+};
-+unsigned char v2[] __attribute__ ((aligned(16))) =
-+{
-+  4, 44, 40, 48, 0xb0, 0x80, 0x80, 0x90,
-+  5, 55, 50, 51, 0xc0, 0xb0, 0xf0, 0xd0,
-+  0xd0, 0x80, 0xa0, 0xf0, 6, 61, 65, 68,
-+  7, 76, 75, 81, 0xe0, 0xf0, 0xc0, 0x90
-+};
++      2010-03-20  Dodji Seketeli  <dodji@redhat.com>
 +
-+unsigned char max[] =
-+{
-+  0x80, 0xd0, 0x90, 0xa0, 0xb0, 0x80, 0x80, 0x90,
-+  0xa0, 0xc0, 0xb0, 0xf0, 0xc0, 0xb0, 0xf0, 0xd0,
-+  0xd0, 0x80, 0xa0, 0xf0, 0xd0, 0x80, 0xe0, 0xb0,
-+  0xf0, 0xe0, 0xe0, 0x80, 0xe0, 0xf0, 0xc0, 0x90
-+};
++      PR c++/43375
++      * g++.dg/abi/mangle42.C: New test.
 +
-+unsigned char min[] =
-+{
-+  4, 44, 40, 48, 1, 15, 10, 15,
-+  5, 55, 50, 51, 2, 25, 20, 35,
-+  3, 34, 30, 36, 6, 61, 65, 68,
-+  7, 76, 75, 81, 25, 34, 30, 40
-+};
++      2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
 +
-+unsigned char res[32] __attribute__ ((aligned(16)));
++      PR C/43211
++      * gcc.dg/pr43211.c: New test.
 +
-+extern void abort (void);
++      2010-03-18  Martin Jambor  <mjambor@suse.cz>
 +
-+void
-+find_max (void)
-+{
-+  int i;
++      PR middle-end/42450
++      * g++.dg/torture/pr42450.C: New test.
 +
-+  for (i = 0; i < 32; i++)
-+    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
-+}
++      2010-03-18  Michael Matz  <matz@suse.de>
 +
-+void
-+find_min (void)
-+{
-+  int i;
++      PR tree-optimization/43402
++      * gcc.dg/pr43402.c: New testcase.
 +
-+  for (i = 0; i < 32; i++)
-+    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
-+}
++      2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
 +
-+static void
-+TEST (void)
-+{
-+  int i;
-+  int err = 0;
++      PR target/42427
++      * gcc.dg/pr42427.c: New test.
 +
-+  find_max ();
-+  for (i = 0; i < 32; i++)
-+    if (res[i] != max[i])
-+      err++;
++      2010-03-16  Richard Guenther  <rguenther@suse.de>
 +
-+  find_min ();
-+  for (i = 0; i < 32; i++)
-+    if (res[i] != min[i])
-+      err++;
++      PR middle-end/43379
++      * gcc.dg/pr43379.c: New testcase.
 +
-+  if (err)
-+    abort ();
-+}
-Index: gcc/testsuite/gcc.target/i386/pr42542-1a.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/pr42542-1a.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42542-1a.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,8 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target sse4 } */
-+/* { dg-options "-O1 -msse4.1 -ftree-vectorize" } */
++      2010-03-15  Michael Matz  <matz@suse.de>
 +
-+#define CHECK_H "sse4_1-check.h"
-+#define TEST sse4_1_test
++      PR middle-end/43300
++      * gcc.dg/pr43300.c: New testcase.
 +
-+#include "pr42542-1.c"
-Index: gcc/testsuite/gcc.target/i386/pr42891.c
-===================================================================
---- gcc/testsuite/gcc.target/i386/pr42891.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr42891.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
++      2010-03-15  Richard Guenther  <rguenther@suse.de>
 +
-+union B { int i; float f; };
++      PR tree-optimization/43367
++      * gcc.c-torture/compile/pr43367.c: New testcase.
 +
-+extern void bar (void);
++2010-03-25  Jakub Jelinek  <jakub@redhat.com>
 +
-+void
-+foo (union B x, union B y)
-+{
-+  if (!(y.f > x.i))
-+    bar ();
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -46,7 +46,9 @@
-       .type   snapshot_ret, @function
- snapshot_ret:
-       movq    %rdi, rdi(%rip)
-+      subq    $8, %rsp
-       call    *callthis(%rip)
-+      addq    $8, %rsp
-       movq    %rax, rax(%rip)
-       movq    %rdx, rdx(%rip)
-       vmovdqu %ymm0, ymm_regs+0(%rip)
-Index: gcc/testsuite/gcc.target/ia64/pr42542-1.c
-===================================================================
---- gcc/testsuite/gcc.target/ia64/pr42542-1.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/ia64/pr42542-1.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,68 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -ftree-vectorize" } */
++      PR c/43385
++      * gcc.c-torture/execute/pr43385.c: New test.
 +
-+unsigned int v1[] __attribute__ ((aligned(16))) =
-+{
-+  0x80000000, 1, 0xa0000000, 2,
-+  3, 0xd0000000, 0xf0000000, 0xe0000000
-+};
-+unsigned int v2[] __attribute__ ((aligned(16))) =
-+{
-+  4, 0xb0000000, 5, 0xc0000000,
-+  0xd0000000, 6, 7, 8
-+};
++2010-03-22  Richard Guenther  <rguenther@suse.de>
 +
-+unsigned int max[] =
-+{
-+  0x80000000, 0xb0000000, 0xa0000000, 0xc0000000,
-+  0xd0000000, 0xd0000000, 0xf0000000, 0xe0000000
-+};
++      Backport from mainline:
++      2010-03-19  Richard Guenther  <rguenther@suse.de>
 +
-+unsigned int min[] =
-+{
-+  4, 1, 5, 2,
-+  3, 6, 7, 8
-+};
++      PR tree-optimization/43415
++      * gcc.c-torture/compile/pr43415.c: New testcase.
 +
-+unsigned int res[8] __attribute__ ((aligned(16)));
++2010-03-22  Jakub Jelinek  <jakub@redhat.com>
 +
-+extern void abort (void);
++      Backport from mainline:
++      2010-03-20  Richard Guenther  <rguenther@suse.de>
 +
-+void
-+find_max (void)
-+{
-+  int i;
++      PR rtl-optimization/43438
++      * gcc.c-torture/execute/pr43438.c: New testcase.
 +
-+  for (i = 0; i < 8; i++)
-+    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
-+}
++      2010-03-19  Michael Matz  <matz@suse.de>
 +
-+void
-+find_min (void)
-+{
-+  int i;
++      PR c++/43116
++      * g++.dg/other/pr43116.C: New testcase.
 +
-+  for (i = 0; i < 8; i++)
-+    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
-+}
++      PR target/43305
++      * gcc.dg/pr43305.c: New testcase.
 +
-+int main (void)
-+{
-+  int i;
-+  int err = 0;
++      2010-03-18  Michael Matz  <matz@suse.de>
 +
-+  find_max ();
-+  for (i = 0; i < 8; i++)
-+    if (res[i] != max[i])
-+      err++;
++      PR middle-end/43419
++      * gcc.dg/pr43419.c: New testcase.
 +
-+  find_min ();
-+  for (i = 0; i < 8; i++)
-+    if (res[i] != min[i])
-+      err++;
++2010-03-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
-+  if (err)
-+    abort ();
++      * gcc.target/powerpc/ppc-sdata-1.c: Require nonpic.
++      * gcc.target/powerpc/ppc-sdata-2.c: Likewise.
 +
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/ia64/pr42542-2.c
-===================================================================
---- gcc/testsuite/gcc.target/ia64/pr42542-2.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/ia64/pr42542-2.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,68 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -ftree-vectorize" } */
++2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+unsigned short v1[] __attribute__ ((aligned(16))) =
-+{
-+  0x8000, 0x9000, 1, 10, 0xa000, 0xb000, 2, 20,
-+  3, 30, 0xd000, 0xe000, 0xf000, 0xe000, 25, 30
-+};
-+unsigned short v2[] __attribute__ ((aligned(16))) =
-+{
-+  4, 40, 0xb000, 0x8000, 5, 50, 0xc000, 0xf000,
-+  0xd000, 0xa000, 6, 65, 7, 75, 0xe000, 0xc000
-+};
++      Backport from mainline:
++      2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+unsigned short max[] =
-+{
-+  0x8000, 0x9000, 0xb000, 0x8000, 0xa000, 0xb000, 0xc000, 0xf000,
-+  0xd000, 0xa000, 0xd000, 0xe000, 0xf000, 0xe000, 0xe000, 0xc000
-+};
++      PR rtl-optimization/43360
++      * gcc.dg/torture/pr43360.c: New.
 +
-+unsigned short min[] =
-+{
-+  4, 40, 1, 10, 5, 50, 2, 20,
-+  3, 30, 6, 65, 7, 75, 25, 30
-+};
++2010-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+unsigned short res[16] __attribute__ ((aligned(16)));
++      PR libfortran/43265
++      * gfortran.dg/read_empty_file.f: New test.
++      * gfortran.dg/read_eof_all.f90: New test.
++      * gfortran.dg/namelist_27.f90: Eliminate infinite loop posibility.
++      * gfortran.dg/namelist_28.f90: Eliminate infinite loop posibility.
 +
-+extern void abort (void);
++2010-03-13  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+void
-+find_max (void)
-+{
-+  int i;
++      Backport from mainline:
++      2010-03-11  Martin Jambor  <mjambor@suse.cz>
 +
-+  for (i = 0; i < 16; i++)
-+    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
-+}
++      PR tree-optimization/43257
++      * g++.dg/torture/pr43257.C: New test.
 +
-+void
-+find_min (void)
-+{
-+  int i;
++      2010-03-11  Richard Guenther  <rguenther@suse.de>
 +
-+  for (i = 0; i < 16; i++)
-+    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
-+}
++      PR tree-optimization/43255
++      * gcc.c-torture/compile/pr43255.c: New testcase.
 +
-+int main (void)
-+{
-+  int i;
-+  int err = 0;
++      2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 +
-+  find_max ();
-+  for (i = 0; i < 16; i++)
-+    if (res[i] != max[i])
-+      err++;
++      * gcc.dg/pr43280.c: New testcase.
 +
-+  find_min ();
-+  for (i = 0; i < 16; i++)
-+    if (res[i] != min[i])
-+      err++;
++      2010-03-10  Jan Hubicka   <jh@suse.cz>
 +
-+  if (err)
-+    abort ();
++      * gcc.c-torture/compile/pr43288.c: New test.
 +
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/ia64/pr42542-3.c
-===================================================================
---- gcc/testsuite/gcc.target/ia64/pr42542-3.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/ia64/pr42542-3.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,76 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -ftree-vectorize" } */
++      2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
 +
-+unsigned char v1[] __attribute__ ((aligned(16))) =
-+{
-+  0x80, 0xd0, 0x90, 0xa0, 1, 15, 10, 15,
-+  0xa0, 0xc0, 0xb0, 0xf0, 2, 25, 20, 35,
-+  3, 34, 30, 36, 0xd0, 0x80, 0xe0, 0xb0,
-+  0xf0, 0xe0, 0xe0, 0x80, 25, 34, 30, 40
-+};
-+unsigned char v2[] __attribute__ ((aligned(16))) =
-+{
-+  4, 44, 40, 48, 0xb0, 0x80, 0x80, 0x90,
-+  5, 55, 50, 51, 0xc0, 0xb0, 0xf0, 0xd0,
-+  0xd0, 0x80, 0xa0, 0xf0, 6, 61, 65, 68,
-+  7, 76, 75, 81, 0xe0, 0xf0, 0xc0, 0x90
-+};
++      PR middle-end/42859
++      * g++.dg/eh/pr42859.C: New test.
 +
-+unsigned char max[] =
-+{
-+  0x80, 0xd0, 0x90, 0xa0, 0xb0, 0x80, 0x80, 0x90,
-+  0xa0, 0xc0, 0xb0, 0xf0, 0xc0, 0xb0, 0xf0, 0xd0,
-+  0xd0, 0x80, 0xa0, 0xf0, 0xd0, 0x80, 0xe0, 0xb0,
-+  0xf0, 0xe0, 0xe0, 0x80, 0xe0, 0xf0, 0xc0, 0x90
-+};
++      2010-03-09  Jakub Jelinek  <jakub@redhat.com>
 +
-+unsigned char min[] =
-+{
-+  4, 44, 40, 48, 1, 15, 10, 15,
-+  5, 55, 50, 51, 2, 25, 20, 35,
-+  3, 34, 30, 36, 6, 61, 65, 68,
-+  7, 76, 75, 81, 25, 34, 30, 40
-+};
++      PR debug/43299
++      * gcc.dg/pr43299.c: New test.
 +
-+unsigned char res[32] __attribute__ ((aligned(16)));
++      2010-03-08  Richard Guenther  <rguenther@suse.de>
 +
-+extern void abort (void);
++      PR tree-optimization/43269
++      * gcc.c-torture/execute/pr43269.c: New testcase.
 +
-+void
-+find_max (void)
-+{
-+  int i;
++      2010-03-04  Martin Jambor  <mjambor@suse.cz>
 +
-+  for (i = 0; i < 32; i++)
-+    res[i] = v1[i] < v2[i] ? v2[i] : v1[i];
-+}
++      PR tree-optimization/43164
++      PR tree-optimization/43191
++      * gcc.c-torture/compile/pr43164.c: New test.
++      * gcc.c-torture/compile/pr43191.c: Likewise.
 +
-+void
-+find_min (void)
-+{
-+  int i;
++      2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
 +
-+  for (i = 0; i < 32; i++)
-+    res[i] = v1[i] > v2[i] ? v2[i] : v1[i];
-+}
++      PR middle-end/43209
++      * gcc.dg/tree-ssa/ivopts-4.c: New.
 +
-+int main (void)
-+{
-+  int i;
-+  int err = 0;
++      2010-03-03  Jakub Jelinek  <jakub@redhat.com>
 +
-+  find_max ();
-+  for (i = 0; i < 32; i++)
-+    if (res[i] != max[i])
-+      err++;
++      PR debug/43229
++      * gfortran.dg/pr43229.f90: New test.
 +
-+  find_min ();
-+  for (i = 0; i < 32; i++)
-+    if (res[i] != min[i])
-+      err++;
++      PR debug/43237
++      * gcc.dg/debug/dwarf2/pr43237.c: New test.
 +
-+  if (err)
-+    abort ();
++      2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
 +
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/spu/intrinsics-3.c
-===================================================================
---- gcc/testsuite/gcc.target/spu/intrinsics-3.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.target/spu/intrinsics-3.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -19,3 +19,24 @@
- {
-   vec_uint4 out = spu_convtu (in[0], 128); /* { dg-error "expects an integer literal in the range" "0, 127"  }*/
- }
++      PR fortran/43180
++      * gfortran.dg/internal_pack_10.f90: New test.
 +
-+/* Test that these intrinsics accept non-literal arguments */
-+void f4 (vec_uint4 *in, int n)
-+{
-+  vec_float4 out = spu_convtf (in[0], n);
-+}
++      2010-02-26  Richard Guenther  <rguenther@suse.de>
 +
-+void f5 (vec_int4 *in, int n)
-+{
-+  vec_float4 out = spu_convtf (in[0], n);
-+}
++      PR tree-optimization/43188
++      * gcc.c-torture/compile/pr43188.c: New testcase.
 +
-+void f6 (vec_float4 *in, int n)
-+{
-+  vec_int4 out = spu_convts (in[0], n);
-+}
++      2010-02-25  Jakub Jelinek  <jakub@redhat.com>
 +
-+void f7 (vec_float4 *in, int n)
-+{
-+  vec_uint4 out = spu_convtu (in[0], n);
-+}
-Index: gcc/testsuite/gcc.target/mips/dsp-lhx.c
-===================================================================
---- gcc/testsuite/gcc.target/mips/dsp-lhx.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/mips/dsp-lhx.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* Test MIPS32 DSP LHX instruction */
-+/* { dg-do compile } */
-+/* { dg-options "-mgp32 -mdsp -O2" } */
++      PR debug/43166
++      * gfortran.dg/debug/pr43166.f: New test.
 +
-+/* { dg-final { scan-assembler "\tlhx\t" } } */
++      PR debug/43165
++      * gcc.dg/torture/pr43165.c: New test.
 +
-+NOMIPS16 signed short test (signed short *a, int index)
-+{
-+  return a[index];
-+}
-Index: gcc/testsuite/gcc.target/mips/dsp-no-lhx.c
-===================================================================
---- gcc/testsuite/gcc.target/mips/dsp-no-lhx.c (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/mips/dsp-no-lhx.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* Test MIPS32 DSP LHX instruction */
-+/* { dg-do compile } */
-+/* { dg-options "-mgp32 -mdsp -O2" } */
++      2010-02-23  Jakub Jelinek  <jakub@redhat.com>
 +
-+/* { dg-final { scan-assembler-not "\tlhx\t" } } */
++      PR target/43107
++      * gcc.target/i386/pr43107.c: New test.
 +
-+NOMIPS16 unsigned short test (unsigned short *a, int index)
-+{
-+  return a[index];
-+}
-Index: gcc/testsuite/gnat.dg/thin_pointer.adb
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer.adb     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gnat.dg/thin_pointer.adb     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,11 +0,0 @@
---- { dg-do compile }
---- { dg-options "-O" }
--
--package body Thin_Pointer is
--
--   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr) is
--   begin
--      AD.B.A := Buffer (Buffer'First)'Address;
--   end Set_Buffer;
--
--end Thin_Pointer;
-Index: gcc/testsuite/gnat.dg/thin_pointer.ads
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer.ads     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gnat.dg/thin_pointer.ads     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,22 +0,0 @@
--with System;
--
--package Thin_Pointer is
--
--   type Stream is array (Integer range <>) of Character;
--
--   type Stream_Ptr is access Stream;
--   for Stream_Ptr'Size use Standard'Address_Size;
--
--   type Buf is record
--      A : System.Address;
--   end record;
--
--   type Buf_Wrapper is record
--      B : Buf;
--   end record;
--
--   type Buf_Ptr is access Buf_Wrapper;
--
--   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr);
--
--end Thin_Pointer;
-Index: gcc/testsuite/gnat.dg/thin_pointer1.adb
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer1.adb    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/thin_pointer1.adb    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+-- { dg-do compile }
-+-- { dg-options "-O" }
++2010-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
-+package body Thin_Pointer1 is
++      * gcc.target/arm/sibcall-1.c: Allow PLT to appear with pic code.
 +
-+   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr) is
-+   begin
-+      AD.B.A := Buffer (Buffer'First)'Address;
-+   end Set_Buffer;
++2010-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+end Thin_Pointer1;
-Index: gcc/testsuite/gnat.dg/thin_pointer1.ads
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer1.ads    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/thin_pointer1.ads    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,22 @@
-+with System;
++      PR libfortran/43320
++      PR libfortran/43265
++      * gfortran.dg/read_eof_6.f: New test
++      * gfortran.dg/read_x_eof.f90: New test.
++      * gfortran.dg/read_x_past.f: Update test.
 +
-+package Thin_Pointer1 is
++2010-03-11  Tobias Burnus  <burnus@net-b.de>
 +
-+   type Stream is array (Integer range <>) of Character;
++      PR fortran/43228
++      * gfortran.dg/namelist_61.f90: New test.
++      
++2010-03-11  Janis Johnson  <janis187@us.ibm.com>
 +
-+   type Stream_Ptr is access Stream;
-+   for Stream_Ptr'Size use Standard'Address_Size;
++      * lib/target-supports-dg.exp (check-flags): Provide defaults for
++      include-opts and exclude-opts; skip checking the flags if arguments
++      are the same as the defaults.
++      (dg-xfail-if): Verify the number of arguments, supply defaults
++      for unspecified optional arguments.
++      (dg-skip-if, dg-xfail-run-if): Verify the number of arguments.
 +
-+   type Buf is record
-+      A : System.Address;
-+   end record;
++2010-03-11  Tobias Burnus  <burnus@net-b.de
 +
-+   type Buf_Wrapper is record
-+      B : Buf;
-+   end record;
++      PR fortran/43303
++      * gfortran.dg/c_assoc_3.f90: New test.
 +
-+   type Buf_Ptr is access Buf_Wrapper;
++2010-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
-+   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr);
++      * g++.old-deja/g++.pt/asm1.C: Don't detect pic via looking for the
++      -fpic/-fPIC flags.
++      * g++.old-deja/g++.pt/asm2.C: Likewise.
++      * gcc.c-torture/compile/20000804-1.c: Likewise.
++      * gcc.target/i386/clobbers.c: Likewise.
 +
-+end Thin_Pointer1;
-Index: gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+package body Thin_Pointer2_Pkg is
++2010-03-08  Jakub Jelinek  <jakub@redhat.com>
 +
-+   type SB is access constant String;
++      Backport from mainline:
++      2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
 +
-+   function Inner (S : SB) return Character is
-+   begin
-+      if S /= null and then S'Length > 0 then
-+         return S (S'First);
-+      end if;
-+      return '*';
-+   end;
++      PR c/43248
++      * gcc.dg/compound-literal-1.c: New testcase.
 +
-+   function F return Character is
-+   begin
-+      return Inner (SB (S));
-+   end;
++2010-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
-+end Thin_Pointer2_Pkg;
-Index: gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+package Thin_Pointer2_Pkg is
++      Backport:
++      2009-10-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++      * lib/target-supports.exp (add_options_for_bind_pic_locally): New.
++      
++      2009-10-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++      * g++.dg/ipa/iinline-1.C: Use dg-add-options bind_pic_locally.
++      * g++.dg/other/first-global.C: Likewise.
++      * g++.dg/parse/attr-externally-visible-1.C: Likewise.
++      * g++.dg/tree-ssa/nothrow-1.C: Likewise.
++      * gcc.dg/inline-33.c: Likewise.
++      * gcc.dg/ipa/ipa-1.c: Likewise.
++      * gcc.dg/ipa/ipa-2.c: Likewise.
++      * gcc.dg/ipa/ipa-3.c: Likewise.
++      * gcc.dg/ipa/ipa-4.c: Likewise.
++      * gcc.dg/ipa/ipa-5.c: Likewise.
++      * gcc.dg/ipa/ipa-7.c: Likewise.
++      * gcc.dg/ipa/ipacost-2.c: Likewise.
++      
++      2010-02-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++      * gcc.dg/tree-ssa/inline-4.c: Bind pic locally.
 +
-+   type SA is access String;
-+   for SA'Size use Standard'Address_Size;
-+   S : SA;
++2010-03-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 +
-+   function F return Character;
++      * lib/gnat.exp (gnat_init): Remove GNAT_UNDER_TEST_ORIG.
++      (gnat_target_compile): Likewise.
++      Reinitialize GNAT_UNDER_TEST if target changes.
++      Set ADA_INCLUDE_PATH, ADA_OBJECTS_PATH in environment.
++      (local_find_gnatmake): Pass full --GCC to gnatlink.
++      Remove --LINK.
 +
-+end Thin_Pointer2_Pkg;
-Index: gcc/testsuite/gnat.dg/thin_pointer2.adb
-===================================================================
---- gcc/testsuite/gnat.dg/thin_pointer2.adb    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/thin_pointer2.adb    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+-- PR ada/42253
-+-- Testcase by Duncan Sands <baldrick@gcc.gnu.org>
++2010-03-02  Jakub Jelinek  <jakub@redhat.com>
 +
-+-- { dg-do run }
++      Backport from mainline:
++      2010-03-01  Richard Guenther  <rguenther@suse.de>
 +
-+with Thin_Pointer2_Pkg; use Thin_Pointer2_Pkg;
++      PR tree-optimization/43220
++      * gcc.c-torture/execute/pr43220.c: New testcase.
 +
-+procedure Thin_Pointer2 is
-+begin
-+   if F /= '*' then
-+      raise Program_Error;
-+   end if;
-+end;
-Index: gcc/testsuite/ada/acats/run_all.sh
-===================================================================
---- gcc/testsuite/ada/acats/run_all.sh (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/ada/acats/run_all.sh (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -129,6 +129,7 @@
- cp $testdir/tests/cd/*.c $dir/support
- cp $testdir/tests/cxb/*.c $dir/support
-+grep -v '^#' $testdir/norun.lst | sort > $dir/support/norun.lst
- rm -rf $dir/run
- mv $dir/tests $dir/tests.$$ 2> /dev/null
-@@ -206,7 +207,7 @@
-    cd $dir/tests/$chapter
-    ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \
--   cut -c1-7 | sort | uniq | comm -23 - $testdir/norun.lst \
-+   cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \
-      > $dir/tests/$chapter/${chapter}.lst 
-    countn=`wc -l < $dir/tests/$chapter/${chapter}.lst`
-    glob_countn=`expr $glob_countn + $countn`
-Index: gcc/testsuite/gcc.dg/Wunreachable-2.c
-===================================================================
---- gcc/testsuite/gcc.dg/Wunreachable-2.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/Wunreachable-2.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,19 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O2 -Wunreachable-code" } */
--
--extern int foo (const char *);
--extern void baz (void);
--const char *a[] = { "one", "two" };
--
--void bar (void)
--{
--  int i;
--
--  for (i = 0; i < 2; i++)
--    if (! foo (a[i]))
--      return;
--
--  baz ();     /* { dg-bogus "will never be executed" } */
--  baz ();
--  baz ();
--}
-Index: gcc/testsuite/gcc.dg/inline-33.c
-===================================================================
---- gcc/testsuite/gcc.dg/inline-33.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/inline-33.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fdump-tree-optimized"  } */
--/* { dg-options "-O3 -fdump-tree-optimized -fpie" { target { ! nonpic } } } */
-+/* { dg-add-options bind_pic_locally } */
- int i;
-Index: gcc/testsuite/gcc.dg/errno-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/errno-1.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/errno-1.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,17 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
++2010-02-27  Eric Botcazou  <ebotcazou@adacore.com>
 +
-+#include <errno.h>
-+#include <stdlib.h>
++      * gnat.dg/thin_pointer.ad[sb]: Rename into...
++      * gnat.dg/thin_pointer1.ad[sb]: ...this.
++      * gnat.dg/thin_pointer2.adb: New test.
++      * gnat.dg/thin_pointer2_pkg.ad[sb]: New helper.
 +
-+int main()
-+{
-+  void *p;
-+  errno = 0;
-+  p = malloc (-1);
-+  if (errno != 0)
-+    do_not_optimize_away ();
-+  return 0;
-+}
++2010-02-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 +
-+/* { dg-final { scan-assembler "do_not_optimize_away" } } */
-Index: gcc/testsuite/gcc.dg/pr41643.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41643.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41643.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+/* PR tree-optimization/41643 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fno-tree-dce" } */
++      * gcc.target/arm/thumb2-cbnz.c: New test.
 +
-+struct S { int a; };
++2010-02-23  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+int
-+f (struct S *x)
-+{
-+  int a = x->a;
-+  if (a)
-+    return f (x) + a;
-+  else
-+    return f (x);
-+}
-Index: gcc/testsuite/gcc.dg/pr42078.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42078.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42078.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,22 @@
-+/* PR tree-optimization/42078 */
-+/* { dg-do compile } */
-+/* { dg-options "-g -O -ffast-math" } */
++      Backport from mainline:
++      2010-02-22  Richard Guenther  <rguenther@suse.de>
 +
-+double sqrt (double x);
++      PR tree-optimization/42749
++      * gcc.c-torture/compile/pr42749.c: New testcase.
 +
-+float
-+foo (float x)
-+{
-+  float y = sqrt (x);
-+  return x / y;
-+}
++      2010-02-21  Dodji Seketeli  <dodji@redhat.com>
 +
-+inline float
-+bar (float x)
-+{
-+  float y = sqrt (x);
-+  float a = y;
-+  float b = y;
-+  float c = y;
-+  return x / y;
-+}
-Index: gcc/testsuite/gcc.dg/pr41841.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41841.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41841.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,22 @@
-+/* PR tree-optimization/41841 */
-+/* { dg-do compile } */
-+/* { dg-options "-O -fipa-struct-reorg -fwhole-program -fipa-cp" } */
++      PR c++/42824
++      * g++.dg/template/memclass4.C: New test.
 +
-+typedef struct S *T;
-+typedef struct { } *U;
-+extern int f1 (void);
++      2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
 +
-+static void
-+f3 (U x, int y)
-+{
-+  T a = (T) x;
-+  y && f1 ();
-+}
++      PR fortran/43111
++      * gfortran.dg/internal_pack_8.f90: New test.
 +
-+static void
-+f2 (T x)
-+{
-+  f3 ((U) x, 1);
-+}
++      2010-02-18  Jason Merrill  <jason@redhat.com>
 +
-+void *volatile a __attribute__((used)) = f2;
-Index: gcc/testsuite/gcc.dg/pch/pushpop-1.hs
-===================================================================
---- gcc/testsuite/gcc.dg/pch/pushpop-1.hs      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pch/pushpop-1.hs      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,5 @@
-+#define FOO 1
-+#pragma push_macro ("FOO")
-+#undef FOO
-+#define FOO 2
++      PR c++/43109
++      * g++.dg/parse/namespace12.C: New.
 +
-Index: gcc/testsuite/gcc.dg/pch/pushpop-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/pch/pushpop-1.c       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pch/pushpop-1.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+#include "pushpop-1.hs"
++      2010-02-18  Martin Jambor  <mjambor@suse.cz>
 +
-+#if FOO != 2
-+#error FOO != 2
-+#endif
-+#pragma pop_macro("FOO")
++      PR tree-optimization/43066
++      * gcc.c-torture/compile/pr43066.c: New test.
 +
-+#if FOO != 1
-+#error FOR != 1
-+#endif
++      2010-02-17  Jason Merrill  <jason@redhat.com>
 +
-
-Zmiany atrybutów dla: gcc/testsuite/gcc.dg/pch/pushpop-1.c
-___________________________________________________________________
-Dodane: svn:mime-type
-   + text/plain
-Dodane: svn:eol-style
-   + native
-
-Index: gcc/testsuite/gcc.dg/pr41574.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41574.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41574.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fno-unsafe-math-optimizations -fdump-rtl-combine" { target { arm*-*-* } } } */
-+/* { dg-options "-O2 -fno-unsafe-math-optimizations -fdump-rtl-combine" { target { ! arm*-*-* } } } */
++      PR c++/43069
++      * g++.dg/parse/namespace11.C: New.
 +
++      PR c++/43093
++      * g++.dg/ext/attrib37.C: New.
 +
-+static const double one=1.0;
++      PR c++/43079
++      * g++.dg/template/ptrmem20.C: New.
 +
-+double
-+f(double x)
-+{
-+  return x*(one+x);
-+}
++      2010-02-16  Jason Merrill  <jason@redhat.com>
 +
-+/* { dg-final { scan-rtl-dump-not "\\(plus:DF \\(mult:DF" "combine" } } */
-+/* { dg-final { cleanup-rtl-dump "combine*" } } */
-Index: gcc/testsuite/gcc.dg/dg.exp
-===================================================================
---- gcc/testsuite/gcc.dg/dg.exp        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/dg.exp        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -32,5 +32,9 @@
- dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cSi\]]] \
-       "" $DEFAULT_CFLAGS
-+# C/C++ common tests.
-+dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/*.\[cSi\]]] \
-+      " -Wc++-compat " ""
++      PR c++/43031
++      * g++.dg/ext/attrib36.C: New.
 +
- # All done.
- dg-finish
-Index: gcc/testsuite/gcc.dg/vla-22.c
-===================================================================
---- gcc/testsuite/gcc.dg/vla-22.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vla-22.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,22 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
++      2010-02-15  Richard Guenther  <rguenther@suse.de>
 +
-+extern void bar (int *);
++      PR middle-end/43068
++      * g++.dg/torture/pr43068.C: New testcase.
 +
-+static inline __attribute__((always_inline))
-+int
-+foo (int i)
-+{
-+  struct S {
-+    int ar[1][i];
-+  } s;
++      2010-02-11  Richard Guenther  <rguenther@suse.de>
 +
-+  s.ar[0][0] = 0;
-+  bar (&s.ar[0][0]);
-+}
++      PR tree-optimization/42998
++      * gcc.c-torture/compile/pr42998.c: New testcase.
 +
-+void
-+baz (int i)
-+{
-+  foo (i + 2);
-+}
-Index: gcc/testsuite/gcc.dg/pr42215.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42215.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42215.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -ftree-loop-distribution" } */
++      2010-02-10  Richard Guenther  <rguenther@suse.de>
 +
-+extern int A[];
-+extern int B[];
++      PR tree-optimization/43017
++      * gcc.dg/torture/pr43017.c: New testcase.
 +
-+void f(int i)
-+{
-+   while (i-- > 0) {
-+     A[i] = 0;
-+     B[i] = 0;
-+   }
-+}
-Index: gcc/testsuite/gcc.dg/fold-div-3.c
-===================================================================
---- gcc/testsuite/gcc.dg/fold-div-3.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/fold-div-3.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O -fdump-tree-original" } */
++      2010-02-10  Richard Guenther  <rguenther@suse.de>
 +
-+unsigned int
-+apply_frontend_param (unsigned int spi_bias)
-+{
-+  static const int ppm = 8000;
-+  spi_bias /= 1000ULL + ppm/1000;
-+  return spi_bias;
-+}
++      PR c/43007
++      * gcc.c-torture/execute/20100209-1.c: New testcase.
++      * gcc.dg/fold-div-3.c: Likewise.
 +
-+/* Make sure we perform the division in the narrower type.  */
++      2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+/* { dg-final { scan-tree-dump "spi_bias = spi_bias / 1008;" "original" } } */
-+/* { dg-final { cleanup-tree-dump "original" } } */
-Index: gcc/testsuite/gcc.dg/torture/pr42952.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr42952.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr42952.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+/* { dg-do run } */
-+/* { dg-options "-fno-tree-ccp -fno-tree-fre" } */
++      PR fortran/42999
++      * gfortran.dg/array_constructor_35.f90: New test.
 +
-+extern void abort (void);
++      2010-02-09  Richard Guenther  <rguenther@suse.de>
 +
-+static int g[1];
++      PR tree-optimization/43008
++      * gcc.c-torture/execute/pr43008.c: New testcase.
 +
-+static int * const p = &g[0];
-+static int * const q = &g[0];
++      2010-02-09  Richard Guenther  <rguenther@suse.de>
 +
-+int main(void)
-+{
-+  g[0] = 1;
-+  *p = 0;
-+  *p = *q;
-+  if (g[0] != 0)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.dg/torture/pr41555.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr41555.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr41555.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,119 @@
-+/* { dg-do run } */
-+/* { dg-options "-std=c99" } */
++      PR tree-optimization/43000
++      * gcc.dg/torture/pr43000.c: New testcase.
++      * gcc.dg/torture/pr43002.c: Likewise.
 +
-+#include <stdint.h>
-+#include <limits.h>
++      2010-02-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+extern void abort (void);
++      PR libfortran/42742
++      * gfortran.dg/fmt_cache_2.f: New test.
 +
-+static uint64_t safe_div_func_uint64_t_u_u (uint64_t _ui1, uint64_t _ui2)
-+{
-+  if (_ui2==0) return _ui1;
-+  return _ui1 / _ui2;
-+}
++      2010-02-03  Jason Merrill  <jason@redhat.com>
 +
-+static int64_t safe_div_func_int64_t_s_s (int64_t _si1, int64_t _si2)
-+{
-+  if (_si2==0 || (_si1==INT64_MIN && _si2==-1)) return _si1;
-+  return _si1 / _si2;
-+}
++      PR c++/42870
++      * g++.dg/ext/dllexport3.C: New.
 +
-+#define safe_add_macro_int8_t_s_s(si1,si2) \
-+                ((((((int8_t)(si1))>((int8_t)0)) && (((int8_t)(si2))>((int8_t)0)) && (((int8_t)(si1)) > ((INT8_MAX)-((int8_t)(si2))))) \
-+                  || ((((int8_t)(si1))<((int8_t)0)) && (((int8_t)(si2))<((int8_t)0)) && (((int8_t)(si1)) < ((INT8_MIN)-((int8_t)(si2)))))) \
-+                 ? ((int8_t)(si1)) \
-+                 : (((int8_t)(si1)) + ((int8_t)(si2))) \
-+                 ) 
++2010-02-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 +
-+static int8_t
-+safe_add_func_int8_t_s_s(int8_t _si1, int8_t _si2)
-+{
-+  return safe_add_macro_int8_t_s_s(_si1,_si2);
-+}
++      PR target/40887
++      Backport from trunk.
++      2009-12-24  Julian Brown  <julian@codesourcery.com>
++                  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 +
-+#define safe_rshift_macro_uint64_t_u_s(left,right) \
-+        (((((int)(right)) < ((uint64_t)0)) \
-+                         || (((int)(right)) >= sizeof(uint64_t)*CHAR_BIT)) \
-+                        ? ((uint64_t)(left)) \
-+                        : (((uint64_t)(left)) >> ((int)(right))))
++      * gcc.target/arm/pr40887.c: New test.
 +
-+static uint64_t
-+safe_rshift_func_uint64_t_u_s(uint64_t _left, int _right)
-+{
-+  return safe_rshift_macro_uint64_t_u_s(_left,_right);
-+}
++2010-02-16  Ira Rosen <irar@il.ibm.com>
 +
-+#define safe_mul_macro_int32_t_s_s(si1,si2) \
-+  ((((((int32_t)(si1)) > ((int32_t)0)) && (((int32_t)(si2)) > ((int32_t)0)) && (((int32_t)(si1)) > ((INT32_MAX) / ((int32_t)(si2))))) || \
-+  ((((int32_t)(si1)) > ((int32_t)0)) && (((int32_t)(si2)) <= ((int32_t)0)) && (((int32_t)(si2)) < ((INT32_MIN) / ((int32_t)(si1))))) || \
-+  ((((int32_t)(si1)) <= ((int32_t)0)) && (((int32_t)(si2)) > ((int32_t)0)) && (((int32_t)(si1)) < ((INT32_MIN) / ((int32_t)(si2))))) || \
-+  ((((int32_t)(si1)) <= ((int32_t)0)) && (((int32_t)(si2)) <= ((int32_t)0)) && (((int32_t)(si1)) != ((int32_t)0)) && (((int32_t)(si2)) < ((INT32_MAX) / ((int32_t)(si1)))))) \
-+  ? ((int32_t)(si1)) \
-+  : ((int32_t)(si1)) * ((int32_t)(si2)))
++      PR tree-optimization/43074
++      * gcc.dg/vect/fast-math-pr43074.c: New test.
 +
-+static int32_t
-+safe_mul_func_int32_t_s_s (int32_t _si1, int32_t _si2)
-+{
-+  return safe_mul_macro_int32_t_s_s(_si1,_si2);
-+}
++2010-02-16  Tobias Burnus  <burnus@net-b.de>
 +
-+static int8_t g_39;
-+static volatile uint8_t g_46;
-+static uint8_t g_47;
-+static uint8_t *g_62;
-+static uint8_t g_79;
-+static int8_t g_101 = -1L;
-+static uint8_t *g_114;
-+static uint8_t *g_126;
-+static uint8_t g_133;
-+
-+static uint16_t func_35 (int32_t * p_36, uint64_t p_37, uint32_t p_38);
-+static uint16_t func_35 (int32_t * p_36, uint64_t p_37, uint32_t p_38)
-+{
-+  if (g_62 != 0)
-+    abort ();
-+  for (g_39 = 1; g_39 < 0; g_39 = 1)
-+    {
-+    }
-+  return 1;
-+}
++      PR fortran/41869
++      * gfortran.dg/module_write_1.f90: New test.
 +
-+static int32_t func_19 (int32_t p_20);
-+static int32_t func_19 (int32_t p_20)
-+{
-+  if (1 !=
-+      safe_div_func_uint64_t_u_u ((safe_div_func_int64_t_s_s (p_20, 1)),
-+                                  g_101))
-+    {
-+      func_35 (0, 1 <= (safe_add_func_int8_t_s_s (g_47, g_46)) > p_20 < 1, 1);
-+      g_133 = 1;
-+      if (g_114 != 0)
-+      abort ();
-+      if (g_126 != 0)
-+      abort ();
-+    }
-+  return 1;
-+}
++2010-02-13  Richard Guenther  <rguenther@suse.de>
 +
-+static uint8_t func_2 (int32_t p_6);
-+static uint8_t func_2 (int32_t p_6)
-+{
-+  for (1; p_6 > 1; 1)
-+    return 0;
-+  func_19 (g_79);
-+  if (safe_mul_func_int32_t_s_s
-+      ((0, 1 < (safe_rshift_func_uint64_t_u_s (1 ^ p_6, 1))),
-+       (func_35 (&p_6, 1, 1) < 1)))
-+    {
-+    }
-+  return 1;
-+}
++      PR tree-optimization/42871
++      * g++.dg/torture/pr42871.C: New testcase.
 +
-+int main (void)
-+{
-+  func_2 (1);
-+  if (g_133 != 1)
-+    abort ();
-+  return 0;
-+}
++2010-02-12  Jakub Jelinek  <jakub@redhat.com>
 +
-Index: gcc/testsuite/gcc.dg/torture/pr42667.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr42667.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr42667.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* { dg-do compile } */
-+/* { dg-options "-w" } */
++      PR c++/43033
++      * g++.dg/other/default3.C: Xfail g4 test.
 +
-+extern int strlen(const char *);
-+void WriteTextDots(int len);
++2010-02-10  Jakub Jelinek  <jakub@redhat.com>
 +
-+void OnDisplay(char * string)
-+{
-+  if (!string)
-+    string = "(none)";
-+  WriteTextDots(strlen(string));
-+}
++      PR debug/43010
++      * g++.dg/debug/pr43010.C: New test.
 +
-Index: gcc/testsuite/gcc.dg/torture/pr43002.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr43002.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr43002.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+/* { dg-do compile } */
-+/* { dg-options "-Wall -fwrapv" } */
++2010-02-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
-+long A[4], B[100];
++      * gcc.dg/tree-ssa/inline-4.c: Bind pic locally.
 +
-+void foo(void)
-+{
-+  int i, j, k = 3;
-+  while (A[k] && k > 0) k--; /* k = {0, 1, 2, 3} */
-+  for (i = 3 - k; i >= 0; i--) /* i = {0..3-k} */
-+    for (j = 0; j <= k; j++) { /* line 8; j = {0..k} */
-+      B[i + j] = 0; /* line 9; i + j = {0..3-k+k} = {0..3} */
-+      for (j = 0; j <= k; j++); /* only one iteration is done, with j == 0 */
-+    }
-+}
++2010-02-08  Jakub Jelinek  <jakub@redhat.com>
 +
-Index: gcc/testsuite/gcc.dg/torture/pr42898-2.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr42898-2.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr42898-2.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+/* { dg-do compile } */
-+/* { dg-options "-fdump-tree-optimized" } */
++      PR tree-optimization/42890
++      * g++.dg/torture/pr42890.C: New test.
 +
-+struct hardware {
-+  int parm1:8;
-+  int :4;
-+  int parm2:4;
-+  int parm3:15;
-+  int parm4:1;
-+};
++2010-02-08  Richard Guenther  <rguenther@suse.de>
 +
-+const struct hardware h = {
-+  .parm1=42,
-+  .parm2=13,
-+  .parm3=11850,
-+  .parm4=1,
-+};
++      Backport from mainline:
++      2010-01-05  Martin Jambor  <mjambor@suse.cz>
 +
-+void f1(volatile struct hardware *ptr)
-+{
-+  *ptr = h;
-+}
++      PR tree-optimization/42462
++      * gcc.dg/tree-ssa/inline-4.c: New testcase.
++      * gcc.dg/Wunreachable-2.c: Remove.
 +
-+/* { dg-final { scan-tree-dump-times "\\*ptr" 1 "optimized" } } */
-+/* { dg-final { cleanup-tree-dump "optimized" } } */
-Index: gcc/testsuite/gcc.dg/torture/pr42898.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr42898.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr42898.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,23 @@
-+/* { dg-do compile } */
-+/* { dg-options "-fdump-tree-optimized" } */
++2010-02-08  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+struct hardware {
-+  int parm1:8;
-+  int :4;
-+  int parm2:4;
-+  int parm3:15;
-+  int parm4:1;
-+};
++      * gcc.dg/ipa/pr42706.c: Removed.
 +
-+void f1(volatile struct hardware *ptr)
-+{
-+  *ptr=(struct hardware) {
-+    .parm1=42,
-+    .parm2=13,
-+    .parm3=11850,
-+    .parm4=1,
-+  };
-+}
++2010-02-06  H.J. Lu  <hongjiu.lu@intel.com>
 +
-+/* { dg-final { scan-tree-dump-times "\\*ptr" 1 "optimized" } } */
-+/* { dg-final { cleanup-tree-dump "optimized" } } */
-Index: gcc/testsuite/gcc.dg/torture/pr42363.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr42363.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr42363.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,84 @@
-+/* PR middle-end/pr42363, extended from the test for PR middle-end/37913.  */
-+/* { dg-do compile } */
-+/* { dg-options "-g" } */
++      Backport from mainline:
++      2010-02-05  Dodji Seketeli  <dodji@redhat.com>
 +
-+void foo (void) __attribute__ ((noreturn));
++      PR c++/42915
++      * g++.dg/other/crash-9.C: New test.
 +
-+static int __attribute__ ((noreturn))
-+bar (void)
-+{
-+  foo ();
-+}
++      2010-02-03  Jason Merrill  <jason@redhat.com>
 +
-+int
-+baz (void)
-+{
-+  int i = bar ();
-+  return i + 1;
-+}
++      PR c++/40138
++      * g++.dg/ext/builtin11.C: New.
 +
-+int fooz (void) __attribute__ ((noreturn));
++      2010-02-03  Richard Guenther  <rguenther@suse.de>
 +
-+static int __attribute__ ((noreturn))
-+bart (void)
-+{
-+  return fooz (); /* { dg-warning "noreturn" } */
-+}
++      PR tree-optimization/42944
++      * gcc.dg/errno-1.c: New testcase.
 +
-+int bazr (void)
-+{
-+  int i = bart ();
-+  return i + 1;
-+}
++      2010-02-03  Richard Guenther  <rguenther@suse.de>
 +
-+static inline int
-+bard (void)
-+{
-+  return fooz ();
-+}
++      PR middle-end/42927
++      * gcc.c-torture/compile/pr42927.c: New testcase.
 +
-+int bizr (void)
-+{
-+  int i, j;
++      2010-01-29  Dodji Seketeli  <dodji@redhat.com>
 +
-+  i = j = bard ();
++      PR c++/42758
++      PR c++/42634
++      PR c++/42336
++      PR c++/42797
++      PR c++/42880
++      * g++.dg/other/crash-5.C: New test.
++      * g++.dg/other/crash-7.C: New test.
++      * g++.dg/other/crash-8.C: New test.
 +
-+  return i + 1;
-+}
++      2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
 +
-+/* This might be regarded as pure and folded, rather than inlined.
-+   It's pure evil.  */
-+static int __attribute__ ((pure, const, noreturn))
-+barf (void)
-+{
-+} /* { dg-warning "does return" } */
++      PR target/42891
++      * gcc.target/i386/pr42891.c: New test.
 +
-+static int __attribute__ ((pure, const))
-+bark (void)
-+{
-+  barf ();
-+}
++      2010-01-28  Richard Guenther  <rguenther@suse.de>
 +
-+int buzr (void)
-+{
-+  int i, j;
++      PR middle-end/42883
++      * g++.dg/torture/pr42883.C: New testcase.
 +
-+  i = j = bark () + bark ();
++      2010-01-28  Michael Matz  <matz@suse.de>
 +
-+  return i + 1;
-+}
++      * gcc.target/i386/pr42881.c: New test.
 +
-+int buzt (void)
-+{
-+  int i, j;
++      2010-01-28  Dodji Seketeli  <dodji@redhat.com>
 +
-+  i = j = barf () + barf ();
++      PR c++/42713
++      PR c++/42820
++      * g++.dg/template/typedef27.C: New test case.
++      * g++.dg/template/typedef28.C: New test case.
 +
-+  return i + 1;
-+}
++      2010-01-27  Jakub Jelinek  <jakub@redhat.com>
 +
-+void bust (void)
-+{
-+  while (barf ())
-+    ;
-+}
-Index: gcc/testsuite/gcc.dg/torture/pr43000.c
-===================================================================
---- gcc/testsuite/gcc.dg/torture/pr43000.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr43000.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,24 @@
-+/* { dg-do run } */
-+/* { dg-options "-fwrapv" } */
++      PR middle-end/42874
++      * gcc.dg/vla-22.c: New test.
 +
-+int __attribute__((noinline))
-+foo (long i, long j)
-+{
-+  if (i >= 1)
-+    if (j > -(long)(((unsigned long)(long)-1)>>1))
-+      {
-+        long x;
-+      j--;
-+      x = i + j;
-+      if (x >= 0)
-+        return 1;
-+      }
-+  return 0;
-+}
-+extern void abort (void);
-+int main()
-+{
-+  if (foo (1, 1) != 1)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.dg/tree-ssa/pr41497.c
-===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/pr41497.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr41497.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+/* { dg-do run } */
-+/* { dg-options "-Os" } */
++      2010-01-26  Richard Guenther  <rguenther@suse.de>
 +
-+extern void abort (void);
++      PR tree-optimization/42250
++      * gcc.dg/pr42250.c: New testcase.
 +
-+unsigned int a;
-+int b, c;
++      2010-01-25  Tobias Burnus  <burnus@net-b.de>
 +
-+void
-+foo (void)
-+{
-+  b = 0;
-+  do {
-+    for (a = -13; a == 0; a = (unsigned short)a)
-+      c = 1;
-+    b++;
-+  } while (b == 0);
-+}
++      PR fortran/42858
++      * gfortran.dg/generic_21.f90: New test.
 +
-+int
-+main ()
-+{
-+  foo ();
-+  if (a != -13)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.dg/tree-ssa/pr42585.c
-===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/pr42585.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr42585.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,37 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O1 -fdump-tree-optimized" } */
++      2010-01-21  Martin Jambor  <mjambor@suse.cz>
 +
-+struct _fat_ptr
-+{
-+  unsigned char *curr;
-+  unsigned char *base;
-+  unsigned char *last_plus_one;
-+};
-+int Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr);
-+int
-+Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr)
-+{
-+  struct _fat_ptr *_T0;
-+  struct _fat_ptr *_T1;
-+  struct _fat_ptr _T2;
-+  int _T3;
-+  struct _fat_ptr _ans;
-+  int _change;
++      PR tree-optimization/42585
++      * gcc.dg/tree-ssa/pr42585.c: New test.
 +
-+  {
-+    _T0 = sptr;
-+    _T1 = sptr;
-+    _T2 = *sptr;
-+    _T3 = -1;
-+    _ans = _T2;
-+    _change = -1;
-+    _ans.curr += 4294967295U;
-+    *sptr = _ans;
-+    return (0);
-+  }
-+}
++      2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
 +
-+/* The local aggregates . */
-+/* { dg-final { scan-tree-dump-times "struct _fat_ptr _ans" 0 "optimized"} } */
-+/* { dg-final { scan-tree-dump-times "struct _fat_ptr _T2" 0 "optimized"} } */
-+/* { dg-final { cleanup-tree-dump "optimized" } } */
-Index: gcc/testsuite/gcc.dg/tree-ssa/inline-4.c
-===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/inline-4.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/inline-4.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fdump-tree-einline2" } */
-+/* { dg-add-options bind_pic_locally } */
++      PR debug/42715
++      * gcc.dg/pr42715.c: New.
 +
-+extern int rand(void);
++      2010-01-20  Richard Guenther  <rguenther@suse.de>
 +
-+int get_data_for (int id)
-+{
-+  return rand();
-+}
++      PR tree-optimization/42717
++      * gcc.c-torture/compile/pr42717.c: New testcase.
 +
-+int my_id;
++      2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
 +
-+int main()
-+{
-+  int res = get_data_for (my_id);
-+  switch (res)
-+    {
-+      case 0:
-+        return 666;
-+      default:
-+        return -1;
-+    }
-+}
++      PR fortran/42783
++      * gfortran.dg/bounds_check_15.f90 : New test.
 +
-+/* { dg-final { scan-tree-dump "Inlining get_data_for into main" "einline2" } } */
-+/* { dg-final { cleanup-tree-dump "einline2" } } */
-Index: gcc/testsuite/gcc.dg/pr42611.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42611.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42611.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+/* PR other/42611 */
-+/* { dg-do compile } */
-+/* { dg-options "" } */
++      2010-01-18  Dodji Seketeli  <dodji@redhat.com>
 +
-+#define L \
-+  (sizeof (__SIZE_TYPE__) == 1 ? __SCHAR_MAX__                                \
-+  : sizeof (__SIZE_TYPE__) == sizeof (short) ? __SHRT_MAX__           \
-+  : sizeof (__SIZE_TYPE__) == sizeof (int) ? __INT_MAX__              \
-+  : sizeof (__SIZE_TYPE__) == sizeof (long) ? __LONG_MAX__            \
-+  : sizeof (__SIZE_TYPE__) == sizeof (long long) ? __LONG_LONG_MAX__  \
-+  : __INTMAX_MAX__)
-+struct S { int a; char b[L]; };
++      PR c++/42766
++      * g++.dg/conversion/op6.C: New test.
 +
-+void
-+foo (void)
-+{
-+  struct S s;                         /* { dg-error "is too large" } */
-+  asm volatile ("" : : "r" (&s));
-+}
-Index: gcc/testsuite/gcc.dg/tls/opt-15.c
-===================================================================
---- gcc/testsuite/gcc.dg/tls/opt-15.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tls/opt-15.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,24 @@
-+/* PR target/42564 */
-+/* This used to ICE on the SPARC because of an unrecognized TLS pattern.  */
++      2010-01-18  Richard Guenther  <rguenther@suse.de>
 +
-+/* { dg-do compile } */
-+/* { dg-options "-O -fPIC" } */
-+/* { dg-require-effective-target tls_native } */
-+/* { dg-require-effective-target fpic } */
++      PR tree-optimization/42781
++      * gfortran.fortran-torture/compile/pr42781.f90: New testcase.
 +
-+extern void *memset(void *s, int c, __SIZE_TYPE__ n);
++      2010-01-17  Richard Guenther  <rguenther@suse.de>
 +
-+struct S1 { int i; };
++      PR middle-end/42248
++      * gcc.c-torture/execute/pr42248.c: New testcase.
 +
-+struct S2
-+{
-+  int ver;
-+  struct S1 s;
-+};
++      2010-01-17  Janus Weil  <janus@gcc.gnu.org>
 +
-+static __thread struct S2 m;
++      PR fortran/42677
++      * gfortran.dg/interface_assignment_5.f90: New test.
 +
-+void init(void)
-+{
-+  memset(&m.s, 0, sizeof(m.s));
-+}
-Index: gcc/testsuite/gcc.dg/compound-literal-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/compound-literal-1.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/compound-literal-1.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+/* { dg-do compile } */
++      2010-01-15  Richard Guenther  <rguenther@suse.de>
 +
-+/* PR c/43248 */
++      PR middle-end/42739
++      * g++.dg/torture/pr42739.C: New testcase.
 +
-+int foo(__SIZE_TYPE__ i)
-+{
-+  i ? : (void *){}; /* { dg-error "" } */
-+}
++      2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
 +
-Index: gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,7 @@
- /* PR preprocessor/35061 */
- /* Do nothing if there is nothing on the macro stack to pop.  */
--/* { dg-do preprocess { target *-*-mingw* *-*-cygwin* } } */
-+/* { dg-do preprocess } */
- #define X  1
- /* # pragma push_macro("X") */
-Index: gcc/testsuite/gcc.dg/pr42084.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42084.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42084.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,22 @@
-+/* { dg-do run } */
-+/* { dg-options "-O1 -fno-delete-null-pointer-checks" } */
-+extern void abort (void);
-+int g = 0;
-+static int __attribute__((noinline)) f (long long a, long long b)
-+{
-+  int cmp;
-+  cmp = a > b;
-+  if (&g == 0)
-+    cmp-=2;
-+  else
-+    cmp++;
-+  return cmp;
-+}
++      PR fortran/42684
++      * gfortran.dg/interface_31.f90: New test.
 +
-+int main (void)
-+{
-+  int ret = f (2, 1);
-+  if (ret != 2)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.dg/debug/pr42244.c
-===================================================================
---- gcc/testsuite/gcc.dg/debug/pr42244.c       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/debug/pr42244.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* PR debug/42444 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -g -fmodulo-sched -ffloat-store" } */
++      2010-01-14  Martin Jambor  <mjambor@suse.cz>
 +
-+extern int a, b;
++      PR tree-optimization/42706
++      * gcc.dg/ipa/pr42706.c: New testcase.
 +
-+double
-+foo (double x)
-+{
-+  for (; a > b; a--)
-+    x *= (double) a;
-+  return x;
-+}
-Index: gcc/testsuite/gcc.dg/debug/pr41717.c
-===================================================================
---- gcc/testsuite/gcc.dg/debug/pr41717.c       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/debug/pr41717.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* PR debug/41717 */
-+/* { dg-do compile } */
++      2010-01-14  Martin Jambor  <mjambor@suse.cz>
 +
-+void
-+foo (void)
-+{
-+  _Complex float v[1], w;
-+  v[1] = 0.0f + 0.8fi;
-+  w = __builtin_conjf (v[1] * v[1]);
-+}
-Index: gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* PR 41673: bogus -Wstrict-aliasing warning from VLA dereference.  */
-+/* { dg-do compile } */
-+/* { dg-options "-std=gnu99 -O2 -Wall" } */
++      PR tree-optimization/42714
++      * g++.dg/torture/pr42714.C: New test.
 +
-+int main(int argc, char *argv[])
-+{
-+    float x[argc];
-+    float y[argc];
-+    return 0 == __builtin_memcpy(y, x, argc * sizeof(*x));
-+}
-Index: gcc/testsuite/gcc.dg/pr42715.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42715.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42715.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,59 @@
-+/* { dg-do compile { target fpic } } */
-+/* { dg-options "-fPIC -g -O2 -w" } */
-+/* var-tracking failed to clobber the reg holding v at the asm insn,
-+   so v ended up bound to an intermediate PIC expression.  */
++      2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
 +
-+struct A { unsigned a1; char a2[15]; };
-+struct B { long b1; unsigned char b2; long b3; };
-+struct C { void *c1; unsigned c2; unsigned c3; };
++      PR rtl-optimization/42388
++      * gcc.dg/pr42388.c: New.
 +
-+static struct A v1;
-+struct A *const v2 = &v1;
++      2010-01-14  Alexander Monakov <amonakov@ispras.ru>
 +
-+static inline
-+int foo (void)
-+{
-+  int *v;
-+  __asm__ __volatile__ ("" : "=r" (v));
-+  return v[1];
-+}
++      PR rtl-optimization/42294
++      * gfortran.dg/pr42294.f: New.
 +
-+static void
-+bar (struct C *x)
-+{
-+  if (x->c2 == x->c3 && x->c1)
-+    f1 (foo (), x->c1, x->c3 * sizeof (x->c1[0]));
-+}
++      2010-01-14  Ira Rosen  <irar@il.ibm.com>
 +
-+void
-+baz (struct B *y)
-+{
-+  int i;
-+  const char *j;
-+  char *k;
-+  char x[64];
-+  for (i = 0; i < sizeof (struct B); i++, y)
-+    {
-+      switch (y->b2)
-+        {
-+        case 0x20:
-+          if (__builtin_strchr (j, '='))
-+            continue;
-+        }
-+      switch (y->b2)
-+        {
-+        case 0x80:
-+          bar (&x);
-+          f2 (y->b3);
-+        case 0x2e:
-+        case 0x4e:
-+          break;
-+        default:
-+          if (v2->a1)
-+            f2 (y->b2);
-+        }
-+      k[0] = '\0';
-+      if (v2->a1)
-+        f2 (y->b1);
-+    }
-+}
-Index: gcc/testsuite/gcc.dg/pr41573.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41573.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41573.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+__inline __attribute__ ((__always_inline__)) char *
-+strcpy (char *__dest, __const char *__src)
-+{
-+  return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
-+}
++      PR tree-optimization/42709
++      * gcc.dg/vect/pr42709.c: New test.
 +
-+const char* get_attr(unsigned attr)
-+{
-+    static char tmp[256];
++      2010-01-13  Richard Guenther  <rguenther@suse.de>
 +
-+    strcpy(tmp, "");
-+    return tmp;
-+}
-Index: gcc/testsuite/gcc.dg/ipa/ipacost-2.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipacost-2.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipacost-2.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized"  } */
--/* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized -fpie" { target { ! nonpic } } } */
-+/* { dg-add-options bind_pic_locally } */
- int array[100];
-Index: gcc/testsuite/gcc.dg/ipa/ipa-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipa-1.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipa-1.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
--/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
- #include <stdio.h>
- int g (int b, int c)
-Index: gcc/testsuite/gcc.dg/ipa/ipa-2.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipa-2.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipa-2.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
--/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
- #include <stdio.h>
- int g (int b, int c)
-Index: gcc/testsuite/gcc.dg/ipa/ipa-3.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipa-3.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipa-3.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
--/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
- /* Double constants.  */
-Index: gcc/testsuite/gcc.dg/ipa/ipa-4.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipa-4.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipa-4.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp"  } */
--/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
- #include <stdio.h>
- int g (int b, int c)
-Index: gcc/testsuite/gcc.dg/ipa/ipa-5.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipa-5.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipa-5.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
--/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
- /* Float & short constants.  */
-Index: gcc/testsuite/gcc.dg/ipa/ipa-7.c
-===================================================================
---- gcc/testsuite/gcc.dg/ipa/ipa-7.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/ipa/ipa-7.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
--/* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
- #include <stdio.h>
- void send_addr (int *);
-Index: gcc/testsuite/gcc.dg/pr41842.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41842.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41842.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,8 @@
-+/* PR c/41842 */
-+/* { dg-do compile } */
++      PR tree-optimization/42730
++      * gcc.c-torture/compile/pr42730.c: New testcase.
 +
-+void
-+f ()
-+{
-+  char x[g (h)];      /* { dg-error "undeclared|for each function" } */
-+}
-Index: gcc/testsuite/gcc.dg/pr41762.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41762.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41762.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,31 @@
-+/* PR target/41762 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -ftracer -fsched2-use-superblocks" } */
-+/* { dg-options "-O2 -ftracer -fsched2-use-superblocks -fpic" { target fpic } } */
++      2010-01-13  Martin Jambor  <mjambor@suse.cz>
 +
-+extern __SIZE_TYPE__ strlen (const char *);
-+extern int f1 (void *);
-+extern char *f2 (void);
-+extern void f3 (int, int);
-+static char *a;
-+char *b, *c, *d, *e;
++      PR tree-optimization/42704
++      * g++.dg/torture/pr42704.C: New test.
 +
-+void
-+foo (void)
-+{
-+  int f, g, h;
-+  f = (a ? strlen (a) : strlen ("abcde"));
-+  f += (b ? strlen (b) : 0);
-+  f += (c ? strlen (c) : 0);
-+  f += (d ? strlen (d) : 0);
-+  f += (e ? strlen (e) : 0);
-+  h = f1 (strlen);
-+  g = strlen (a);
-+  f3 (g, f);
-+}
++      2010-01-13  Martin Jambor  <mjambor@suse.cz>
 +
-+void
-+bar (void)
-+{
-+  a = f2 ();
-+}
-Index: gcc/testsuite/gcc.dg/bitfld-19.c
-===================================================================
---- gcc/testsuite/gcc.dg/bitfld-19.c   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/bitfld-19.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+/* Test for bit-field widths not integer constant expressions but
-+   folding to integer constants: PR 42439.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
++      PR tree-optimization/42703
++      * gcc.c-torture/compile/pr42703.c: New test.
 +
-+void
-+f (void)
-+{
-+  const int m = 1;
-+  ((void)(sizeof(struct { int i:!!m; })));
-+}
-Index: gcc/testsuite/gcc.dg/pr42662.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42662.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42662.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,48 @@
-+/* PR debug/42662 */
-+/* { dg-do compile } */
-+/* { dg-options "-g -O2" } */
++      2010-01-13  Richard Guenther  <rguenther@suse.de>
 +
-+struct S { unsigned long s[17]; };
++      PR tree-optimization/42705
++      * gcc.c-torture/compile/pr42705.c: New testcase.
 +
-+static inline void
-+foo (struct S *r, struct S *a, unsigned n)
-+{
-+  unsigned b = n / 8;
-+  r->s[0] = (b >= 1 ? : a->s[1 - b]);
-+}
++      2010-01-13  Richard Guenther  <rguenther@suse.de>
 +
-+static inline void
-+bar (struct S *r, struct S *a)
-+{
-+  r->s[0] = a->s[0] << 1;
-+}
++      PR middle-end/42716
++      * gcc.c-torture/compile/pr42716.c: New testcase.
 +
-+static inline void
-+baz (struct S *r, struct S *a, struct S *b)
-+{
-+  unsigned c = 0;
-+  int i;
-+  for (i = 0; i < 3; ++i)
-+    {
-+      unsigned long d = a->s[i];
-+      long e = d + b->s[i];
-+      if (c)
-+      ++e == 0;
-+      c = e < d;
-+      r->s[i] = e;
-+    }
-+}
++      2010-01-12  Joseph Myers  <joseph@codesourcery.com>
 +
-+void
-+test (struct S *r, int s, int d)
-+{
-+  struct S u;
-+  if (s)
-+    {
-+      bar (&u, r);
-+      foo (r, r, 3);
-+      baz (r, r, &u);
-+    }
-+  u.s[0] = d;
-+  baz (r, r, &u);
-+}
-Index: gcc/testsuite/gcc.dg/pr42475.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42475.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42475.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+/* PR rtl-optimization/42475 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
++      PR c/42708
++      * gcc.c-torture/compile/pr42708-1.c: New test.
 +
-+typedef struct { float x, y; } B;
-+typedef struct { float z; } C;
-+typedef struct { B b; C c; } D;
++      2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
 +
-+B
-+foo (float x, float y)
-+{
-+  B b = { .x = x, .y = y };
-+  return b;
-+}
++      PR middle-end/42363
++      * gcc.dg/torture/pr42363.c: New.
 +
-+B
-+bar (B b, B y)
-+{
-+  return foo (y.x + b.x, b.y);
-+}
++      2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
 +
-+B
-+baz (D p)
-+{
-+  D d = { };
-+  B y = bar (foo (0, (p.c.z) / 2), d.b);
-+  return y;
-+}
-Index: gcc/testsuite/gcc.dg/pr41935.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr41935.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr41935.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+/* PR middle-end/41935 */
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
++      PR debug/42604
++      PR debug/42395
++      * gcc.dg/vect/pr42604.c: New.
++      * gcc.dg/vect/pr42395.c: New.
 +
-+extern void abort (void);
-+struct A { int a; int b[10]; };
++      2010-01-09  Richard Guenther  <rguenther@suse.de>
 +
-+int
-+foo (struct A *p)
-+{
-+  return __builtin_offsetof (struct A, b[p->a]);
-+}
++      PR middle-end/42512
++      * gcc.c-torture/execute/pr42512.c: New testcase.
 +
-+int
-+main ()
-+{
-+  struct A a;
-+  a.a = 7;
-+  if (foo (&a) != 7 * sizeof (int) + __builtin_offsetof (struct A, b))
-+    abort ();
-+  a.a = 2;
-+  if (foo (&a) != 2 * sizeof (int) + __builtin_offsetof (struct A, b))
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.dg/pr40946.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr40946.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40946.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+/* PR middle-end/40946 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -Wall" } */
++2010-02-06  Paul Thomas  <pault@gcc.gnu.org>
 +
-+struct A
-+{
-+  unsigned char a1[8];
-+  unsigned short a2, a3, a4, a5, a6, a7;
-+};
++      PR fortran/42309
++      * gfortran.dg/subref_array_pointer_4.f90 : New test.
 +
-+int bar (void *, const char *, int);
-+char *foo (void *, int);
++2010-02-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+char *
-+baz (const char *x, const char *y)
-+{
-+  int a = sizeof (struct A) + 2 * (__builtin_strlen (y)
-+                                 + __builtin_strlen (x) + 24) + 16;
-+  struct A *b = __builtin_malloc (a);
-+  char *c;
-+  int d;
++      PR libfortran/42901
++      * gfortran.dg/namelist_60.f90: New test.
++      * gfortran.dg/namelist_59.f90: New test.
 +
-+  b->a4 = sizeof (struct A);
-+  c = ((char *) b) + b->a4;
-+  d = ((char *) b) + a - c;
-+  b->a2 = b->a3 = (unsigned short) bar (c, y, d); /* { dg-bogus "array subscript is above array bounds" } */
-+  c += b->a2;
-+  d = ((char *) b) + a - c;
-+  b->a7 = b->a4 + b->a2;
-+  b->a5 = b->a6 = (unsigned short) bar (c, x, d);
-+  c = foo (b, a);
-+  return c;
-+}
-Index: gcc/testsuite/gcc.dg/pr42388.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42388.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42388.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,67 @@
-+/* { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } */
-+/* { dg-options "-O2 -fselective-scheduling -fmodulo-sched" } */
++2010-02-04  Richard Guenther  <rguenther@suse.de>
 +
-+enum rtx_code
-+{
-+  INSN, ADDR_VEC, ADDR_DIFF_VEC, CALL_INSN, CODE_LABEL, BARRIER, NOTE
-+};
-+typedef union rtunion_def
-+{
-+  int rtint;
-+  char *rtstr;
-+  struct rtx_def *rtx;
-+  struct rtvec_def *rtvec;
-+}
-+rtunion;
-+typedef struct rtx_def
-+{
-+  unsigned short code;
-+  rtunion fld[1];
-+}
-+ *rtx;
-+typedef struct rtvec_def
-+{
-+  unsigned num_elem;
-+  rtunion elem[1];
-+}
-+ *rtvec;
-+extern rtx emit_barrier (void);
-+extern rtx emit_note (char *);
++      PR rtl-optimization/42952
++      * gcc.dg/torture/pr42952.c: New testcase.
 +
-+static void
-+copy_loop_body (rtx *map)
-+{
-+  int i;
-+  rtx insn, copy;
-+  rtx pat = copy->fld[3].rtx;
++2010-02-02  Tobias Burnus  <burnus@net-b.de>
 +
-+  switch (insn->code)
-+    {
-+    case INSN:
-+      if (insn->fld[7].rtx)
-+      {
-+      }
-+      else if (pat->code == ADDR_VEC || pat->code == ADDR_DIFF_VEC)
-+      {
-+        int diff_vec_p = pat->code == ADDR_DIFF_VEC;
-+        int len = pat->fld[diff_vec_p].rtvec->num_elem;
-+        for (i = 0; i < len; i++)
-+          pat->fld[diff_vec_p].rtvec->elem[i].rtx->fld[5].rtint++;
-+      }
-+    case CALL_INSN:
-+      for (i = 0; i < 64; i++)
-+      map[i] = 0;
-+    case CODE_LABEL:
-+    case BARRIER:
-+      copy = emit_barrier ();
-+    case NOTE:
-+      copy = emit_note ("x");
-+    }
-+}
-+void
-+unroll_loop (int insn_count, rtx *map)
-+{
-+  if (insn_count > 50)
-+    copy_loop_body (map);
-+}
++      PR fortran/42650
++      * gfortran.dg/func_result_5.f90: New test.
 +
-Index: gcc/testsuite/gcc.dg/O16384.c
-===================================================================
---- gcc/testsuite/gcc.dg/O16384.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/O16384.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+/* Test insane -O argument.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O16384" } */
++2010-02-01  Uros Bizjak  <ubizjak@gmail.com>
 +
-+__attribute__((__optimize__(16396), __noinline__)) void
-+foo (void)
-+{
-+}
++      Backport from mainline:
++      2009-12-17  Uros Bizjak  <ubizjak@gmail.com>
 +
-+int
-+main (void)
-+{
-+  foo ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.dg/dfp/dfp.exp
-===================================================================
---- gcc/testsuite/gcc.dg/dfp/dfp.exp   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/dfp/dfp.exp   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -46,10 +46,14 @@
- # Initialize `dg'.
- dg-init
--# Main loop.
-+# Main loop; run the C-only tests.
- dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
-         "" $DEFAULT_CFLAGS
-+# Run the tests that are shared with C++ testing.
-+dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/dfp/*c]] \
-+        "" $DEFAULT_CFLAGS
++      * objc/execute/forward-1.x: XFAIL for -fgnu-runtime on
++      x86_64-*-darwin*, powerpc*-*-darwin* and alpha*-*-linux* targets.
 +
- # All done.
- dg-finish
-Index: gcc/testsuite/gcc.dg/pr42250.c
-===================================================================
---- gcc/testsuite/gcc.dg/pr42250.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr42250.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,68 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fipa-type-escape" } */
++2010-01-31  Eric Botcazou  <ebotcazou@adacore.com>
 +
-+extern double log10 (double __x);
-+extern double ceil (double __x);
-+extern double floor (double __x);
-+extern void free (void *__ptr);
-+extern void *my_malloc (unsigned int);
-+extern int num_rr_nodes;
-+static float get_cblock_trans (int *num_inputs_to_cblock,
-+                             int max_inputs_to_cblock,
-+                             float trans_cblock_to_lblock_buf,
-+                             float trans_sram_bit);
-+static float trans_per_mux (int num_inputs, float trans_sram_bit);
-+void
-+count_routing_transistors (int num_switch, float R_minW_nmos,
-+                         float R_minW_pmos)
-+{
-+  int *num_inputs_to_cblock;
-+  int iswitch, i, j, iseg, max_inputs_to_cblock;
-+  float input_cblock_trans;
-+  const float trans_sram_bit = 6.;
-+  float trans_cblock_to_lblock_buf;
-+  input_cblock_trans =
-+    get_cblock_trans (num_inputs_to_cblock, max_inputs_to_cblock,
-+                    trans_cblock_to_lblock_buf, trans_sram_bit);
-+}
++      PR middle-end/42898
++      * gcc.dg/torture/pr42898-2.c: New test.
 +
-+static float
-+get_cblock_trans (int *num_inputs_to_cblock, int max_inputs_to_cblock,
-+                float trans_cblock_to_lblock_buf, float trans_sram_bit)
-+{
-+  float *trans_per_cblock;
-+  float trans_count;
-+  int i, num_inputs;
++2010-01-31  Richard Guenther  <rguenther@suse.de>
 +
-+  trans_per_cblock =
-+    (float *) my_malloc ((max_inputs_to_cblock + 1) * sizeof (float));
-+  for (i = 1; i <= max_inputs_to_cblock; i++)
-+    trans_per_cblock[i] =
-+      trans_per_mux (i, trans_sram_bit) + trans_cblock_to_lblock_buf;
-+  for (i = 0; i < num_rr_nodes; i++)
-+    {
-+      num_inputs = num_inputs_to_cblock[i];
-+      trans_count += trans_per_cblock[num_inputs];
-+    }
-+  free (trans_per_cblock);
-+  return (trans_count);
-+}
++      PR middle-end/42898
++      * gcc.dg/torture/pr42898.c: New testcase.
 +
-+static float
-+trans_per_mux (int num_inputs, float trans_sram_bit)
-+{
-+  int nlevels, ilevel, current_inps;
-+  float ntrans = 0;
++2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
 +
-+  if (num_inputs <= 1)
-+    return (0);
-+  nlevels = ceil (log10 (num_inputs) / log10 (2.) - 0.00001);
-+  current_inps = num_inputs;
-+  for (ilevel = 1; ilevel <= nlevels; ilevel++)
-+    {
-+      ntrans += 2 * floor (current_inps / 2.);
-+      current_inps = ceil (current_inps / 2.);
-+    }
-+  ntrans += trans_sram_bit * nlevels;
-+  return (ntrans);
-+}
-Index: gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
-===================================================================
---- gcc/testsuite/gcc.dg/noncompile/pr40033-1.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/noncompile/pr40033-1.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,7 @@
-+/* ICE from error_mark_node being wrapped in a C_MAYBE_CONST_EXPR.  PR
-+   40033.  */
++      PR fortran/38324
++      * gfortran.dg/alloc_comp_basics_1.f90: Remove option -O2.
++      * gfortran.dg/alloc_comp_bounds_1.f90: New test.
 +
-+void foo()
-+{
-+  ({ 0,; }); /* { dg-error "expected" } */
-+}
-Index: gcc/testsuite/gcc.dg/cleanup-13.c
-===================================================================
---- gcc/testsuite/gcc.dg/cleanup-13.c  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/cleanup-13.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,332 @@
-+/* HP-UX libunwind.so doesn't provide _UA_END_OF_STACK */
-+/* { dg-do run } */
-+/* { dg-options "-fexceptions" } */
-+/* { dg-skip-if "" { "ia64-*-hpux11.*" }  { "*" } { "" } } */
-+/* Verify DW_OP_* handling in the unwinder.  */
++2010-01-30  Paul Thomas  <pault@gcc.gnu.org>
 +
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/* #define OP_addr(x) 0x06, ... */
-+#define OP_deref 0x06,
-+#define SLEB128(x) (x)&0x7f   /* Assume here the value is -0x40 ... 0x3f.  */
-+#define ULEB128(x) (x)&0x7f   /* Assume here the value is 0 ... 0x7f.  */
-+#define VAL1(x) (x)&0xff
-+#if defined (__BIG_ENDIAN__)
-+#define VAL2(x) ((x)>>8)&0xff,(x)&0xff
-+#define VAL4(x) ((x)>>24)&0xff,((x)>>16)&0xff,((x)>>8)&0xff,(x)&0xff
-+#define VAL8(x) ((x)>>56)&0xff,((x)>>48)&0xff,((x)>>40)&0xff,((x)>>32)&0xff,((x)>>24)&0xff,((x)>>16)&0xff,((x)>>8)&0xff,(x)&0xff
-+#elif defined(__LITTLE_ENDIAN__) || defined(__x86_64__) || defined(__i386__)
-+#define VAL2(x) (x)&0xff,((x)>>8)&0xff
-+#define VAL4(x) (x)&0xff,((x)>>8)&0xff,((x)>>16)&0xff,((x)>>24)&0xff
-+#define VAL8(x) (x)&0xff,((x)>>8)&0xff,((x)>>16)&0xff,((x)>>24)&0xff,((x)>>32)&0xff,((x)>>40)&0xff,((x)>>48)&0xff,((x)>>56)&0xff
-+#endif
-+#define OP_const1u(x) 0x08,VAL1(x),
-+#define OP_const1s(x) 0x09,VAL1(x),
-+#define OP_const2u(x) 0x0a,VAL2(x),
-+#define OP_const2s(x) 0x0b,VAL2(x),
-+#define OP_const4u(x) 0x0c,VAL4(x),
-+#define OP_const4s(x) 0x0d,VAL4(x),
-+#define OP_const8u(x) 0x0e,VAL8(x),
-+#define OP_const8s(x) 0x0f,VAL8(x),
-+#define OP_constu(x) 0x10,ULEB128(x),
-+#define OP_consts(x) 0x11,SLEB128(x),
-+#define OP_dup 0x12,
-+#define OP_drop 0x13,
-+#define OP_over 0x14,
-+#define OP_pick(x) 0x15,VAL1(x),
-+#define OP_swap 0x16,
-+#define OP_rot 0x17,
-+#define OP_xderef 0x18,
-+#define OP_abs 0x19,
-+#define OP_and 0x1a,
-+#define OP_div 0x1b,
-+#define OP_minus 0x1c,
-+#define OP_mod 0x1d,
-+#define OP_mul 0x1e,
-+#define OP_neg 0x1f,
-+#define OP_not 0x20,
-+#define OP_or 0x21,
-+#define OP_plus 0x22,
-+#define OP_plus_uconst(x) 0x23,ULEB128(x),
-+#define OP_shl 0x24,
-+#define OP_shr 0x25,
-+#define OP_shra 0x26,
-+#define OP_xor 0x27,
-+#define OP_bra(x) 0x28,VAL2(x),
-+#define OP_eq 0x29,
-+#define OP_ge 0x2a,
-+#define OP_gt 0x2b,
-+#define OP_le 0x2c,
-+#define OP_lt 0x2d,
-+#define OP_ne 0x2e,
-+#define OP_skip(x) 0x2f,VAL2(x),
-+#define OP_lit0 0x30,
-+#define OP_lit1 0x31,
-+#define OP_lit2 0x32,
-+#define OP_lit3 0x33,
-+#define OP_lit4 0x34,
-+#define OP_lit5 0x35,
-+#define OP_lit6 0x36,
-+#define OP_lit7 0x37,
-+#define OP_lit8 0x38,
-+#define OP_lit9 0x39,
-+#define OP_lit10 0x3a,
-+#define OP_lit11 0x3b,
-+#define OP_lit12 0x3c,
-+#define OP_lit13 0x3d,
-+#define OP_lit14 0x3e,
-+#define OP_lit15 0x3f,
-+#define OP_lit16 0x40,
-+#define OP_lit17 0x41,
-+#define OP_lit18 0x42,
-+#define OP_lit19 0x43,
-+#define OP_lit20 0x44,
-+#define OP_lit21 0x45,
-+#define OP_lit22 0x46,
-+#define OP_lit23 0x47,
-+#define OP_lit24 0x48,
-+#define OP_lit25 0x49,
-+#define OP_lit26 0x4a,
-+#define OP_lit27 0x4b,
-+#define OP_lit28 0x4c,
-+#define OP_lit29 0x4d,
-+#define OP_lit30 0x4e,
-+#define OP_lit31 0x4f,
-+#define OP_reg0 0x50,
-+#define OP_reg1 0x51,
-+#define OP_reg2 0x52,
-+#define OP_reg3 0x53,
-+#define OP_reg4 0x54,
-+#define OP_reg5 0x55,
-+#define OP_reg6 0x56,
-+#define OP_reg7 0x57,
-+#define OP_reg8 0x58,
-+#define OP_reg9 0x59,
-+#define OP_reg10 0x5a,
-+#define OP_reg11 0x5b,
-+#define OP_reg12 0x5c,
-+#define OP_reg13 0x5d,
-+#define OP_reg14 0x5e,
-+#define OP_reg15 0x5f,
-+#define OP_reg16 0x60,
-+#define OP_reg17 0x61,
-+#define OP_reg18 0x62,
-+#define OP_reg19 0x63,
-+#define OP_reg20 0x64,
-+#define OP_reg21 0x65,
-+#define OP_reg22 0x66,
-+#define OP_reg23 0x67,
-+#define OP_reg24 0x68,
-+#define OP_reg25 0x69,
-+#define OP_reg26 0x6a,
-+#define OP_reg27 0x6b,
-+#define OP_reg28 0x6c,
-+#define OP_reg29 0x6d,
-+#define OP_reg30 0x6e,
-+#define OP_reg31 0x6f,
-+#define OP_breg0(x) 0x70,SLEB128(x),
-+#define OP_breg1(x) 0x71,SLEB128(x),
-+#define OP_breg2(x) 0x72,SLEB128(x),
-+#define OP_breg3(x) 0x73,SLEB128(x),
-+#define OP_breg4(x) 0x74,SLEB128(x),
-+#define OP_breg5(x) 0x75,SLEB128(x),
-+#define OP_breg6(x) 0x76,SLEB128(x),
-+#define OP_breg7(x) 0x77,SLEB128(x),
-+#define OP_breg8(x) 0x78,SLEB128(x),
-+#define OP_breg9(x) 0x79,SLEB128(x),
-+#define OP_breg10(x) 0x7a,SLEB128(x),
-+#define OP_breg11(x) 0x7b,SLEB128(x),
-+#define OP_breg12(x) 0x7c,SLEB128(x),
-+#define OP_breg13(x) 0x7d,SLEB128(x),
-+#define OP_breg14(x) 0x7e,SLEB128(x),
-+#define OP_breg15(x) 0x7f,SLEB128(x),
-+#define OP_breg16(x) 0x80,SLEB128(x),
-+#define OP_breg17(x) 0x81,SLEB128(x),
-+#define OP_breg18(x) 0x82,SLEB128(x),
-+#define OP_breg19(x) 0x83,SLEB128(x),
-+#define OP_breg20(x) 0x84,SLEB128(x),
-+#define OP_breg21(x) 0x85,SLEB128(x),
-+#define OP_breg22(x) 0x86,SLEB128(x),
-+#define OP_breg23(x) 0x87,SLEB128(x),
-+#define OP_breg24(x) 0x88,SLEB128(x),
-+#define OP_breg25(x) 0x89,SLEB128(x),
-+#define OP_breg26(x) 0x8a,SLEB128(x),
-+#define OP_breg27(x) 0x8b,SLEB128(x),
-+#define OP_breg28(x) 0x8c,SLEB128(x),
-+#define OP_breg29(x) 0x8d,SLEB128(x),
-+#define OP_breg30(x) 0x8e,SLEB128(x),
-+#define OP_breg31(x) 0x8f,SLEB128(x),
-+#define OP_regx(x) 0x90,SLEB128(x),
-+#define OP_fbreg(x) 0x91,SLEB128(x),
-+#define OP_bregx(x,y) 0x92,ULEB128(x),SLEB128(y),
-+#define OP_piece(x) 0x93,ULEB128(x),
-+#define OP_deref_size(x) 0x94,VAL1(x),
-+#define OP_xderef_size(x) 0x95,VAL1(x),
-+#define OP_nop 0x96,
-+#define OP_nop_termination 0x96
-+#define OP_push_object_address 0x97,
-+#define OP_call2(x) 0x98,VAL2(x),
-+#define OP_call4(x) 0x99,VAL4(x),
-+/* #define OP_call_ref(x) 0x9a,... */
-+#define OP_form_tls_address(x) 0x9b,
-+#define OP_call_frame_cfa 0x9c,
-+#define OP_bit_piece(x) 0x9d,ULEB128(x),
-+/* #define OP_implicit_value(x...) 0x9e,... */
-+#define OP_stack_value 0x9f,
-+#define OP_GNU_push_tls_address 0xe0,
-+/* #define OP_GNU_encoded_addr(x...) 0xf1, */
-+
-+#define ASSERT_TOS_NON0 OP_bra(3) OP_skip(-3)
-+#define ASSERT_TOS_0 OP_lit0 OP_eq ASSERT_TOS_NON0
-+
-+/* Initially there is CFA value on the stack, we want to
-+   keep it there at the end.  */
-+#define CFI_PROGRAM \
-+OP_lit0 OP_nop ASSERT_TOS_0                                           \
-+OP_lit1 ASSERT_TOS_NON0                                                       \
-+OP_lit1 OP_const1u(1) OP_eq ASSERT_TOS_NON0                           \
-+OP_lit16 OP_const2u(16) OP_eq ASSERT_TOS_NON0                         \
-+OP_lit31 OP_const4u(31) OP_ne ASSERT_TOS_0                            \
-+OP_lit1 OP_neg OP_const1s(-1) OP_eq ASSERT_TOS_NON0                   \
-+OP_lit16 OP_neg OP_const2s(-16) OP_ne ASSERT_TOS_0                    \
-+OP_lit31 OP_const4s(-31) OP_neg OP_ne ASSERT_TOS_0                    \
-+OP_lit7 OP_dup OP_plus_uconst(2) OP_lit9 OP_eq ASSERT_TOS_NON0                \
-+  OP_lit7 OP_eq ASSERT_TOS_NON0                                               \
-+OP_lit20 OP_lit1 OP_drop OP_lit20 OP_eq ASSERT_TOS_NON0                       \
-+OP_lit17 OP_lit19 OP_over OP_lit17 OP_eq ASSERT_TOS_NON0              \
-+  OP_lit19 OP_eq ASSERT_TOS_NON0 OP_lit17 OP_eq ASSERT_TOS_NON0               \
-+OP_lit1 OP_lit2 OP_lit3 OP_lit4 OP_pick(2) OP_lit2 OP_eq ASSERT_TOS_NON0\
-+  OP_lit4 OP_eq ASSERT_TOS_NON0 OP_lit3 OP_eq ASSERT_TOS_NON0         \
-+  OP_pick(0) OP_lit2 OP_eq ASSERT_TOS_NON0                            \
-+  OP_lit2 OP_eq ASSERT_TOS_NON0 OP_lit1 OP_eq ASSERT_TOS_NON0         \
-+OP_lit6 OP_lit12 OP_swap OP_lit6 OP_eq ASSERT_TOS_NON0                        \
-+  OP_lit12 OP_eq ASSERT_TOS_NON0                                      \
-+OP_lit7 OP_lit8 OP_lit9 OP_rot OP_lit8 OP_eq ASSERT_TOS_NON0          \
-+  OP_lit7 OP_eq ASSERT_TOS_NON0 OP_lit9 OP_eq ASSERT_TOS_NON0         \
-+OP_lit7 OP_abs OP_lit7 OP_eq ASSERT_TOS_NON0                          \
-+OP_const1s(-123) OP_abs OP_const1u(123) OP_eq ASSERT_TOS_NON0         \
-+OP_lit3 OP_lit6 OP_and OP_lit2 OP_eq ASSERT_TOS_NON0                  \
-+OP_lit3 OP_lit6 OP_or OP_lit7 OP_eq ASSERT_TOS_NON0                   \
-+OP_lit17 OP_lit2 OP_minus OP_lit15 OP_eq ASSERT_TOS_NON0              \
-+/* Divide is signed truncating toward zero.  */                               \
-+OP_const1s(-6) OP_const1s(-2) OP_div OP_lit3 OP_eq ASSERT_TOS_NON0    \
-+OP_const1s(-7) OP_const1s(3) OP_div OP_const1s(-2)                    \
-+  OP_eq ASSERT_TOS_NON0                                                       \
-+/* Modulo is unsigned.  */                                            \
-+OP_const1s(-6) OP_const1s(-4) OP_mod OP_const1s(-6)                   \
-+  OP_eq ASSERT_TOS_NON0                                                       \
-+OP_const1s(-6) OP_lit4 OP_mod OP_lit2 OP_eq ASSERT_TOS_NON0           \
-+OP_lit6 OP_const1s(-4) OP_mod OP_lit6 OP_eq ASSERT_TOS_NON0           \
-+/* Signed modulo can be implemented using "over over div mul minus".  */\
-+OP_const1s(-6) OP_const1s(-4) OP_over OP_over OP_div OP_mul OP_minus  \
-+  OP_const1s(-2) OP_eq ASSERT_TOS_NON0                                        \
-+OP_const1s(-7) OP_lit3 OP_over OP_over OP_div OP_mul OP_minus         \
-+  OP_const1s(-1) OP_eq ASSERT_TOS_NON0                                        \
-+OP_lit7 OP_const1s(-3) OP_over OP_over OP_div OP_mul OP_minus         \
-+  OP_lit1 OP_eq ASSERT_TOS_NON0                                               \
-+OP_lit16 OP_lit31 OP_plus_uconst(1) OP_mul OP_const2u(512)            \
-+  OP_eq ASSERT_TOS_NON0                                                       \
-+OP_lit5 OP_not OP_lit31 OP_and OP_lit26 OP_eq ASSERT_TOS_NON0         \
-+OP_lit12 OP_lit31 OP_plus OP_const1u(43) OP_eq ASSERT_TOS_NON0                \
-+OP_const1s(-6) OP_lit2 OP_plus OP_const1s(-4) OP_eq ASSERT_TOS_NON0   \
-+OP_const1s(-6) OP_plus_uconst(3) OP_const1s(-3) OP_eq ASSERT_TOS_NON0 \
-+OP_lit16 OP_lit4 OP_shl OP_const2u(256) OP_eq ASSERT_TOS_NON0         \
-+OP_lit16 OP_lit3 OP_shr OP_lit2 OP_eq ASSERT_TOS_NON0                 \
-+OP_const1s(-16) OP_lit3 OP_shra OP_const1s(-2) OP_eq ASSERT_TOS_NON0  \
-+OP_lit3 OP_lit6 OP_xor OP_lit5 OP_eq ASSERT_TOS_NON0                  \
-+OP_lit3 OP_lit6 OP_le ASSERT_TOS_NON0                                 \
-+OP_lit3 OP_lit3 OP_le ASSERT_TOS_NON0                                 \
-+OP_lit6 OP_lit3 OP_le ASSERT_TOS_0                                    \
-+OP_lit3 OP_lit6 OP_lt ASSERT_TOS_NON0                                 \
-+OP_lit3 OP_lit3 OP_lt ASSERT_TOS_0                                    \
-+OP_lit6 OP_lit3 OP_lt ASSERT_TOS_0                                    \
-+OP_lit3 OP_lit6 OP_ge ASSERT_TOS_0                                    \
-+OP_lit3 OP_lit3 OP_ge ASSERT_TOS_NON0                                 \
-+OP_lit6 OP_lit3 OP_ge ASSERT_TOS_NON0                                 \
-+OP_lit3 OP_lit6 OP_gt ASSERT_TOS_0                                    \
-+OP_lit3 OP_lit3 OP_gt ASSERT_TOS_0                                    \
-+OP_lit6 OP_lit3 OP_gt ASSERT_TOS_NON0                                 \
-+OP_const1s(-6) OP_lit1 OP_shr OP_lit0 OP_gt ASSERT_TOS_NON0           \
-+OP_const1s(-6) OP_lit1 OP_shra OP_lit0 OP_lt ASSERT_TOS_NON0
-+
-+#define CFI_ESCAPE_VAL_2(VALUES...) #VALUES
-+#define CFI_ESCAPE_VAL_1(VALUES...) CFI_ESCAPE_VAL_2(VALUES)
-+#define CFI_ESCAPE_VAL(VALUES...) CFI_ESCAPE_VAL_1(VALUES)
-+#define CFI_ESCAPE do { } while (0)
-+#define CFI_ARCH_PROGRAM OP_nop_termination
-+#ifdef __GCC_HAVE_DWARF2_CFI_ASM
-+#if defined (__x86_64__)
-+#undef CFI_ESCAPE
-+#undef CFI_ARCH_PROGRAM
-+#define CFI_ARCH_PROGRAM CFI_PROGRAM OP_lit8 OP_minus OP_nop_termination
-+unsigned char cfi_arch_program[] = { CFI_ARCH_PROGRAM };
-+extern char verify_it[sizeof (cfi_arch_program) - 0x80 < 0x3f80 ? 1 : -1];
-+/* DW_CFA_expression %rip, uleb128(l2-l1), l1: program DW_OP_lit8 DW_OP_minus DW_OP_nop l2: */
-+#define CFI_ESCAPE \
-+  asm volatile (".cfi_escape 0x10, 0x10, (%P0&0x7f)+0x80, %P0>>7, " \
-+              CFI_ESCAPE_VAL (CFI_ARCH_PROGRAM) \
-+              : : "i" (sizeof (cfi_arch_program)))
-+#elif defined (__i386__)
-+#undef CFI_ESCAPE
-+#undef CFI_ARCH_PROGRAM
-+#define CFI_ARCH_PROGRAM CFI_PROGRAM OP_lit4 OP_minus OP_nop_termination
-+unsigned char cfi_arch_program[] = { CFI_ARCH_PROGRAM };
-+extern char verify_it[sizeof (cfi_arch_program) - 0x80 < 0x3f80 ? 1 : -1];
-+/* DW_CFA_expression %eip, uleb128(l2-l1), l1: program DW_OP_lit4 DW_OP_minus DW_OP_nop l2: */
-+#define CFI_ESCAPE \
-+  asm volatile (".cfi_escape 0x10, 8, (%P0&0x7f)+0x80, %P0>>7, " \
-+              CFI_ESCAPE_VAL (CFI_ARCH_PROGRAM) \
-+              : : "i" (sizeof (cfi_arch_program)))
-+#endif
-+#endif
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+                 _Unwind_Exception_Class exc_class,
-+                 struct _Unwind_Exception *exc_obj,
-+                 struct _Unwind_Context *context,
-+                 void *stop_parameter)
-+{
-+  if (actions & _UA_END_OF_STACK)
-+    abort ();
-+  return _URC_NO_REASON;
-+}
++      PR fortran/41044
++      * gfortran.dg/parameter_array_ref_2.f90 : New test.
 +
-+static void force_unwind ()
-+{
-+  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+  exc->exception_cleanup = 0;
++      PR fortran/41167
++      * gfortran.dg/char_array_arg_1.f90 : New test.
++
++2010-01-27  Paul Thomas  <pault@gcc.gnu.org>
 +
-+#ifndef __USING_SJLJ_EXCEPTIONS__
-+  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+#else
-+  _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
-+#endif
++      PR fortran/42736
++      * gfortran.dg/dependency_25.f90 : New test.
 +
-+  abort ();
-+}
++2010-01-26  Jakub Jelinek  <jakub@redhat.com>
 +
-+static void handler (void *p __attribute__((unused)))
-+{
-+  exit (0);
-+}
++      * ada/acats/run_all.sh: Make sure norun.lst is sorted using the
++      current collation.
 +
-+__attribute__((noinline)) static void callme ()
-+{
-+  CFI_ESCAPE;
-+  force_unwind ();
-+}
++      Backport from mainline:
++      2009-12-17  Arnaud Charlet  <charlet@adacore.com>
 +
-+__attribute__((noinline)) static void doit ()
-+{
-+  char dummy __attribute__((cleanup (handler)));
-+  callme ();
-+}
++      * ada/acats/run_all.sh: Strip comments from norun.lst.
 +
-+int main()
-+{ 
-+  doit ();
-+  abort ();
-+}
-Index: gcc/testsuite/gcc.dg/graphite/pr40281.c
-===================================================================
---- gcc/testsuite/gcc.dg/graphite/pr40281.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/graphite/pr40281.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O -fprefetch-loop-arrays -w" } */
-+/* { dg-options "-O -fprefetch-loop-arrays -march=i686 -msse -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
++2010-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 +
-+void foo(int);
-+void bar(int n)
-+{
-+ int a[2], i, j = 0;
++      Backport from mainline.
++      2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 +
-+ for (i = 0; i < 2; i += j+1)
-+   for (j = 0; j < (n ? 1 : 2); ++j)
-+     foo(a[i] + a[j]);
-+}
-Index: gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
-===================================================================
---- gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -88,7 +88,7 @@
-   return 0;
- }
++      PR target/38697.
++      * gcc.target/arm/neon/vget_lowf32.c: Regenerate.
++      * gcc.target/arm/neon/vget_lowp16.c: Likewise.
++      * gcc.target/arm/neon/vget_lowp8.c:  Likewise.
++      * gcc.target/arm/neon/vget_lows16.c: Likewise.
++      * gcc.target/arm/neon/vget_lows32.c: Likewise.
++      * gcc.target/arm/neon/vget_lows64.c: Likewise.
++      * gcc.target/arm/neon/vget_lows8.c: Likewise.
++      * gcc.target/arm/neon/vget_lowu16.c: Likewise.
++      * gcc.target/arm/neon/vget_lowu32.c: Likewise.
++      * gcc.target/arm/neon/vget_lowu64.c: Likewise.
++      * gcc.target/arm/neon/vget_lowu8.c: Likewise.
++
+ 2010-01-21  Release Manager
  
--/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
--/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" } } */
-+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { sparc*-*-* && ilp32 } } } } */
-+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { xfail { sparc*-*-* && ilp32 } }} } */
- /* { dg-final { cleanup-tree-dump "vect" } } */
-   
-Index: gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
+       * GCC 4.4.3 released.
+Index: gcc/testsuite/g++.old-deja/g++.pt/asm1.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -48,6 +48,6 @@
-   return main1 ();
- }
+--- gcc/testsuite/g++.old-deja/g++.pt/asm1.C   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.old-deja/g++.pt/asm1.C   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
+-// We'd use ebx with -fpic/-fPIC, so skip.
+-// { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } }
++// We'd use ebx with 32-bit pic code, so skip.
++// { dg-skip-if "" { ilp32 && { ! nonpic } } { "*" } { "" } }
+ // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
  
--/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
-+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { sparc*-*-* && ilp32 } } } } */
- /* { dg-final { cleanup-tree-dump "vect" } } */
+ template<int i> int foo(int v)
+Index: gcc/testsuite/g++.old-deja/g++.pt/asm2.C
+===================================================================
+--- gcc/testsuite/g++.old-deja/g++.pt/asm2.C   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.old-deja/g++.pt/asm2.C   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,7 +1,7 @@
+ // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
+ // { dg-require-effective-target ilp32 }
+-// We'd use ebx with -fpic/-fPIC, so skip.
+-// { dg-skip-if "" { *-*-* } { "-fpic" "-fPIC" } { "" } }
++// We'd use ebx with 32-bit pic code, so require nonpic.
++// { dg-require-effective-target nonpic }
+ // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
  
-Index: gcc/testsuite/gcc.dg/vect/pr42604.c
+ typedef void (function_ptr)(int);
+Index: gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/pr42604.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr42604.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,35 @@
-+/* PR debug/42604 */
-+/* { dg-do compile } */
-+/* { dg-options "-O3 -ftree-vectorize -g -ffast-math" } */
+--- gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90 (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90 (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
++   logical :: l1(4)
++   logical :: l2(4)
++   l1 = (/.TRUE.,.FALSE.,.TRUE.,.FALSE./)
++   l2 = (/.FALSE.,.TRUE.,.FALSE.,.TRUE./)
++   if (dot_product (l1, l2)) call abort ()
++   l2 = .TRUE.
++   if (.not.dot_product (l1, l2)) call abort ()
++end
 +
-+unsigned *d;
-+unsigned short e;
-+int f;
-+float h[3][4];
+Index: gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90
+===================================================================
+--- gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,59 @@
++! ICE with gfortran 4.5 at -O1:
++!gfcbug98.f90: In function ‘convert_cof’:
++!gfcbug98.f90:36:0: internal compiler error: in pt_solutions_same_restrict_base,
++!at tree-ssa-structalias.c:5072
++module foo
++  implicit none
++  type t_time
++     integer :: secs = 0
++  end type t_time
++contains
++  elemental function time_cyyyymmddhh (cyyyymmddhh) result (time)
++    type (t_time)                :: time
++    character(len=10),intent(in) :: cyyyymmddhh
++  end function time_cyyyymmddhh
 +
-+void
-+test (unsigned short *b)
-+{
-+  int a, c, i;
-+  float g[3];
-+  unsigned j[32] = { 10, 0x63707274 };
-+  for (i = 0; i < (int) j[0]; i++)
-+    {
-+      j[i * 3 + 2] = d[0];
-+      d[0] += (j[i * 3 + 3] + 3) & -4;
-+    }
-+  for (a = 0; a < e; a++)
-+    {
-+      g[0] = g[1] = g[2] = 0;
-+      for (c = 0; c < f; c++)
-+      {
-+        g[0] += h[0][c] * b[c];
-+        g[1] += h[1][c] * b[c];
-+      }
-+      for (c = 0; c < 3; c++)
-+      b[c] = 0 > ((int) g[c] < 65535 ? ((int) g[c]) : 65535)
-+        ? 0 : ((int) g[c]) < 65535 ? (int) g[c] : 65535;
-+    }
-+}
++  function nf90_open(path, mode, ncid)
++    character(len = *), intent(in) :: path
++    integer, intent(in)  :: mode
++    integer, intent(out) :: ncid
++    integer              :: nf90_open
++  end function nf90_open
++end module foo
++!==============================================================================
++module gfcbug98
++  use foo
++  implicit none
 +
-+/* { dg-final { cleanup-tree-dump "vect" } } */
-Index: gcc/testsuite/gcc.dg/vect/pr42395.c
++  type t_fileinfo
++     character(len=10) :: atime = ' '
++  end type t_fileinfo
++
++  type t_body
++     real         :: bg(10)
++  end type t_body
++contains
++  subroutine convert_cof (ifile)
++    character(len=*) ,intent(in) :: ifile
++
++    character(len=5)         :: version
++    type(t_fileinfo)         :: gattr
++    type(t_time)             :: atime
++    type(t_body),allocatable :: tmp_dat(:)
++    real        ,allocatable :: BDA(:, :, :)
++
++    call open_input
++    call convert_data
++  contains
++    subroutine open_input
++      integer             :: i,j
++      version = ''
++      j = nf90_open(ifile, 1, i)
++    end subroutine open_input
++    !--------------------------------------------------------------------------
++    subroutine convert_data
++      BDA(1,:,1) = tmp_dat(1)% bg(:)
++      atime = time_cyyyymmddhh (gattr% atime)
++    end subroutine convert_data
++  end subroutine convert_cof
++end module gfcbug98
+Index: gcc/testsuite/g++.dg/other/pr43116.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/pr42395.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr42395.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* PR debug/42395 */
+--- gcc/testsuite/g++.dg/other/pr43116.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/other/pr43116.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
 +/* { dg-do compile } */
-+/* { dg-options "-O3 -ftree-vectorize -g" } */
++extern "C" int rpl_open (const char *filename, int flags, ...) __attribute__
++((__nonnull__ (1)));
 +
-+void foo(int j, int *A)
++namespace gnulib
 +{
-+  int i;
-+  for (i = 0; i < j; i ++) A[i] = i;
-+  for (; i < 4096; i ++) A[i] = 0;
++    int (*const open) (const char *filename, int flags, ...) __attribute__
++      ((__nonnull__ (1))) = rpl_open;
 +}
-Index: gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
+Index: gcc/testsuite/g++.dg/other/first-global.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -59,7 +59,7 @@
-   return 0;
- }
+--- gcc/testsuite/g++.dg/other/first-global.C  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.dg/other/first-global.C  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ /* { dg-do compile } */
+-/* { dg-options "-fpie" { target { ! nonpic } } } */
++/* { dg-add-options bind_pic_locally } */
+ /* { dg-final { scan-assembler "_GLOBAL__I(_|_65535_0_)foobar" } } */
  
--/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
-+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { sparc*-*-* && ilp32 } }} } */
- /*  { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 6 "vect" { target vect_no_align } } } */
- /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 6 "vect" {xfail vect_no_align } } } */
- /* { dg-final { cleanup-tree-dump "vect" } } */
-Index: gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
+ struct foo { foo (); };
+Index: gcc/testsuite/g++.dg/other/crash-5.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/testsuite/g++.dg/other/crash-5.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/other/crash-5.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -0,0 +1,16 @@
-+/* { dg-do compile } */
-+
-+float
-+pvslockprocess(float *fout, float *fin, int framesize)
-+{
-+  int i;
-+  float mag=0.0f, diff;
-+  for (i = 0; i < framesize; i += 2) {
-+      mag += fin[i];
-+      fout[i] = fin[i];
-+      fout[i+1] = fin[i+1];
-+  }
-+  return mag;
-+}
-+
-+/* { dg-final { cleanup-tree-dump "vect" } } */
-Index: gcc/testsuite/gcc.dg/vect/pr42193.c
-===================================================================
---- gcc/testsuite/gcc.dg/vect/pr42193.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr42193.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+/* { dg-do compile } */
-+/* { dg-require-effective-target vect_long } */
-+
-+#include <stdarg.h>
++// Origin: PR c++/42758
++// { dg-do compile }
 +
-+unsigned long in[6], out[6];
++template<class T> struct less {};
 +
-+void foo ()
-+{
-+  unsigned long a, b, c, d, e, f;
-+
-+  a = in[0];
-+  b = in[1];
-+  c = in[2];
-+  d = in[3];
-+  e = in[4];
-+  f = in[5];
-+
-+  out[0] = 2 * a + 7 * b + 8  * c + 31 * d + 10 * e + 21 * f;
-+  out[1] = 3 * a + 6 * b + 12 * c + 13 * d + 15 * e + 28 * f;
-+  out[2] = 4 * a + 5 * b + 72  * c + 23 * d + 14 * e + 24 * f;
-+  out[3] = 8 * a + 71 * b + 18  * c + 33 * d + 13 * e + 25 * f;
-+  out[4] = 12 * a + 16 * b + 19 * c + 41 * d + 22 * e + 26 * f;
-+  out[5] = 17 * a + 15 * b + 13  * c + 14 * d + 11 * e + 9 * f;
-+}
++template<class T, typename U = less<T> > struct set {};
 +
-+/* { dg-final { cleanup-tree-dump "vect" } } */
++struct int_less_than {};
 +
-Index: gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
-===================================================================
---- gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,20 @@
-+/* PR debug/41926 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -g -ffast-math -funroll-loops -ftree-vectorize -msse2" { target { i?86-*-* x86_64-*-* } } } */
++void assert_fail (const char*);
 +
-+void
-+foo (double (*__restrict p)[4], double (*__restrict q)[4],
-+     double *__restrict prim, double scale, double pp, double pq)
++int f(const set<int, int_less_than>&)
 +{
-+  int md, mc, mb, ma, p_index = 0;
++    assert_fail (__PRETTY_FUNCTION__);
 +
-+  for (md = 0; md < 1; md++)
-+    for (mc = 0; mc < 1; mc++)
-+      for (mb = 0; mb < 1; mb++)
-+      for (ma = 0; ma < 4; ma++)
-+        {
-+          double tmp = scale * prim[p_index++];
-+          p[md][ma] = p[md][ma] - tmp * pp;
-+          q[mc][ma] = q[mc][ma] - tmp * pq;
-+        }
 +}
-Index: gcc/testsuite/gcc.dg/vect/pr41956.c
+Index: gcc/testsuite/g++.dg/other/crash-9.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/pr41956.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr41956.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+/* { dg-do compile } */
-+/* { dg-require-effective-target vect_int } */
+--- gcc/testsuite/g++.dg/other/crash-9.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/other/crash-9.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,15 @@
++// Origin: PR c++/42915
++// { dg-do compile }
 +
-+void K (int *gpwgts, int *badminpwgt, int *badmaxpwgt)
++template <typename T>
++class A
 +{
-+  int i;
-+  for (i = 0; i < 10; i += 2) {
-+    badminpwgt[i] = badminpwgt[i+1] = gpwgts[i]+gpwgts[i];
-+    badmaxpwgt[i] = badmaxpwgt[i+1] = gpwgts[i]+gpwgts[i];
-+  }
-+}
-+
-+/* { dg-final { cleanup-tree-dump "vect" } } */
++  template <typename U>
++  class B
++  {
++    B foo();
++  };
++};
++template <typename T> template <typename U>
++A<T>::B<U> A<T>::B<U>::foo() {}
 +
-Index: gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c
+Index: gcc/testsuite/g++.dg/other/default3.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -39,6 +39,6 @@
- }
+--- gcc/testsuite/g++.dg/other/default3.C      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.dg/other/default3.C      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -25,7 +25,7 @@
template<typename> void g3(int = 0, int);    // { dg-error "default" }
  
- /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_unpack } } } */
--/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! vect_unpack } } } } */
-+/* { dg-final { if [ istarget sparc*-*-* ] { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail ilp32 } } else { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! vect_unpack } } } } } */
- /* { dg-final { cleanup-tree-dump "vect" } } */
+ template<typename> void g4(int, int);
+-template<typename> void g4(int = 0, int) {}  // { dg-error "default" }
++template<typename> void g4(int = 0, int) {}  // { dg-error "default" "" { xfail *-*-* } }
  
-Index: gcc/testsuite/gcc.dg/vect/pr42709.c
+ template<typename> void g5();
+ template<typename> void g5(int = 0, int);    // { dg-error "default" }
+Index: gcc/testsuite/g++.dg/other/crash-7.C
 ===================================================================
---- gcc/testsuite/gcc.dg/vect/pr42709.c        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr42709.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+/* { dg-do compile } */
-+/* { dg-require-effective-target vect_int } */
-+
-+#include <stdarg.h>
-+#include "tree-vect.h"
+--- gcc/testsuite/g++.dg/other/crash-7.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/other/crash-7.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,19 @@
++// Origin: PR c++/42336
++// { dg-options "-std=c++0x -O2 -g" }
++// { dg-do compile }
 +
-+#define N 128 
++struct X {
++      void func() {}
++};
 +
-+int *res[N];
++template<typename T, void (X::*P)() = &T::func>
++void b(T) {}
 +
-+int
-+main1 (int *a, int *b, int *c, int *d, int dummy)
-+{
-+  int i;
++int main() {
++      b(X()); /* line 9 */
++        X().func();
 +
-+  for (i = 0; i < N/2; i+=4)
-+    {
-+      res[i] = a + 16;
-+      res[i+1] = b + 16;
-+      res[i+2] = c + 16;
-+      res[i+3] = d + 16;
-+      if (dummy == 32)
-+        abort ();
-+    } 
++          return 0;
 +}
 +
-+/* { dg-final { cleanup-tree-dump "vect" } } */
-+  
-Index: gcc/testsuite/ChangeLog
++
+Index: gcc/testsuite/g++.dg/other/crash-8.C
 ===================================================================
---- gcc/testsuite/ChangeLog    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,1417 @@
-+2010-03-11  Janis Johnson  <janis187@us.ibm.com>
+--- gcc/testsuite/g++.dg/other/crash-8.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/other/crash-8.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,109 @@
++// Origin: PR c++/42797
++// { dg-options "-g -O2 -std=c++0x" }
 +
-+      * lib/target-supports-dg.exp (check-flags): Provide defaults for
-+      include-opts and exclude-opts; skip checking the flags if arguments
-+      are the same as the defaults.
-+      (dg-xfail-if): Verify the number of arguments, supply defaults
-+      for unspecified optional arguments.
-+      (dg-skip-if, dg-xfail-run-if): Verify the number of arguments.
++template<typename _Tp, _Tp __v>     struct integral_constant     {
++    static const _Tp value = __v;
++};
 +
-+2010-03-11  Tobias Burnus  <burnus@net-b.de
++template<typename _Tp>     _Tp declval();
 +
-+      PR fortran/43303
-+      * gfortran.dg/c_assoc_3.f90: New test.
++template<typename _Tp, typename... _Args>
++class __is_constructible_helper  {
++};
 +
-+2010-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++template<typename _Tp, typename _Arg>
++class __is_constructible_helper<_Tp, _Arg>  {
 +
-+      * g++.old-deja/g++.pt/asm1.C: Don't detect pic via looking for the
-+      -fpic/-fPIC flags.
-+      * g++.old-deja/g++.pt/asm2.C: Likewise.
-+      * gcc.c-torture/compile/20000804-1.c: Likewise.
-+      * gcc.target/i386/clobbers.c: Likewise.
++    template<typename _Tp1, typename _Arg1>
++    static decltype(static_cast<_Tp1>(declval<_Arg1>()), char())  __test(int);
++public:
++    static const bool __value = sizeof(__test<_Tp, _Arg>(0)) == 1;
++};
 +
-+2010-03-08  Jakub Jelinek  <jakub@redhat.com>
++template<typename _Tp, typename... _Args>
++struct is_constructible     : public integral_constant<bool,__is_constructible_helper<_Tp, _Args...>::__value>     { };
 +
-+      Backport from mainline:
-+      2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
++template<bool, typename _Tp = void>
++struct enable_if  { };
 +
-+      PR c/43248
-+      * gcc.dg/compound-literal-1.c: New testcase.
++template<typename _Tp>
++struct enable_if<true, _Tp>     {
++    typedef _Tp type;
++};
 +
-+2010-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++template<class _T1, class _T2>     struct pair     {
++    _T1 first;
++    _T2 second;
 +
-+      Backport:
-+      2009-10-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-+      * lib/target-supports.exp (add_options_for_bind_pic_locally): New.
-+      
-+      2009-10-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-+      * g++.dg/ipa/iinline-1.C: Use dg-add-options bind_pic_locally.
-+      * g++.dg/other/first-global.C: Likewise.
-+      * g++.dg/parse/attr-externally-visible-1.C: Likewise.
-+      * g++.dg/tree-ssa/nothrow-1.C: Likewise.
-+      * gcc.dg/inline-33.c: Likewise.
-+      * gcc.dg/ipa/ipa-1.c: Likewise.
-+      * gcc.dg/ipa/ipa-2.c: Likewise.
-+      * gcc.dg/ipa/ipa-3.c: Likewise.
-+      * gcc.dg/ipa/ipa-4.c: Likewise.
-+      * gcc.dg/ipa/ipa-5.c: Likewise.
-+      * gcc.dg/ipa/ipa-7.c: Likewise.
-+      * gcc.dg/ipa/ipacost-2.c: Likewise.
-+      
-+      2010-02-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-+      * gcc.dg/tree-ssa/inline-4.c: Bind pic locally.
-+
-+2010-03-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-+
-+      * lib/gnat.exp (gnat_init): Remove GNAT_UNDER_TEST_ORIG.
-+      (gnat_target_compile): Likewise.
-+      Reinitialize GNAT_UNDER_TEST if target changes.
-+      Set ADA_INCLUDE_PATH, ADA_OBJECTS_PATH in environment.
-+      (local_find_gnatmake): Pass full --GCC to gnatlink.
-+      Remove --LINK.
++    template<class _U2, class = typename  enable_if<is_constructible<_T2, _U2&&>::value>::type>
++    pair(const _T1& __x, _U2&& __y)  : first(__x),
++                                       second(__y) { }
++};
 +
-+2010-03-02  Jakub Jelinek  <jakub@redhat.com>
++namespace __gnu_cxx {
++template<typename _Tp>
++class new_allocator     {
++public:
++    new_allocator() throw() { }
++    new_allocator(const new_allocator&) throw() { }
++};
++}
 +
-+      Backport from mainline:
-+      2010-03-01  Richard Guenther  <rguenther@suse.de>
++template<typename _Tp>
++class allocator: public __gnu_cxx::new_allocator<_Tp>     {
++public:
 +
-+      PR tree-optimization/43220
-+      * gcc.c-torture/execute/pr43220.c: New testcase.
++    template<typename _Tp1>
++    struct rebind  {
++        typedef allocator<_Tp1> other;
++    };
++};
 +
-+2010-02-27  Eric Botcazou  <ebotcazou@adacore.com>
 +
-+      * gnat.dg/thin_pointer.ad[sb]: Rename into...
-+      * gnat.dg/thin_pointer1.ad[sb]: ...this.
-+      * gnat.dg/thin_pointer2.adb: New test.
-+      * gnat.dg/thin_pointer2_pkg.ad[sb]: New helper.
++template<typename _Tp, typename _Alloc>     struct _Vector_base     {
++    typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
 +
-+2010-02-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++    struct _Vector_impl       : public _Tp_alloc_type   {
++        _Vector_impl()
++        { }
++    };
++public:
 +
-+      * gcc.target/arm/thumb2-cbnz.c: New test.
++    _Vector_impl _M_impl;
++};
 +
-+2010-02-23  H.J. Lu  <hongjiu.lu@intel.com>
++template<typename _Tp, typename _Alloc = allocator<_Tp> >
++class vector : protected _Vector_base<_Tp, _Alloc> {
++    typedef _Alloc allocator_type;
++public:
++    vector()       { }
++    explicit       vector(int, const allocator_type& __a = allocator_type())
++    {
++    }
++};
 +
-+      Backport from mainline:
-+      2010-02-22  Richard Guenther  <rguenther@suse.de>
 +
-+      PR tree-optimization/42749
-+      * gcc.c-torture/compile/pr42749.c: New testcase.
++template <typename _Key, typename _Tp>
++class map {
++    typedef _Key key_type;
++    typedef _Tp mapped_type;
++    typedef pair<const _Key, _Tp> value_type;
++public:
 +
-+      2010-02-21  Dodji Seketeli  <dodji@redhat.com>
++    void insert(const value_type& __x)
++    {
++    }
 +
-+      PR c++/42824
-+      * g++.dg/template/memclass4.C: New test.
++    mapped_type&       operator[](const key_type& __k)       {
++        insert(value_type(__k, mapped_type()));
++    }
 +
-+      2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
++};
 +
-+      PR fortran/43111
-+      * gfortran.dg/internal_pack_8.f90: New test.
++struct Foo {
++    Foo() {}      template<typename Tp>     Foo(Tp *p) {} };
++void foo() {
++    map <int, vector<Foo>> the_map;
++    the_map[1] = vector<Foo>();
++}
 +
-+      2010-02-18  Jason Merrill  <jason@redhat.com>
+Index: gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,7 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-cfg" } */
+-/* { dg-skip-if "" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
++/* { dg-add-options bind_pic_locally } */
 +
-+      PR c++/43109
-+      * g++.dg/parse/namespace12.C: New.
+ double a;
+ void t()
+ {
+Index: gcc/testsuite/g++.dg/conversion/op6.C
+===================================================================
+--- gcc/testsuite/g++.dg/conversion/op6.C      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/conversion/op6.C      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,18 @@
++// Origin: PR c++/42766
++// { dg-do compile }
 +
-+      2010-02-18  Martin Jambor  <mjambor@suse.cz>
++template<class T> class smart_pointer {
++public:
++    operator T* () const { }
++    operator bool () const { }
++    operator bool () { }
++};
++class Context { };
++typedef smart_pointer<Context> ContextP;
++class SvnClient  {
++    ~SvnClient();
++    ContextP svnContext;
++};
++SvnClient::~SvnClient() {
++    delete svnContext;
++}
+Index: gcc/testsuite/g++.dg/debug/pr43010.C
+===================================================================
+--- gcc/testsuite/g++.dg/debug/pr43010.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/debug/pr43010.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,8 @@
++// PR debug/43010
++// { dg-do compile }
++// { dg-options "-g -femit-struct-debug-baseonly" }
++# 1 "foo.C"
++# 1 "bar.h" 1
++typedef struct { int i; } S __attribute__((aligned));
++typedef struct { struct { int i; } j; } T __attribute__((aligned));
++# 1 "foo.C" 2
+Index: gcc/testsuite/g++.dg/ext/attrib36.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/attrib36.C        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/attrib36.C        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,20 @@
++// PR c++/43031
++// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
 +
-+      PR tree-optimization/43066
-+      * gcc.c-torture/compile/pr43066.c: New test.
++class T;
++class L { };
++class P : public L
++{
++  typedef void (__attribute__((__stdcall__)) T::*F) (L*);
++  void f(bool aAdd);
++};
++class T
++{
++public:
++    virtual void __attribute__((__stdcall__)) A(L *listener) = 0;
++    virtual void __attribute__((__stdcall__)) R(L *listener) = 0;
++};
++void P::f(bool aAdd)
++{
++  F addRemoveEventListener = (aAdd ? &T::A : &T::R);
++}
+Index: gcc/testsuite/g++.dg/ext/attrib37.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/attrib37.C        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/attrib37.C        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++// PR c++/43093
++// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
 +
-+      2010-02-17  Jason Merrill  <jason@redhat.com>
++struct S {
++  int x;
++  S(const S &s) {}
++};
 +
-+      PR c++/43069
-+      * g++.dg/parse/namespace11.C: New.
++S __attribute__((__stdcall__)) getS();
 +
-+      PR c++/43093
-+      * g++.dg/ext/attrib37.C: New.
++void test()
++{
++  S s = getS();
++}
+Index: gcc/testsuite/g++.dg/ext/dllexport3.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/dllexport3.C      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/dllexport3.C      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,19 @@
++// PR c++/42870
++// { dg-do compile { target i?86-*-cygwin *-*-mingw* } }
++// { dg-final { scan-assembler "-export:_ZN2SaD1Ev" } }
 +
-+      PR c++/43079
-+      * g++.dg/template/ptrmem20.C: New.
++#define ATTRIBUTE __attribute__ ((dllexport))
++class ATTRIBUTE Sa {
++ public:
++  Sa()
++    {}
++  ~Sa();
++};
++ATTRIBUTE Sa::~Sa()
++{return;}
 +
-+      2010-02-16  Jason Merrill  <jason@redhat.com>
++bool DllMain(void *a,void*b,int)
++{
++  Sa s;
++  return true;
++}
+Index: gcc/testsuite/g++.dg/ext/builtin11.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/builtin11.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/builtin11.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
++// PR c++/40138
++// { dg-options "-Wall" }
 +
-+      PR c++/43031
-+      * g++.dg/ext/attrib36.C: New.
++void foo(int i, ...)
++{
++  V v;                                // { dg-error "not declared|expected" }
++  __builtin_va_start(v, i);   // { dg-error "not declared" }
++  i = __builtin_va_arg(v, int);
++}
+Index: gcc/testsuite/g++.dg/ext/is_pod_98.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/is_pod_98.C       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/is_pod_98.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++// PR c++/43333
++// { dg-options "-std=c++98" }
++// { dg-do run }
 +
-+      2010-02-15  Richard Guenther  <rguenther@suse.de>
++struct strPOD
++{
++  const char *const foo;
++  const char *const bar;
++};
++extern "C" void abort (void);
++int main ()
++{
++  if (!__is_pod (strPOD))
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/g++.dg/opt/ice1.C
+===================================================================
+--- gcc/testsuite/g++.dg/opt/ice1.C    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/opt/ice1.C    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,41 @@
++// PR c++/43024
++// { dg-options "-O2" }
 +
-+      PR middle-end/43068
-+      * g++.dg/torture/pr43068.C: New testcase.
++void foo();
 +
-+      2010-02-11  Richard Guenther  <rguenther@suse.de>
++template<int> struct X
++{
++  enum { e };
++  typedef int Y;
++};
 +
-+      PR tree-optimization/42998
-+      * gcc.c-torture/compile/pr42998.c: New testcase.
++template<int N = 0> struct A
++{
++  ~A() { foo(); }
++  A() { a<0>(0); }
++  template<int> void a(typename X<!X<N>::e>::Y);
++  struct B b();
++};
 +
-+      2010-02-10  Richard Guenther  <rguenther@suse.de>
++struct B
++{
++  A<> b0, b1, b2, b3;
++  B operator+ (const B&);
++};
 +
-+      PR tree-optimization/43017
-+      * gcc.dg/torture/pr43017.c: New testcase.
++struct C
++{
++  A<> c0, c1, c2, c3, c4, c5, c6, c7, c8;
++};
 +
-+      2010-02-10  Richard Guenther  <rguenther@suse.de>
++inline void bar(int i)
++{
++  A<> a0, a1;
++  if (i) a0.b() + a0.b() + a0.b() + a0.b();
++}
 +
-+      PR c/43007
-+      * gcc.c-torture/execute/20100209-1.c: New testcase.
-+      * gcc.dg/fold-div-3.c: Likewise.
-+
-+      2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/42999
-+      * gfortran.dg/array_constructor_35.f90: New test.
-+
-+      2010-02-09  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/43008
-+      * gcc.c-torture/execute/pr43008.c: New testcase.
++void baz()
++{
++  C c;
++  bar(0);
++}
+Index: gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ // { dg-do compile }
+ // { dg-options "-O3 -fwhole-program" }
+-// { dg-options "-O3 -fwhole-program -fpie" { target { ! nonpic } } }
++// { dg-add-options bind_pic_locally }
+ // { dg-final { scan-assembler "foo1" } }
+ // { dg-final { scan-assembler "foo2" } }
+ // { dg-final { scan-assembler "foo3" } }
+Index: gcc/testsuite/g++.dg/parse/namespace11.C
+===================================================================
+--- gcc/testsuite/g++.dg/parse/namespace11.C   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/parse/namespace11.C   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,7 @@
++// PR c++/43069
 +
-+      2010-02-09  Richard Guenther  <rguenther@suse.de>
++namespace std {
++  template < typename >
++  void swap ();
++}
++template std::swap            // { dg-error "" }
+Index: gcc/testsuite/g++.dg/parse/namespace12.C
+===================================================================
+--- gcc/testsuite/g++.dg/parse/namespace12.C   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/parse/namespace12.C   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,7 @@
++// PR c++/43109
 +
-+      PR tree-optimization/43000
-+      * gcc.dg/torture/pr43000.c: New testcase.
-+      * gcc.dg/torture/pr43002.c: Likewise.
++namespace std {
++ namespace {
++   struct S {};
++ }
++}
+Index: gcc/testsuite/g++.dg/abi/mangle42.C
+===================================================================
+--- gcc/testsuite/g++.dg/abi/mangle42.C        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/abi/mangle42.C        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++// Origin: PR c++/43375
++// { dg-do compile { target i?86-*-* x86_64-*-* } }
++// { dg-options "-msse2 -std=gnu++0x" }
 +
-+      2010-02-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++typedef float __v4sf __attribute__ ((__vector_size__ (16)));
++typedef int __v4si __attribute__ ((__vector_size__ (16)));
++__v4sf my_asin(__v4sf x)
++{
++  static const __v4si g_Mask{0x7fffffff,
++                           0x00000000,
++                           0x7fffffff,
++                           0x7fffffff };
++  return __builtin_ia32_andnps ((__v4sf) g_Mask, x);
++}
+Index: gcc/testsuite/g++.dg/eh/pr42859.C
+===================================================================
+--- gcc/testsuite/g++.dg/eh/pr42859.C  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/eh/pr42859.C  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,23 @@
++// { dg-do compile }
 +
-+      PR libfortran/42742
-+      * gfortran.dg/fmt_cache_2.f: New test.
++void start (void);
++void
++ptw32_terminate (void)
++{
++  try
++  {
++    try
++    {
++      start ();
++    }
++    catch (int)
++    {
++    }
++    catch (int)
++    {
++    }
++  }
++  catch (int)
++  {
++  }
++}
+Index: gcc/testsuite/g++.dg/torture/pr42704.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42704.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42704.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,44 @@
++/* { dg-do compile } */
 +
-+      2010-02-03  Jason Merrill  <jason@redhat.com>
++typedef int PRInt32;
++class nsTreeRows {
++    class Subtree { };
++    enum { kMaxDepth = 32 };
++    struct Link {
++        Subtree* mParent;
++        PRInt32 mChildIndex;
++        Link&         operator=(const Link& aLink) {
++            mParent = aLink.mParent;
++            mChildIndex = aLink.mChildIndex;
++        }
++    };
++    class iterator {
++        PRInt32 mTop;
++        PRInt32 mRowIndex;
++        Link mLink[kMaxDepth];
++    public:
++        iterator() : mTop(-1), mRowIndex(-1) { }
++        iterator& operator=(const iterator& aIterator);
++    };
++    Subtree*     EnsureSubtreeFor(Subtree* aParent, PRInt32 aChildIndex);
++    Subtree*     GetSubtreeFor(const Subtree* aParent,
++PRInt32 aChildIndex,                   PRInt32* aSubtreeSize = 0);
++    void     InvalidateCachedRow() {
++        mLastRow = iterator();
++    }
++    iterator mLastRow;
++};
++nsTreeRows::Subtree* nsTreeRows::EnsureSubtreeFor(Subtree* aParent,
++                     PRInt32 aChildIndex) {
++    Subtree* subtree = GetSubtreeFor(aParent, aChildIndex);
++    if (! subtree) {
++        InvalidateCachedRow();
++    }
++}
++nsTreeRows::iterator& nsTreeRows::iterator::operator=(const iterator&
++aIterator) {
++    mTop = aIterator.mTop;
++    for (PRInt32 i = mTop;
++         i >= 0;
++         --i)         mLink[i] = aIterator.mLink[i];
++}
+Index: gcc/testsuite/g++.dg/torture/pr43257.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr43257.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr43257.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,30 @@
++/* { dg-do assemble } */
 +
-+      PR c++/42870
-+      * g++.dg/ext/dllexport3.C: New.
++class A {};
++class B {};
 +
-+2010-02-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++static void *func (int n)
++{
++  void *p;
++  if (p == 0) throw ::A ();
++}
 +
-+      PR target/40887
-+      Backport from trunk.
-+      2009-12-24  Julian Brown  <julian@codesourcery.com>
-+                  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++static void *func (int n, B const &)
++{
++  try {
++      return func (n);
++  }
++  catch (::A const &) {
++  }
++  return func (n);
++}
 +
-+      * gcc.target/arm/pr40887.c: New test.
++void *f1 (int n)
++{
++  return func (n, B());
++}
 +
-+2010-02-16  Ira Rosen <irar@il.ibm.com>
++void *f2 (int n)
++{
++  return func (n, B());
++}
+Index: gcc/testsuite/g++.dg/torture/pr42883.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42883.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42883.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,63 @@
++// { dg-do compile }
 +
-+      PR tree-optimization/43074
-+      * gcc.dg/vect/fast-math-pr43074.c: New test.
++typedef __SIZE_TYPE__ size_t;
++namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
++    template<typename _Tp>     class new_allocator     {
++    public:
++      typedef size_t size_type;
++      typedef _Tp* pointer;
++      typedef _Tp& reference;
++      void       deallocate(pointer __p, size_type)       {
++          ::operator delete(__p);
++      }
++    };
++}
++namespace std __attribute__ ((__visibility__ ("default"))) {
++    template<typename _Tp>     class allocator: public __gnu_cxx::new_allocator<_Tp>     {
++    public:
++      template<typename _Tp1>         struct rebind         {
++          typedef allocator<_Tp1> other;
++      };
++    };
++    template<typename _Tp, typename _Alloc>     struct _Vector_base     {
++      typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
++      struct _Vector_impl       : public _Tp_alloc_type       {
++          typename _Tp_alloc_type::pointer _M_start;
++          typename _Tp_alloc_type::pointer _M_end_of_storage;
++      };
++      ~_Vector_base()       {
++          _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage         - this->_M_impl._M_start);
++      }
++      _Vector_impl _M_impl;
++      void       _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n)       {
++          if (__p)    _M_impl.deallocate(__p, __n);
++      }
++    };
++    template<typename _Tp, typename _Alloc = std::allocator<_Tp> >     class vector : protected _Vector_base<_Tp, _Alloc>     {
++      typedef _Vector_base<_Tp, _Alloc> _Base;
++      typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
++    public:
++      typedef typename _Tp_alloc_type::reference reference;
++      typedef size_t size_type;
++      size_type       size() const       {
++      }
++      reference       operator[](size_type __n)       {
++      }
++    };
++};
++class vtkConvexPointSet  {
++public:
++    static vtkConvexPointSet *New();
++};
++void MakeInternalMesh() {
++    std::vector< int > tempFaces[2];
++    std::vector< int > firstFace;
++    int i, j, k;
++    for(i = 0; i < 1000; i++)     {
++      for(int pointCount = 0; pointCount < 1000; pointCount++)        {
++          for(j = 0; j < (int)tempFaces[0].size(); k++)
++            if(tempFaces[0][j] == tempFaces[1][k])            break;
++      }
++      vtkConvexPointSet::New();
++    }
++}
+Index: gcc/testsuite/g++.dg/torture/pr42450.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42450.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42450.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,112 @@
++/* { dg-do compile } */
 +
-+2010-02-16  Tobias Burnus  <burnus@net-b.de>
++template < typename > class basic_stringstream;
 +
-+      PR fortran/41869
-+      * gfortran.dg/module_write_1.f90: New test.
++struct basic_string {
++  basic_string();
++};
 +
-+2010-02-13  Richard Guenther  <rguenther@suse.de>
++struct ios_base {
++  virtual ~ios_base();
++};
 +
-+      PR tree-optimization/42871
-+      * g++.dg/torture/pr42871.C: New testcase.
++class ostream:ios_base {};
++class istream:virtual ios_base {};
 +
-+2010-02-12  Jakub Jelinek  <jakub@redhat.com>
++template < typename > struct basic_iostream:public istream, ostream {
++  ~basic_iostream () {}
++};
++extern template class basic_iostream < char >;
 +
-+      PR c++/43033
-+      * g++.dg/other/default3.C: Xfail g4 test.
++template < typename > struct basic_stringstream:public basic_iostream < char > {
++    basic_string _M_stringbuf;
++    ~basic_stringstream () {}
++};
++extern template class basic_stringstream < char >;
 +
-+2010-02-10  Jakub Jelinek  <jakub@redhat.com>
++template < typename > struct AnyMatrixBase;
++template < typename, int _Rows, int _Cols, int = _Rows, int = _Cols > class Matrix;
++template < typename > class CwiseNullaryOp;
 +
-+      PR debug/43010
-+      * g++.dg/debug/pr43010.C: New test.
++template < typename Derived > struct MatrixBase:public AnyMatrixBase < Derived > {
++  typedef CwiseNullaryOp < Derived > ConstantReturnType;
++  ConstantReturnType Constant ();
++  template < typename > Derived cast ();
++  static CwiseNullaryOp < Derived > Random (int);
++};
 +
-+2010-02-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
++template < typename Derived > struct AnyMatrixBase {
++  Derived derived () {}
++  Derived & derived () const {}
++};
 +
-+      * gcc.dg/tree-ssa/inline-4.c: Bind pic locally.
++template < typename, int > struct ei_matrix_storage {};
 +
-+2010-02-08  Jakub Jelinek  <jakub@redhat.com>
++template < typename _Scalar, int, int, int _MaxRows, int _MaxCols > struct Matrix:MatrixBase < Matrix < _Scalar, _MaxRows, _MaxCols > > {
++  typedef MatrixBase < Matrix > Base;
++  ei_matrix_storage < int, _MaxCols > m_storage;
++  Matrix operator= (const Matrix other) {
++    _resize_to_match (other);
++    lazyAssign (other.derived ());
++  }
++  template < typename OtherDerived > Matrix lazyAssign (MatrixBase < OtherDerived > other) {
++    _resize_to_match (other);
++    return Base (other.derived ());
++  }
++  Matrix ();
++  template < typename OtherDerived > Matrix (const MatrixBase < OtherDerived > &other) {
++    *this = other;
++  }
++  template < typename OtherDerived > void _resize_to_match (const MatrixBase < OtherDerived > &) {
++    throw 1;
++  }
++};
 +
-+      PR tree-optimization/42890
-+      * g++.dg/torture/pr42890.C: New test.
++template < typename MatrixType > class CwiseNullaryOp:
++public MatrixBase < CwiseNullaryOp < MatrixType > > {};
 +
-+2010-02-08  Richard Guenther  <rguenther@suse.de>
++int f()
++{
++  bool align_cols;
++  if (align_cols) {
++    basic_stringstream<char> sstr;
++    f();
++  }
++}
 +
-+      Backport from mainline:
-+      2010-01-05  Martin Jambor  <mjambor@suse.cz>
++template < typename > struct AutoDiffScalar;
++template < typename Functor > struct AutoDiffJacobian:Functor {
++  AutoDiffJacobian (Functor);
++  typedef typename Functor::InputType InputType;
++  typedef typename Functor::ValueType ValueType;
++  typedef Matrix < int, Functor::InputsAtCompileTime, 1 > DerivativeType;
++  typedef AutoDiffScalar < DerivativeType > ActiveScalar;
++  typedef Matrix < ActiveScalar, Functor::InputsAtCompileTime, 1 > ActiveInput;
++  void operator () (InputType x, ValueType *) {
++    ActiveInput ax = x.template cast < ActiveScalar > ();
++  }
++};
 +
-+      PR tree-optimization/42462
-+      * gcc.dg/tree-ssa/inline-4.c: New testcase.
-+      * gcc.dg/Wunreachable-2.c: Remove.
++template < int NX, int NY > struct TestFunc1 {
++  enum  {
++    InputsAtCompileTime = NX
++  };
++  typedef Matrix < float, NX, 1 > InputType;
++  typedef Matrix < float, NY, 1 > ValueType;
++  typedef Matrix < float, NY, NX > JacobianType;
++  int inputs ();
++};
 +
-+2010-02-08  H.J. Lu  <hongjiu.lu@intel.com>
++template < typename Func > void forward_jacobian (Func f) {
++  typename Func::InputType x = Func::InputType::Random (f.inputs ());
++  typename Func::ValueType y;
++  typename Func::JacobianType jref = jref.Constant ();
++  AutoDiffJacobian < Func > autoj (f);
++  autoj (x, &y);
++}
 +
-+      * gcc.dg/ipa/pr42706.c: Removed.
-+
-+2010-02-06  H.J. Lu  <hongjiu.lu@intel.com>
++void test_autodiff_scalar ()
++{
++  forward_jacobian (TestFunc1 < 2, 2 > ());
++  forward_jacobian (TestFunc1 < 3, 2 > ());
++}
+Index: gcc/testsuite/g++.dg/torture/pr42714.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42714.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42714.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,37 @@
++struct QVectorData {
++    static QVectorData shared_null;
++};
++template <typename T> class QVector {
++    union {
++        QVectorData *d;
++    };
++public:
++    inline QVector() : d(&QVectorData::shared_null) { }
++    inline QVector(const QVector<T> &v) : d(v.d) { }
++};
++class QXmlStreamAttribute { };
++class QXmlStreamAttributes : public QVector<QXmlStreamAttribute> { };
++class __attribute__ ((visibility("default"))) Smoke {
++public:
++    union StackItem;
++    typedef StackItem* Stack;
++    typedef short Index;
++};
++class SmokeBinding { };
++namespace __smokeqt {
++    class x_QXmlStreamAttributes : public QXmlStreamAttributes {
++        SmokeBinding* _binding;
++    public:
++        static void x_11(Smoke::Stack x) {
++            x_QXmlStreamAttributes* xret = new x_QXmlStreamAttributes();
++        }
++        explicit x_QXmlStreamAttributes() : QXmlStreamAttributes() { }
++    };
++    void xcall_QXmlStreamAttributes(Smoke::Index xi, void *obj,
++                                    Smoke::Stack args)
++      {
++        switch(xi) {
++            case 11: x_QXmlStreamAttributes::x_11(args);
++        }
++      }
++}
+Index: gcc/testsuite/g++.dg/torture/pr43068.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr43068.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr43068.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,10 @@
++/* { dg-do compile } */
++/* { dg-options "-freorder-blocks -ftracer} */
 +
-+      Backport from mainline:
-+      2010-02-05  Dodji Seketeli  <dodji@redhat.com>
++struct A {
++    virtual A *f();
++};
++struct B : virtual A {
++    virtual B *f();
++};
++B *B::f() { return 0; }
+Index: gcc/testsuite/g++.dg/torture/pr42871.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42871.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42871.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,40 @@
++struct C
++{
++  ~C ();
++  int c3;
++};
 +
-+      PR c++/42915
-+      * g++.dg/other/crash-9.C: New test.
++C *b2;
 +
-+      2010-02-03  Jason Merrill  <jason@redhat.com>
++static void
++b1 (const C &x, unsigned b3, unsigned b4)
++{
++  unsigned i = 0;
++  for (; i < b3; i++)
++    if (i < b4)
++      {
++        b2[0].c3 = x.c3;
++        return;
++      }
++}
 +
-+      PR c++/40138
-+      * g++.dg/ext/builtin11.C: New.
++int a ();
 +
-+      2010-02-03  Richard Guenther  <rguenther@suse.de>
++void
++bar (unsigned b3, unsigned b4)
++{
++  C c[100];
++  for (int i = 0; i < 100; i++)
++    {
++      c[i].c3 = i;
++      for (int j = 0; j < b3; j++)
++        if (j < b4)
++          {
++            b2[0].c3 = 0;
++            break;
++          }
++      b1 (c[i], b3, b4);
++      a ();
++    }
++}
 +
-+      PR tree-optimization/42944
-+      * gcc.dg/errno-1.c: New testcase.
+Index: gcc/testsuite/g++.dg/torture/pr42890.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42890.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42890.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,25 @@
++// PR tree-optimization/42890
++// { dg-do compile }
 +
-+      2010-02-03  Richard Guenther  <rguenther@suse.de>
++extern "C" int puts (const char *) throw ();
 +
-+      PR middle-end/42927
-+      * gcc.c-torture/compile/pr42927.c: New testcase.
++struct S
++{
++  const char *a;
++  const char **b;
++  S (const char *s) { a = s; b = &a; }
++  ~S () { puts (a); }
++};
 +
-+      2010-01-29  Dodji Seketeli  <dodji@redhat.com>
++void
++foo (int (*fn) (const char *))
++{
++  S a ("foo");
++  fn ("bar");
++}
 +
-+      PR c++/42758
-+      PR c++/42634
-+      PR c++/42336
-+      PR c++/42797
-+      PR c++/42880
-+      * g++.dg/other/crash-5.C: New test.
-+      * g++.dg/other/crash-7.C: New test.
-+      * g++.dg/other/crash-8.C: New test.
++int
++main ()
++{
++  foo (puts);
++}
+Index: gcc/testsuite/g++.dg/torture/pr42739.C
+===================================================================
+--- gcc/testsuite/g++.dg/torture/pr42739.C     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/torture/pr42739.C     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++/* { dg-do compile } */
 +
-+      2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
++struct s { ~s() { s(); } };
 +
-+      PR target/42891
-+      * gcc.target/i386/pr42891.c: New test.
++int f()
++{
++  M:
++    s o = s();
++    f();
++    f();
 +
-+      2010-01-28  Richard Guenther  <rguenther@suse.de>
++  L:
++    goto *(f() ? &&L : &&M);
 +
-+      PR middle-end/42883
-+      * g++.dg/torture/pr42883.C: New testcase.
++    return 0;
++}
+Index: gcc/testsuite/g++.dg/ipa/iinline-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/ipa/iinline-1.C       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/g++.dg/ipa/iinline-1.C       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -2,7 +2,7 @@
+    inlining..  */
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining"  } */
+-/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fpie" { target { ! nonpic } } } */
++/* { dg-add-options bind_pic_locally } */
+ extern void non_existent (const char *, int);
+Index: gcc/testsuite/g++.dg/template/typedef27.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/typedef27.C  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/typedef27.C  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,55 @@
++// Origin: PR c++/42713
++// { dg-do compile }
 +
-+      2010-01-28  Michael Matz  <matz@suse.de>
++template<class T>
++struct S
++{
++};
 +
-+      * gcc.target/i386/pr42881.c: New test.
++template<class T>
++struct S0
++{
++    typedef T TT;
++};
 +
-+      2010-01-28  Dodji Seketeli  <dodji@redhat.com>
++template<class U, class V>
++struct super_struct : S0<V>
++{
++    typedef S0<V> super;
++};
 +
-+      PR c++/42713
-+      PR c++/42820
-+      * g++.dg/template/typedef27.C: New test case.
-+      * g++.dg/template/typedef28.C: New test case.
++template<class U, class V, class W>
++struct S1 : super_struct<U, V>
++{
++    typedef super_struct<U, V> super;
++    typedef typename super::super Super2;
++    typedef typename Super2::TT Super2TT;
++    void
++    foo()
++    {
++        S<Super2TT> s1;
++    }
++};
 +
-+      2010-01-27  Jakub Jelinek  <jakub@redhat.com>
++template<class U, class V>
++struct S2 : super_struct<U, V>
++{
++    typedef super_struct<U, V> super;
++    typedef typename super::super Super2;
++    typedef typename Super2::TT Super2TT;
++    void
++    foo()
++    {
++        S<Super2TT> s1;
++    }
++};
 +
-+      PR middle-end/42874
-+      * gcc.dg/vla-22.c: New test.
++int
++main()
++{
++    S1<int, S<int>, int> s1;
++    s1.foo();
++    S2<int, S<int> > s2;
++    s2.foo();
++}
 +
-+      2010-01-26  Richard Guenther  <rguenther@suse.de>
+Index: gcc/testsuite/g++.dg/template/typedef28.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/typedef28.C  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/typedef28.C  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,28 @@
++// Origin: PR c++/42820
++// { dg-do compile }
 +
-+      PR tree-optimization/42250
-+      * gcc.dg/pr42250.c: New testcase.
 +
-+      2010-01-25  Tobias Burnus  <burnus@net-b.de>
++template <class T> struct vector{};
++struct Traits{struct Primitive{struct Id{};};};
 +
-+      PR fortran/42858
-+      * gfortran.dg/generic_21.f90: New test.
++template <class Tree, class Polyhedron> struct Tree_vs_naive
++{
++  typedef typename Tree::Primitive Primitive;
 +
-+      2010-01-21  Martin Jambor  <mjambor@suse.cz>
++  void f() const
++  {
++        typedef vector<typename Primitive::Id> Id_vector;
++  }
++};
 +
-+      PR tree-optimization/42585
-+      * gcc.dg/tree-ssa/pr42585.c: New test.
-+
-+      2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
-+
-+      PR debug/42715
-+      * gcc.dg/pr42715.c: New.
-+
-+      2010-01-20  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/42717
-+      * gcc.c-torture/compile/pr42717.c: New testcase.
-+
-+      2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/42783
-+      * gfortran.dg/bounds_check_15.f90 : New test.
-+
-+      2010-01-18  Dodji Seketeli  <dodji@redhat.com>
++template <class Tree> void test_hint_strategies()
++{
++  vector<typename Tree::Primitive::Id> v;
++}
 +
-+      PR c++/42766
-+      * g++.dg/conversion/op6.C: New test.
++int main(void)
++{
++  test_hint_strategies<Traits>();
++}
 +
-+      2010-01-18  Richard Guenther  <rguenther@suse.de>
 +
-+      PR tree-optimization/42781
-+      * gfortran.fortran-torture/compile/pr42781.f90: New testcase.
+Index: gcc/testsuite/g++.dg/template/ptrmem20.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/ptrmem20.C   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/ptrmem20.C   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++// PR c++/43079
 +
-+      2010-01-17  Richard Guenther  <rguenther@suse.de>
++struct A {};
 +
-+      PR middle-end/42248
-+      * gcc.c-torture/execute/pr42248.c: New testcase.
++struct B
++{
++  void foo() const;
++  void foo();
++};
 +
-+      2010-01-17  Janus Weil  <janus@gcc.gnu.org>
++template<void (A::*)()> void bar();
 +
-+      PR fortran/42677
-+      * gfortran.dg/interface_assignment_5.f90: New test.
++void baz()
++{
++  bar<&B::foo>();  // { dg-error "not a valid template argument|no match" }
++}
+Index: gcc/testsuite/g++.dg/template/memclass4.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/memclass4.C  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/memclass4.C  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,70 @@
++// Origin: PR c++/42824
++// { dg-do compile }
 +
-+      2010-01-15  Richard Guenther  <rguenther@suse.de>
++template<int T>
++class int_ {
++};
 +
-+      PR middle-end/42739
-+      * g++.dg/torture/pr42739.C: New testcase.
++template<int T, int T2>
++class Unit {
++public:
++    Unit(const Unit<T, T2>& other) {}
++};
 +
-+      2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
++template<int T>
++class Quan {
++public:
++    Quan(void) {}
 +
-+      PR fortran/42684
-+      * gfortran.dg/interface_31.f90: New test.
++    template<int T2>
++    Quan(double value, Unit<T, T2> unit) {}
++};
++typedef Quan<0> Scalar;
 +
-+      2010-01-14  Martin Jambor  <mjambor@suse.cz>
++template<int T>
++class hlp {
++public:
++   typedef Quan<T> type;
++};
 +
-+      PR tree-optimization/42706
-+      * gcc.dg/ipa/pr42706.c: New testcase.
++class Mtrl {
++public:
++    template<int T>
++    struct AssoType {
++        typedef typename hlp<T>::type type;
++    };
++};
 +
-+      2010-01-14  Martin Jambor  <mjambor@suse.cz>
++template<class T>
++class Eval {
++public:
++    Eval(const T& object){}
 +
-+      PR tree-optimization/42714
-+      * g++.dg/torture/pr42714.C: New test.
++    template<int V>
++    void eval() {
++        eval<V> (int_<0>());
++    }
++private:
++    template<typename U> struct Wrap {};
 +
-+      2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
++    template<int V, int V2>
++    void value(Wrap<Quan<V2> >) {}
 +
-+      PR rtl-optimization/42388
-+      * gcc.dg/pr42388.c: New.
++    template<int V>
++    void value(Wrap<Scalar>) {}
 +
-+      2010-01-14  Alexander Monakov <amonakov@ispras.ru>
++    template<int V>
++    void eval(int_<0>) {
++        typedef typename T::template AssoType<V>::type Type;
++        value<V>(Wrap<Type>());
++    }
++};
 +
-+      PR rtl-optimization/42294
-+      * gfortran.dg/pr42294.f: New.
++class Foo {
++public:
++    static void eval(const Mtrl& mtrl) {
++        Eval<Mtrl> h(mtrl);
++        h.eval<0> ();
++    }
++};
 +
-+      2010-01-14  Ira Rosen  <irar@il.ibm.com>
+Index: gcc/testsuite/lib/gnat.exp
+===================================================================
+--- gcc/testsuite/lib/gnat.exp (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/lib/gnat.exp (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,4 +1,4 @@
+-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
++# Copyright (C) 2006, 2007, 2008, 2009, 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
+@@ -83,7 +83,6 @@
+     global gluefile wrap_flags
+     global gnat_initialized
+     global GNAT_UNDER_TEST
+-    global GNAT_UNDER_TEST_ORIG
+     global TOOL_EXECUTABLE
+     global gnat_libgcc_s_path
+     global gnat_target_current
+@@ -98,7 +97,6 @@
+       } else {
+           set GNAT_UNDER_TEST "[local_find_gnatmake]"
+       }
+-        set GNAT_UNDER_TEST_ORIG "$GNAT_UNDER_TEST"
+     }
+     if ![info exists tmpdir] then {
+@@ -129,22 +127,31 @@
+     global gluefile wrap_flags
+     global srcdir
+     global GNAT_UNDER_TEST
+-    global GNAT_UNDER_TEST_ORIG
+     global TOOL_OPTIONS
+     global ld_library_path
+     global gnat_libgcc_s_path
+     global gnat_target_current
+-    # If we detect a change of target we need to recompute
+-    # the appropriate RTS by calling get_multilibs.
++    # If we detect a change of target, we need to recompute both
++    # GNAT_UNDER_TEST and the appropriate RTS.
+     if { $gnat_target_current!="[current_target_name]" } {
+-       set gnat_target_current "[current_target_name]"
+-       if [info exists TOOL_OPTIONS] {
+-           set gnat_rts_opt "--RTS=[get_multilibs ${TOOL_OPTIONS}]/libada"
+-       } else {
+-           set gnat_rts_opt "--RTS=[get_multilibs]/libada"
+-       }
+-        set GNAT_UNDER_TEST "$GNAT_UNDER_TEST_ORIG $gnat_rts_opt"
++      set gnat_target_current "[current_target_name]"
++      if [info exists TOOL_OPTIONS] {
++          set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada"
++      } else {
++          set rtsdir "[get_multilibs]/libada"
++      }
++      if [info exists TOOL_EXECUTABLE] {
++          set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
++      } else {
++          set GNAT_UNDER_TEST "[local_find_gnatmake]"
++      }
++        set GNAT_UNDER_TEST "$GNAT_UNDER_TEST --RTS=$rtsdir"
 +
-+      PR tree-optimization/42709
-+      * gcc.dg/vect/pr42709.c: New test.
++      # gnatlink looks for system.ads itself and has no --RTS option, so
++      # specify via environment
++      setenv ADA_INCLUDE_PATH "$rtsdir/adainclude"
++      setenv ADA_OBJECTS_PATH "$rtsdir/adainclude"
+     }
+     set ld_library_path ".:${gnat_libgcc_s_path}"
+@@ -263,7 +270,13 @@
+         }
+         if { $file != "" } {
+       set root [file dirname $file]
+-      set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs --LINK=$root/xgcc -B$root -margs";
++      # Need to pass full --GCC, including multilib flags, to gnatlink,
++      # otherwise gcc from PATH is invoked.
++      set dest [target_info name]
++      set gnatlink_gcc "--GCC=$root/xgcc -B$root [board_info $dest multilib_flags]"
++      # Escape blanks to get them through DejaGnu's exec machinery.
++      regsub -all {\s} "$gnatlink_gcc" {\\&} gnatlink_gcc
++      set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs $gnatlink_gcc -margs";
+         } else {
+       set CC [transform gnatmake]
+         }
+Index: gcc/testsuite/lib/target-supports-dg.exp
+===================================================================
+--- gcc/testsuite/lib/target-supports-dg.exp   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/lib/target-supports-dg.exp   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -235,10 +235,27 @@
+       append compiler_flags "[board_info $dest multilib_flags] "
+     }
+-    # The target list might be an effective-target keyword, so replace
+-    # the original list with "*-*-*", since we already know it matches.
+-    set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]]
++    # The next two arguments are optional.  If they were not specified,
++    # use the defaults.
++    if { [llength $args] == 2 } {
++      lappend $args [list "*"]
++    }
++    if { [llength $args] == 3 } {
++      lappend $args [list ""]
++    }
++    # If the option strings are the defaults, or the same as the
++    # defaults, there is no need to call check_conditional_xfail to
++    # compare them to the actual options.
++    if { [string compare [lindex $args 2] "*"] == 0
++       && [string compare [lindex $args 3] "" ] == 0 } {
++      set result 1    
++    } else {
++      # The target list might be an effective-target keyword, so replace
++      # the original list with "*-*-*", since we already know it matches.
++      set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]]
++    }
 +
-+      2010-01-13  Richard Guenther  <rguenther@suse.de>
+     # Any value in this variable was left over from an earlier test.
+     set compiler_flags ""
+@@ -256,14 +273,18 @@
+ # group of tests or flags specified with a previous dg-options command.
+ proc dg-skip-if { args } {
++    # Verify the number of arguments.  The last two are optional.
++    set args [lreplace $args 0 0]
++    if { [llength $args] < 2 || [llength $args] > 4 } {
++      error "dg-skip-if 2: need 2, 3, or 4 arguments"
++    }
 +
-+      PR tree-optimization/42730
-+      * gcc.c-torture/compile/pr42730.c: New testcase.
-+
-+      2010-01-13  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42704
-+      * g++.dg/torture/pr42704.C: New test.
-+
-+      2010-01-13  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42703
-+      * gcc.c-torture/compile/pr42703.c: New test.
-+
-+      2010-01-13  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/42705
-+      * gcc.c-torture/compile/pr42705.c: New testcase.
+     # Don't bother if we're already skipping the test.
+     upvar dg-do-what dg-do-what
+     if { [lindex ${dg-do-what} 1] == "N" } {
+       return
+     }
+-    set args [lreplace $args 0 0]
+-
+     set selector [list target [lindex $args 1]]
+     if { [dg-process-target $selector] == "S" } {
+       if [check-flags $args] {
+@@ -276,31 +297,53 @@
+ # Like check_conditional_xfail, but callable from a dg test.
+ proc dg-xfail-if { args } {
++    # Verify the number of arguments.  The last three are optional.
++    set args [lreplace $args 0 0]
++    if { [llength $args] < 2 || [llength $args] > 4 } {
++      error "dg-xfail-if: need 2, 3, or 4 arguments"
++    }
 +
-+      2010-01-13  Richard Guenther  <rguenther@suse.de>
+     # Don't change anything if we're already skipping the test.
+     upvar dg-do-what dg-do-what
+     if { [lindex ${dg-do-what} 1] == "N" } {
+       return
+     }
+-    set args [lreplace $args 0 0]
+     set selector [list target [lindex $args 1]]
+     if { [dg-process-target $selector] == "S" } {
+       global compiler_conditional_xfail_data
+-      set compiler_conditional_xfail_data [lreplace $args 1 1 "*-*-*"]
 +
-+      PR middle-end/42716
-+      * gcc.c-torture/compile/pr42716.c: New testcase.
++      # The target list might be an effective-target keyword.  Replace
++      # the original list with "*-*-*", since we already know it matches.
++      set args [lreplace $args 1 1 "*-*-*"]
 +
-+      2010-01-12  Joseph Myers  <joseph@codesourcery.com>
++      # Supply default values for unspecified optional arguments.
++      if { [llength $args] == 2 } {
++          lappend $args [list "*"]
++      }
++      if { [llength $args] == 3 } {
++          lappend $args [list ""]
++      }
 +
-+      PR c/42708
-+      * gcc.c-torture/compile/pr42708-1.c: New test.
++      set compiler_conditional_xfail_data $args
+     }
+ }
+ # Like dg-xfail-if but for the execute step.
+ proc dg-xfail-run-if { args } {
++    # Verify the number of arguments.  The last two are optional.
++    set args [lreplace $args 0 0]
++    if { [llength $args] < 2 || [llength $args] > 4 } {
++      error "dg-xfail-run-if: need 2, 3, or 4 arguments"
++    }
 +
-+      2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
+     # Don't bother if we're already skipping the test.
+     upvar dg-do-what dg-do-what
+     if { [lindex ${dg-do-what} 1] == "N" } {
+       return
+     }
+-    set args [lreplace $args 0 0]
+-
+     set selector [list target [lindex $args 1]]
+     if { [dg-process-target $selector] == "S" } {
+       if [check-flags $args] {
+Index: gcc/testsuite/lib/target-supports.exp
+===================================================================
+--- gcc/testsuite/lib/target-supports.exp      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/lib/target-supports.exp      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -2787,6 +2787,28 @@
+     return $flags
+ }
++# Add to FLAGS the flags needed to enable functions to bind locally
++# when using pic/PIC passes in the testsuite.
 +
-+      PR middle-end/42363
-+      * gcc.dg/torture/pr42363.c: New.
++proc add_options_for_bind_pic_locally { flags } {
++    if {[check_no_compiler_messages using_pic2 assembly {
++        #if __PIC__ != 2
++        #error FOO
++        #endif
++    }]} {
++      return "$flags -fPIE"
++    }
++    if {[check_no_compiler_messages using_pic1 assembly {
++        #if __PIC__ != 1
++        #error FOO
++        #endif
++    }]} {
++      return "$flags -fpie"
++    }
 +
-+      2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
++    return $flags
++}
 +
-+      PR debug/42604
-+      PR debug/42395
-+      * gcc.dg/vect/pr42604.c: New.
-+      * gcc.dg/vect/pr42395.c: New.
+ # Return 1 if the target provides a full C99 runtime.
+ proc check_effective_target_c99_runtime { } {
+Index: gcc/testsuite/gfortran.dg/interface_assignment_5.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/interface_assignment_5.f90       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/interface_assignment_5.f90       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,49 @@
++! { dg-do compile }
++!
++! PR 42677: [4.5 Regression] Bogus Error: Ambiguous interfaces '...' in intrinsic assignment operator
++!
++! Contributed by Harald Anlauf <anlauf@gmx.de>
 +
-+      2010-01-09  Richard Guenther  <rguenther@suse.de>
++module mod1
++  implicit none
++  type t_m
++     integer :: i = 0
++  end type t_m
++!------------------------------------------------------------------------------
++  interface assignment (=)
++     module procedure assign_m
++  end interface
++!------------------------------------------------------------------------------
++contains
++  subroutine assign_m (y, x)
++    type(t_m) ,intent(inout) :: y
++    type(t_m) ,intent(in)    :: x
++  end subroutine assign_m
++end module mod1
++!==============================================================================
++module mod2
++  use mod1, only: t_m, assignment(=)
++  implicit none
++  type t_atm
++     integer :: k
++  end type t_atm
++!------------------------------------------------------------------------------
++  interface assignment(=)
++     module procedure assign_to_atm
++  end interface
++!------------------------------------------------------------------------------
++  interface
++     pure subroutine delete_m (x)
++       use mod1
++       type(t_m) ,intent(in) :: x
++     end subroutine delete_m
++  end interface
++!------------------------------------------------------------------------------
++contains
++  subroutine assign_to_atm (atm, r)
++    type(t_atm) ,intent(inout) :: atm
++    integer     ,intent(in)    :: r
++  end subroutine assign_to_atm
++end module mod2
++ 
++! { dg-final { cleanup-modules "mod1 mod2" } }
+Index: gcc/testsuite/gfortran.dg/read_empty_file.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/read_empty_file.f        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/read_empty_file.f        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,7 @@
++! { dg-do run }
++! PR43320 Missing EOF on read from empty file.
++      open(8,status='scratch',form='formatted')  ! Create empty file
++      read(8,'(a80)', end=123)  ! Reading from an empty file should be an EOF
++      call abort
++123   continue
++      end
+Index: gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,50 @@
++! { dg-do run }
++! Test the fix for PR38324, in which the bounds were not set correctly for
++! constructor assignments with allocatable components.
++!
++! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr>
++!
++  integer, parameter :: ik4 = 4
++  integer, parameter :: ik8 = 8
++  integer, parameter :: from = -1, to = 2
++  call foo
++  call bar
++contains
++  subroutine foo
++    type :: struct
++      integer(4), allocatable :: ib(:)
++    end type struct
++    integer(ik4), allocatable :: ia(:)
++    type(struct) :: x
++    allocate(ia(from:to))
++    if (any(lbound(ia) .ne. -1) .or. any(ubound(ia) .ne. 2)) call abort
++    if (any(lbound(ia(:)) .ne. 1) .or. any(ubound(ia(:)) .ne. 4)) call abort
++    if (any(lbound(ia(from:to)) .ne. 1) .or. any(ubound(ia(from:to)) .ne. 4)) call abort
++    x=struct(ia)
++    if (any(lbound(x%ib) .ne. -1) .or. any(ubound(x%ib) .ne. 2)) call abort
++    x=struct(ia(:))
++    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
++    x=struct(ia(from:to))
++    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
++    deallocate(ia)
++  end subroutine
++  subroutine bar
++    type :: struct
++      integer(4), allocatable :: ib(:)
++    end type struct
++    integer(ik8), allocatable :: ia(:)
++    type(struct) :: x
++    allocate(ia(from:to))
++    if (any(lbound(ia) .ne. -1) .or. any(ubound(ia) .ne. 2)) call abort
++    if (any(lbound(ia(:)) .ne. 1) .or. any(ubound(ia(:)) .ne. 4)) call abort
++    if (any(lbound(ia(from:to)) .ne. 1) .or. any(ubound(ia(from:to)) .ne. 4)) call abort
++    x=struct(ia)
++    if (any(lbound(x%ib) .ne. -1) .or. any(ubound(x%ib) .ne. 2)) call abort
++    x=struct(ia(:))
++    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
++    x=struct(ia(from:to))
++    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
++    deallocate(ia)
++  end subroutine
++end
 +
-+      PR middle-end/42512
-+      * gcc.c-torture/execute/pr42512.c: New testcase.
+Index: gcc/testsuite/gfortran.dg/interface_31.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/interface_31.f90 (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/interface_31.f90 (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,41 @@
++! { dg-do compile }
++! PR42684 (42680) Ice with Interface.
++MODULE mod1
++  IMPLICIT NONE  
++  TYPE ta
++    INTEGER i
++  END TYPE ta
++  INTERFACE OPERATOR(+)
++    MODULE PROCEDURE add_a
++  END INTERFACE OPERATOR(+)  
++CONTAINS  
++  FUNCTION add_a(lhs, rhs) RESULT(r)
++    TYPE(ta), INTENT(IN) :: lhs
++    TYPE(ta), INTENT(IN) :: rhs
++    TYPE(ta) :: r
++    !****
++    r%i = lhs%i + rhs%i
++  END FUNCTION add_a  
++END MODULE mod1
 +
-+2010-02-06  Paul Thomas  <pault@gcc.gnu.org>
++MODULE mod2
++  IMPLICIT NONE 
++  TYPE tb
++    INTEGER j
++  END TYPE tb
++  INTERFACE OPERATOR(+)
++    MODULE PROCEDURE add_b
++  END INTERFACE OPERATOR(+)  
++CONTAINS  
++  SUBROUTINE other_proc()
++    USE mod1    ! Causes ICE
++  END SUBROUTINE other_proc  
++  FUNCTION add_b(lhs, rhs) RESULT(r)
++    TYPE(tb), INTENT(IN) :: lhs
++    TYPE(tb), INTENT(IN) :: rhs
++    TYPE(tb) :: r
++    !****
++    r%j = lhs%j + rhs%j
++  END FUNCTION add_b  
++END MODULE mod2
++! { dg-final { cleanup-modules "mod1 mod2" } }
+Index: gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,39 @@
++! { dg-do compile }
++! Test the fix for the problems in PR41044
++!
++! Contributed by <ros@rzg.mpg.de>
++! Reduced by Joos VandeVondele <jv244@cam.ac.uk>
++!
++  Subroutine PS_INIT (bkgd, punit, pform, psize, rot90, bbox, clip, eps,  &
++                        caller)
++    type psfd                          ! paper size and frame defaults
++      character(3)                     :: n
++      real                             :: p(2)
++      real                             :: f(4)
++    end type psfd
++    character(4)                       :: fn, orich, pfmt
++    type(psfd), parameter              :: pfd(0:11)=(/  &
++         psfd('   ',(/   0.0,   0.0/),(/200.,120.,800.,560./)), &    ! A0_L
++         psfd('A0 ',(/ 840.9,1189.2/),(/140., 84.,560.,400./)), &    ! A0_P
++         psfd('A1 ',(/ 594.6, 840.9/),(/100., 60.,400.,280./)), &    ! A1_P
++         psfd('A2 ',(/ 420.4, 594.6/),(/ 70., 42.,280.,200./)), &    ! A2_P
++         psfd('A3 ',(/ 297.3, 420.4/),(/ 50., 30.,200.,140./)), &    ! A3_P
++         psfd('A4 ',(/ 210.2, 297.3/),(/ 35., 21.,140.,100./)), &    ! A4_P
++         psfd('A5 ',(/ 148.7, 210.2/),(/ 25., 15.,100., 70./)), &    ! A5_P
++         psfd('A6 ',(/ 105.1, 148.7/),(/ 18., 11., 70., 50./)), &    ! A6_P
++         psfd('   ',(/   0.0,   0.0/),(/ 50., 30.,200.,140./)), &    ! Letter_L
++         psfd('LET',(/ 215.9, 279.4/),(/ 35., 21.,140.,100./)), &    ! Letter_P
++         psfd('   ',(/   0.0,   0.0/),(/ 50., 30.,200.,140./)), &    ! Legal_L
++         psfd('LEG',(/ 215.9, 355.6/),(/ 35., 21.,140.,100./))/)     ! Legal_P
++    if (len_trim(pfmt) > 0) then       ! set paper format
++      idx=sum(maxloc(index(pfd%n,pfmt(1:3))))-1
++    end if
++  end subroutine PS_INIT
 +
-+      PR fortran/42309
-+      * gfortran.dg/subref_array_pointer_4.f90 : New test.
++! This, additional problem, was posted as comment #8 by Tobias Burnus <burnus@gcc.gnu.org>
++  type t
++    integer :: i
++  end type t
++  type(t), parameter :: a(1) = t(4) ! [t(4)] worked OK
++  real(a(1)%i) :: b
++end
+Index: gcc/testsuite/gfortran.dg/pr43475.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/pr43475.f90      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/pr43475.f90      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++! PR middle-end/43475
++! { dg-do compile }
++! { dg-options "-O2" }
++subroutine ss(w)
++  implicit none
++  integer :: w(:)
++  integer :: b,c,d
++  b = w(8)
++  c = 5
++  d = 3
++  call s1(c)
++  call s2(b+c)
++  call s3(w(b))
++end subroutine ss
+Index: gcc/testsuite/gfortran.dg/pr42294.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/pr42294.f        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/pr42294.f        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,41 @@
++C PR rtl-optimization/42294
++C { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } }
++C { dg-options "-O2 -fselective-scheduling2 -fsel-sched-pipelining -funroll-all-loops" }
 +
-+2010-02-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++      SUBROUTINE ORIEN(IW,NATOT,NTOTORB,NATORB,P,T)
++      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
++      DIMENSION NATORB(NATOT),P(NTOTORB*(NTOTORB+1)/2)
++      DIMENSION T(NTOTORB,NTOTORB)
++      DO 9000 IATOM=1,NATOT
++         ILAST = NTOTORB
++         IF (IATOM.NE.NATOT) ILAST=NATORB(IATOM+1)-1
++         DO 8000 IAOI=NATORB(IATOM),ILAST
++            DO 7000 IAOJ = IAOI+1,ILAST
++               R2 = 0.0D+00
++               R3 = 0.0D+00
++               DO 6000 INOTA=1,NATOT
++                  DO 5000 IK=NATORB(INOTA),NTOTORB
++                     IMAI=MAX(IK,IAOI)
++                     IMII=MIN(IK,IAOI)
++                     IMAJ=MAX(IK,IAOJ)
++                     IMIJ=MIN(IK,IAOJ)
++                     IKI=(IMAI*(IMAI-1))/2 + IMII
++                     IKJ=(IMAJ*(IMAJ-1))/2 + IMIJ
++                     PIKI=P(IKI)
++                     PIKJ=P(IKJ)
++                     R2 = R2 + (PIKI**4)-6*(PIKI*PIKI*PIKJ*PIKJ)+(PIKJ)
++ 5000             CONTINUE
++ 6000          CONTINUE
++               R2 = (R2/4.0D+00)
++               Q = SQRT(R2*R2 + R3*R3)
++               IF (Q.LT.1.0D-08) GO TO 7000
++               A = COS(THETA)
++               B = -SIN(THETA)
++               CALL ROT1INT(NTOTORB,IAOI,IAOJ,A,B,P)
++ 7000       CONTINUE
++ 8000    CONTINUE
++ 9000 CONTINUE
++      RETURN
++      END
 +
-+      PR libfortran/42901
-+      *gfortran.dg/namelist_60.f90: New test.
-+      *gfortran.dg/namelist_59.f90: New test.
 +
-+2010-02-04  Richard Guenther  <rguenther@suse.de>
+Index: gcc/testsuite/gfortran.dg/namelist_60.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_60.f90  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/namelist_60.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,27 @@
++! { dg-do run }
++! PR42901  Reading array of structures from namelist
++! Test case derived from the reporters test case.
++program test_nml
++type field_descr
++  integer number
++end type
++type fsetup
++  type (field_descr), dimension(3) :: vel ! 3 velocity components
++end type
++type (fsetup) field_setup
++namelist /nl_setup/ field_setup
++field_setup%vel%number = 0
++! write(*,nml=nl_setup)
++open(10, status="scratch")
++write(10,'(a)') "&nl_setup"
++write(10,'(a)') " field_setup%vel(1)%number=  3,"
++write(10,'(a)') " field_setup%vel(2)%number=  9,"
++write(10,'(a)') " field_setup%vel(3)%number=  27,"
++write(10,'(a)') "/"
++rewind(10)
++read(10,nml=nl_setup)
++if (field_setup%vel(1)%number .ne. 3) call abort
++if (field_setup%vel(2)%number .ne. 9) call abort
++if (field_setup%vel(3)%number .ne. 27) call abort
++! write(*,nml=nl_setup)
++end program test_nml
+Index: gcc/testsuite/gfortran.dg/bounds_check_15.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/bounds_check_15.f90      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/bounds_check_15.f90      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,33 @@
++! { dg-do run }
++! { dg-options "-fbounds-check" }
++! Test the fix for PR42783, in which a bogus array bounds violation
++! with missing optional array argument.
++!
++! Contributed by Harald Anlauf <anlauf@gmx.de>
++!
++program gfcbug99
++  implicit none
++  character(len=8), parameter :: mnem_list(2) = "A"
 +
-+      PR rtl-optimization/42952
-+      * gcc.dg/torture/pr42952.c: New testcase.
++  call foo (mnem_list)  ! This call succeeds
++  call foo ()           ! This call fails
++contains
++  subroutine foo (mnem_list)
++    character(len=8) ,intent(in) ,optional :: mnem_list(:)
 +
-+2010-02-02  Tobias Burnus  <burnus@net-b.de>
++    integer            :: i,j
++    character(len=256) :: ml
++    ml = ''
++    j = 0
++    if (present (mnem_list)) then
++       do i = 1, size (mnem_list)
++          if (mnem_list(i) /= "") then
++             j = j + 1
++             if (j > len (ml)/8) call abort ()
++             ml((j-1)*8+1:(j-1)*8+8) = mnem_list(i)
++          end if
++       end do
++    end if
++    if (j > 0) print *, trim (ml(1:8))
++  end subroutine foo
++end program gfcbug99
+Index: gcc/testsuite/gfortran.dg/internal_pack_10.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/internal_pack_10.f90     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/internal_pack_10.f90     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,41 @@
++! { dg-do run }
++! Test the fix for PR43180, in which patch which reduced the use of
++! internal_pack/unpack messed up the passing of ru(1)%c as the actual
++! argument at line 23 in this testcase.
++!
++! Contributed by Harald Anlauf <anlauf@gmx.de>
++! further reduced by Tobias Burnus <burnus@gcc.gnu.org>
++!
++module mo_obs_rules
++  type t_set
++     integer :: use = 42
++  end type t_set
++  type t_rules
++     character(len=40) :: comment
++     type(t_set)       :: c (1)
++  end type t_rules
++  type (t_rules), save :: ru (1)
++contains
++  subroutine get_rule (c)
++    type(t_set) :: c (:)
++    ru(1)%c(:)%use = 99
++    if (any (c(:)%use .ne. 42)) call abort
++    call set_set_v (ru(1)%c, c)
++    if (any (c(:)%use .ne. 99)) call abort
++  contains
++    subroutine set_set_v (src, dst)
++      type(t_set), intent(in)    :: src(1)
++      type(t_set), intent(inout) :: dst(1)
++    if (any (src%use .ne. 99)) call abort
++    if (any (dst%use .ne. 42)) call abort
++      dst = src
++    end subroutine set_set_v
++  end subroutine get_rule
++end module mo_obs_rules
 +
-+      PR fortran/42650
-+      * gfortran.dg/func_result_5.f90: New test.
++program test
++  use mo_obs_rules
++  type(t_set) :: c (1)
++  call get_rule (c)
++end program test
++! { dg-final { cleanup-modules "mo_obs_rules" } }
+Index: gcc/testsuite/gfortran.dg/fmt_cache_2.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/fmt_cache_2.f    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/fmt_cache_2.f    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,36 @@
++! { dg-do run }
++! PR42742 Handle very large format strings correctly
++! Test derived from example developed by Manfred Schwarb.
++      character(12) bufarr(74)
++      character(74*13+30) fmtstr,fmtstr2
++      character(1) delim
++      integer i,j,dat(5),pindx, loopcounter
++      character(983) big_string ! any less and this test fails.
 +
-+2010-02-01  Uros Bizjak  <ubizjak@gmail.com>
++      do i=1,74
++        write(bufarr(i),'(i12)') i
++      enddo
 +
-+      Backport from mainline:
-+      2009-12-17  Uros Bizjak  <ubizjak@gmail.com>
++      delim=" "
++      dat(1)=2009
++      dat(2)=10
++      dat(3)=31
++      dat(4)=3
++      dat(5)=0
++      fmtstr="(i2,i6,4(a1,i2.2)"
++      open(10, status="scratch")
++      do j=1,74
++        fmtstr=fmtstr(1:len_trim(fmtstr))//",a1,a12"
++        fmtstr2=fmtstr(1:len_trim(fmtstr))//")"
++c        write(0,*) "interation ",j,": ",len_trim(fmtstr2)
++        do i=1,10
++          write(10,fmtstr2)
++     &           i,dat(1),"-",dat(2),"-",dat(3),
++     &           delim,dat(4),":",dat(5),
++     &           (delim,bufarr(pindx),pindx=1,j)
++        enddo
++        loopcounter = j
++      enddo
++      close(10)
++      if (loopcounter /= 74) call abort
++      end
+Index: gcc/testsuite/gfortran.dg/module_write_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/module_write_1.f90       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/module_write_1.f90       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,59 @@
++! { dg-do compile }
++!
++! PR fortran/41869
++!
++! Was ICEing while module write of symbol 'vs_str' in m_dom_dom
++! because of "len" being private in fox_m_fsys_format.
++!
++module fox_m_fsys_array_str
++contains
++  pure function str_vs(vs) result(s)
++    character, dimension(:), intent(in) :: vs
++    character(len=size(vs)) :: s
++    s = transfer(vs, s)
++  end function str_vs
++  pure function vs_str(s) result(vs)
++    character(len=*), intent(in) :: s
++    character, dimension(len(s)) :: vs
++    vs = transfer(s, vs)
++  end function vs_str
++end module fox_m_fsys_array_str
 +
-+      * objc/execute/forward-1.x: XFAIL for -fgnu-runtime on
-+      x86_64-*-darwin*, powerpc*-*-darwin* and alpha*-*-linux* targets.
-+
-+2010-01-31  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      PR middle-end/42898
-+      * gcc.dg/torture/pr42898-2.c: New test.
++module fox_m_fsys_format
++  private
++  interface str
++    module procedure  str_logical_array
++  end interface str
++  interface len
++    module procedure str_logical_array_len
++  end interface
++  public :: str
++contains
++  pure function str_logical_array_len(la) result(n)
++    logical, dimension(:), intent(in)   :: la
++  end function str_logical_array_len
++  pure function str_logical_array(la) result(s)
++    logical, dimension(:), intent(in)   :: la
++    character(len=len(la)) :: s
++  end function str_logical_array
++  pure function checkFmt(fmt) result(good)
++    character(len=*), intent(in) :: fmt
++    logical :: good
++    good = len(fmt) > 0
++  end function checkFmt
++end module fox_m_fsys_format
 +
-+2010-01-31  Richard Guenther  <rguenther@suse.de>
++module m_dom_dom
++  use fox_m_fsys_array_str, only: str_vs, vs_str
++end module m_dom_dom
 +
-+      PR middle-end/42898
-+      * gcc.dg/torture/pr42898.c: New testcase.
++module FoX_dom
++  use fox_m_fsys_format
++  use m_dom_dom
++end module FoX_dom
 +
-+2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
++use FoX_dom
++implicit none
++print *, vs_str("ABC")
++end
++! { dg-final { cleanup-modules "fox_m_fsys_array_str fox_m_fsys_format m_dom_dom fox_dom" } }
+Index: gcc/testsuite/gfortran.dg/namelist_28.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_28.f90  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gfortran.dg/namelist_28.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,4 +1,4 @@
+-! { dg-do run { target fd_truncate } }
++! { dg-do run }
+ ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF.
+ ! Patch derived from PR, submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ program gfcbug61
+@@ -27,12 +27,12 @@
+     character(len=*), intent(in) :: name
+     character(len=255) :: line
+-    integer            :: ios, idx
++    integer            :: ios, idx, k
+     logical            :: first
+     first = .true.
+     status = 0
+-    do
++    do k=1,25
+        line = ""
+        read (unit,'(a)',iostat=ios) line
+        if (ios < 0) then
+@@ -51,12 +51,13 @@
+           return
+        end if
+     end do
++    if (k.gt.10) call abort
+   end subroutine position_nml
+   subroutine read_report (unit, status)
+     integer :: unit, status
+-    integer            :: iuse, ios
++    integer            :: iuse, ios, k
+     !------------------
+     ! Namelist 'REPORT'
+     !------------------
+@@ -66,7 +67,7 @@
+     ! Loop to read namelist multiple times
+     !-------------------------------------
+     iuse = 0
+-    do
++    do k=1,25
+        !----------------------------------------
+        ! Preset namelist variables with defaults
+        !----------------------------------------
+@@ -84,6 +85,7 @@
+        if (ios /= 0) exit
+        iuse = iuse + 1
+     end do
++    if (k.gt.10) call abort
+     status = ios
+   end subroutine read_report
+Index: gcc/testsuite/gfortran.dg/func_result_5.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/func_result_5.f90        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/func_result_5.f90        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++! { dg-do compile }
++!
++! PR fortran/42650
++!
++! Result type was not working
++!
 +
-+      PR fortran/38324
-+      * gfortran.dg/alloc_comp_basics_1.f90: Remove option -O2.
-+      * gfortran.dg/alloc_comp_bounds_1.f90: New test.
++type(t) function func2() result(res)
++  type t
++    sequence
++    integer :: i = 5
++  end type t
++  res%i = 2
++end function func2
+Index: gcc/testsuite/gfortran.dg/internal_pack_8.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/internal_pack_8.f90      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/internal_pack_8.f90      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,33 @@
++! { dg-do run }
++!
++! Test the fix for PR43111, in which necessary calls to
++! internal PACK/UNPACK were not being generated because
++! of an over agressive fix to PR41113/7.
++!
++! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
++!
++SUBROUTINE S2(I)
++ INTEGER :: I(4)
++ !write(6,*) I
++ IF (ANY(I.NE.(/3,5,7,9/))) CALL ABORT()
++END SUBROUTINE S2
 +
-+2010-01-30  Paul Thomas  <pault@gcc.gnu.org>
++MODULE M1
++ TYPE T1
++  INTEGER, POINTER, DIMENSION(:) :: data
++ END TYPE T1
++CONTAINS
++ SUBROUTINE S1()
++   TYPE(T1) :: d
++   INTEGER, TARGET, DIMENSION(10) :: scratch=(/(i,i=1,10)/)
++   INTEGER :: i=2
++   d%data=>scratch(1:9:2)
++!   write(6,*) d%data(i:)
++   CALL S2(d%data(i:))
++ END SUBROUTINE S1
++END MODULE M1
 +
-+      PR fortran/41044
-+      * gfortran.dg/parameter_array_ref_2.f90 : New test.
++USE M1
++CALL S1
++END
++! { dg-final { cleanup-modules "M1" } }
+Index: gcc/testsuite/gfortran.dg/debug/pr43166.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/debug/pr43166.f  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/debug/pr43166.f  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,14 @@
++C PR debug/43166
++C { dg-do compile }
++C { dg-options "-O" }
++      SUBROUTINE FOO ()
++      INTEGER V1
++      COMMON // V1
++      END
++      SUBROUTINE BAR ()
++      INTEGER V0,V1,V2,V3
++      COMMON // V1(4),V2(85,4),V3
++      DO V3=1,V1(1)
++      V0=V2(V3,1)
++      END DO
++      END
+Index: gcc/testsuite/gfortran.dg/char_array_arg_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/char_array_arg_1.f90     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/char_array_arg_1.f90     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,17 @@
++! { dg-do compile }
++! Test the fix for pr41167, in which the first argument of 'pack', below,
++! was simplified incorrectly, with the results indicated.
++!
++! Contributed by Harald Anlauf <anlauf@gmx.de>
++!
++program gfcbug88
++  implicit none
++  type t
++     character(len=8) :: name
++  end type t
++  type(t) ,parameter :: obstyp(2)= (/ t ('A'), t ('B') /)
++  character(9) :: chr(1)
 +
-+      PR fortran/41167
-+      * gfortran.dg/char_array_arg_1.f90 : New test.
++  print *, pack (" "//obstyp(:)% name, (/ .true., .false. /))  ! Used to ICE on compilation
++  chr = pack (" "//obstyp(:)% name, (/ .true., .false. /))  ! Used to give conversion error
++end program gfcbug88
+Index: gcc/testsuite/gfortran.dg/namelist_59.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_59.f90  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/namelist_59.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,26 @@
++! { dg-do run }
++! PR41192 NAMELIST input with just a comment ("&NAME ! comment \") error 
++program cmdline
++! comment by itself causes error in gfortran
++   call process(' ')
++   call process('i=10 , j=20 k=30 ! change all three values')
++   call process(' ')
++   call process('! change no values')! before patch this failed.
++end program cmdline
 +
-+2010-01-27  Paul Thomas  <pault@gcc.gnu.org>
++subroutine process(string)
++ implicit none
++ character(len=*) :: string
++ character(len=132) :: lines(3)
++ character(len=255) :: message
++ integer :: i=1,j=2,k=3
++ integer ios
++ namelist /cmd/ i,j,k
++ save cmd
++ lines(1)='&cmd'
++ lines(2)=string
++ lines(3)='/'
 +
-+      PR fortran/42736
-+      * gfortran.dg/dependency_25.f90 : New test.
++ read(lines,nml=cmd,iostat=ios,iomsg=message)
++ if (ios.ne.0) call abort
++end subroutine process
+Index: gcc/testsuite/gfortran.dg/read_eof_7.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/read_eof_7.f90   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/read_eof_7.f90   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,20 @@
++! { dg-do run }
++! PR43517 Spurious EOF condition when namelist read follows formatted read
++! Test case from the problem reporter - Michael Richmond
++program main
++  namelist /name/ j
++  open (10,status='scratch',form='formatted')
++  write(10,'(a)') "999999"
++  write(10,'(a)') " $name"
++  write(10,'(a)') "  j=73,"
++  write(10,'(a)') " /"
++  rewind(10)
++  i = 54321
++  idum = 6789
++  read (10,'(2i5,4x)') i, idum ! Trailing 4x was setting EOF condition
++  if (i /= 99999 .and. idum /= 9) call abort
++  j = 12345
++  read (10,name) ! EOF condition tripped here.
++  if (j /= 73) call abort
++end program main
 +
-+2010-01-26  Jakub Jelinek  <jakub@redhat.com>
+Index: gcc/testsuite/gfortran.dg/read_eof_6.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/read_eof_6.f     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/read_eof_6.f     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,7 @@
++! { dg-do run }
++! PR43320 Missing EOF on read from empty file.
++      open(8,status='scratch',form='formatted')  ! Create empty file
++      read(8,'(a80)', end=123)  ! Reading from an empty file should be an EOF
++      call abort
++123   continue
++      end
+Index: gcc/testsuite/gfortran.dg/read_eof_all.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/read_eof_all.f90 (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/read_eof_all.f90 (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,71 @@
++! { dg-do run }
++! PR43265 Followup patch for miscellaneous EOF conditions.
++! Eaxamples from Tobius Burnus 
++  use iso_fortran_env
++  character(len=2) :: str, str2(2)
++  integer :: a, b, c, ios
++  str = ''
++  str2 = ''
++
++  open(99,file='test.dat',access='stream',form='unformatted', status='replace')
++  write(99) ' '
++  close(99)
++ 
++  open(99,file='test.dat')
++  read(99, '(T7,i2)') i
++  close(99, status="delete")
++  if (i /= 0) call abort
 +
-+      * ada/acats/run_all.sh: Make sure norun.lst is sorted using the
-+      current collation.
++  read(str(1:0), '(T7,i1)') i
++  if (i /= 0) call abort
 +
-+      Backport from mainline:
-+      2009-12-17  Arnaud Charlet  <charlet@adacore.com>
++  read(str,'(i2,/,i2)',end=111) a, b
++  call abort !stop 'ERROR: Expected EOF error (1)'
++  111 continue
 +
-+      * ada/acats/run_all.sh: Strip comments from norun.lst.
++  read(str2,'(i2,/,i2)',end=112) a, b
 +
-+2010-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++  read(str2,'(i2,/,i2,/,i2)',end=113) a, b, c
++  call abort !stop 'ERROR: Expected EOF error (2)'
 +
-+      Backport from mainline.
-+      2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++  112 call abort !stop 'ERROR: Unexpected EOF (3)'
 +
-+      PR target/38697.
-+      * gcc.target/arm/neon/vget_lowf32.c: Regenerate.
-+      * gcc.target/arm/neon/vget_lowp16.c: Likewise.
-+      * gcc.target/arm/neon/vget_lowp8.c:  Likewise.
-+      * gcc.target/arm/neon/vget_lows16.c: Likewise.
-+      * gcc.target/arm/neon/vget_lows32.c: Likewise.
-+      * gcc.target/arm/neon/vget_lows64.c: Likewise.
-+      * gcc.target/arm/neon/vget_lows8.c: Likewise.
-+      * gcc.target/arm/neon/vget_lowu16.c: Likewise.
-+      * gcc.target/arm/neon/vget_lowu32.c: Likewise.
-+      * gcc.target/arm/neon/vget_lowu64.c: Likewise.
-+      * gcc.target/arm/neon/vget_lowu8.c: Likewise.
++  113 continue
++  read(str,'(i2,/,i2)',end=121,pad='no') a, b
++  call abort !stop 'ERROR: Expected EOF error (1)'
++  121 continue
 +
-+2010-01-21  Release Manager
++  read(str2(:),'(i2,/,i2)', end=122, pad='no') a, b
++  goto 125
++  122 call abort !stop 'ERROR: Expected no EOF error (2)'
++  125 continue
 +
-+      * GCC 4.4.3 released.
++  read(str2(:),'(i2,/,i2,/,i2)',end=123,pad='no') a, b, c
++  call abort !stop 'ERROR: Expected EOF error (3)'
++  123 continue
 +
-+2010-01-20  Jakub Jelinek  <jakub@redhat.com>
++  read(str(2:1),'(i2,/,i2)',end=131, pad='no') a, b
++  call abort !stop 'ERROR: Expected EOF error (1)'
++  131 continue
 +
-+      * gcc.dg/cleanup-13.c: Expect DW_OP_mod to do unsigned modulo instead
-+      of signed, add a few new tests.
++  read(str2(:)(2:1),'(i2,/,i2)',end=132, pad='no') a, b
++  call abort !stop 'ERROR: Expected EOF error (2)'
++  132 continue
 +
-+      PR middle-end/42803
-+      * g++.dg/parse/limits-initializer1.C: New test.
++  read(str2(:)(2:1),'(i2,/,i2,/,i2)',end=133,pad='no') a, b, c
++  call abort !stop 'ERROR: Expected EOF error (3)'
++  133 continue
 +
-+2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
++  read(str(2:1),'(i2,/,i2)',iostat=ios, pad='no') a, b
++  if (ios /= IOSTAT_END) call abort !stop 'ERROR: expected iostat /= 0  (1)'
 +
-+      PR target/42774
-+      * gcc.target/alpha/pr42774.c: New test.
++  read(str2(:)(2:1),'(i2,/,i2)',iostat=ios, pad='no') a, b
++  if (ios /= IOSTAT_END) call  abort !stop 'ERROR: expected iostat /= 0  (2)'
 +
-+2010-01-17  H.J. Lu  <hongjiu.lu@intel.com>
++  read(str2(:)(2:1),'(i2,/,i2,/,i2)',iostat=ios,pad='no') a, b, c
++  if (ios /= IOSTAT_END) call abort !stop 'ERROR: expected iostat /= 0  (2)'
 +
-+      Backport from mainline:
-+      2010-01-13  Steve Ellcey  <sje@cup.hp.com>
++  ! print *, "success"
++  end
 +
-+      PR target/42542
-+      * gcc.target/ia64/pr42542-1.c: New.
-+      * gcc.target/ia64/pr42542-2.c: New.
-+      * gcc.target/ia64/pr42542-3.c: New.
 +
-+2010-01-17  Richard Guenther  <rguenther@suse.de>
+Index: gcc/testsuite/gfortran.dg/read_x_eof.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/read_x_eof.f90   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/read_x_eof.f90   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,16 @@
++! { dg-do run }
++! PR43265 No EOF condition if reading with '(x)' from an empty file
++! Test case from the reporter.
++program pr43265
++implicit none
++integer::i
++open(23,status="scratch")
++write(23,'(a)') "Line 1"
++write(23,'(a)') "Line 2"
++write(23,'(a)') "Line 3"
++rewind(23)
++do i=1,10
++  read(23,'(1x)',end=12)
++enddo
++12 if (i.ne.4) call abort
++end
+Index: gcc/testsuite/gfortran.dg/read_x_past.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/read_x_past.f    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gfortran.dg/read_x_past.f    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,17 +1,28 @@
+-! { dg-do run { target fd_truncate } }
++! { dg-do run }
+ ! { dg-options -w }
+ ! PR 26661 : Test reading X's past file end with no LF or CR.
+ ! PR 26880 : Tests that rewind clears the gfc_unit read_bad flag.
++! PR 43265 : Tests that no error occurs with or without X at end.
+ ! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
+       implicit none
+       character(3) a(4)
+       integer i
+-      open (10)
++      open (10, status="scratch")
+  10   format(A,$)  ! This is not pedantic
+       write(10,10)' abc def ghi jkl'
+       rewind(10)
++
++      a = ""
+       read(10,20)(a(i),i=1,4)
+       if (a(4).ne."jkl") call abort()
++
++      rewind(10)
++
++      a = ""
++      read(10,30)(a(i),i=1,4)
++      if (a(4).ne."jkl") call abort()
++
+  20   format(1x,a3,1x,a3,1x,a3,1x,a3,10x)
+-      close(10, status="delete")
++ 30   format(1x,a3,1x,a3,1x,a3,1x,a3)
++      close(10)
+       end
+Index: gcc/testsuite/gfortran.dg/namelist_61.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_61.f90  (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/namelist_61.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,35 @@
++! { dg-do run }
++!
++! PR fortran/43228
++!
++integer :: a(3,3)
++character(len=100) :: str
++namelist /nml/a
++
++a = -1
++str = '&nml a(1,:) = 1 2 3 /'
++read(str, nml=nml)
++if (any (a(1,:) /= [1, 2, 3])) call abort ()
++if (any (a([2,3],:) /= -1)) call abort ()
++
++a = -1
++str = '&nml a(1,1) = 1 2 3 4 /'
++read(str, nml=nml)
++if (any (a(:,1) /= [1, 2, 3])) call abort ()
++if (any (a(:,2) /= [4, -1, -1])) call abort ()
++if (any (a(:,3) /= -1)) call abort ()
++
++str = '&nml a(1,:) = 1 2 3 , &
++       &    a(2,:) = 4,5,6 &
++       &    a(3,:) = 7 8 9/'
++read(str, nml=nml)
++if (any (a(1,:) /= [1, 2, 3])) call abort ()
++if (any (a(2,:) /= [4, 5, 6])) call abort ()
++if (any (a(3,:) /= [7, 8, 9])) call abort ()
++
++!print *, a(:,1)
++!print *, a(:,2)
++!print *, a(:,3)
++end
 +
-+      PR tree-optimization/42773
-+      * g++.dg/torture/pr42773.C: New testcase.
 +
-+2010-01-16  Jakub Jelinek  <jakub@redhat.com>
+Index: gcc/testsuite/gfortran.dg/namelist_27.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/namelist_27.f90  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gfortran.dg/namelist_27.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,4 +1,4 @@
+-! { dg-do run { target fd_truncate } }
++! { dg-do run }
+ ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF.
+ ! Patch derived from PR, submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ program gfcbug61
+@@ -41,14 +41,14 @@
+     character(len=*), intent(in) :: name
+     character(len=255) :: line
+-    integer            :: ios, idx
++    integer            :: ios, idx, k
+     logical            :: first
+     first = .true.
+     status = 0
+     ios = 0
+     line = ""
+-    do
++    do k=1,10
+        read (unit,'(a)',iostat=ios) line
+        if (first) then
+           first = .false.
+@@ -74,7 +74,7 @@
+   subroutine read_report (unit, status)
+     integer :: unit, status
+-    integer            :: iuse, ios
++    integer            :: iuse, ios, k
+     !------------------
+     ! Namelist 'REPORT'
+     !------------------
+@@ -85,7 +85,7 @@
+     ! Loop to read namelist multiple times
+     !-------------------------------------
+     iuse = 0
+-    do
++    do k=1,5
+        !----------------------------------------
+        ! Preset namelist variables with defaults
+        !----------------------------------------
+@@ -103,4 +103,4 @@
+     status = ios
+   end subroutine read_report
+-end program gfcbug61
+\ No newline at end of file
++end program gfcbug61
+Index: gcc/testsuite/gfortran.dg/c_assoc_3.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/c_assoc_3.f90    (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/c_assoc_3.f90    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,13 @@
++! { dg-do compile }
++!
++! PR fortran/43303
++!
++! Contributed by Dennis Wassel
++!
++PROGRAM c_assoc
++  use iso_c_binding
++  type(c_ptr) :: x
++  x = c_null_ptr
++  print *, C_ASSOCIATED(x) ! <<< was ICEing here
++  if (C_ASSOCIATED(x)) call abort ()
++END PROGRAM c_assoc
+Index: gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ ! { dg-do run }
+-! { dg-options "-O2 -fdump-tree-original" }
++! { dg-options "-fdump-tree-original" }
+ !
+ ! Check some basic functionality of allocatable components, including that they
+ ! are nullified when created and automatically deallocated when
+Index: gcc/testsuite/gfortran.dg/dependency_25.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/dependency_25.f90        (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/dependency_25.f90        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,95 @@
++! { dg-do run }
++! Test the fix for PR42736, in which an excessively rigorous dependency
++! checking for the assignment generated an unnecessary temporary, whose
++! rank was wrong.  When accessed by the scalarizer, a segfault ensued.
++!
++! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
++! Reported by Armelius Cameron <armeliusc@gmail.com>
++!
++module UnitValue_Module
 +
-+      PR middle-end/42760
-+      * g++.dg/torture/pr42760.C: New test.
++  implicit none
++  private
 +
-+2010-01-15  Jing Yu  <jingyu@google.com>
-+
-+      PR rtl-optimization/42691
-+      * gcc.c-torture/execute/pr42691.c: New.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/42674
-+      * c-c++-common/pr42674.c: New test.
-+
-+      PR c++/42608
-+      * g++.dg/template/instantiate11.C: New test.
-+
-+2010-01-14  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42655
-+      * g++.dg/overload/rvalue1.C: New.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c/42721
-+      * gcc.c-torture/execute/pr42721.c: New test.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      Backport from mainline
-+      2010-01-10  Richard Guenther  <rguenther@suse.de>
-+
-+      PR middle-end/42667
-+      * gcc.dg/torture/pr42667.c: New testcase.
-+
-+2010-01-13  Sebastian Pop  <sebastian.pop@amd.com>
-+
-+      PR middle-end/40281
-+      * gcc.dg/graphite/pr40281.c: New.
-+
-+2010-01-12  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/42662
-+      * gcc.dg/pr42662.c: New test.
-+
-+2010-01-11  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      * gcc.target/x86_64/abi/avx/asm-support.S (snapshot_ret): Preserve
-+      stack alignment.
-+
-+2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * g++.dg/opt/pr42508.C: Removed.
-+
-+2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2010-01-06  Richard Guenther  <rguenther@suse.de>
-+
-+      * gcc.c-torture/compile/pr42632.c: New testcase.
-+
-+      2010-01-05  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42462
-+      * g++.dg/torture/pr42462.C: New test.
-+
-+      2010-01-05  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR tree-optimization/42508
-+      * g++.dg/opt/pr42508.C: New test.
-+
-+      2010-01-04  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42398
-+      * gcc.c-torture/compile/pr42398.c: New test.
-+
-+      2010-01-04  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42555
-+      * g++.dg/ext/attrib35.C: New.
-+
-+      2010-01-01  Richard Guenther  <rguenther@suse.de>
-+
-+      PR c/42570
-+      * gcc.c-torture/execute/pr42570.c: New testcase.
-+
-+      2010-01-01  Richard Guenther  <rguenther@suse.de>
-+
-+      PR middle-end/42559
-+      * gcc.c-torture/compile/pr42559.c: New testcase.
-+
-+      2009-12-30  Joseph Myers  <joseph@codesourcery.com>
-+
-+      PR c/42439
-+      * gcc.dg/bitfld-19.c: New test.
-+
-+      2009-12-28  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42447
-+      * g++.dg/template/array21.C: New.
-+
-+2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline
-+      2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR target/42542
-+      * gcc.target/i386/pr42542-1.c: New.
-+      * gcc.target/i386/pr42542-1a.c: Likewise.
-+      * gcc.target/i386/pr42542-1b.c: Likewise.
-+      * gcc.target/i386/pr42542-2.c: Likewise.
-+      * gcc.target/i386/pr42542-2a.c: Likewise.
-+      * gcc.target/i386/pr42542-2b.c: Likewise.
-+      * gcc.target/i386/pr42542-3.c: Likewise.
-+      * gcc.target/i386/pr42542-3a.c: Likewise.
-+
-+2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      * gcc.dg/tls/opt-15.c: New test.
-+
-+2010-01-05  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/42614
-+      * gcc.c-torture/execute/pr42614.c: New testcase.
-+
-+2010-01-05  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR other/42611
-+      * gcc.dg/pr42611.c: New test.
-+
-+2010-01-04  Ira Rosen  <irar@il.ibm.com>
-+
-+      PR tree-optimization/41956
-+      * gcc.dg/vect/pr41956.c: New test.
-+
-+2010-01-02  Richard Guenther  <rguenther@suse.de>
-+
-+      Backport from mainline
-+      2009-12-09  Xinliang David Li  <davidxl@google.com>
-+
-+      PR tree-optimization/42337
-+      * g++.dg/tree-ssa/pr42337.C: New test.
-+
-+2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/42448
-+      * gcc.target/alpha/pr42448-1.c: New test.
-+      * gcc.target/alpha/pr42448-2.c: Ditto.
-+
-+2009-12-30  Ian Lance Taylor  <iant@google.com>
-+
-+      PR middle-end/42099
-+      * gcc.c-torture/execute/20091229-1.c: New test.
-+
-+2009-12-30  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/42549
-+      * gcc.target/i386/mmx-3dnow-check.h: New file.
-+      * gcc.target/i386/pr42549.c: New test.
-+
-+2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-12-24  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41305
-+      * g++.dg/lookup/koenig10.C: New test.
-+      * g++.dg/lookup/koenig11.C: New test.
-+      * g++.dg/lookup/koenig12.C: New test.
-+
-+2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR middle-end/41344
-+      * gfortran.dg/gomp/pr41344.f: New.
-+
-+2009-12-27  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42231
-+      * gcc.c-torture/execute/pr42231.c: New test.
-+
-+2009-12-22  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42331
-+      * g++.dg/cpp0x/initlist29.C: New.
-+
-+2009-12-23  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR rtl-optimization/42475
-+      * gcc.dg/pr42475.c: New test.
-+
-+2009-12-22  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-12-19  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/42225
-+      * g++.dg/template/typedef26.C: New test.
-+
-+      2009-12-17  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42386
-+      * g++.dg/opt/dtor3.C: New test.
-+
-+      2009-12-15  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42358
-+      * g++.dg/cpp0x/variadic98.C: New.
-+
-+      2009-12-13  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/42357
-+      * g++.dg/torture/pr42357.C: New testcase.
-+
-+2009-12-21  Jason Merrill  <jason@redhat.com>
-+
-+      * g++.dg/abi/mangle14.C: Add expected mangling.
-+
-+2009-12-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
-+
-+      PR libfortran/PR42422
-+      * gfortran.dg/list_read_10.f90:  New test.
-+
-+2009-12-15  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42387
-+      * g++.dg/ext/vla8.C: New.
-+
-+2009-12-15  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/41183
-+      * g++.dg/torture/pr41183.C: New test.
-+
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-+
-+      Backport from mainline:
-+      2009-08-11  Andrew Haley  <aph@redhat.com>
-+      * gcc.target/arm/synchronize.c: New file.
-+
-+2009-12-11  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-12-07  Richard Henderson  <rth@redhat.com>
-+
-+      PR rtl-opt/42269
-+      * gcc.c-torture/execute/pr42269-2.c: New.
-+
-+      2009-12-07  Richard Henderson  <rth@redhat.com>
-+
-+      PR debug/42299
-+      PR debug/42166
-+      * gcc.c-torture/compile/pr42299.c: New.
-+      * gfortran.dg/pr42166.f90: Likewise.
-+
-+      2009-12-06  Richard Henderson  <rth@redhat.com>
-+
-+      PR debug/42234
-+      * gcc.c-torture/compile/pr42234.c: New.
-+
-+      2009-12-02  Richard Henderson  <rth@redhat.com>
-+
-+      PR tree-opt/42215
-+      * gcc.dg/pr42215.c: New.
-+
-+2009-12-11  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-12-11  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/42225
-+      * g++.dg/template/typedef24.C: New test.
-+      * g++.dg/template/typedef25.C: New test.
-+
-+      2009-12-11  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/42251
-+      * g++.dg/template/const3.C: New test.
-+
-+      2009-12-10  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42317
-+      * g++.dg/opt/dtor2.C: New test.
-+      * g++.dg/opt/dtor2.h: New file.
-+      * g++.dg/opt/dtor2-aux.cc: New file.
-+
-+      2009-12-10  Jan Hubicka  <jh@suse.cz>
-+
-+      PR middle-end/42110
-+      * g++.dg/torture/pr42110.C: new file.
-+
-+      2009-12-07  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/42244
-+      * gcc.dg/debug/pr42244.c: New test.
-+
-+      2009-12-04  David Daney  <ddaney@caviumnetworks.com>
-+
-+      PR rtl-optimization/42164
-+      * gcc.c-torture/compile/pr42164.c: New test.
-+
-+      2009-12-03  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41611
-+      * g++.dg/abi/guard2.C: New.
-+
-+      2009-12-03  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/42217
-+      * g++.dg/other/bitfield4.C: New test.
-+
-+      2009-12-03  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42256
-+      * g++.dg/inherit/thunk11.C: New test.
-+      * g++.dg/inherit/thunk11.h: New file.
-+      * g++.dg/inherit/thunk11-aux.cc: New file.
-+
-+      2009-12-01  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/42237
-+      * gcc.c-torture/compile/pr42237.c: New test.
-+
-+      2009-12-01  Paolo Carlini  <paolo.carlini@oracle.com>
-+
-+      PR c++/42057
-+      * g++.dg/parse/crash54.C: New.
-+
-+      2009-11-30  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR middle-end/42196
-+      * gcc.c-torture/compile/pr42196-1.c: New test.
-+      * gcc.c-torture/compile/pr42196-2.c: New test.
-+      * gcc.c-torture/compile/pr42196-3.c: New test.
-+
-+      2009-11-30  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/42069
-+      * g++.dg/template/typedef23.C: New test.
-+
-+      2009-11-29  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR tree-optimization/41961
-+      * g++.dg/tree-ssa/pr41961.C: New.
-+
-+      2009-11-29  Ira Rosen  <irar@il.ibm.com>
++  public :: &
++    operator(*), &
++    assignment(=)
 +
-+      PR tree-optimization/42193
-+      * gcc.dg/vect/pr42193.c: New test.
++  type, public :: UnitValue
++    real :: &
++      Value = 1.0
++    character(31) :: &
++      Label
++  end type UnitValue
 +
-+      2009-11-28  Richard Guenther  <rguenther@suse.de>
++  interface operator(*)
++    module procedure ProductReal_LV
++  end interface operator(*)
 +
-+      PR tree-optimization/42183
-+      * g++.dg/torture/pr42183.C: New testcase.
++  interface assignment(=)
++    module procedure Assign_LV_Real
++  end interface assignment(=)
 +
-+      2009-11-27  Martin Jambor  <mjambor@suse.cz>
++contains
 +
-+      PR middle-end/42006
-+      * gcc.c-torture/execute/pr42006.c: New test.
++  elemental function ProductReal_LV(Multiplier, Multiplicand) result(P_R_LV)
 +
-+      2009-11-27  Michael Matz  <matz@suse.de>
++    real, intent(in) :: &
++      Multiplier
++    type(UnitValue), intent(in) :: &
++      Multiplicand
++    type(UnitValue) :: &
++      P_R_LV
 +
-+      PR rtl-optimization/42084
-+      * gcc.dg/pr42084.c: New test.
++    P_R_LV%Value = Multiplier * Multiplicand%Value
++    P_R_LV%Label = Multiplicand%Label
 +
-+      2009-11-27  Michael Matz  <matz@suse.de>
++  end function ProductReal_LV
 +
-+      PR c++/41906
-+      * g++.dg/tree-ssa/pr41906.C: New testcase.
 +
-+      2009-11-26  Michael Matz  <matz@suse.de>
++  elemental subroutine Assign_LV_Real(LeftHandSide, RightHandSide)
 +
-+      PR tree-optimization/41905
-+      * g++.dg/tree-ssa/pr41905.C: New testcase.
++    real, intent(inout) :: &
++      LeftHandSide
++    type(UnitValue), intent(in) :: &
++      RightHandSide
 +
-+      2009-11-24  Richard Guenther  <rguenther@suse.de>
++    LeftHandSide = RightHandSide%Value
 +
-+      PR tree-optimization/42142
-+      * gcc.c-torture/execute/pr42142.c: New testcase.
++  end subroutine Assign_LV_Real
 +
-+      2009-11-24  Martin Jambor  <mjambor@suse.cz>
++end module UnitValue_Module
 +
-+      PR tree-optimization/42154
-+      * gcc.c-torture/execute/pr42154.c: New test.
++program TestProgram
 +
-+      2009-11-21  Martin Jambor  <mjambor@suse.cz>
++  use UnitValue_Module
 +
-+      PR middle-end/42025
-+      * gcc.c-torture/compile/pr42025-1.c: New test.
-+      * gcc.c-torture/compile/pr42025-2.c: New test.
++  implicit none
 +
-+      2009-11-21  Jakub Jelinek  <jakub@redhat.com>
++  type :: TableForm
++    real, dimension(:,:), allocatable :: &
++      RealData
++  end type TableForm
 +
-+      PR tree-optimization/42078
-+      * gcc.dg/pr42078.c: New test.
++  type(UnitValue) :: &
++    CENTIMETER
 +
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++  type(TableForm), pointer :: &
++    Table
 +
-+      PR target/41196
-+      2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
-+      * testsuite/gcc.target/arm/neon/vfp-shift-a2t2.c: New test case.
++  allocate(Table)
++  allocate(Table%RealData(10,5))
 +
-+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
++  CENTIMETER%value = 42
++  Table%RealData = 1
++  Table%RealData(:,1) = Table%RealData(:,1) * CENTIMETER
++  Table%RealData(:,2) = Table%RealData(:,2) * CENTIMETER
++  Table%RealData(:,3) = Table%RealData(:,3) * CENTIMETER
++  Table%RealData(:,5) = Table%RealData(:,5) * CENTIMETER
 +
-+      2009-10-08  Doug Kwan  <dougkwan@google.com>
++!  print *, Table%RealData
++  if (any (abs(Table%RealData(:,4) - 1) > epsilon(1.0))) call abort ()
++  if (any (abs(Table%RealData(:,[1,2,3,5]) - 42) > epsilon(1.0))) call abort ()
++end program TestProgram
 +
-+      PR rtl-optimization/41574
-+      * gcc.dg/pr41574.c: New test.
++! { dg-final { cleanup-modules "UnitValue_Module" } }
+Index: gcc/testsuite/gfortran.dg/array_constructor_35.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/array_constructor_35.f90 (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/array_constructor_35.f90 (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,9 @@
++! { dg-do compile }
++! PR42999  bogus error: Parameter 'i' at (1) has not been declared
++! or is a variable, which does not reduce to a constant expression
++ TYPE DD
++  INTEGER :: I
++ END TYPE DD
++ TYPE(DD) :: X(2)=(/(DD(I),I=1,2)/)
++ END
 +
-+2009-11-13  Jason Merrill  <jason@redhat.com>
+Index: gcc/testsuite/gfortran.dg/generic_21.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/generic_21.f90   (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/generic_21.f90   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,33 @@
++! { dg-do compile }
++!
++! PR fortran/42858
++!
++! Contributed by Harald Anlauf
++!
++module gfcbug102
++  implicit none
++  type t_vector_segm
++     real ,pointer :: x(:) => NULL()
++  end type t_vector_segm
 +
-+      PR c++/27425
-+      PR c++/34274
-+      * g++.dg/template/arg7.C: New.
++  type t_vector
++     integer                       :: n_s     =  0
++     type (t_vector_segm) ,pointer :: s (:)   => NULL()
++  end type t_vector
 +
-+2009-12-10  Janus Weil  <janus@gcc.gnu.org>
++  interface sqrt
++     module procedure sqrt_vector
++  end interface sqrt
 +
-+      PR fortran/42268
-+      * gfortran.dg/intrinsic_pack_5.f90: New test.
++contains
++  function sqrt_vector (x) result (y)
++    type (t_vector)             :: y
++    type (t_vector) ,intent(in) :: x
++    integer :: i
++    do i = 1, y% n_s
++       y% s(i)% x = sqrt (x% s(i)% x)
++    end do
++  end function sqrt_vector
++end module gfcbug102
 +
-+2009-12-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
++! { dg-final { cleanup-modules "gfcbug102" } }
+Index: gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90       (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,27 @@
++! { dg-do run }
++! Tests the fix for PR42309, in which the indexing of 'Q'
++! was off by one.
++!
++! Contributed by Gilbert Scott <gilbert.scott@easynet.co.uk>
++!
++PROGRAM X
++  TYPE T
++    INTEGER :: I
++    REAL :: X
++  END TYPE T
++  TYPE(T), TARGET :: T1(0:3)
++  INTEGER, POINTER :: P(:)
++  REAL :: SOURCE(4) = [10., 20., 30., 40.]
 +
-+      Backport from mainline:
-+
-+      2009-04-27  Trevor Smigiel <trevor_smigiel@playstation.sony.com>
-+
-+      Allow non-constant arguments to conversion intrinsics.
-+      * gcc.target/spu/intrinsics-3.c: Update tests.
-+
-+2009-12-03  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/42049
-+      * gcc.c-torture/compile/pr42049.c: New test.
-+
-+2009-12-02  Chao-ying Fu  <fu@mips.com>
-+
-+      Backport from mainline
-+      2009-11-30  Chao-ying Fu  <fu@mips.com>
-+
-+      * gcc.target/mips/dsp-lhx.c: New test.
-+      * gcc.target/mips/dsp-no-lhx.c: New test.
-+
-+2009-12-01  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42234
-+      * g++.dg/gomp/pr42234.C: New test.
-+
-+2009-11-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/41278
-+      * gfortran.dg/array_function_5.f90: New test.
-+
-+2009-11-27  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * gcc.dg/O16384.c: New test.
-+
-+2009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/41807
-+      * gfortran.dg/data_value_1.f90: Update test.
-+      * gfortran.dg/array_constructor_32.f90: New test.
-+
-+2009-11-23  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      PR target/42113
-+      * gcc.target/alpha/pr42113.c: New test.
-+
-+2009-11-20  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * c-c++-common/pr41935.c: Removed.
-+      * g++.dg/template/crash92.C: Likewise.
-+      * gfortran.dg/missing_optional_dummy_6.f90: Likewise.
-+
-+2009-11-20  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
-+
-+      PR debug/41926
-+      * gcc.dg/vect/vect-debug-pr41926.c: New.
-+
-+      2009-11-16  Paolo Carlini  <paolo.carlini@oracle.com>
-+
-+      PR c++/42055
-+      * g++.dg/template/crash92.C: New.
-+
-+      2009-11-08  Richard Guenther  <rguenther@suse.de>
-+
-+      PR rtl-optimization/41928
-+      * gfortran.dg/pr41928.f90: New testcase.
-+
-+      2009-11-06  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/41935
-+      * gcc.dg/pr41935.c: New test.
-+      * c-c++-common/pr41935.c: New test.
-+      * gcc.c-torture/execute/pr41935.c: New test.
-+
-+      2009-11-04  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/41919
-+      * gcc.c-torture/execute/pr41919.c: New testcase.
-+
-+      2009-11-03  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/41907
-+      * gfortran.dg/missing_optional_dummy_6.f90: New test.
-+
-+      2009-11-02  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/41750
-+      * gcc.c-torture/execute/pr41750.c: New test.
-+
-+      2009-11-02  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR tree-optimization/41841
-+      * gcc.dg/pr41841.c: New test.
-+
-+2009-11-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libgfortran/42090
-+      * gfortran.dg/direct_io_11.f90: New test.
-+
-+2009-11-17  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42061
-+      * g++.dg/cpp0x/initlist27.C: New test.
-+
-+      PR c++/42059
-+      * g++.dg/cpp0x/initlist26.C: New test.
-+
-+2009-11-13  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/21008, DR 515
-+      * g++.dg/template/inherit4.C: New.
-+      * g++.dg/lookup/scoped8.C: Adjust.
-+
-+2009-11-12  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/37037
-+      * g++.dg/template/typedef21.C: New.
-+
-+2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
-+
-+      Backported from trunk
-+      * g++.dg/torture/pushpop_macro.C: New testcase.
-+      * gcc.c-torture/execute/pushpop_macro.c: New testcase.
-+      * gcc.dg/cpp/pragma-pop_macro-1.c: Allow test for all
-+      targets.
-+
-+2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      * gcc.dg/vect/vect-multitypes-5.c: XFAIL on SPARC 32-bit.
-+      * gcc.dg/vect/vect-multitypes-6.c: Likewise.
-+      * gcc.dg/vect/vect-multitypes-12.c: Likewise.
-+      * gcc.dg/vect/slp-multitypes-3.c: Likewise.
-+
-+2009-11-09  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41972
-+      * g++.dg/template/ref4.C: New.
-+
-+2009-11-09  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41994
-+      * g++.dg/template/conv10.C: New.
-+
-+2009-11-07  Jason Merrill  <jason@redhat.com>
-+
-+      * g++.dg/abi/regparm1.C: Fix execute test.
-+
-+2009-11-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/40946
-+      * gcc.dg/pr40946.c: New test.
-+
-+      Backport from mainline
-+      2009-09-09  Richard Guenther  <rguenther@suse.de>
-+
-+      PR middle-end/41317
-+      * gcc.c-torture/execute/pr41317.c: New testcase.
-+
-+2009-11-08  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      Backport from mainline:
-+      2009-11-06  Michael Matz  <matz@suse.de>
-+
-+      PR middle-end/41963
-+      * gcc.target/i386/pr41963.c: New test.
-+
-+2009-11-06  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/9381
-+      * g++.dg/abi/regparm1.C: New.
-+
-+2009-11-07  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR tree-optimization/41643
-+      * gcc.dg/pr41643.c: New test.
-+
-+2009-11-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/41909
-+      * gfortran.dg/recursive_check_15.f90: New test.
-+
-+2009-11-06  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/41967
-+      * g++.dg/gomp/pr41967.C: New test.
-+
-+2009-11-05  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * c-c++-common/builtin-offset.c: Renamed to ...
-+      * c-c++-common/builtin-offsetof.c: ... this.  Don't expect a warning
-+      on offsetof (struct B, p[10]).
-+
-+2009-11-04  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/36912
-+      * g++.dg/init/static-init2.C: New.
-+
-+2009-11-04  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/35067
-+      * g++.dg/abi/thunk5.C: New.
-+
-+2009-11-04  Uros Bizjak  <ubizjak@gmail.com>
-+
-+      * gcc.target/i386/pr41900.c: New test.
-+
-+2009-11-03  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/36959
-+      * g++.dg/opt/inline16.C: New.
-+
-+2009-11-03  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR rtl-optimization/41917
-+      * gcc.c-torture/execute/pr41917.c: New test.
-+
-+2009-10-28  Jason Merrill  <jason@redhat.com>
-+
-+      * g++.dg/cpp0x/inline-ns3.C: New.
-+
-+      PR c++/39786
-+      * g++.dg/lookup/using22.C: New.
-+
-+      PR c++/41876
-+      * g++.dg/parse/eh-decl.C: New.
-+
-+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
-+
-+      * g++.dg/dg.exp: Port c-c++-common support from 4.5.
-+      * gcc.dg/dfp/dfp.exp: Likewise.
-+      * gcc.dg/dg.exp: Likewise.
-+      * lib/target-supports.exp: Likewise.
-+
-+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/41856
-+      * g++.dg/lookup/extern-c-redecl3.C: Make the test x86 only.
-+      * g++.dg/lookup/extern-c-redecl4.C: Likewise.
-+
-+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
-+
-+      * c-c++-common/dfp/builtin-offsetof.c: Moved this ...
-+      * c-c++-common/builtin-offsetof.c: ... here.
-+
-+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/38699
-+      * c-c++-common/dfp/builtin-offsetof.c: New test.
-+      * g++.dg/other/offsetof6.C: Likewise.
-+
-+2009-11-02  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/37093
-+      * g++.dg/other/ptrmem10.C: New test.
-+      * g++.dg/other/ptrmem11.C: Likewise.
-+
-+2009-11-02  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/41772
-+      * gfortran.dg/transfer_intrinsic_3.f90.
-+
-+2009-11-01  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/41850
-+      * gfortran.dg/intent_out_6.f90: New testcase.
-+
-+2009-10-31  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41754
-+      * g++.dg/cpp0x/initlist25.C: New.
-+
-+2009-10-31  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * gcc.dg/pr41345.c: Removed.
-+
-+2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-10-30  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/41863
-+      * g++.dg/template/sizeof12.C: New test.
-+
-+      2009-10-29  Martin Jambor  <mjambor@suse.cz>
-+
-+      PR tree-optimization/41775
-+      * g++.dg/torture/pr41775.C: New testcase.
-+
-+      2009-10-28  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/41801
-+      * g++.dg/ext/sync-3.C: New test.
-+
-+      2009-10-27  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/41020
-+      * g++.dg/lookup/extern-c-redecl5.C: Fix up regexp.
-+
-+      2009-10-26  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR bootstrap/41345
-+      * gcc.dg/pr41345.c: New test.
-+
-+      2009-10-26  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/41785
-+      * g++.dg/cpp0x/variadic96.C: New test.
-+
-+      2009-10-26  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/41020
-+      * g++.dg/lookup/extern-c-redecl2.C: New test.
-+      * g++.dg/lookup/extern-c-redecl3.C: Likewise.
-+      * g++.dg/lookup/extern-c-redecl4.C: Likewise.
-+      * g++.dg/lookup/extern-c-redecl5.C: Likewise.
-+
-+      2009-10-23  Joseph Myers  <joseph@codesourcery.com>
-+
-+      PR c/40033
-+      * gcc.dg/noncompile/pr40033-1.c: New test.
-+
-+      2009-10-23  Joseph Myers  <joseph@codesourcery.com>
-+
-+      PR c/41673
-+      * gcc.dg/Wstrict-aliasing-bogus-vla-1.c: New test.
-+
-+      2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>
-+
-+      PR tree-optimization/41497
-+      * gcc.dg/tree-ssa/pr41497.c: New.
-+
-+2009-10-30  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/41777
-+      gfortran.dg/associated_target_3.f90: New testcase.
-+
-+2009-10-28  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR target/41762
-+      * gcc.dg/pr41762.c: New test.
-+
-+2009-10-27  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c/41842
-+      * gcc.dg/pr41842.c: New test.
-+
-+2009-10-23  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/40808
-+      * g++.dg/abi/mangle33.C: New test
-+
-+2009-10-23  Mikael Pettersson  <mikpe@it.uu.se>
-+
-+      * gcc.c-torture/compile/pr11832.c: Delete.
-+      * gcc.c-torture/compile/pr33009.c: Likewise.
-+
-+2009-10-21  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-10-16  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/41728
-+      * gcc.c-torture/compile/pr41728.c: New testcase.
-+
-+      2009-10-15  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR debug/41717
-+      * gcc.dg/debug/pr41717.c: New test.
-+
-+2009-10-21  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * g++.dg/abi/mangle33.C: New test.
-+
-+2009-10-20  Joseph Myers  <joseph@codesourcery.com>
-+
-+      * gcc.target/arm/neon-thumb2-move.c: New test.
-+
-+2009-10-19  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * gcc.dg/cleanup-13.c: New test.
-+
-+2009-10-19  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/41755
-+      * gfortran.dg/equiv_8.f90: New test.
-+
-+2009-10-15  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/38798
-+      * g++.dg/cpp0x/trailing5.C: New.
-+
-+2009-10-14  Larry Evans  <cppljevans@suddenlink.net>
-+
-+      * g++.dg/cpp0x/vt-40092.C: New.
-+
-+2009-10-12  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/37875
-+      * g++.dg/cpp0x/decltype18.C: New.
-+
-+      PR c++/37766
-+      * g++.dg/cpp0x/fntmpdefarg1.C: New.
-+
-+2009-10-11  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/37204
-+      * g++.dg/cpp0x/rv-reinterpret.C: New.
-+
-+2009-10-16  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * g++.dg/debug/dwarf2/template-params-7.C: Removed.
-+      * gfortran.dg/fmt_error_9.f: Likewise.
-+
-+2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-10-13  Martin Jambor  <mjambor@suse.cz>
-+
-+      * gcc.c-torture/compile/pr41661.c: New test.
-+
-+      2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libgfortran/41683
-+      * gfortran.dg/fmt_error_9.f: Add check for repeat count after P.
-+
-+      2009-10-12  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/41570
-+      * g++.dg/debug/dwarf2/template-params-7.C: New test.
-+
-+      2009-10-11  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/41555
-+      * gcc.dg/torture/pr41555.c: New testcase.
-+
-+      2009-10-09  Richard Guenther  <rguenther@suse.de>
-+
-+      PR tree-optimization/41634
-+      * gcc.c-torture/compile/pr41634.c: New testcase.
-+
-+      2009-10-08  Michael Matz  <matz@suse.de>
-+
-+      PR middle-end/41573
-+      * gcc.dg/pr41573.c: New test.
-+
-+      2009-10-07  Joseph Myers  <joseph@codesourcery.com>
-+
-+      PR c/41182
-+      * gcc.c-torture/compile/pr41182-1.c: New.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-@@ -449,9 +1863,9 @@
- 2009-08-16  Dodji Seketeli  <dodji@redhat.com>
-       PR debug/37801
--      * gcc/testsuite/gcc.dg/debug/20020224-1.c: Adjust the comment.
-+      * gcc.dg/debug/20020224-1.c: Adjust the comment.
-       Make sure to trigger inlining optimizations.
--      * gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c: New test.
-+      * gcc.dg/debug/dwarf2/inline2.c: New test.
- 2009-08-12  Richard Guenther  <rguenther@suse.de>
-@@ -769,7 +2183,7 @@
- 2009-07-14  Jack Howarth  <howarth@bromo.med.uc.edu>
--      * testsuite/gcc.c-torture/compile/20000804-1.c: skip for ilp32 on
-+      * gcc.c-torture/compile/20000804-1.c: skip for ilp32 on
-       both i?86-*-darwin* and x86_64-*-darwin*.
- 2009-07-12  Jason Merrill  <jason@redhat.com>
-@@ -2151,7 +3565,7 @@
- 2009-03-13  Jack Howarth  <howarth@bromo.med.uc.edu>
-       PR target/39137
--      * testsuite/gcc.target/i386/stackalign/longlong-2.c: Skip on darwin.
-+      * gcc.target/i386/stackalign/longlong-2.c: Skip on darwin.
- 2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>
-@@ -2346,8 +3760,8 @@
- 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
-       PR middle-end/39335
--      * testsuite/gcc.dg/graphite/pr39335_1.c: New.
--      * testsuite/gcc.dg/graphite/pr39335.c: New.
-+      * gcc.dg/graphite/pr39335_1.c: New.
-+      * gcc.dg/graphite/pr39335.c: New.
- 2009-03-02  H.J. Lu  <hongjiu.lu@intel.com>
-@@ -3727,7 +5141,7 @@
-           Jan Sjodin  <jan.sjodin@amd.com>
-       PR tree-optimization/38559
--      * testsuite/gcc.dg/graphite/pr38559.c: New.
-+      * gcc.dg/graphite/pr38559.c: New.
- 2009-01-08  Ira Rosen  <irar@il.ibm.com>
-@@ -3789,15 +5203,15 @@
-       PR tree-optimization/38492
-       PR tree-optimization/38498
--      * testsuite/gcc.dg/graphite/pr38500.c: Fixed warning as committed
-+      * gcc.dg/graphite/pr38500.c: Fixed warning as committed
-       in trunk.
--      * testsuite/gcc.dg/graphite/block-0.c: Update test.
--      * testsuite/gcc.dg/graphite/block-1.c: Same.
--      * testsuite/gcc.dg/graphite/block-2.c: Remove xfail and test
-+      * gcc.dg/graphite/block-0.c: Update test.
-+      * gcc.dg/graphite/block-1.c: Same.
-+      * gcc.dg/graphite/block-2.c: Remove xfail and test
-       for blocking.
--      * testsuite/gcc.dg/graphite/block-4.c: Remove test for strip mine.
--      * testsuite/gcc.dg/graphite/block-3.c: New.
--      * testsuite/gcc.dg/graphite/pr38498.c: New.
-+      * gcc.dg/graphite/block-4.c: Remove test for strip mine.
-+      * gcc.dg/graphite/block-3.c: New.
-+      * gcc.dg/graphite/pr38498.c: New.
- 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
-Index: gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
-===================================================================
---- gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: gcc/testsuite/g++.old-deja/g++.pt/asm1.C
-===================================================================
---- gcc/testsuite/g++.old-deja/g++.pt/asm1.C   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.old-deja/g++.pt/asm1.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
--// We'd use ebx with -fpic/-fPIC, so skip.
--// { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } }
-+// We'd use ebx with 32-bit pic code, so skip.
-+// { dg-skip-if "" { ilp32 && { ! nonpic } } { "*" } { "" } }
- // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
- template<int i> int foo(int v)
-Index: gcc/testsuite/g++.old-deja/g++.pt/asm2.C
-===================================================================
---- gcc/testsuite/g++.old-deja/g++.pt/asm2.C   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.old-deja/g++.pt/asm2.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,7 @@
- // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
- // { dg-require-effective-target ilp32 }
--// We'd use ebx with -fpic/-fPIC, so skip.
--// { dg-skip-if "" { *-*-* } { "-fpic" "-fPIC" } { "" } }
-+// We'd use ebx with 32-bit pic code, so require nonpic.
-+// { dg-require-effective-target nonpic }
- // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
- typedef void (function_ptr)(int);
-Index: gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90
-===================================================================
---- gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,59 @@
-+! ICE with gfortran 4.5 at -O1:
-+!gfcbug98.f90: In function ‘convert_cof’:
-+!gfcbug98.f90:36:0: internal compiler error: in pt_solutions_same_restrict_base,
-+!at tree-ssa-structalias.c:5072
-+module foo
-+  implicit none
-+  type t_time
-+     integer :: secs = 0
-+  end type t_time
-+contains
-+  elemental function time_cyyyymmddhh (cyyyymmddhh) result (time)
-+    type (t_time)                :: time
-+    character(len=10),intent(in) :: cyyyymmddhh
-+  end function time_cyyyymmddhh
-+
-+  function nf90_open(path, mode, ncid)
-+    character(len = *), intent(in) :: path
-+    integer, intent(in)  :: mode
-+    integer, intent(out) :: ncid
-+    integer              :: nf90_open
-+  end function nf90_open
-+end module foo
-+!==============================================================================
-+module gfcbug98
-+  use foo
-+  implicit none
-+
-+  type t_fileinfo
-+     character(len=10) :: atime = ' '
-+  end type t_fileinfo
-+
-+  type t_body
-+     real         :: bg(10)
-+  end type t_body
-+contains
-+  subroutine convert_cof (ifile)
-+    character(len=*) ,intent(in) :: ifile
-+
-+    character(len=5)         :: version
-+    type(t_fileinfo)         :: gattr
-+    type(t_time)             :: atime
-+    type(t_body),allocatable :: tmp_dat(:)
-+    real        ,allocatable :: BDA(:, :, :)
-+
-+    call open_input
-+    call convert_data
-+  contains
-+    subroutine open_input
-+      integer             :: i,j
-+      version = ''
-+      j = nf90_open(ifile, 1, i)
-+    end subroutine open_input
-+    !--------------------------------------------------------------------------
-+    subroutine convert_data
-+      BDA(1,:,1) = tmp_dat(1)% bg(:)
-+      atime = time_cyyyymmddhh (gattr% atime)
-+    end subroutine convert_data
-+  end subroutine convert_cof
-+end module gfcbug98
-Index: gcc/testsuite/g++.dg/other/first-global.C
-===================================================================
---- gcc/testsuite/g++.dg/other/first-global.C  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/other/first-global.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* { dg-do compile } */
--/* { dg-options "-fpie" { target { ! nonpic } } } */
-+/* { dg-add-options bind_pic_locally } */
- /* { dg-final { scan-assembler "_GLOBAL__I(_|_65535_0_)foobar" } } */
- struct foo { foo (); };
-Index: gcc/testsuite/g++.dg/other/crash-5.C
-===================================================================
---- gcc/testsuite/g++.dg/other/crash-5.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/crash-5.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+// Origin: PR c++/42758
-+// { dg-do compile }
-+
-+template<class T> struct less {};
-+
-+template<class T, typename U = less<T> > struct set {};
-+
-+struct int_less_than {};
-+
-+void assert_fail (const char*);
-+
-+int f(const set<int, int_less_than>&)
-+{
-+    assert_fail (__PRETTY_FUNCTION__);
-+
-+}
-Index: gcc/testsuite/g++.dg/other/crash-9.C
-===================================================================
---- gcc/testsuite/g++.dg/other/crash-9.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/crash-9.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+// Origin: PR c++/42915
-+// { dg-do compile }
-+
-+template <typename T>
-+class A
-+{
-+  template <typename U>
-+  class B
-+  {
-+    B foo();
-+  };
-+};
-+template <typename T> template <typename U>
-+A<T>::B<U> A<T>::B<U>::foo() {}
-+
-Index: gcc/testsuite/g++.dg/other/default3.C
-===================================================================
---- gcc/testsuite/g++.dg/other/default3.C      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/other/default3.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -25,7 +25,7 @@
- template<typename> void g3(int = 0, int);    // { dg-error "default" }
- template<typename> void g4(int, int);
--template<typename> void g4(int = 0, int) {}  // { dg-error "default" }
-+template<typename> void g4(int = 0, int) {}  // { dg-error "default" "" { xfail *-*-* } }
- template<typename> void g5();
- template<typename> void g5(int = 0, int);    // { dg-error "default" }
-Index: gcc/testsuite/g++.dg/other/offsetof6.C
-===================================================================
---- gcc/testsuite/g++.dg/other/offsetof6.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/offsetof6.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,26 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/38699
-+// { dg-do compile }
-+
-+template<class T>
-+struct A
-+{
-+  const T *p;
-+};
-+
-+struct B
-+{
-+  A<int> a;
-+};
-+
-+template class A<char>;
-+
-+void
-+f0 ()
-+{
-+  __builtin_offsetof(A<char>, p); // OK
-+  __builtin_offsetof(A<char>, p[1]); // { dg-error "non constant address" }
-+  __builtin_offsetof(B, a.p); // OK
-+  __builtin_offsetof(B, a.p[1]); // { dg-error "non constant address" }
-+}
-+
-Index: gcc/testsuite/g++.dg/other/crash-7.C
-===================================================================
---- gcc/testsuite/g++.dg/other/crash-7.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/crash-7.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// Origin: PR c++/42336
-+// { dg-options "-std=c++0x -O2 -g" }
-+// { dg-do compile }
-+
-+struct X {
-+      void func() {}
-+};
-+
-+template<typename T, void (X::*P)() = &T::func>
-+void b(T) {}
-+
-+int main() {
-+      b(X()); /* line 9 */
-+        X().func();
-+
-+          return 0;
-+}
-+
-+
-Index: gcc/testsuite/g++.dg/other/ptrmem10.C
-===================================================================
---- gcc/testsuite/g++.dg/other/ptrmem10.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/ptrmem10.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,29 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/37093
-+
-+template <class C, void (C::*M) ()>
-+static
-+void foo(void *obj)
-+{
-+  C *p = static_cast<C*>(obj);
-+  (p->*M)();
-+}
-+
-+template <class C>
-+static void
-+bar(C *c, void (C::*m) ())
-+{
-+  foo<C,m>((void *)c);// { dg-error "(not a valid template arg|pointer-to-member|no matching fun)" }
-+}
-+
-+struct S
-+{
-+  void baz () {}
-+};
-+
-+int
-+main ()
-+{
-+  S a;
-+  bar(&a, &S::baz);
-+}
-Index: gcc/testsuite/g++.dg/other/crash-8.C
-===================================================================
---- gcc/testsuite/g++.dg/other/crash-8.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/crash-8.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,109 @@
-+// Origin: PR c++/42797
-+// { dg-options "-g -O2 -std=c++0x" }
-+
-+template<typename _Tp, _Tp __v>     struct integral_constant     {
-+    static const _Tp value = __v;
-+};
-+
-+template<typename _Tp>     _Tp declval();
-+
-+template<typename _Tp, typename... _Args>
-+class __is_constructible_helper  {
-+};
-+
-+template<typename _Tp, typename _Arg>
-+class __is_constructible_helper<_Tp, _Arg>  {
-+
-+    template<typename _Tp1, typename _Arg1>
-+    static decltype(static_cast<_Tp1>(declval<_Arg1>()), char())  __test(int);
-+public:
-+    static const bool __value = sizeof(__test<_Tp, _Arg>(0)) == 1;
-+};
-+
-+template<typename _Tp, typename... _Args>
-+struct is_constructible     : public integral_constant<bool,__is_constructible_helper<_Tp, _Args...>::__value>     { };
-+
-+template<bool, typename _Tp = void>
-+struct enable_if  { };
-+
-+template<typename _Tp>
-+struct enable_if<true, _Tp>     {
-+    typedef _Tp type;
-+};
-+
-+template<class _T1, class _T2>     struct pair     {
-+    _T1 first;
-+    _T2 second;
-+
-+    template<class _U2, class = typename  enable_if<is_constructible<_T2, _U2&&>::value>::type>
-+    pair(const _T1& __x, _U2&& __y)  : first(__x),
-+                                       second(__y) { }
-+};
-+
-+namespace __gnu_cxx {
-+template<typename _Tp>
-+class new_allocator     {
-+public:
-+    new_allocator() throw() { }
-+    new_allocator(const new_allocator&) throw() { }
-+};
-+}
-+
-+template<typename _Tp>
-+class allocator: public __gnu_cxx::new_allocator<_Tp>     {
-+public:
-+
-+    template<typename _Tp1>
-+    struct rebind  {
-+        typedef allocator<_Tp1> other;
-+    };
-+};
-+
-+
-+template<typename _Tp, typename _Alloc>     struct _Vector_base     {
-+    typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
-+
-+    struct _Vector_impl       : public _Tp_alloc_type   {
-+        _Vector_impl()
-+        { }
-+    };
-+public:
-+
-+    _Vector_impl _M_impl;
-+};
-+
-+template<typename _Tp, typename _Alloc = allocator<_Tp> >
-+class vector : protected _Vector_base<_Tp, _Alloc> {
-+    typedef _Alloc allocator_type;
-+public:
-+    vector()       { }
-+    explicit       vector(int, const allocator_type& __a = allocator_type())
-+    {
-+    }
-+};
-+
-+
-+template <typename _Key, typename _Tp>
-+class map {
-+    typedef _Key key_type;
-+    typedef _Tp mapped_type;
-+    typedef pair<const _Key, _Tp> value_type;
-+public:
-+
-+    void insert(const value_type& __x)
-+    {
-+    }
-+
-+    mapped_type&       operator[](const key_type& __k)       {
-+        insert(value_type(__k, mapped_type()));
-+    }
-+
-+};
-+
-+struct Foo {
-+    Foo() {}      template<typename Tp>     Foo(Tp *p) {} };
-+void foo() {
-+    map <int, vector<Foo>> the_map;
-+    the_map[1] = vector<Foo>();
-+}
-+
-Index: gcc/testsuite/g++.dg/other/bitfield4.C
-===================================================================
---- gcc/testsuite/g++.dg/other/bitfield4.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/bitfield4.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/42217
-+// { dg-do compile }
-+
-+struct A
-+{
-+ int : 0;
-+};
-+A a = A();
-+
-Index: gcc/testsuite/g++.dg/other/ptrmem11.C
-===================================================================
---- gcc/testsuite/g++.dg/other/ptrmem11.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/ptrmem11.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/37093
-+
-+struct A {};
-+
-+template <int A::* p>
-+int
-+foo(A* q)
-+{
-+  return q->*p;
-+}
-+
-+template <typename T>
-+int
-+bar(int T::* p)
-+{
-+  return foo<p>(0);// { dg-error "(not a valid template arg|no matching func|pointer-to-member)" }
-+}
-+
-+int i = bar<A>(0);
-+
-Index: gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C
-===================================================================
---- gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,7 @@
- /* { dg-do compile } */
- /* { dg-options "-O1 -fdump-tree-cfg" } */
--/* { dg-skip-if "" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
-+/* { dg-add-options bind_pic_locally } */
-+
- double a;
- void t()
- {
-Index: gcc/testsuite/g++.dg/tree-ssa/pr41905.C
-===================================================================
---- gcc/testsuite/g++.dg/tree-ssa/pr41905.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/tree-ssa/pr41905.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,4 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+int foo() __attribute__((noreturn));
-+int bar() { return foo(); }
-Index: gcc/testsuite/g++.dg/tree-ssa/pr42337.C
-===================================================================
---- gcc/testsuite/g++.dg/tree-ssa/pr42337.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/tree-ssa/pr42337.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,173 @@
-+// PR tree-optimize/42337
-+// { dg-do compile }
-+// { dg-options "-O2" }
-+
-+template<class _T1, class _T2> struct pair {
-+  _T2 second;
-+};
-+template<typename _Tp>
-+inline const _Tp& max(const _Tp& __a, const _Tp& __b) { }
-+
-+template<typename _ForwardIterator, typename _Tp, typename _Compare> _ForwardIterator
-+lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { }
-+template<class _CharT> struct char_traits {};
-+
-+template<typename _Iterator, typename _Container> class __normal_iterator {
-+ public: typedef _Iterator iterator_type;
-+  __normal_iterator& operator++() {
-+  }
-+};
-+template<typename _IteratorL, typename _IteratorR, typename _Container>
-+inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { }
-+template<typename _Tp> class new_allocator {
-+ public:
-+  typedef _Tp* pointer;
-+  typedef const _Tp* const_pointer;
-+};
-+
-+template<typename _Tp>
-+class allocator: public new_allocator<_Tp> {
-+ public:
-+  template<typename _Tp1> struct rebind {
-+    typedef allocator<_Tp1> other;
-+  };
-+};
-+
-+template<typename _Arg, typename _Result> struct unary_function { };
-+template<typename _Arg1, typename _Arg2, typename _Result> struct binary_function { };
-+template<typename _Tp> struct less : public binary_function<_Tp, _Tp, bool> { };
-+template<typename _Pair> struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { };
-+template<typename _Tp> struct _Rb_tree_iterator {
-+  typedef _Tp* pointer;
-+  pointer operator->() const {
-+  }
-+};
-+template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc = allocator<_Val> >
-+class _Rb_tree {
-+  typedef _Val value_type;
-+ public: typedef _Rb_tree_iterator<value_type> iterator;
-+};
-+template <typename _Key, typename _Tp, typename _Compare = less<_Key>, typename _Alloc = allocator<pair<const _Key, _Tp> > >
-+class map {
-+ public: typedef _Key key_type;
-+  typedef pair<const _Key, _Tp> value_type;
-+  typedef _Compare key_compare;
-+ private: typedef typename _Alloc::template rebind<value_type>::other _Pair_alloc_type;
-+  typedef _Rb_tree<key_type, value_type, _Select1st<value_type>, key_compare, _Pair_alloc_type> _Rep_type;
-+ public: typedef typename _Pair_alloc_type::pointer pointer;
-+  typedef typename _Rep_type::iterator iterator;
-+  iterator find(const key_type& __x) { }
-+};
-+
-+template<typename _Tp, typename _Alloc> struct _Vector_base {
-+  typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
-+};
-+template<typename _Tp, typename _Alloc = allocator<_Tp> >
-+class vector : protected _Vector_base<_Tp, _Alloc> {
-+  typedef _Vector_base<_Tp, _Alloc> _Base;
-+  typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
-+ public:
-+  typedef typename _Tp_alloc_type::pointer pointer;
-+  typedef typename _Tp_alloc_type::const_pointer const_pointer;
-+  typedef __normal_iterator<pointer, vector> iterator;
-+  typedef __normal_iterator<const_pointer, vector> const_iterator;
-+  iterator begin() { }
-+  const_iterator begin() const { }
-+  const_iterator end() const { }
-+  unsigned long size() const { }
-+};
-+
-+class SSC {
-+ public:
-+  SSC () {}
-+  SSC (const int& cs);
-+};
-+extern int flag;
-+
-+struct TP {
-+   const int cl_;
-+   const vector<int> &its_;
-+   int max_s_;
-+ };
-+
-+double foo(TP *p);
-+map<int, int> cs_;
-+
-+template <typename T> class vector32 {
-+ public:
-+  typedef T& reference;
-+  typedef T* iterator;
-+  typedef const T* const_iterator;
-+  iterator begin() { return data_; }
-+  iterator end() { return data_ + size_; }
-+  long unsigned int size() const { return size_; }
-+  T* data_;
-+  unsigned size_;
-+};
-+
-+struct SF : public pair<unsigned long long, double> { };
-+
-+template<typename KEY, typename VALUE> class SFVT {
-+ private: typedef vector32<SF> Container;
-+  typedef typename Container::const_iterator CI;
-+  mutable Container v_;
-+  mutable bool sorted_;
-+  struct Cmp : public binary_function<SF, SF, bool> {
-+  };
-+  __attribute__((always_inline)) VALUE IS(const SFVT &sfv) const {
-+    if (sfv.v_.size() < v_.size()) {
-+      return sfv.IS(*this);
-+    }
-+    else {
-+      VALUE sum = 0.0;
-+      CI beg = sfv.v_.begin();
-+      CI end = sfv.v_.end();
-+      for (CI i = v_.begin();
-+           i != v_.end();
-+           ++i) { beg = lower_bound(beg, end, *i, Cmp()); if (beg == end) { return sum; } }
-+    }
-+  }
-+ public: explicit SFVT(const int capacity = 0) : sorted_(true) { }
-+  long unsigned int size() const { }
-+  __attribute__((always_inline)) VALUE DP(const SFVT &sfv) const {
-+    return IS(sfv);
-+  }
-+};
-+class SFV : public SFVT<unsigned long long, double> { };
-+
-+class Edge;
-+extern int flag2;
-+
-+double foo(TP *p) {
-+  int nbests_requested = max(p->max_s_, flag);
-+  map<int, int>::iterator it = cs_.find(p->cl_);
-+  int* c = &it->second;
-+  for (vector<int>::const_iterator iter = p->its_.begin();
-+       iter != p->its_.end();
-+       ++iter) {
-+  }
-+  vector<int*> fb;
-+  vector<double> w;
-+  int *hg = 0;
-+  if (flag2 == 10) {
-+    hg = &flag2;
-+  }
-+  int nr = 0;
-+  for (vector<int*>::iterator iter = fb.begin();
-+       (iter != fb.end() && nr < nbests_requested);
-+       ++iter) {
-+  }
-+  if (hg) {
-+    SFV s_weights;
-+    for (int i = 0;
-+         i < w.size();
-+         ++i) {
-+    }
-+    SFV uw;
-+    for (int i = 0, j = 0;
-+         i < uw.size() && j < s_weights.size();
-+         ) {
-+    }
-+    const double tc = uw.DP(s_weights);
-+  }
-+}
-Index: gcc/testsuite/g++.dg/tree-ssa/pr41906.C
-===================================================================
---- gcc/testsuite/g++.dg/tree-ssa/pr41906.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/tree-ssa/pr41906.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+/* { dg-do compile } */
-+/* { dg-options "-fpermissive -w" } */
-+/* We aren't interested in the warning, but in the ICE.  */
-+void foo();
-+extern void abort (void);
-+
-+void bar()
-+{
-+  try { foo(); }
-+  catch (...) {}
-+  catch (int) {abort ();}
-+}
-Index: gcc/testsuite/g++.dg/tree-ssa/pr41961.C
-===================================================================
---- gcc/testsuite/g++.dg/tree-ssa/pr41961.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/tree-ssa/pr41961.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+// { dg-do compile }
-+// { dg-require-effective-target pthread }
-+// { dg-options "-O3 -ftree-parallelize-loops=2" }
-+
-+struct A
-+{
-+    char c[17];
-+      void foo();
-+};
-+
-+void A::foo()
-+{
-+    for (int i = 0; i < 17; ++i)
-+          c[i] = 0;
-+}
-Index: gcc/testsuite/g++.dg/conversion/op6.C
-===================================================================
---- gcc/testsuite/g++.dg/conversion/op6.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/conversion/op6.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+// Origin: PR c++/42766
-+// { dg-do compile }
-+
-+template<class T> class smart_pointer {
-+public:
-+    operator T* () const { }
-+    operator bool () const { }
-+    operator bool () { }
-+};
-+class Context { };
-+typedef smart_pointer<Context> ContextP;
-+class SvnClient  {
-+    ~SvnClient();
-+    ContextP svnContext;
-+};
-+SvnClient::~SvnClient() {
-+    delete svnContext;
-+}
-Index: gcc/testsuite/g++.dg/dg.exp
-===================================================================
---- gcc/testsuite/g++.dg/dg.exp        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/dg.exp        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -48,5 +48,9 @@
- # Main loop.
- dg-runtest $tests "" $DEFAULT_CXXFLAGS
-+# C/C++ common tests.
-+dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/*.\[cSi\]]] \
-+       "" ""
-+
- # All done.
- dg-finish
-Index: gcc/testsuite/g++.dg/debug/pr43010.C
-===================================================================
---- gcc/testsuite/g++.dg/debug/pr43010.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/debug/pr43010.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,8 @@
-+// PR debug/43010
-+// { dg-do compile }
-+// { dg-options "-g -femit-struct-debug-baseonly" }
-+# 1 "foo.C"
-+# 1 "bar.h" 1
-+typedef struct { int i; } S __attribute__((aligned));
-+typedef struct { struct { int i; } j; } T __attribute__((aligned));
-+# 1 "foo.C" 2
-Index: gcc/testsuite/g++.dg/ext/attrib35.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/attrib35.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/attrib35.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// { dg-do compile { target i*86-*-* x86_64-*-* } }
-+// { dg-options "-O3 -msse2" }
-+
-+// You can make NON-template typedefs with a large alignment.
-+typedef double AlignedDoubleType __attribute__((aligned(16)));
-+
-+template <typename RealType>
-+RealType f(const RealType* p)
-+{
-+  // But if you use a template parameter it complains.
-+  typedef RealType AlignedRealType __attribute__((aligned(16)));
-+
-+  return p[0];
-+}
-+
-+double f2(const double* p)
-+{
-+  return f<double>(p);
-+}
-Index: gcc/testsuite/g++.dg/ext/attrib36.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/attrib36.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/attrib36.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,20 @@
-+// PR c++/43031
-+// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
-+
-+class T;
-+class L { };
-+class P : public L
-+{
-+  typedef void (__attribute__((__stdcall__)) T::*F) (L*);
-+  void f(bool aAdd);
-+};
-+class T
-+{
-+public:
-+    virtual void __attribute__((__stdcall__)) A(L *listener) = 0;
-+    virtual void __attribute__((__stdcall__)) R(L *listener) = 0;
-+};
-+void P::f(bool aAdd)
-+{
-+  F addRemoveEventListener = (aAdd ? &T::A : &T::R);
-+}
-Index: gcc/testsuite/g++.dg/ext/attrib37.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/attrib37.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/attrib37.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+// PR c++/43093
-+// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
-+
-+struct S {
-+  int x;
-+  S(const S &s) {}
-+};
-+
-+S __attribute__((__stdcall__)) getS();
-+
-+void test()
-+{
-+  S s = getS();
-+}
-Index: gcc/testsuite/g++.dg/ext/dllexport3.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/dllexport3.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/dllexport3.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// PR c++/42870
-+// { dg-do compile { target i?86-*-cygwin *-*-mingw* } }
-+// { dg-final { scan-assembler "-export:_ZN2SaD1Ev" } }
-+
-+#define ATTRIBUTE __attribute__ ((dllexport))
-+class ATTRIBUTE Sa {
-+ public:
-+  Sa()
-+    {}
-+  ~Sa();
-+};
-+ATTRIBUTE Sa::~Sa()
-+{return;}
-+
-+bool DllMain(void *a,void*b,int)
-+{
-+  Sa s;
-+  return true;
-+}
-Index: gcc/testsuite/g++.dg/ext/builtin11.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/builtin11.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/builtin11.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+// PR c++/40138
-+// { dg-options "-Wall" }
-+
-+void foo(int i, ...)
-+{
-+  V v;                                // { dg-error "not declared|expected" }
-+  __builtin_va_start(v, i);   // { dg-error "not declared" }
-+  i = __builtin_va_arg(v, int);
-+}
-Index: gcc/testsuite/g++.dg/ext/sync-3.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/sync-3.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/sync-3.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+// PR debug/41801
-+// { dg-do compile }
-+// { dg-options "-O2 -g" }
-+
-+struct T
-+{
-+  void
-+  foo () volatile
-+  {
-+    __sync_lock_release (&t);
-+    __sync_synchronize ();
-+  }
-+  bool t;
-+};
-+
-+int
-+main ()
-+{
-+  T t = { false };
-+  t.foo ();
-+}
-Index: gcc/testsuite/g++.dg/ext/vla8.C
-===================================================================
---- gcc/testsuite/g++.dg/ext/vla8.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/vla8.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+// PR c++/42387
-+// { dg-options "" }
-+
-+template<class PF>
-+struct AvlTreeIter
-+{
-+  int Num();
-+
-+  AvlTreeIter()
-+  {
-+    new (void* [Num()]);
-+  }
-+};
-+
-+AvlTreeIter<int> a;
-Index: gcc/testsuite/g++.dg/opt/dtor2-aux.cc
-===================================================================
---- gcc/testsuite/g++.dg/opt/dtor2-aux.cc      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/opt/dtor2-aux.cc      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+// { dg-do compile }
-+// { dg-options "" }
-+
-+#include "dtor2.h"
-+
-+A::A () {}
-+A::~A () {}
-+
-+void B::mb () {}
-+B::B (int) {}
-+B::~B () {}
-+
-+void C::mc () {}
-+C::C (int x) : B (x) {}
-+
-+D::~D () {}
-Index: gcc/testsuite/g++.dg/opt/dtor2.C
-===================================================================
---- gcc/testsuite/g++.dg/opt/dtor2.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/opt/dtor2.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+// PR c++/42317
-+// { dg-do link }
-+// { dg-options "-O0" }
-+// { dg-additional-sources "dtor2-aux.cc" }
-+
-+#include "dtor2.h"
-+
-+D::D (int x) : C (x) {}
-+
-+int
-+main ()
-+{
-+}
-Index: gcc/testsuite/g++.dg/opt/dtor2.h
-===================================================================
---- gcc/testsuite/g++.dg/opt/dtor2.h   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/opt/dtor2.h   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,29 @@
-+struct A
-+{
-+  A ();
-+  ~A ();
-+};
-+
-+struct B
-+{
-+  A b;
-+  virtual void mb ();
-+  B (int);
-+  virtual ~B ();
-+};
-+
-+struct C : public B
-+{
-+  virtual void mc ();
-+  C (int);
-+  ~C ();
-+};
-+
-+inline C::~C () {}
-+
-+struct D : public C
-+{
-+  A d;
-+  D (int);
-+  ~D ();
-+};
-Index: gcc/testsuite/g++.dg/opt/inline16.C
-===================================================================
---- gcc/testsuite/g++.dg/opt/inline16.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/opt/inline16.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// PR c++/36959
-+// We shouldn't have to emit fromSlotB just because we need shuf_BZZZ.
-+// { dg-options -O }
-+// { dg-final { scan-assembler-not "_ZL9fromSlotBv" } }
-+
-+static inline int *fromSlotB(void)
-+{
-+  static int shuf_BZZZ = 1;
-+  return &shuf_BZZZ;
-+}
-+
-+int *p;
-+
-+int main(void)
-+{
-+  p = fromSlotB();
-+  return (*p != 1);
-+}
-+
-Index: gcc/testsuite/g++.dg/opt/dtor3.C
-===================================================================
---- gcc/testsuite/g++.dg/opt/dtor3.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/opt/dtor3.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+// PR c++/42386
-+// { dg-do compile }
-+// { dg-options "-O2" }
-+# 1 "A.h" 1
-+#pragma interface
-+struct D { virtual bool d () const; };
-+struct E { virtual ~E (); virtual void *e () const = 0; };
-+struct A : public D, public E { ~A () {} };
-+# 5 "dtor3.C" 1
-+struct F : public A { void *f () const; void *e () const; };
-+void *F::e () const { return __null; }
-Index: gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin: PR c++/41020
-+
-+// { dg-options "" }
-+// { dg-do compile }
-+// { dg-final { scan-assembler "call\[\t \]+\[^\$\]*?_Z4forkv" { target i?86-*-* x86_64-*-* } } }
-+
-+class frok
-+{
-+  int this_errno;
-+  friend int fork (void);
-+};
-+
-+void
-+foo ()
-+{
-+  fork ();
-+}
-Index: gcc/testsuite/g++.dg/lookup/koenig11.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/koenig11.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/koenig11.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+// Test that we treat unions like other classes in arg-dep lookup.
-+
-+union U
-+{
-+  friend void f (U);
-+};
-+
-+int main()
-+{
-+  U u;
-+  f(u);
-+}
-Index: gcc/testsuite/g++.dg/lookup/using16.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/using16.C      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/lookup/using16.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3,7 +3,7 @@
- // { dg-do compile }
- namespace M {
--  struct S {}; // { dg-error "candidates are: struct M::S" "candidate 1" }
-+  struct S {}; // { dg-error "struct M::S" "candidate 1" }
- }
- namespace N {
-Index: gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin: PR c++/41020
-+// { dg-do compile }
-+
-+
-+class frok
-+{
-+  int this_errno;
-+  friend int fork (void); // { dg-error "previous declaration .*?C\\+\\+. linkage" }
-+};
-+
-+extern "C" int
-+fork (void) // { dg-error "conflicts with new declaration .*?C. linkage" }}
-+{
-+  frok grouped;
-+  return grouped.this_errno;
-+}
-+
-Index: gcc/testsuite/g++.dg/lookup/koenig12.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/koenig12.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/koenig12.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,18 @@
-+// PR c++/41305
-+// We got into infinite recursion instantiating the B<U> series.
-+
-+template <class T> struct A { };
-+template <class T, class U = A<T> > struct B;
-+template <class T> struct C { };
-+
-+template <class T, class U> struct B: C<B<U> >
-+{
-+  friend void f(B) { }
-+};
-+
-+B<int> b;
-+
-+int main()
-+{
-+  f(b);
-+}
-Index: gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/41020
-+// { dg-do compile }
-+
-+extern "C"
-+{
-+  int fork (void);
-+}
-+
-+class frok
-+{
-+  int this_errno;
-+  friend int fork (void);
-+};
-+
-+extern "C" int
-+fork (void)
-+{
-+  frok grouped;
-+  return grouped.this_errno;
-+}
-Index: gcc/testsuite/g++.dg/lookup/using22.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/using22.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/using22.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,17 @@
-+// PR c++/39786
-+
-+namespace A {
-+    char (*f(char *p))[13] { return 0; }
-+}
-+
-+namespace B {
-+    namespace C {
-+        char (*f(int p))[42] { return 0; }
-+    }
-+    using namespace C;
-+}
-+
-+using namespace B;
-+using namespace A;
-+
-+char x[sizeof *::f(0) == 42 ? 1 : -1];
-Index: gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,23 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin: PR c++/41020
-+// { dg-options "" }
-+// { dg-do compile }
-+// { dg-final { scan-assembler-not "call\[\t \]+\[^\$\]*?_Z4forkv" { target i?86-*-* x86_64-*-* } } }
-+// { dg-final { scan-assembler "call\[\t \]+_?fork" { target i?86-*-* x86_64-*-* } } }
-+
-+extern "C" int fork (void);
-+
-+void
-+foo ()
-+{
-+  extern int fork (void);
-+  fork ();
-+}
-+
-+extern "C"
-+int
-+fork (void)
-+{
-+  return 0;
-+}
-+
-Index: gcc/testsuite/g++.dg/lookup/scoped8.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/scoped8.C      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/lookup/scoped8.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -14,3 +14,5 @@
- {
-     int foo() { return A::i; }        // { dg-error "this location" }
- };
-+
-+template struct B<0>;
-Index: gcc/testsuite/g++.dg/lookup/koenig10.C
-===================================================================
---- gcc/testsuite/g++.dg/lookup/koenig10.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/lookup/koenig10.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+// Test for proper handling of class-scope enums.
-+
-+struct A
-+{
-+  enum E { e };
-+  friend void f (E);
-+};
-+
-+int main()
-+{
-+  f(A::e);
-+}
-Index: gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C
-===================================================================
---- gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- // { dg-do compile }
- // { dg-options "-O3 -fwhole-program" }
--// { dg-options "-O3 -fwhole-program -fpie" { target { ! nonpic } } }
-+// { dg-add-options bind_pic_locally }
- // { dg-final { scan-assembler "foo1" } }
- // { dg-final { scan-assembler "foo2" } }
- // { dg-final { scan-assembler "foo3" } }
-Index: gcc/testsuite/g++.dg/parse/crash54.C
-===================================================================
---- gcc/testsuite/g++.dg/parse/crash54.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/parse/crash54.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,15 @@
-+// PR c++/42057
-+
-+struct A; // { dg-error "forward declaration" }
-+
-+struct B
-+{
-+  virtual B* foo(A);
-+};
-+
-+struct C : virtual B
-+{
-+  virtual C* foo(A) { return 0; } // { dg-error "incomplete type" }
-+};
-+
-+C c;
-Index: gcc/testsuite/g++.dg/parse/limits-initializer1.C
-===================================================================
---- gcc/testsuite/g++.dg/parse/limits-initializer1.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/parse/limits-initializer1.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,37 @@
-+// PR middle-end/42803
-+// { dg-do compile }
-+// { dg-options "-O0" }
-+
-+#define X2 (a + a)
-+#define X4 (X2 + X2)
-+#define X8 (X4 + X4)
-+#define X16 (X8 + X8)
-+#define X32 (X16 + X16)
-+#define X64 (X32 + X32)
-+#define X128 (X64 + X64)
-+#define X256 (X128 + X128)
-+#define X512 (X256 + X256)
-+#define X1024 (X512 + X512)
-+#define X2048 (X1024 + X1024)
-+#define X4096 (X2048 + X2048)
-+#define X8192 (X4096 + X4096)
-+#define X16384 (X8192 + X8192)
-+#define X32768 (X16384 + X16384)
-+#define X65536 (X32768 + X32768)
-+#define X131072 (X65536 + X65536)
-+#define X262144 (X131072 + X131072)
-+
-+int
-+foo (int a)
-+{
-+  int v = X262144;
-+  return v;
-+}
-+
-+// Emit an error to just make sure we don't waste too much time
-+// in the middle-end compiling this.
-+int
-+bar (void)
-+{
-+  return x;   // { dg-error "was not declared in this scope" }
-+}
-Index: gcc/testsuite/g++.dg/parse/namespace11.C
-===================================================================
---- gcc/testsuite/g++.dg/parse/namespace11.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/parse/namespace11.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,7 @@
-+// PR c++/43069
-+
-+namespace std {
-+  template < typename >
-+  void swap ();
-+}
-+template std::swap            // { dg-error "" }
-Index: gcc/testsuite/g++.dg/parse/namespace12.C
-===================================================================
---- gcc/testsuite/g++.dg/parse/namespace12.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/parse/namespace12.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,7 @@
-+// PR c++/43109
-+
-+namespace std {
-+ namespace {
-+   struct S {};
-+ }
-+}
-Index: gcc/testsuite/g++.dg/parse/eh-decl.C
-===================================================================
---- gcc/testsuite/g++.dg/parse/eh-decl.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/parse/eh-decl.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,8 @@
-+// PR c++/41876
-+
-+struct A;
-+
-+void foo()
-+{
-+  try {} catch(int A) {}
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/auto13.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/auto13.C        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/cpp0x/auto13.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,11 +0,0 @@
--// PR c++/38597
--// { dg-options "-std=c++0x" }
--
--template<class T, class U>
--auto f(T,U) -> decltype(T() + U())
--{ return T() + U(); }
--
--template<class T> void g(T){}
--
--int main() { g(f); }          // { dg-error "no matching function" }
--
-Index: gcc/testsuite/g++.dg/cpp0x/auto6.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/auto6.C (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/cpp0x/auto6.C (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,118 +0,0 @@
--// Tests for late-specified return type.
--// { dg-options "-std=c++0x" }
--
--auto f() -> int
--{
--  return 0;
--}
--
--template<class T, class U>
--auto add(T t, U u) -> decltype (t+u)
--{
--  return t+u;
--}
--
--template<class T, class U>
--decltype(T()+U()) add2(T t, U u)
--{
--  return t+u;
--}
--
--template <class T, class U>
--U ag (T, U)
--{
--  return U();
--}
--
--template<class T, class U>
--auto add3(T t, U u) -> decltype (ag(t,u))
--{
--  return ag(t,u);
--}
--
--template<class T, class U>
--decltype(*(T*)0+*(U*)0) add4(T t, U u)
--{
--  return t+u;
--}
--
--template <class T>
--struct A
--{
--  T f() {}
--  template <class U>
--  T g() {}
--  template <class V>
--  struct B
--  {
--    int MEM;
--  };
--};
--
--template <class T>
--auto f(T* t) -> decltype (t->f())
--{
--  return t->f();
--}
--
--template <class T>
--auto g(T t) -> decltype (t.f())
--{
--  return t.f();
--}
--
--template <class T, class U>
--auto h(T t, U u) -> decltype (t.template g<U>())
--{
--  return t.template g<U>();
--}
--
--struct D { };
--struct C: public A<int>::B<D>
--{
--};
--
--template <class T, class U, class V>
--auto k(T t, U u, V v) -> decltype (t.U::template B<V>::MEM)
--{
--  return t.U::template B<V>::MEM;
--}
--
--// For these two examples we can elide the 'decltype' and just mangle the type.
--template <class T>
--auto l(T t) -> decltype (t)
--{
--  return t;
--}
--
--template <class T, T u>
--auto m(T t) -> decltype (u)
--{
--  return t;
--}
--
--A<int> a, *p;
--
--int main()
--{
--  // { dg-final { scan-assembler  "_Z3addIidEDTplfp_fp0_ET_T0_" } }
--  auto i = add(1, 2.0);
--  // { dg-final { scan-assembler "_Z4add4IidEDTpldecvPT_Li0EdecvPT0_Li0EES0_S2_" } }
--  auto i4 = add4(1, 2.0);
--  // { dg-final { scan-assembler "_Z4add2IidEDTplcvT__EcvT0__EES0_S1_" } }
--  auto i2 = add2(1, 2.0);
--  // { dg-final { scan-assembler "_Z4add3IidEDTcl2agfp_fp0_EET_T0_" } }
--  auto i3 = add3(1, 2.0);
--  // { dg-final { scan-assembler "_Z1fI1AIiEEDTclptfp_1fEEPT_" } }
--  f(p);
--  // { dg-final { scan-assembler "_Z1gI1AIiEEDTcldtfp_1fEET_" } }
--  g(a);
--  // { dg-final { scan-assembler "_Z1hI1AIiEdEDTcldtfp_1gIT0_EEET_S2_" } }
--  h(a,1.0);
--  // { dg-final { scan-assembler "_Z1kI1C1AIiE1DEDtdtfp_srNT0_1BIT1_EE3MEMET_S4_S6_" } }
--  k( C(), A<int>(), D() );
--  // { dg-final { scan-assembler "_Z1lIiET_S0_" } }
--  l(1);
--  // { dg-final { scan-assembler "_Z1mIiLi1EET_S0_" } }
--  m<int,1>(1);
--}
-Index: gcc/testsuite/g++.dg/cpp0x/auto8.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/auto8.C (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/cpp0x/auto8.C (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,16 +0,0 @@
--// PR c++/37967
--// Negative test for auto
--// { dg-options "-std=c++0x" }
--
--auto f1 () -> int;
--auto f2 ();           // { dg-error "without late return type" }
--int f3 () -> int;     // { dg-error "late return type" }
--auto *f4 () -> int;   // { dg-error "late return type" }
--
--struct A
--{
--  auto f5 () const -> int;
--  auto f6 ();         // { dg-error "without late return type" }
--  int f7 () -> int;   // { dg-error "late return type" }
--  auto *f8 () -> int; // { dg-error "late return type" }
--};
-Index: gcc/testsuite/g++.dg/cpp0x/auto12.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/auto12.C        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/cpp0x/auto12.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,63 +0,0 @@
--// More auto/decltype mangling tests.
--// { dg-options "-std=c++0x" }
--
--template <class T>
--struct B
--{
--  static int i;
--};
--
--int&& x();
--
--template <class T>
--struct A
--{
--  static int i;
--  static int &ir;
--  static int &&irr;
--  template <class U>
--  auto f(U u) -> decltype (u + i);
--  template <class U>
--  auto fr(U u) -> decltype (u + ir);
--  template <class U>
--  auto frr(U u) -> decltype (u + irr);
--  template <class U>
--  auto g(U u) -> decltype (u + sizeof (i));
--  template <class U>
--  auto h(U u) -> decltype (u + B<U>::i);
--  template <class U>
--  auto j(U u) -> decltype (u + x());
--};
--
--template<class T> template<class U>
--auto A<T>::f(U u) -> decltype (u + i)
--{
--  return u + i;
--}
--
--template <class... Args>
--int f (Args... args);
--
--template <class... Args>
--auto g (Args... args) -> decltype (f ((args+1)...))
--{
--  return (f ((args+1)...));
--}
--
--int main()
--{
--  // { dg-final { scan-assembler  "_ZN1AIiE1fIiEEDTplfp_L_ZNS0_1iEEET_" } }
--  A<int>().f(1);
--  // { dg-final { scan-assembler  "_ZN1AIiE2frIiEEDTplfp_L_ZNS0_2irEEET_" } }
--  A<int>().fr(1);
--  // { dg-final { scan-assembler  "_ZN1AIiE3frrIiEEDTplfp_L_ZNS0_3irrEEET_" } }
--  A<int>().frr(1);
--  // { dg-final { scan-assembler  "_ZN1AIiE1gIiEEDTplfp_szL_ZNS0_1iEEET_" } }
--  A<int>().g(1);
--  // { dg-final { scan-assembler  "_ZN1AIiE1hIiEEDTplfp_sr1BIT_E1iES3_" } }
--  A<int>().h(1);
--  // { dg-final { scan-assembler  "_ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_" } }
--  A<int>().j(1);
--  // { dg-final { scan-assembler  "_Z1gIIidEEDTcl1fspplfp_Li1EEEDpT_" } }  
--  g(42, 1.0);
--}
-Index: gcc/testsuite/g++.dg/cpp0x/initlist29.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/initlist29.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist29.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+// PR c++/42331
-+// { dg-options "-std=c++0x" }
-+
-+class Mesh
-+{
-+public:
-+  Mesh(const char*)
-+  { typele={0}; }             // { dg-error "" }
-+
-+private:
-+  int typele[7][2];
-+};
-+
-+Mesh m(0);
-Index: gcc/testsuite/g++.dg/cpp0x/decltype18.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/decltype18.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/decltype18.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,5 @@
-+// PR c++/37875
-+// { dg-options "-std=c++0x" }
-+
-+template <typename> struct X {};
-+X<decltype(1 > 2)> x;
-Index: gcc/testsuite/g++.dg/cpp0x/trailing1.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/trailing1.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/trailing1.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,118 @@
-+// Tests for late-specified return type.
-+// { dg-options "-std=c++0x" }
-+
-+auto f() -> int
-+{
-+  return 0;
-+}
-+
-+template<class T, class U>
-+auto add(T t, U u) -> decltype (t+u)
-+{
-+  return t+u;
-+}
-+
-+template<class T, class U>
-+decltype(T()+U()) add2(T t, U u)
-+{
-+  return t+u;
-+}
-+
-+template <class T, class U>
-+U ag (T, U)
-+{
-+  return U();
-+}
-+
-+template<class T, class U>
-+auto add3(T t, U u) -> decltype (ag(t,u))
-+{
-+  return ag(t,u);
-+}
-+
-+template<class T, class U>
-+decltype(*(T*)0+*(U*)0) add4(T t, U u)
-+{
-+  return t+u;
-+}
-+
-+template <class T>
-+struct A
-+{
-+  T f() {}
-+  template <class U>
-+  T g() {}
-+  template <class V>
-+  struct B
-+  {
-+    int MEM;
-+  };
-+};
-+
-+template <class T>
-+auto f(T* t) -> decltype (t->f())
-+{
-+  return t->f();
-+}
-+
-+template <class T>
-+auto g(T t) -> decltype (t.f())
-+{
-+  return t.f();
-+}
-+
-+template <class T, class U>
-+auto h(T t, U u) -> decltype (t.template g<U>())
-+{
-+  return t.template g<U>();
-+}
-+
-+struct D { };
-+struct C: public A<int>::B<D>
-+{
-+};
-+
-+template <class T, class U, class V>
-+auto k(T t, U u, V v) -> decltype (t.U::template B<V>::MEM)
-+{
-+  return t.U::template B<V>::MEM;
-+}
-+
-+// For these two examples we can elide the 'decltype' and just mangle the type.
-+template <class T>
-+auto l(T t) -> decltype (t)
-+{
-+  return t;
-+}
-+
-+template <class T, T u>
-+auto m(T t) -> decltype (u)
-+{
-+  return t;
-+}
-+
-+A<int> a, *p;
-+
-+int main()
-+{
-+  // { dg-final { scan-assembler  "_Z3addIidEDTplfp_fp0_ET_T0_" } }
-+  auto i = add(1, 2.0);
-+  // { dg-final { scan-assembler "_Z4add4IidEDTpldecvPT_Li0EdecvPT0_Li0EES0_S2_" } }
-+  auto i4 = add4(1, 2.0);
-+  // { dg-final { scan-assembler "_Z4add2IidEDTplcvT__EcvT0__EES0_S1_" } }
-+  auto i2 = add2(1, 2.0);
-+  // { dg-final { scan-assembler "_Z4add3IidEDTcl2agfp_fp0_EET_T0_" } }
-+  auto i3 = add3(1, 2.0);
-+  // { dg-final { scan-assembler "_Z1fI1AIiEEDTclptfp_1fEEPT_" } }
-+  f(p);
-+  // { dg-final { scan-assembler "_Z1gI1AIiEEDTcldtfp_1fEET_" } }
-+  g(a);
-+  // { dg-final { scan-assembler "_Z1hI1AIiEdEDTcldtfp_1gIT0_EEET_S2_" } }
-+  h(a,1.0);
-+  // { dg-final { scan-assembler "_Z1kI1C1AIiE1DEDtdtfp_srNT0_1BIT1_EE3MEMET_S4_S6_" } }
-+  k( C(), A<int>(), D() );
-+  // { dg-final { scan-assembler "_Z1lIiET_S0_" } }
-+  l(1);
-+  // { dg-final { scan-assembler "_Z1mIiLi1EET_S0_" } }
-+  m<int,1>(1);
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/variadic96.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/variadic96.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/variadic96.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,26 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin: PR c++/41785
-+// { dg-options -std=c++0x }
-+
-+struct a {};
-+
-+template < typename T, typename ENCLOSING >
-+struct base;
-+
-+template < typename... T >
-+struct derived
-+  : public base< T, derived< T... > >...
-+{};
-+
-+template < typename... T>
-+struct base< a, derived< T... > >
-+{
-+  typedef derived< T... >
-+          Derived;
-+};
-+
-+int main()
-+{
-+  derived< a > instance;
-+}
-+
-Index: gcc/testsuite/g++.dg/cpp0x/trailing2.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/trailing2.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/trailing2.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+// PR c++/37967
-+// Negative test for auto
-+// { dg-options "-std=c++0x" }
-+
-+auto f1 () -> int;
-+auto f2 ();           // { dg-error "without late return type" }
-+int f3 () -> int;     // { dg-error "late return type" }
-+auto *f4 () -> int;   // { dg-error "late return type" }
-+
-+struct A
-+{
-+  auto f5 () const -> int;
-+  auto f6 ();         // { dg-error "without late return type" }
-+  int f7 () -> int;   // { dg-error "late return type" }
-+  auto *f8 () -> int; // { dg-error "late return type" }
-+};
-Index: gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,7 @@
-+// PR c++/37766
-+// { dg-options -std=c++0x }
-+
-+int a = 1;
-+template<int& b = a> void f() {
-+  f<>();
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/trailing3.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/trailing3.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/trailing3.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,63 @@
-+// More auto/decltype mangling tests.
-+// { dg-options "-std=c++0x" }
-+
-+template <class T>
-+struct B
-+{
-+  static int i;
-+};
-+
-+int&& x();
-+
-+template <class T>
-+struct A
-+{
-+  static int i;
-+  static int &ir;
-+  static int &&irr;
-+  template <class U>
-+  auto f(U u) -> decltype (u + i);
-+  template <class U>
-+  auto fr(U u) -> decltype (u + ir);
-+  template <class U>
-+  auto frr(U u) -> decltype (u + irr);
-+  template <class U>
-+  auto g(U u) -> decltype (u + sizeof (i));
-+  template <class U>
-+  auto h(U u) -> decltype (u + B<U>::i);
-+  template <class U>
-+  auto j(U u) -> decltype (u + x());
-+};
-+
-+template<class T> template<class U>
-+auto A<T>::f(U u) -> decltype (u + i)
-+{
-+  return u + i;
-+}
-+
-+template <class... Args>
-+int f (Args... args);
-+
-+template <class... Args>
-+auto g (Args... args) -> decltype (f ((args+1)...))
-+{
-+  return (f ((args+1)...));
-+}
-+
-+int main()
-+{
-+  // { dg-final { scan-assembler  "_ZN1AIiE1fIiEEDTplfp_L_ZNS0_1iEEET_" } }
-+  A<int>().f(1);
-+  // { dg-final { scan-assembler  "_ZN1AIiE2frIiEEDTplfp_L_ZNS0_2irEEET_" } }
-+  A<int>().fr(1);
-+  // { dg-final { scan-assembler  "_ZN1AIiE3frrIiEEDTplfp_L_ZNS0_3irrEEET_" } }
-+  A<int>().frr(1);
-+  // { dg-final { scan-assembler  "_ZN1AIiE1gIiEEDTplfp_szL_ZNS0_1iEEET_" } }
-+  A<int>().g(1);
-+  // { dg-final { scan-assembler  "_ZN1AIiE1hIiEEDTplfp_sr1BIT_E1iES3_" } }
-+  A<int>().h(1);
-+  // { dg-final { scan-assembler  "_ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_" } }
-+  A<int>().j(1);
-+  // { dg-final { scan-assembler  "_Z1gIIidEEDTcl1fspplfp_Li1EEEDpT_" } }  
-+  g(42, 1.0);
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/variadic98.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/variadic98.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/variadic98.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,411 @@
-+// PR c++/42358
-+// { dg-do assemble }
-+// { dg-options -std=c++0x }
-+
-+typedef __PTRDIFF_TYPE__ ptrdiff_t;
-+typedef __SIZE_TYPE__ size_t;
-+namespace std __attribute__ ((__visibility__ ("default"))) {
-+    using ::size_t;
-+}
-+namespace std __attribute__ ((__visibility__ ("default"))) {
-+    struct __sfinae_types   {
-+      typedef char __one;
-+      typedef struct {
-+      } __two;
-+    };
-+    template<typename _Tp, _Tp __v>     struct integral_constant     {
-+      static const _Tp value = __v;
-+      typedef _Tp value_type;
-+      typedef integral_constant<_Tp, __v> type;
-+    };
-+    typedef integral_constant<bool, false> false_type;
-+    template<typename>     struct remove_cv;
-+    template<typename>     struct __is_void_helper     : public false_type {
-+    };
-+    template<typename _Tp>     struct is_void     : public integral_constant<bool, (__is_void_helper<typename           remove_cv<_Tp>::type>::value)>     {
-+    };
-+    template<typename>     struct is_array     : public false_type {
-+    };
-+    template<typename>     struct is_function     : public false_type {
-+    };
-+    template<typename, unsigned _Uint = 0>     struct extent     : public integral_constant<std::size_t, 0> {
-+    };
-+    template<typename _Tp>     struct remove_const     {
-+      typedef _Tp type;
-+    };
-+    template<typename _Tp>     struct remove_volatile     {
-+      typedef _Tp type;
-+    };
-+    template<typename _Tp>     struct remove_cv     {
-+      typedef typename       remove_const<typename remove_volatile<_Tp>::type>::type type;
-+    };
-+    template<typename>     struct is_lvalue_reference     : public false_type {
-+    };
-+    template<typename>     struct is_rvalue_reference     : public false_type {
-+    };
-+    template<typename _Tp>     struct is_reference     : public integral_constant<bool, (is_lvalue_reference<_Tp>::value           || is_rvalue_reference<_Tp>::value)>     {
-+    };
-+    template<typename _Tp>     struct remove_reference     {
-+      typedef _Tp type;
-+    };
-+    template<typename _Tp,     bool = !is_reference<_Tp>::value && !is_void<_Tp>::value>     struct __add_rvalue_reference_helper     {
-+      typedef _Tp type;
-+    };
-+    template<typename _Tp>     struct add_rvalue_reference     : public __add_rvalue_reference_helper<_Tp>     {
-+    };
-+    template<typename _Tp>     typename add_rvalue_reference<_Tp>::type declval();
-+    template<typename _From, typename _To,     bool = (is_void<_From>::value || is_void<_To>::value      || is_function<_To>::value || is_array<_To>::value)>     struct __is_convertible_helper     {
-+    };
-+    template<typename _From, typename _To>     struct __is_convertible_helper<_From, _To, false>     : public __sfinae_types     {
-+      static __one __test(_To);
-+      static __two __test(...);
-+      static const bool __value = sizeof(__test(declval<_From>())) == 1;
-+    };
-+    template<typename _From, typename _To>     struct is_convertible     : public integral_constant<bool,           __is_convertible_helper<_From, _To>::__value>     {
-+    };
-+    template<bool, typename _Tp = void>     struct enable_if     {
-+    };
-+    template<typename _Tp>     struct enable_if<true, _Tp>     {
-+      typedef _Tp type;
-+    };
-+    template<typename _Tp>     struct identity     {
-+      typedef _Tp type;
-+    };
-+    template<typename _Tp>     inline typename enable_if<!is_lvalue_reference<_Tp>::value, _Tp&&>::type     forward(typename std::identity<_Tp>::type& __t)     {
-+    }
-+    template<typename _Tp>     inline typename enable_if<is_lvalue_reference<_Tp>::value, _Tp>::type     forward(typename std::identity<_Tp>::type __t)     {
-+    }
-+    template<typename _Tp>     inline typename std::remove_reference<_Tp>::type&&     move(_Tp&& __t)     {
-+    }
-+    template<class _T1, class _T2>     struct pair     {
-+      typedef _T1 first_type;
-+      typedef _T2 second_type;
-+      _T1 first;
-+      _T2 second;
-+      template<class _U1, class = typename         std::enable_if<std::is_convertible<_U1, _T1>::value>::type>         pair(_U1&& __x, const _T2& __y)  : first(std::forward<_U1>(__x)),    second(__y) {
-+      }
-+      template<class _U2, class = typename         std::enable_if<std::is_convertible<_U2, _T2>::value>::type>         pair(const _T1& __x, _U2&& __y)  : first(__x),    second(std::forward<_U2>(__y)) {
-+      }
-+      template<class _U1, class _U2, class = typename         std::enable_if<std::is_convertible<_U1, _T1>::value          && std::is_convertible<_U2, _T2>::value>::type>         pair(_U1&& __x, _U2&& __y)  : first(std::forward<_U1>(__x)),    second(std::forward<_U2>(__y)) {
-+      }
-+      template<class _U1, class _U2>         pair(pair<_U1, _U2>&& __p)  : first(std::move(__p.first)),    second(std::move(__p.second)) {
-+      }
-+      template<class _U1, class _U2>         pair&         operator=(pair<_U1, _U2>&& __p)  {
-+      }
-+    };
-+    struct input_iterator_tag {
-+    };
-+    struct output_iterator_tag {
-+    };
-+    struct forward_iterator_tag : public input_iterator_tag {
-+    };
-+    struct bidirectional_iterator_tag : public forward_iterator_tag {
-+    };
-+    template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,            typename _Pointer = _Tp*, typename _Reference = _Tp&>     struct iterator     {
-+      typedef _Category iterator_category;
-+      typedef _Tp value_type;
-+      typedef _Distance difference_type;
-+      typedef _Pointer pointer;
-+      typedef _Reference reference;
-+    };
-+    template<typename _Iterator>     struct iterator_traits     {
-+      typedef typename _Iterator::iterator_category iterator_category;
-+      typedef typename _Iterator::value_type value_type;
-+      typedef typename _Iterator::difference_type difference_type;
-+      typedef typename _Iterator::pointer pointer;
-+      typedef typename _Iterator::reference reference;
-+    };
-+    template<typename _Iter>     inline typename iterator_traits<_Iter>::iterator_category     __iterator_category(const _Iter&)     {
-+    }
-+    template<typename _InputIterator>     inline typename iterator_traits<_InputIterator>::difference_type     __distance(_InputIterator __first, _InputIterator __last,                input_iterator_tag)     {
-+    }
-+    template<typename _InputIterator>     inline typename iterator_traits<_InputIterator>::difference_type     distance(_InputIterator __first, _InputIterator __last)     {
-+      return std::__distance(__first, __last,         std::__iterator_category(__first));
-+    }
-+    template<typename _Iterator>     class reverse_iterator     : public iterator<typename iterator_traits<_Iterator>::iterator_category,         typename iterator_traits<_Iterator>::value_type,         typename iterator_traits<_Iterator>::difference_type,         typename iterator_traits<_Iterator>::pointer,                       typename iterator_traits<_Iterator>::reference>     {
-+    };
-+    template<typename _Container>     class back_insert_iterator     : public iterator<output_iterator_tag, void, void, void, void>     {
-+    };
-+}
-+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
-+    template<typename _Tp>     class new_allocator     {
-+    public:
-+      typedef size_t size_type;
-+      typedef ptrdiff_t difference_type;
-+      typedef _Tp* pointer;
-+      typedef const _Tp* const_pointer;
-+      typedef _Tp& reference;
-+      typedef const _Tp& const_reference;
-+      typedef _Tp value_type;
-+      new_allocator() throw() {
-+      }
-+      new_allocator(const new_allocator&) throw() {
-+      }
-+      template<typename _Tp1>         new_allocator(const new_allocator<_Tp1>&) throw() {
-+      }
-+      template<typename... _Args>         void         construct(pointer __p, _Args&&... __args)  {
-+      }
-+    };
-+}
-+namespace std __attribute__ ((__visibility__ ("default"))) {
-+    template<typename _Tp>     class allocator: public __gnu_cxx::new_allocator<_Tp>     {
-+    public:
-+      typedef size_t size_type;
-+      typedef ptrdiff_t difference_type;
-+      typedef _Tp* pointer;
-+      typedef const _Tp* const_pointer;
-+      typedef _Tp& reference;
-+      typedef const _Tp& const_reference;
-+      typedef _Tp value_type;
-+      template<typename _Tp1>         struct rebind         {
-+          typedef allocator<_Tp1> other;
-+      };
-+      allocator() throw() {
-+      }
-+      template<typename _Tp1>         allocator(const allocator<_Tp1>&) throw() {
-+      }
-+    };
-+    extern template class allocator<char>;
-+    extern template class allocator<wchar_t>;
-+    template<typename _Arg, typename _Result>     struct unary_function     {
-+      typedef _Arg argument_type;
-+      typedef _Result result_type;
-+    };
-+    template<typename _Arg1, typename _Arg2, typename _Result>     struct binary_function     {
-+      typedef _Arg1 first_argument_type;
-+      typedef _Arg2 second_argument_type;
-+      typedef _Result result_type;
-+    };
-+    template<typename _Tp>     struct less : public binary_function<_Tp, _Tp, bool>     {
-+      bool       operator()(const _Tp& __x, const _Tp& __y) const       {
-+      }
-+    };
-+    template<typename _Pair>     struct _Select1st : public unary_function<_Pair,            typename _Pair::first_type>     {
-+      const typename _Pair::first_type&       operator()(const _Pair& __x) const       {
-+      }
-+    };
-+    struct _Rb_tree_node_base   {
-+      typedef _Rb_tree_node_base* _Base_ptr;
-+      typedef const _Rb_tree_node_base* _Const_Base_ptr;
-+    };
-+    template<typename _Val>     struct _Rb_tree_node : public _Rb_tree_node_base     {
-+      typedef _Rb_tree_node<_Val>* _Link_type;
-+      _Val _M_value_field;
-+      template<typename... _Args>         _Rb_tree_node(_Args&&... __args)  : _Rb_tree_node_base(),    _M_value_field(std::forward<_Args>(__args)...) {
-+      }
-+    };
-+    template<typename _Tp>     struct _Rb_tree_iterator     {
-+      typedef _Tp value_type;
-+      typedef _Tp& reference;
-+      typedef _Tp* pointer;
-+      typedef bidirectional_iterator_tag iterator_category;
-+      typedef ptrdiff_t difference_type;
-+      typedef _Rb_tree_iterator<_Tp> _Self;
-+      typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;
-+      typedef _Rb_tree_node<_Tp>* _Link_type;
-+      _Base_ptr _M_node;
-+    };
-+    template<typename _Tp>     struct _Rb_tree_const_iterator     {
-+      typedef _Tp value_type;
-+      typedef const _Tp& reference;
-+      typedef const _Tp* pointer;
-+      typedef _Rb_tree_iterator<_Tp> iterator;
-+      typedef bidirectional_iterator_tag iterator_category;
-+      typedef ptrdiff_t difference_type;
-+      typedef _Rb_tree_const_iterator<_Tp> _Self;
-+      typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr;
-+      typedef const _Rb_tree_node<_Tp>* _Link_type;
-+      explicit       _Rb_tree_const_iterator(_Link_type __x)       : _M_node(__x) {
-+      }
-+      _Rb_tree_const_iterator(const iterator& __it)       : _M_node(__it._M_node) {
-+      }
-+      _Base_ptr _M_node;
-+    };
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc = allocator<_Val> >     class _Rb_tree     {
-+      typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other               _Node_allocator;
-+      typedef _Rb_tree_node_base* _Base_ptr;
-+      typedef const _Rb_tree_node_base* _Const_Base_ptr;
-+    public:
-+      typedef _Key key_type;
-+      typedef _Val value_type;
-+      typedef value_type* pointer;
-+      typedef const value_type* const_pointer;
-+      typedef value_type& reference;
-+      typedef const value_type& const_reference;
-+      typedef _Rb_tree_node<_Val>* _Link_type;
-+      typedef const _Rb_tree_node<_Val>* _Const_Link_type;
-+      typedef size_t size_type;
-+      typedef ptrdiff_t difference_type;
-+      typedef _Alloc allocator_type;
-+      _Node_allocator&       _M_get_Node_allocator()       {
-+      }
-+      _Link_type       _M_get_node()       {
-+      }
-+      template<typename... _Args>         _Link_type         _M_create_node(_Args&&... __args)  {
-+          _Link_type __tmp = _M_get_node();
-+          try      {
-+              _M_get_Node_allocator().construct(__tmp,           std::forward<_Args>(__args)...);
-+          }
-+          catch(...)      {
-+          }
-+      }
-+      template<typename _Key_compare,         bool _Is_pod_comparator = __is_pod(_Key_compare)>         struct _Rb_tree_impl : public _Node_allocator         {
-+          _Key_compare _M_key_compare;
-+          _Rb_tree_node_base _M_header;
-+          size_type _M_node_count;
-+          _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a)    : _Node_allocator(__a), _M_key_compare(__comp), _M_header(),      _M_node_count(0)    {
-+          }
-+          void    _M_initialize()    {
-+          }
-+      };
-+      _Rb_tree_impl<_Compare> _M_impl;
-+      _Base_ptr&       _M_rightmost()       {
-+      }
-+      _Link_type       _M_begin()       {
-+      }
-+      _Link_type       _M_end()       {
-+      }
-+      _Const_Link_type       _M_end() const       {
-+      }
-+      static _Link_type       _S_right(_Base_ptr __x)       {
-+      }
-+      static const_reference       _S_value(_Const_Base_ptr __x)       {
-+      }
-+      static const _Key&       _S_key(_Const_Base_ptr __x)       {
-+          return _KeyOfValue()(_S_value(__x));
-+      }
-+      typedef _Rb_tree_iterator<value_type> iterator;
-+      typedef _Rb_tree_const_iterator<value_type> const_iterator;
-+      typedef std::reverse_iterator<iterator> reverse_iterator;
-+      typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-+      iterator       _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __y,    const value_type& __v);
-+      iterator       _M_insert_lower(_Base_ptr __x, _Base_ptr __y, const value_type& __v);
-+      iterator       _M_insert_equal_lower(const value_type& __x);
-+      iterator       _M_lower_bound(_Link_type __x, _Link_type __y,        const _Key& __k);
-+      iterator       _M_upper_bound(_Link_type __x, _Link_type __y,        const _Key& __k);
-+      _Rb_tree(const _Compare& __comp,         const allocator_type& __a = allocator_type())       : _M_impl(__comp, __a) {
-+      }
-+      iterator       end()       {
-+      }
-+      iterator       _M_insert_equal_(const_iterator __position, const value_type& __x);
-+      template<typename _InputIterator>         void         _M_insert_unique(_InputIterator __first, _InputIterator __last);
-+      template<typename _InputIterator>         void         _M_insert_equal(_InputIterator __first, _InputIterator __last);
-+      size_type       count(const key_type& __k) const;
-+      pair<iterator, iterator>       equal_range(const key_type& __k);
-+      pair<const_iterator, const_iterator>       equal_range(const key_type& __k) const;
-+    };
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v)     {
-+      _Link_type __z = _M_create_node(__v);
-+    }
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_lower(_Base_ptr __x, _Base_ptr __p, const _Val& __v)     {
-+      _Link_type __z = _M_create_node(__v);
-+    }
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_equal_lower(const _Val& __v)     {
-+      _Link_type __x = _M_begin();
-+      _Link_type __y = _M_end();
-+      return _M_insert_lower(__x, __y, __v);
-+    }
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::iterator,   typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::iterator>     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     equal_range(const _Key& __k)     {
-+      _Link_type __x = _M_begin();
-+      _Link_type __y = _M_end();
-+      while (__x != 0)  {
-+          if (_M_impl._M_key_compare(_S_key(__x), __k))      __x = _S_right(__x);
-+          else      {
-+              _Link_type __xu(__x), __yu(__y);
-+              return pair<iterator,             iterator>(_M_lower_bound(__x, __y, __k),         _M_upper_bound(__xu, __yu, __k));
-+          }
-+      }
-+    }
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::const_iterator,   typename _Rb_tree<_Key, _Val, _KeyOfValue,       _Compare, _Alloc>::const_iterator>     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     equal_range(const _Key& __k) const     {
-+      _Const_Link_type __y = _M_end();
-+      return pair<const_iterator, const_iterator>(const_iterator(__y),         const_iterator(__y));
-+    }
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     _M_insert_equal_(const_iterator __position, const _Val& __v)     {
-+      if (__position._M_node == _M_end())  {
-+          if (__position._M_node == _M_rightmost())      return _M_insert_(0, _M_rightmost(), __v);
-+          else      return _M_insert_equal_lower(__v);
-+      }
-+    }
-+    template<typename _Key, typename _Val, typename _KoV,            typename _Cmp, typename _Alloc>     template<class _II>       void       _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>::       _M_insert_equal(_II __first, _II __last)       {
-+      for (;
-+           __first != __last;
-+           ++__first)    _M_insert_equal_(end(), *__first);
-+    }
-+    template<typename _Key, typename _Val, typename _KeyOfValue,            typename _Compare, typename _Alloc>     typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::     count(const _Key& __k) const     {
-+      pair<const_iterator, const_iterator> __p = equal_range(__k);
-+      const size_type __n = std::distance(__p.first, __p.second);
-+    }
-+    template<class _E>     class initializer_list     {
-+    public:
-+      typedef _E value_type;
-+      typedef const _E& reference;
-+      typedef const _E& const_reference;
-+      typedef size_t size_type;
-+      typedef const _E* iterator;
-+      typedef const _E* const_iterator;
-+      iterator _M_array;
-+      size_type _M_len;
-+      initializer_list(const_iterator __a, size_type __l)       : _M_array(__a), _M_len(__l) {
-+      }
-+      const_iterator       begin() const {
-+      }
-+      const_iterator       end() const {
-+      }
-+    };
-+    template <typename _Key, typename _Tp,      typename _Compare = std::less<_Key>,      typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >     class multimap     {
-+      typedef _Key key_type;
-+      typedef _Tp mapped_type;
-+      typedef std::pair<const _Key, _Tp> value_type;
-+      typedef _Compare key_compare;
-+      typedef _Alloc allocator_type;
-+      typedef typename _Alloc::value_type _Alloc_value_type;
-+      typedef typename _Alloc::template rebind<value_type>::other         _Pair_alloc_type;
-+      typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,          key_compare, _Pair_alloc_type> _Rep_type;
-+      _Rep_type _M_t;
-+    public:
-+      typedef typename _Pair_alloc_type::pointer pointer;
-+      typedef typename _Pair_alloc_type::const_pointer const_pointer;
-+      typedef typename _Pair_alloc_type::reference reference;
-+      typedef typename _Pair_alloc_type::const_reference const_reference;
-+      typedef typename _Rep_type::iterator iterator;
-+      typedef typename _Rep_type::const_iterator const_iterator;
-+      typedef typename _Rep_type::size_type size_type;
-+      typedef typename _Rep_type::difference_type difference_type;
-+      typedef typename _Rep_type::reverse_iterator reverse_iterator;
-+      typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
-+      multimap(initializer_list<value_type> __l,         const _Compare& __comp = _Compare(),         const allocator_type& __a = allocator_type())       : _M_t(__comp, __a)       {
-+          _M_t._M_insert_equal(__l.begin(), __l.end());
-+      }
-+      template<typename _InputIterator>         multimap(_InputIterator __first, _InputIterator __last)  : _M_t()         {
-+      }
-+      template<typename _InputIterator>         multimap(_InputIterator __first, _InputIterator __last,    const _Compare& __comp,    const allocator_type& __a = allocator_type())         : _M_t(__comp, __a)         {
-+      }
-+      template<typename _InputIterator>         void         insert(_InputIterator __first, _InputIterator __last)         {
-+      }
-+      size_type       count(const key_type& __x) const       {
-+          return _M_t.count(__x);
-+      }
-+      std::pair<iterator, iterator>       equal_range(const key_type& __x)       {
-+          return _M_t.equal_range(__x);
-+      }
-+      template<typename _K1, typename _T1, typename _C1, typename _A1>         friend bool         operator==(const multimap<_K1, _T1, _C1, _A1>&,      const multimap<_K1, _T1, _C1, _A1>&);
-+      template<typename _K1, typename _T1, typename _C1, typename _A1>         friend bool         operator<(const multimap<_K1, _T1, _C1, _A1>&,     const multimap<_K1, _T1, _C1, _A1>&);
-+    };
-+}
-+extern "C" {
-+    extern void __assert_fail (__const char *__assertion, __const char *__file,       unsigned int __line, __const char *__function)      throw () __attribute__ ((__noreturn__));
-+}
-+using namespace std;
-+int test01() {
-+    typedef multimap<int,double> Container;
-+    typedef Container::iterator iterator;
-+    typedef pair<iterator,iterator> itpair;
-+    Container m({
-+              {
-+              1, 1.0 }
-+              }
-+             );
-+    itpair ip = m.equal_range(1);
-+    ((distance(ip.first, ip.second) == 3) ? static_cast<void> (0) : __assert_fail ("distance(ip.first, ip.second) == 3", "/home/richard/src/trunk/libstdc++-v3/testsuite/23_containers/multimap/init-list.cc", 36, __PRETTY_FUNCTION__));
-+    ((m.count(7) == 2) ? static_cast<void> (0) : __assert_fail ("m.count(7) == 2", "/home/richard/src/trunk/libstdc++-v3/testsuite/23_containers/multimap/init-list.cc", 54, __PRETTY_FUNCTION__));
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/trailing4.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/trailing4.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/trailing4.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+// PR c++/38597
-+// { dg-options "-std=c++0x" }
-+
-+template<class T, class U>
-+auto f(T,U) -> decltype(T() + U())
-+{ return T() + U(); }
-+
-+template<class T> void g(T){}
-+
-+int main() { g(f); }          // { dg-error "no matching function" }
-+
-Index: gcc/testsuite/g++.dg/cpp0x/initlist25.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/initlist25.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist25.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,17 @@
-+// PR c++/41754
-+// { dg-options -std=c++0x }
-+// { dg-do run }
-+
-+#include <map>
-+#include <string>
-+#include <iostream>
-+
-+using namespace std;
-+
-+int main()
-+{
-+        map<string, string> m;
-+        m.insert({{"t", "t"}, {"y", "y"}});
-+
-+        return 0;
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/vt-40092.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/vt-40092.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/vt-40092.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,21 @@
-+// { dg-do "compile" }
-+// { dg-options "-std=c++0x" }
-+
-+template <typename... Types> struct package {};
-+
-+template <int ArgGen> struct wrapper_gen {};
-+
-+template <int ArgNest> struct wrapper_nest
-+{
-+  typedef wrapper_gen<ArgNest> type_nest;
-+};
-+
-+template <int... ArgPack>
-+struct wrapper_pack
-+{
-+  typedef package<wrapper_gen <ArgPack>...> type_pack;
-+  // incorrect error: expansion pattern 'wrapper_gen<ArgNest>'
-+  //    contains no argument packs
-+};
-+
-+
-Index: gcc/testsuite/g++.dg/cpp0x/inline-ns3.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/inline-ns3.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/inline-ns3.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,24 @@
-+namespace C
-+{
-+  void f();
-+}
-+
-+namespace B
-+{
-+  using namespace C;
-+
-+  inline namespace B1
-+  {
-+    void f();
-+  }
-+}
-+
-+namespace A
-+{
-+  using namespace B;
-+}
-+
-+int main()
-+{
-+  A::f();
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/trailing5.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/trailing5.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/trailing5.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+// PR c++/38798, DR 770
-+// { dg-options -std=c++0x }
-+
-+struct A {};
-+auto foo() -> struct A {}
-+
-+enum B {};
-+auto bar() -> enum B {}
-+
-+auto baz() -> struct C {} {}  // { dg-error "" }
-Index: gcc/testsuite/g++.dg/cpp0x/initlist26.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/initlist26.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist26.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+// PR c++/42059
-+// { dg-do compile }
-+// { dg-options "-std=gnu++0x" }
-+
-+void
-+foo (int i)
-+{
-+  int a[i];
-+  a = { }; // { dg-error "may not be initialized" }
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/initlist27.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/initlist27.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist27.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,5 @@
-+// PR c++/42061
-+// { dg-do compile }
-+// { dg-options "-std=c++0x" }
-+
-+int& i = { j };       // { dg-error "invalid initialization|was not declared" }
-Index: gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C
-===================================================================
---- gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+// { dg-options -std=c++0x }
-+// { dg-do compile }
-+
-+void f(int &);
-+void f(int &&ir) { ir = 42; }
-+int main()
-+{
-+  int x;
-+  f(reinterpret_cast<int&&>(x));
-+  return (x != 42);
-+}
-Index: gcc/testsuite/g++.dg/abi/mangle14.C
-===================================================================
---- gcc/testsuite/g++.dg/abi/mangle14.C        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/abi/mangle14.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,6 @@
- // { dg-do compile }
- // { dg-options "-Wabi -fabi-version=1" }
-+// { dg-final { scan-assembler "_Z1g1SIXadsr1ANS0_1fIiEEivEE" } }
- struct A {
-   template <typename T> int f ();
-Index: gcc/testsuite/g++.dg/abi/mangle33.C
-===================================================================
---- gcc/testsuite/g++.dg/abi/mangle33.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/abi/mangle33.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// Testcase for mangling very long names.
-+
-+#define N \
-+abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm
-+
-+namespace N {
-+  int i;
-+}
-+
-+#undef N
-+#define N \
-+abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk
-+
-+namespace N {
-+  int j;
-+}
-+
-+// { dg-final { scan-assembler "_ZN4043abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm1iE" } }
-+// { dg-final { scan-assembler "_ZN4041abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk1jE" } }
-Index: gcc/testsuite/g++.dg/abi/thunk5.C
-===================================================================
---- gcc/testsuite/g++.dg/abi/thunk5.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/abi/thunk5.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+// PR c++/35067
-+// The thunks should be weak even on targets without one-only support.
-+// { dg-require-weak "" }
-+// { dg-final { scan-assembler "weak.*ZTv" } }
-+
-+struct A
-+{
-+  virtual ~A() { }
-+};
-+
-+struct B: virtual A { };
-+
-+B b;
-Index: gcc/testsuite/g++.dg/abi/mangle34.C
-===================================================================
---- gcc/testsuite/g++.dg/abi/mangle34.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/abi/mangle34.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,42 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/40808
-+// { dg-do compile }
-+// This tests the mangling of empty template argument list in a template
-+// id.
-+// { dg-final {scan-assembler "_ZNK5DummyclI3GenEENT_3SigIE10ResultTypeERKS2_" } }
-+
-+
-+struct Void {};
-+
-+template <class R> struct FunType {
-+  typedef R ResultType;
-+};
-+
-+struct WrongNumberOfSigArgs {};
-+
-+template <typename R> struct CFunType {
-+  template <class Dummy1=Void, class Dummy2=Void> struct Sig : public
-+FunType<WrongNumberOfSigArgs> {};
-+  template <class Dummy> struct Sig<Void,Dummy> : public FunType<R> {};
-+};
-+
-+struct Dummy {
-+  template <typename F> typename F::template Sig<>::ResultType operator()(F
-+const& f) const {
-+    return typename F::template Sig<>::ResultType(0);
-+  }
-+};
-+
-+struct Gen: public CFunType<int> {
-+  int operator()() const {return 0;}
-+  Gen() {}
-+};
-+
-+int myfunction() {
-+  return Dummy()(Gen());
-+}
-+
-+int main() {
-+  myfunction();
-+}
-+
-Index: gcc/testsuite/g++.dg/abi/regparm1.C
-===================================================================
---- gcc/testsuite/g++.dg/abi/regparm1.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/abi/regparm1.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,51 @@
-+// PR c++/29911 (9381)
-+// { dg-options -std=c++0x }
-+// { dg-do run { target i?86-*-* x86_64-*-* } }
-+
-+extern "C" int printf(const char *, ...);
-+
-+void *save_this;
-+int *save_addr1, *save_addr2;
-+
-+int fail;
-+
-+struct Base
-+{
-+  __attribute((regparm(3))) void
-+  set(int *addr1, int *addr2)
-+  {
-+    if (this != save_this)
-+      {
-+      ++fail;
-+      printf("error! this == %p, should be %p\n", this, save_this);
-+      }
-+    if (addr1 != save_addr1)
-+      {
-+      ++fail;
-+      printf("error! addr1 == %p, should be %p\n", addr1, save_addr1);
-+      }
-+    if (addr2 != save_addr2)
-+      {
-+      ++fail;
-+      printf("error! addr2 == %p, should be %p\n", addr2, save_addr1);
-+      }
-+  }
-+};
-+
-+int main()
-+{
-+  void (__attribute((regparm(3))) Base::* pfm)(int *, int *) = &Base::set;
-+  __typeof (&Base::set) pfm2 = &Base::set;
-+  decltype (&Base::set) pfm3 = &Base::set;
-+  auto pfm4 = &Base::set;
-+
-+  Base obj; save_this = &obj;
-+  int x, y; save_addr1 = &x; save_addr2 = &y;
-+
-+  (obj.* pfm) (&x, &y);
-+  (obj.* pfm2) (&x, &y);
-+  (obj.* pfm3) (&x, &y);
-+  (obj.* pfm4) (&x, &y);
-+
-+  return fail;
-+}
-Index: gcc/testsuite/g++.dg/abi/guard2.C
-===================================================================
---- gcc/testsuite/g++.dg/abi/guard2.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/abi/guard2.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+// PR c++/41611
-+// Test that the guard gets its own COMDAT group.
-+// { dg-final { scan-assembler "_ZGVZN1A1fEvE1i,comdat" { target *-*-linux* } } }
-+
-+struct A {
-+  static int f()
-+  {
-+    static int &i = *new int();
-+    return i;
-+  }
-+};
-+
-+int main()
-+{
-+  return A::f();
-+}
-Index: gcc/testsuite/g++.dg/gomp/pr42234.C
-===================================================================
---- gcc/testsuite/g++.dg/gomp/pr42234.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/gomp/pr42234.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// PR c++/42234
-+// { dg-do compile }
-+// { dg-options "-fopenmp" }
-+
-+extern int foo (void);
-+
-+void
-+bar (int x)
-+{
-+  #pragma omp critical
-+    {
-+      int j;
-+      for (j = 0; j < foo (); j++)
-+      ;
-+      if (0)
-+        if (x >= 4)
-+        ;
-+    }
-+}
-Index: gcc/testsuite/g++.dg/gomp/pr41967.C
-===================================================================
---- gcc/testsuite/g++.dg/gomp/pr41967.C        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/gomp/pr41967.C        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,17 @@
-+// PR c++/41967
-+// { dg-do compile }
-+// { dg-options "-fopenmp" }
-+
-+int
-+foo ()
-+{
-+  int sum = 0;
-+#pragma omp for collapse(2)
-+  for (int i = 0; i < 5; ++i)
-+    {
-+      for (int j = 0; j < 5; ++j)
-+      ++sum;
-+      ++sum;  // { dg-error "collapsed loops not perfectly nested" }
-+    }
-+  return sum;
-+}
-Index: gcc/testsuite/g++.dg/inherit/thunk11.h
-===================================================================
---- gcc/testsuite/g++.dg/inherit/thunk11.h     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/inherit/thunk11.h     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+struct A
-+{
-+  A () {}
-+  virtual ~A () {}
-+};
-+struct B
-+{
-+  B () {}
-+  virtual ~B () {}
-+};
-+struct C : public A, public B
-+{
-+  virtual void foo ();
-+  virtual ~C () {};
-+};
-+inline void C::foo () {}
-Index: gcc/testsuite/g++.dg/inherit/thunk11-aux.cc
-===================================================================
---- gcc/testsuite/g++.dg/inherit/thunk11-aux.cc        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/inherit/thunk11-aux.cc        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,4 @@
-+// { dg-do compile }
-+// { dg-options "-O2" }
-+
-+#include "thunk11.h"
-Index: gcc/testsuite/g++.dg/inherit/thunk11.C
-===================================================================
---- gcc/testsuite/g++.dg/inherit/thunk11.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/inherit/thunk11.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+// PR c++/42256
-+// { dg-do link }
-+// { dg-additional-sources "thunk11-aux.cc" }
-+// { dg-options "-O2" }
-+
-+#include "thunk11.h"
-+
-+int
-+main ()
-+{
-+}
-Index: gcc/testsuite/g++.dg/init/static-init2.C
-===================================================================
---- gcc/testsuite/g++.dg/init/static-init2.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/init/static-init2.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,3 @@
-+// PR c++/36912
-+// { dg-options -frounding-math }
-+const double c = .1, d = c+1;
-Index: gcc/testsuite/g++.dg/torture/pr42704.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42704.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42704.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,44 @@
-+/* { dg-do compile } */
-+
-+typedef int PRInt32;
-+class nsTreeRows {
-+    class Subtree { };
-+    enum { kMaxDepth = 32 };
-+    struct Link {
-+        Subtree* mParent;
-+        PRInt32 mChildIndex;
-+        Link&         operator=(const Link& aLink) {
-+            mParent = aLink.mParent;
-+            mChildIndex = aLink.mChildIndex;
-+        }
-+    };
-+    class iterator {
-+        PRInt32 mTop;
-+        PRInt32 mRowIndex;
-+        Link mLink[kMaxDepth];
-+    public:
-+        iterator() : mTop(-1), mRowIndex(-1) { }
-+        iterator& operator=(const iterator& aIterator);
-+    };
-+    Subtree*     EnsureSubtreeFor(Subtree* aParent, PRInt32 aChildIndex);
-+    Subtree*     GetSubtreeFor(const Subtree* aParent,
-+PRInt32 aChildIndex,                   PRInt32* aSubtreeSize = 0);
-+    void     InvalidateCachedRow() {
-+        mLastRow = iterator();
-+    }
-+    iterator mLastRow;
-+};
-+nsTreeRows::Subtree* nsTreeRows::EnsureSubtreeFor(Subtree* aParent,
-+                     PRInt32 aChildIndex) {
-+    Subtree* subtree = GetSubtreeFor(aParent, aChildIndex);
-+    if (! subtree) {
-+        InvalidateCachedRow();
-+    }
-+}
-+nsTreeRows::iterator& nsTreeRows::iterator::operator=(const iterator&
-+aIterator) {
-+    mTop = aIterator.mTop;
-+    for (PRInt32 i = mTop;
-+         i >= 0;
-+         --i)         mLink[i] = aIterator.mLink[i];
-+}
-Index: gcc/testsuite/g++.dg/torture/pushpop_macro.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pushpop_macro.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pushpop_macro.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+/* Do the preprocessor push_macro/pop_macro test.  */
-+
-+/* { dg-do run } */
-+
-+extern "C" void abort ();
-+
-+#define _ 2
-+#pragma push_macro("_")
-+#undef _
-+#define _ 1
-+#pragma pop_macro("_")
-+
-+int main ()
-+{
-+  if (_ != 2)
-+    abort ();
-+  return 0;
-+}
-+
-
-Zmiany atrybutów dla: gcc/testsuite/g++.dg/torture/pushpop_macro.C
-___________________________________________________________________
-Dodane: svn:mime-type
-   + text/plain
-Dodane: svn:eol-style
-   + native
-
-Index: gcc/testsuite/g++.dg/torture/pr41183.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr41183.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr41183.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,30 @@
-+// PR c++/41183
-+// { dg-do compile }
-+
-+void foo (const char *);
-+
-+template <int *>
-+struct A
-+{
-+  template <typename T> A (const int &, T);
-+  int i;
-+};
-+
-+template <int *X>
-+template <typename T>
-+A<X>::A (const int &j, T) : i(j)
-+{
-+  foo (0);
-+  foo (0);
-+  foo (__PRETTY_FUNCTION__);
-+}
-+
-+int N;
-+
-+struct B
-+{
-+  B ();
-+  A<&N> a;
-+};
-+
-+B::B() : a(N, 0) {}
-Index: gcc/testsuite/g++.dg/torture/pr42357.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42357.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42357.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,30 @@
-+// { dg-do compile }
-+typedef unsigned char uint8;
-+typedef unsigned int uint32;
-+class PixelARGB {
-+public:
-+    ~PixelARGB() throw() { }
-+    PixelARGB (const uint32 argb_) throw() : argb (argb_)     { }
-+    inline __attribute__((always_inline)) uint8 getRed() const throw() {
-+      return components.r;
-+    }
-+    union     {
-+      uint32 argb;
-+      struct         {
-+          uint8 b, g, r, a;
-+      } components;
-+    };
-+};
-+class Colour {
-+public:
-+    Colour() throw() : argb (0) {};
-+    uint8 getRed() const throw() {
-+      return argb.getRed();
-+    }
-+    PixelARGB argb;
-+};
-+uint8 writeImage (void) {
-+    Colour pixel;
-+    pixel = Colour ();
-+    return pixel.getRed();
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42462.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42462.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42462.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,47 @@
-+/* { dg-do run } */
-+
-+#define INLINE inline __attribute__((always_inline))
-+extern "C" void abort (void);
-+
-+template<class> struct Foo {
-+        inline bool isFalse() { return false; }
-+        template <bool>        void f1() {}
-+        template <bool> INLINE void f2() { f1<false>(); }
-+        template <bool>        void f3() { f2<false>(); }
-+        template <bool> INLINE void f4() { f3<false>(); }
-+        int exec2();
-+        void execute();
-+        inline void unused();
-+};
-+
-+template<class T> inline void Foo<T>::unused() {
-+        f4<true>();
-+}
-+
-+static int counter = 0;
-+
-+template<class T> int Foo<T>::exec2() {
-+        static void* table[2] = { &&begin, &&end };   
-+      if (counter++ > 10)
-+        return 0;
-+        goto *(table[0]);
-+begin:
-+        if (isFalse()) f1<false>();
-+end:
-+        return 1;
-+}
-+
-+template<class T> void Foo<T>::execute() {
-+        int r = 1;
-+        while (r) { r = exec2(); }
-+}
-+
-+template class Foo<int>;
-+
-+int main() {
-+        Foo<int> c;
-+        c.execute();
-+      if (counter < 10)
-+        abort ();
-+      return 0;
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42183.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42183.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42183.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,51 @@
-+// { dg-do compile }
-+
-+class IntSize {
-+public:
-+    IntSize(int width, int height) : m_width(width), m_height(height) { }
-+    int m_width, m_height;
-+};
-+class IntPoint {
-+public:
-+    IntPoint(int x, int y) : m_x(x), m_y(y) { }
-+    int m_x, m_y;
-+};
-+class IntRect {
-+public:
-+    IntRect(int x, int y, int width, int height)
-+        : m_location(IntPoint(x, y)), m_size(IntSize(width, height)) { }
-+    void intersect(const IntRect&);
-+    IntPoint m_location;
-+    IntSize m_size;
-+};
-+inline IntRect intersection(const IntRect& a, const IntRect& b) {
-+    IntRect c = a;
-+    c.intersect(b);
-+    return c;
-+}
-+class RenderObject  {
-+public:
-+    int contentWidth() const { }
-+    int contentHeight() const { }
-+    virtual int xPos() const { }
-+    virtual int yPos() const { }
-+    virtual int paddingTop() const;
-+    virtual int paddingLeft() const;
-+    virtual int borderTop() const { }
-+    virtual int borderLeft() const { }
-+};
-+class RenderMenuList : public RenderObject {
-+    virtual IntRect controlClipRect(int tx, int ty) const;
-+    RenderObject* m_innerBlock;
-+};
-+IntRect RenderMenuList::controlClipRect(int tx, int ty) const {
-+    IntRect outerBox(tx + borderLeft() + paddingLeft(),
-+                     ty + borderTop() + paddingTop(),
-+                     contentWidth(), contentHeight());
-+    IntRect innerBox(tx + m_innerBlock->xPos() + m_innerBlock->paddingLeft(),
-+                     ty + m_innerBlock->yPos() + m_innerBlock->paddingTop(),
-+                     m_innerBlock->contentWidth(),
-+                     m_innerBlock->contentHeight());
-+    return intersection(outerBox, innerBox);
-+}
-+
-Index: gcc/testsuite/g++.dg/torture/pr42760.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42760.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42760.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,46 @@
-+// PR middle-end/42760
-+// { dg-do compile }
-+
-+template <typename T>
-+struct A
-+{
-+  static T b (T it) { return it; }
-+};
-+
-+template <typename T, typename U>
-+static U
-+baz (T x, T y, U z)
-+{
-+  for (long n = y - x; n > 0; --n)
-+    {
-+      *z = *x;
-+      ++z;
-+    }
-+};
-+
-+template <typename T, typename U>
-+U
-+bar (T x, T y, U z)
-+{
-+  baz (A <T>::b (x), A <T>::b (y), A <U>::b (z));
-+}
-+
-+struct C
-+{
-+  __complex__ float v;
-+};
-+
-+template <class T>
-+struct B
-+{
-+  B (T y[]) { bar (y, y + 1, x); }
-+  operator T *() { return x; }
-+  T x[1];
-+};
-+
-+B <C>
-+foo ()
-+{
-+  C y[1];
-+  return B <C> (y);
-+};
-Index: gcc/testsuite/g++.dg/torture/pr41775.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr41775.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr41775.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,284 @@
-+/* { dg-do compile } */
-+/* { dg-require-visibility "" } */
-+
-+typedef unsigned int size_t;
-+namespace std __attribute__ ((__visibility__ ("default")))
-+{
-+  template < typename _Iterator > struct iterator_traits
-+  {
-+  };
-+  template < typename _Tp > struct iterator_traits <_Tp * >
-+  {
-+    typedef _Tp & reference;
-+  };
-+}
-+
-+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
-+{
-+  using std::iterator_traits;
-+  template < typename _Iterator, typename _Container > class __normal_iterator
-+  {
-+  public:typedef _Iterator iterator_type;
-+    typedef typename iterator_traits < _Iterator >::reference reference;
-+    reference operator* () const
-+    {
-+    }
-+    __normal_iterator operator++ (int)
-+    {
-+    }
-+  };
-+  template < typename _IteratorL, typename _IteratorR,
-+    typename _Container > inline bool operator!= (const __normal_iterator <
-+                                                _IteratorL,
-+                                                _Container > &__lhs,
-+                                                const __normal_iterator <
-+                                                _IteratorR,
-+                                                _Container > &__rhs)
-+  {
-+  }
-+}
-+
-+extern "C"
-+{
-+  extern "C"
-+  {
-+    __extension__ typedef __SIZE_TYPE__ __intptr_t;
-+  }
-+}
-+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
-+{
-+  template < typename _Tp > class new_allocator
-+  {
-+  public:typedef size_t size_type;
-+    typedef _Tp *pointer;
-+    template < typename _Tp1 > struct rebind
-+    {
-+      typedef new_allocator < _Tp1 > other;
-+    };
-+  };
-+}
-+
-+namespace std __attribute__ ((__visibility__ ("default")))
-+{
-+template < typename _Tp > class allocator:public __gnu_cxx::new_allocator <
-+    _Tp >
-+  {
-+  };
-+}
-+
-+extern "C"
-+{
-+  typedef __intptr_t intptr_t;
-+}
-+namespace llvm
-+{
-+  template < typename NodeTy > class ilist_half_node
-+  {
-+  };
-+template < typename NodeTy > class ilist_node:private ilist_half_node <
-+    NodeTy >
-+  {
-+  };
-+  class MachineBasicBlock;
-+  class MachineOperand
-+  {
-+  public:enum MachineOperandType
-+    {
-+    }
-+    Contents;
-+    unsigned getReg () const
-+    {
-+    }
-+  };
-+  class TargetRegisterInfo;
-+}
-+
-+namespace std __attribute__ ((__visibility__ ("default")))
-+{
-+  template < typename _Tp, typename _Alloc > struct _Vector_base
-+  {
-+    typedef typename _Alloc::template rebind < _Tp >::other _Tp_alloc_type;
-+  };
-+template < typename _Tp, typename _Alloc = std::allocator < _Tp > >class vector:protected _Vector_base < _Tp,
-+    _Alloc
-+    >
-+  {
-+    typedef _Vector_base < _Tp, _Alloc > _Base;
-+    typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
-+  public:typedef _Tp value_type;
-+    typedef typename _Tp_alloc_type::pointer pointer;
-+    typedef __gnu_cxx::__normal_iterator < pointer, vector > iterator;
-+    iterator begin ()
-+    {
-+    }
-+    iterator end ()
-+    {
-+    }
-+  };
-+}
-+
-+namespace llvm
-+{
-+  class MachineFunction;
-+  class MachineInstr:public ilist_node < MachineInstr >
-+  {
-+  public:const MachineBasicBlock *getParent () const
-+    {
-+    }
-+    const MachineOperand & getOperand (unsigned i) const
-+    {
-+    }
-+    bool registerDefIsDead (unsigned Reg, const TargetRegisterInfo * TRI =
-+                          __null) const
-+    {
-+    }
-+  };
-+  class AnalysisResolver;
-+  class Pass
-+  {
-+    AnalysisResolver *Resolver;
-+    intptr_t PassID;
-+  public:  explicit Pass (intptr_t pid):Resolver (0), PassID (pid)
-+    {
-+    }
-+    explicit Pass (const void *pid):Resolver (0), PassID ((intptr_t) pid)
-+    {
-+    }
-+    template < typename AnalysisType > AnalysisType & getAnalysis () const;
-+  };
-+  class FunctionPass:public Pass
-+  {
-+  public:explicit FunctionPass (intptr_t pid):Pass (pid)
-+    {
-+    }
-+    explicit FunctionPass (const void *pid):Pass (pid)
-+    {
-+    }
-+  };
-+  class PassInfo
-+  {
-+  public:typedef Pass *(*NormalCtor_t) ();
-+  private:const char *const PassName;
-+    const char *const PassArgument;
-+    const intptr_t PassID;
-+    const bool IsCFGOnlyPass;
-+    const bool IsAnalysis;
-+    const bool IsAnalysisGroup;
-+    NormalCtor_t NormalCtor;
-+  public:   PassInfo (const char *name, const char *arg, intptr_t pi, NormalCtor_t normal = 0, bool isCFGOnly = false, bool is_analysis = false):PassName (name), PassArgument (arg), PassID (pi),
-+      IsCFGOnlyPass (isCFGOnly), IsAnalysis (is_analysis),
-+      IsAnalysisGroup (false), NormalCtor (normal)
-+    {
-+    }
-+  };
-+  template < typename PassName > Pass * callDefaultCtor ()
-+  {
-+    return new PassName ();
-+  }
-+  template < typename passName > struct RegisterPass:public PassInfo
-+  {
-+  RegisterPass (const char *PassArg, const char *Name, bool CFGOnly = false, bool is_analysis = false):PassInfo (Name, PassArg, intptr_t (&passName::ID),
-+            PassInfo::NormalCtor_t (callDefaultCtor < passName >), CFGOnly,
-+            is_analysis)
-+    {
-+    }
-+  };
-+  template < typename T > class SmallVectorImpl
-+  {
-+  };
-+  template < typename T,
-+    unsigned N > class SmallVector:public SmallVectorImpl < T >
-+  {
-+  };
-+  class MachineFunctionPass:public FunctionPass
-+  {
-+  protected:explicit MachineFunctionPass (intptr_t ID):FunctionPass (ID)
-+    {
-+    }
-+    explicit MachineFunctionPass (void *ID):FunctionPass (ID)
-+    {
-+    }
-+    virtual bool runOnMachineFunction (MachineFunction & MF) = 0;
-+  };
-+  class LiveIndex
-+  {
-+  private:unsigned index;
-+  };
-+  class VNInfo
-+  {
-+  };
-+  struct LiveRange
-+  {
-+    LiveIndex start;
-+    LiveIndex end;
-+    VNInfo *valno;
-+  };
-+  class LiveInterval
-+  {
-+  public:typedef SmallVector < LiveRange, 4 > Ranges;
-+    bool containsOneValue () const
-+    {
-+    }
-+    LiveRange *getLiveRangeContaining (LiveIndex Idx)
-+    {
-+    }
-+    void removeRange (LiveIndex Start, LiveIndex End, bool RemoveDeadValNo =
-+                    false);
-+    void removeRange (LiveRange LR, bool RemoveDeadValNo = false)
-+    {
-+      removeRange (LR.start, LR.end, RemoveDeadValNo);
-+    }
-+  };
-+  class LiveIntervals:public MachineFunctionPass
-+  {
-+  public:static char ID;
-+    LiveIndex getDefIndex (LiveIndex index)
-+    {
-+    }
-+    LiveInterval & getInterval (unsigned reg)
-+    {
-+    }
-+    LiveIndex getInstructionIndex (const MachineInstr * instr) const
-+    {
-+    }
-+  };
-+}
-+
-+using namespace llvm;
-+namespace
-+{
-+struct __attribute__ ((visibility ("hidden"))) StrongPHIElimination:public
-+    MachineFunctionPass
-+  {
-+    static char ID;
-+  StrongPHIElimination ():MachineFunctionPass (&ID)
-+    {
-+    }
-+    bool runOnMachineFunction (MachineFunction & Fn);
-+  };
-+}
-+
-+static RegisterPass < StrongPHIElimination > X ("strong-phi-node-elimination",
-+                                              "Eliminate PHI nodes for register allocation, intelligently");
-+bool
-+StrongPHIElimination::runOnMachineFunction (MachineFunction & Fn)
-+{
-+  LiveIntervals & LI = getAnalysis < LiveIntervals > ();
-+  std::vector < MachineInstr * >phis;
-+  for (std::vector < MachineInstr * >::iterator I = phis.begin (), E =
-+       phis.end (); I != E;)
-+    {
-+      MachineInstr *PInstr = *(I++);
-+      unsigned DestReg = PInstr->getOperand (0).getReg ();
-+      LiveInterval & PI = LI.getInterval (DestReg);
-+      if (PInstr->registerDefIsDead (DestReg))
-+      {
-+        if (PI.containsOneValue ())
-+          {
-+            LiveIndex idx =
-+              LI.getDefIndex (LI.getInstructionIndex (PInstr));
-+            PI.removeRange (*PI.getLiveRangeContaining (idx), true);
-+          }
-+      }
-+    }
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42883.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42883.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42883.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,63 @@
-+// { dg-do compile }
-+
-+typedef __SIZE_TYPE__ size_t;
-+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
-+    template<typename _Tp>     class new_allocator     {
-+    public:
-+      typedef size_t size_type;
-+      typedef _Tp* pointer;
-+      typedef _Tp& reference;
-+      void       deallocate(pointer __p, size_type)       {
-+          ::operator delete(__p);
-+      }
-+    };
-+}
-+namespace std __attribute__ ((__visibility__ ("default"))) {
-+    template<typename _Tp>     class allocator: public __gnu_cxx::new_allocator<_Tp>     {
-+    public:
-+      template<typename _Tp1>         struct rebind         {
-+          typedef allocator<_Tp1> other;
-+      };
-+    };
-+    template<typename _Tp, typename _Alloc>     struct _Vector_base     {
-+      typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
-+      struct _Vector_impl       : public _Tp_alloc_type       {
-+          typename _Tp_alloc_type::pointer _M_start;
-+          typename _Tp_alloc_type::pointer _M_end_of_storage;
-+      };
-+      ~_Vector_base()       {
-+          _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage         - this->_M_impl._M_start);
-+      }
-+      _Vector_impl _M_impl;
-+      void       _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n)       {
-+          if (__p)    _M_impl.deallocate(__p, __n);
-+      }
-+    };
-+    template<typename _Tp, typename _Alloc = std::allocator<_Tp> >     class vector : protected _Vector_base<_Tp, _Alloc>     {
-+      typedef _Vector_base<_Tp, _Alloc> _Base;
-+      typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
-+    public:
-+      typedef typename _Tp_alloc_type::reference reference;
-+      typedef size_t size_type;
-+      size_type       size() const       {
-+      }
-+      reference       operator[](size_type __n)       {
-+      }
-+    };
-+};
-+class vtkConvexPointSet  {
-+public:
-+    static vtkConvexPointSet *New();
-+};
-+void MakeInternalMesh() {
-+    std::vector< int > tempFaces[2];
-+    std::vector< int > firstFace;
-+    int i, j, k;
-+    for(i = 0; i < 1000; i++)     {
-+      for(int pointCount = 0; pointCount < 1000; pointCount++)        {
-+          for(j = 0; j < (int)tempFaces[0].size(); k++)
-+            if(tempFaces[0][j] == tempFaces[1][k])            break;
-+      }
-+      vtkConvexPointSet::New();
-+    }
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42110.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42110.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42110.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+/* { dg-do compile } */
-+bool foo();
-+
-+struct A
-+{
-+  A* fooA() { if (foo()) foo(); return this; }
-+
-+  virtual void barA(char);
-+};
-+
-+template<int> struct B
-+{
-+  A *p, *q;
-+
-+  void fooB(char c) { p->fooA()->barA(c); }
-+};
-+
-+template<int N> inline void bar(B<N> b) { b.fooB(0); }
-+
-+extern template void bar(B<0>);
-+
-+void (*f)(B<0>) = bar;
-+
-+void baz()
-+{
-+  B<0>().fooB(0);
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42714.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42714.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42714.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,37 @@
-+struct QVectorData {
-+    static QVectorData shared_null;
-+};
-+template <typename T> class QVector {
-+    union {
-+        QVectorData *d;
-+    };
-+public:
-+    inline QVector() : d(&QVectorData::shared_null) { }
-+    inline QVector(const QVector<T> &v) : d(v.d) { }
-+};
-+class QXmlStreamAttribute { };
-+class QXmlStreamAttributes : public QVector<QXmlStreamAttribute> { };
-+class __attribute__ ((visibility("default"))) Smoke {
-+public:
-+    union StackItem;
-+    typedef StackItem* Stack;
-+    typedef short Index;
-+};
-+class SmokeBinding { };
-+namespace __smokeqt {
-+    class x_QXmlStreamAttributes : public QXmlStreamAttributes {
-+        SmokeBinding* _binding;
-+    public:
-+        static void x_11(Smoke::Stack x) {
-+            x_QXmlStreamAttributes* xret = new x_QXmlStreamAttributes();
-+        }
-+        explicit x_QXmlStreamAttributes() : QXmlStreamAttributes() { }
-+    };
-+    void xcall_QXmlStreamAttributes(Smoke::Index xi, void *obj,
-+                                    Smoke::Stack args)
-+      {
-+        switch(xi) {
-+            case 11: x_QXmlStreamAttributes::x_11(args);
-+        }
-+      }
-+}
-Index: gcc/testsuite/g++.dg/torture/pr43068.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr43068.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr43068.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+/* { dg-do compile } */
-+/* { dg-options "-freorder-blocks -ftracer} */
-+
-+struct A {
-+    virtual A *f();
-+};
-+struct B : virtual A {
-+    virtual B *f();
-+};
-+B *B::f() { return 0; }
-Index: gcc/testsuite/g++.dg/torture/pr42871.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42871.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42871.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,40 @@
-+struct C
-+{
-+  ~C ();
-+  int c3;
-+};
-+
-+C *b2;
-+
-+static void
-+b1 (const C &x, unsigned b3, unsigned b4)
-+{
-+  unsigned i = 0;
-+  for (; i < b3; i++)
-+    if (i < b4)
-+      {
-+        b2[0].c3 = x.c3;
-+        return;
-+      }
-+}
-+
-+int a ();
-+
-+void
-+bar (unsigned b3, unsigned b4)
-+{
-+  C c[100];
-+  for (int i = 0; i < 100; i++)
-+    {
-+      c[i].c3 = i;
-+      for (int j = 0; j < b3; j++)
-+        if (j < b4)
-+          {
-+            b2[0].c3 = 0;
-+            break;
-+          }
-+      b1 (c[i], b3, b4);
-+      a ();
-+    }
-+}
-+
-Index: gcc/testsuite/g++.dg/torture/pr42773.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42773.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42773.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,54 @@
-+// { dg-do compile }
-+// { dg-options "-fno-exceptions" }
-+
-+typedef unsigned int uint;
-+struct QShared {
-+    bool deref() {
-+      return !--count;
-+    }
-+    uint count;
-+};
-+template <class T> class QValueListNode {
-+public:
-+    QValueListNode<T>* next;
-+    QValueListNode<T>* prev;
-+};
-+template <class T> class QValueListPrivate : public QShared {
-+public:
-+    typedef QValueListNode<T> Node;
-+    typedef QValueListNode<T>* NodePtr;
-+    QValueListPrivate();
-+    void derefAndDelete()     {
-+      if ( deref() )      delete this;
-+    }
-+    ~QValueListPrivate();
-+    NodePtr node;
-+};
-+template <class T>  QValueListPrivate<T>::QValueListPrivate() {
-+    node = new Node;
-+    node->next = node->prev = node;
-+}
-+template <class T>  QValueListPrivate<T>::~QValueListPrivate() {
-+    NodePtr p = node->next;
-+    while( p != node ) {
-+      NodePtr x = p->next;
-+      delete p;
-+      p = x;
-+    }
-+}
-+template <class T> class QValueList {
-+public:
-+    QValueList() {
-+      sh = new QValueListPrivate<T>;
-+    }
-+    ~QValueList() {
-+      sh->derefAndDelete();
-+    }
-+    QValueListPrivate<T>* sh;
-+};
-+class Cell {
-+    QValueList<Cell*> obscuringCells() const;
-+};
-+QValueList<Cell*> Cell::obscuringCells() const {
-+    QValueList<Cell*> empty;
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42890.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42890.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42890.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+// PR tree-optimization/42890
-+// { dg-do compile }
-+
-+extern "C" int puts (const char *) throw ();
-+
-+struct S
-+{
-+  const char *a;
-+  const char **b;
-+  S (const char *s) { a = s; b = &a; }
-+  ~S () { puts (a); }
-+};
-+
-+void
-+foo (int (*fn) (const char *))
-+{
-+  S a ("foo");
-+  fn ("bar");
-+}
-+
-+int
-+main ()
-+{
-+  foo (puts);
-+}
-Index: gcc/testsuite/g++.dg/torture/pr42739.C
-===================================================================
---- gcc/testsuite/g++.dg/torture/pr42739.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr42739.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+/* { dg-do compile } */
-+
-+struct s { ~s() { s(); } };
-+
-+int f()
-+{
-+  M:
-+    s o = s();
-+    f();
-+    f();
-+
-+  L:
-+    goto *(f() ? &&L : &&M);
-+
-+    return 0;
-+}
-Index: gcc/testsuite/g++.dg/ipa/iinline-1.C
-===================================================================
---- gcc/testsuite/g++.dg/ipa/iinline-1.C       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/g++.dg/ipa/iinline-1.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2,7 +2,7 @@
-    inlining..  */
- /* { dg-do compile } */
- /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining"  } */
--/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fpie" { target { ! nonpic } } } */
-+/* { dg-add-options bind_pic_locally } */
- extern void non_existent (const char *, int);
-Index: gcc/testsuite/g++.dg/template/typedef25.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef25.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef25.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,43 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/42225
-+// { dg-options "-std=c++0x" }
-+// { dg-do compile }
-+
-+template<class T>
-+struct A
-+{
-+    typedef T I;
-+    static const char *i;
-+};
-+
-+template<class T, int>
-+struct B
-+{
-+    typedef T TT;
-+    typedef decltype(TT::i)  TT_I0;
-+    typedef decltype(&TT::i) TT_I1;
-+    typedef decltype(*TT::i) TT_I2;
-+    typedef A<TT_I0> TA0;
-+    typedef A<TT_I1> TA1;
-+    typedef A<TT_I2> TA2;
-+};
-+
-+template<class T>
-+void
-+foo()
-+{
-+    typedef T TT;
-+    typedef decltype(TT::i)  TT_I0;
-+    typedef decltype(&TT::i) TT_I1;
-+    typedef decltype(*TT::i) TT_I2;
-+    typedef A<TT_I0> TA0;
-+    typedef A<TT_I1> TA1;
-+    typedef A<TT_I2> TA2;
-+}
-+
-+int
-+main()
-+{
-+    foo<A<int> >();
-+}
-+
-Index: gcc/testsuite/g++.dg/template/conv10.C
-===================================================================
---- gcc/testsuite/g++.dg/template/conv10.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/conv10.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+// PR c++/41994
-+
-+template<typename T> struct A
-+{
-+  operator T();
-+  A() { T (A::*f)() = &A::operator T; }
-+};
-+
-+A<int> a;
-Index: gcc/testsuite/g++.dg/template/typedef26.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef26.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef26.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,40 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin: PR c++/42225
-+// { dg-do compile }
-+
-+struct A
-+{
-+    typedef int TI;
-+};
-+
-+template<class T0>
-+struct S0
-+{
-+    int i;
-+};
-+
-+template<class _T, int>
-+struct S1
-+{
-+    typedef _T T;
-+    typedef typename T::TI TTI;
-+    typedef S0<TTI> TT0;
-+    typedef S0<typename T::TI> TT1;
-+};
-+
-+template<class T>
-+void
-+foo(const T&)
-+{
-+    typedef typename T::TI TTI;
-+    typedef S0<TTI> TT1;
-+    typedef S0<typename T::TI> TT2;
-+}
-+
-+int
-+main()
-+{
-+    A a;
-+    foo (a);
-+}
-+
-Index: gcc/testsuite/g++.dg/template/inherit4.C
-===================================================================
---- gcc/testsuite/g++.dg/template/inherit4.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/inherit4.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+// PR c++/21008, DR 515
-+
-+struct A {
-+  int foo_;
-+};
-+template <typename T> struct B: public A { };
-+template <typename T> struct C: B<T> {
-+  int foo() {
-+    return A::foo_;  // #1
-+  }
-+};
-+int f(C<int>* p) {
-+  return p->foo();
-+}
-Index: gcc/testsuite/g++.dg/template/ref4.C
-===================================================================
---- gcc/testsuite/g++.dg/template/ref4.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/ref4.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+// PR c++/41972
-+
-+struct X {
-+  static const double  x;
-+};
-+template <const double& _test_>
-+  class Foo { };
-+template <typename _ignore_>
-+struct Y {
-+  typedef Foo<X::x> type;
-+};
-+
-Index: gcc/testsuite/g++.dg/template/typedef27.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef27.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef27.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,55 @@
-+// Origin: PR c++/42713
-+// { dg-do compile }
-+
-+template<class T>
-+struct S
-+{
-+};
-+
-+template<class T>
-+struct S0
-+{
-+    typedef T TT;
-+};
-+
-+template<class U, class V>
-+struct super_struct : S0<V>
-+{
-+    typedef S0<V> super;
-+};
-+
-+template<class U, class V, class W>
-+struct S1 : super_struct<U, V>
-+{
-+    typedef super_struct<U, V> super;
-+    typedef typename super::super Super2;
-+    typedef typename Super2::TT Super2TT;
-+    void
-+    foo()
-+    {
-+        S<Super2TT> s1;
-+    }
-+};
-+
-+template<class U, class V>
-+struct S2 : super_struct<U, V>
-+{
-+    typedef super_struct<U, V> super;
-+    typedef typename super::super Super2;
-+    typedef typename Super2::TT Super2TT;
-+    void
-+    foo()
-+    {
-+        S<Super2TT> s1;
-+    }
-+};
-+
-+int
-+main()
-+{
-+    S1<int, S<int>, int> s1;
-+    s1.foo();
-+    S2<int, S<int> > s2;
-+    s2.foo();
-+}
-+
-Index: gcc/testsuite/g++.dg/template/const3.C
-===================================================================
---- gcc/testsuite/g++.dg/template/const3.C     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/const3.C     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,20 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/42251
-+// { dg-do "compile" }
-+
-+struct foo
-+{
-+    static const bool b = false;
-+};
-+
-+template<bool x>
-+struct S1
-+{
-+};
-+
-+template<bool x>
-+struct S2
-+    : S1<foo::b>
-+{
-+};
-+
-Index: gcc/testsuite/g++.dg/template/typedef28.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef28.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef28.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+// Origin: PR c++/42820
-+// { dg-do compile }
-+
-+
-+template <class T> struct vector{};
-+struct Traits{struct Primitive{struct Id{};};};
-+
-+template <class Tree, class Polyhedron> struct Tree_vs_naive
-+{
-+  typedef typename Tree::Primitive Primitive;
-+
-+  void f() const
-+  {
-+        typedef vector<typename Primitive::Id> Id_vector;
-+  }
-+};
-+
-+template <class Tree> void test_hint_strategies()
-+{
-+  vector<typename Tree::Primitive::Id> v;
-+}
-+
-+int main(void)
-+{
-+  test_hint_strategies<Traits>();
-+}
-+
-+
-Index: gcc/testsuite/g++.dg/template/instantiate11.C
-===================================================================
---- gcc/testsuite/g++.dg/template/instantiate11.C      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/instantiate11.C      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+// PR c++/42608
-+// { dg-do compile }
-+
-+template <class U, class V>
-+struct A;
-+
-+template <class V>
-+struct A<int, V>
-+{
-+  void f ();
-+};
-+
-+template struct A<int, int>;
-+
-+int
-+main ()
-+{
-+  A<int, int> a;
-+  a.f ();
-+  return 0;
-+}
-+
-+// Make sure we get undefined reference error if
-+// A<int, int>::f () isn't instantiated elsewhere.
-+// { dg-final { scan-assembler-not "weak\[\n\t\]*_ZN1AIiiE1fEv" } }
-Index: gcc/testsuite/g++.dg/template/ptrmem20.C
-===================================================================
---- gcc/testsuite/g++.dg/template/ptrmem20.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/ptrmem20.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+// PR c++/43079
-+
-+struct A {};
-+
-+struct B
-+{
-+  void foo() const;
-+  void foo();
-+};
-+
-+template<void (A::*)()> void bar();
-+
-+void baz()
-+{
-+  bar<&B::foo>();  // { dg-error "not a valid template argument|no match" }
-+}
-Index: gcc/testsuite/g++.dg/template/sizeof12.C
-===================================================================
---- gcc/testsuite/g++.dg/template/sizeof12.C   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/sizeof12.C   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,19 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/41863
-+
-+template<int X>
-+struct Bar
-+{
-+};
-+
-+template<typename T>
-+class Foo
-+{
-+  T m_foo;
-+
-+  void
-+  crash()
-+  {
-+    Bar<sizeof(m_foo)> bar;
-+  }
-+};
-Index: gcc/testsuite/g++.dg/template/arg7.C
-===================================================================
---- gcc/testsuite/g++.dg/template/arg7.C       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/arg7.C       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+// PR c++/27425, 34274
-+
-+template<typename T> struct A
-+{
-+  template<template<T> class> struct B {}; // { dg-error "void|mismatch|expected" }
-+  // { dg-bogus "not supported" "" { target *-*-* } 5 }
-+  template<T> struct C;                          // { dg-error "void" }
-+  B<C> b;
-+};
-+
-+A<void> a;                    // { dg-message "instantiated" }
-Index: gcc/testsuite/g++.dg/template/memclass4.C
-===================================================================
---- gcc/testsuite/g++.dg/template/memclass4.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/memclass4.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,70 @@
-+// Origin: PR c++/42824
-+// { dg-do compile }
-+
-+template<int T>
-+class int_ {
-+};
-+
-+template<int T, int T2>
-+class Unit {
-+public:
-+    Unit(const Unit<T, T2>& other) {}
-+};
-+
-+template<int T>
-+class Quan {
-+public:
-+    Quan(void) {}
-+
-+    template<int T2>
-+    Quan(double value, Unit<T, T2> unit) {}
-+};
-+typedef Quan<0> Scalar;
-+
-+template<int T>
-+class hlp {
-+public:
-+   typedef Quan<T> type;
-+};
-+
-+class Mtrl {
-+public:
-+    template<int T>
-+    struct AssoType {
-+        typedef typename hlp<T>::type type;
-+    };
-+};
-+
-+template<class T>
-+class Eval {
-+public:
-+    Eval(const T& object){}
-+
-+    template<int V>
-+    void eval() {
-+        eval<V> (int_<0>());
-+    }
-+private:
-+    template<typename U> struct Wrap {};
-+
-+    template<int V, int V2>
-+    void value(Wrap<Quan<V2> >) {}
-+
-+    template<int V>
-+    void value(Wrap<Scalar>) {}
-+
-+    template<int V>
-+    void eval(int_<0>) {
-+        typedef typename T::template AssoType<V>::type Type;
-+        value<V>(Wrap<Type>());
-+    }
-+};
-+
-+class Foo {
-+public:
-+    static void eval(const Mtrl& mtrl) {
-+        Eval<Mtrl> h(mtrl);
-+        h.eval<0> ();
-+    }
-+};
-+
-Index: gcc/testsuite/g++.dg/template/array21.C
-===================================================================
---- gcc/testsuite/g++.dg/template/array21.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/array21.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,50 @@
-+// PR c++/42447
-+
-+template<int>
-+  void* get(int);
-+
-+template<typename>
-+  struct unique_ptr;
-+
-+template<typename _Tp>
-+  struct unique_ptr<_Tp[]>
-+  {
-+    typedef int __tuple_type;
-+
-+    void*
-+    get() const
-+    { return ::get<0>(_M_t); }
-+
-+    __tuple_type _M_t;
-+  };
-+
-+template <typename T> class dynamic_dispatch;
-+
-+template <typename TC>
-+  struct dynamic_dispatch<void (TC::*)(int&)>
-+  {
-+    struct entry { };
-+    unique_ptr<entry[]> m_Start;
-+
-+    template <typename UC>
-+      void attach_handler(void (UC::*m)(int&))
-+      {
-+        entry* p = 0;
-+        do {
-+        } while(--p != m_Start.get());
-+      }
-+  };
-+
-+template <typename TC>
-+  class request_dispatcher
-+  : private dynamic_dispatch<void (TC::*)(int&)>
-+  { request_dispatcher(); };
-+
-+struct file_reader
-+{
-+  void execute_command(int&);
-+};
-+
-+template <>
-+  request_dispatcher<file_reader>::request_dispatcher()
-+  { this->attach_handler(&file_reader::execute_command); }
-Index: gcc/testsuite/g++.dg/template/typedef21.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef21.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef21.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,11 @@
-+// PR c++/37037
-+
-+typedef void F(void);
-+template <typename T> struct S 
-+{
-+    static F f;
-+};
-+template class S<int>;
-+template <class T> void S<T>::f(void)
-+{}
-+
-Index: gcc/testsuite/g++.dg/template/typedef23.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef23.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef23.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,25 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/42069
-+// { dg-do compile }
-+
-+struct A
-+{
-+  static const int N = 0;
-+};
-+
-+template<int> struct B {};
-+
-+template<typename T, int>
-+struct C
-+{
-+  typedef T U;
-+  B<U::N> b;
-+};
-+
-+template<typename T>
-+struct C<T*, 0>
-+{
-+  B<T::N> b;
-+};
-+
-+C<A*, 0> c;
-Index: gcc/testsuite/g++.dg/template/typedef24.C
-===================================================================
---- gcc/testsuite/g++.dg/template/typedef24.C  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef24.C  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/42225
-+// { dg-do compile }
-+
-+template<class T>
-+struct A
-+{
-+    typedef T I;
-+};
-+
-+template<class T, int>
-+struct B
-+{
-+    typedef T TT;
-+    typedef typename TT::I TT_I;
-+    typedef A<TT_I> TA;
-+};
-+
-+template<class T>
-+void
-+foo()
-+{
-+    typedef T TT;
-+    typedef typename TT::I TT_I;
-+    typedef A<TT_I> TA;
-+}
-+
-+int
-+main()
-+{
-+    foo<A<int> >();
-+}
-+
-Index: gcc/testsuite/g++.dg/overload/rvalue1.C
-===================================================================
---- gcc/testsuite/g++.dg/overload/rvalue1.C    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/overload/rvalue1.C    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,10 @@
-+// PR c++/42655
-+
-+void unused(const bool &) { }
-+
-+int main() {
-+  volatile bool x = false;
-+  unused(!!x); // type of "!x" is bool
-+  unused(!x); // type of "!x" is bool
-+}
-+
-Index: gcc/testsuite/lib/gnat.exp
-===================================================================
---- gcc/testsuite/lib/gnat.exp (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/lib/gnat.exp (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,4 +1,4 @@
--# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
-+# Copyright (C) 2006, 2007, 2008, 2009, 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
-@@ -83,7 +83,6 @@
-     global gluefile wrap_flags
-     global gnat_initialized
-     global GNAT_UNDER_TEST
--    global GNAT_UNDER_TEST_ORIG
-     global TOOL_EXECUTABLE
-     global gnat_libgcc_s_path
-     global gnat_target_current
-@@ -98,7 +97,6 @@
-       } else {
-           set GNAT_UNDER_TEST "[local_find_gnatmake]"
-       }
--        set GNAT_UNDER_TEST_ORIG "$GNAT_UNDER_TEST"
-     }
-     if ![info exists tmpdir] then {
-@@ -129,22 +127,31 @@
-     global gluefile wrap_flags
-     global srcdir
-     global GNAT_UNDER_TEST
--    global GNAT_UNDER_TEST_ORIG
-     global TOOL_OPTIONS
-     global ld_library_path
-     global gnat_libgcc_s_path
-     global gnat_target_current
--    # If we detect a change of target we need to recompute
--    # the appropriate RTS by calling get_multilibs.
-+    # If we detect a change of target, we need to recompute both
-+    # GNAT_UNDER_TEST and the appropriate RTS.
-     if { $gnat_target_current!="[current_target_name]" } {
--       set gnat_target_current "[current_target_name]"
--       if [info exists TOOL_OPTIONS] {
--           set gnat_rts_opt "--RTS=[get_multilibs ${TOOL_OPTIONS}]/libada"
--       } else {
--           set gnat_rts_opt "--RTS=[get_multilibs]/libada"
--       }
--        set GNAT_UNDER_TEST "$GNAT_UNDER_TEST_ORIG $gnat_rts_opt"
-+      set gnat_target_current "[current_target_name]"
-+      if [info exists TOOL_OPTIONS] {
-+          set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada"
-+      } else {
-+          set rtsdir "[get_multilibs]/libada"
-+      }
-+      if [info exists TOOL_EXECUTABLE] {
-+          set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
-+      } else {
-+          set GNAT_UNDER_TEST "[local_find_gnatmake]"
-+      }
-+        set GNAT_UNDER_TEST "$GNAT_UNDER_TEST --RTS=$rtsdir"
-+
-+      # gnatlink looks for system.ads itself and has no --RTS option, so
-+      # specify via environment
-+      setenv ADA_INCLUDE_PATH "$rtsdir/adainclude"
-+      setenv ADA_OBJECTS_PATH "$rtsdir/adainclude"
-     }
-     set ld_library_path ".:${gnat_libgcc_s_path}"
-@@ -263,7 +270,13 @@
-         }
-         if { $file != "" } {
-       set root [file dirname $file]
--      set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs --LINK=$root/xgcc -B$root -margs";
-+      # Need to pass full --GCC, including multilib flags, to gnatlink,
-+      # otherwise gcc from PATH is invoked.
-+      set dest [target_info name]
-+      set gnatlink_gcc "--GCC=$root/xgcc -B$root [board_info $dest multilib_flags]"
-+      # Escape blanks to get them through DejaGnu's exec machinery.
-+      regsub -all {\s} "$gnatlink_gcc" {\\&} gnatlink_gcc
-+      set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs $gnatlink_gcc -margs";
-         } else {
-       set CC [transform gnatmake]
-         }
-Index: gcc/testsuite/lib/target-supports-dg.exp
-===================================================================
---- gcc/testsuite/lib/target-supports-dg.exp   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/lib/target-supports-dg.exp   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -235,10 +235,27 @@
-       append compiler_flags "[board_info $dest multilib_flags] "
-     }
--    # The target list might be an effective-target keyword, so replace
--    # the original list with "*-*-*", since we already know it matches.
--    set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]]
-+    # The next two arguments are optional.  If they were not specified,
-+    # use the defaults.
-+    if { [llength $args] == 2 } {
-+      lappend $args [list "*"]
-+    }
-+    if { [llength $args] == 3 } {
-+      lappend $args [list ""]
-+    }
-+    # If the option strings are the defaults, or the same as the
-+    # defaults, there is no need to call check_conditional_xfail to
-+    # compare them to the actual options.
-+    if { [string compare [lindex $args 2] "*"] == 0
-+       && [string compare [lindex $args 3] "" ] == 0 } {
-+      set result 1    
-+    } else {
-+      # The target list might be an effective-target keyword, so replace
-+      # the original list with "*-*-*", since we already know it matches.
-+      set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]]
-+    }
-+
-     # Any value in this variable was left over from an earlier test.
-     set compiler_flags ""
-@@ -256,14 +273,18 @@
- # group of tests or flags specified with a previous dg-options command.
- proc dg-skip-if { args } {
-+    # Verify the number of arguments.  The last two are optional.
-+    set args [lreplace $args 0 0]
-+    if { [llength $args] < 2 || [llength $args] > 4 } {
-+      error "dg-skip-if 2: need 2, 3, or 4 arguments"
-+    }
-+
-     # Don't bother if we're already skipping the test.
-     upvar dg-do-what dg-do-what
-     if { [lindex ${dg-do-what} 1] == "N" } {
-       return
-     }
--    set args [lreplace $args 0 0]
--
-     set selector [list target [lindex $args 1]]
-     if { [dg-process-target $selector] == "S" } {
-       if [check-flags $args] {
-@@ -276,31 +297,53 @@
- # Like check_conditional_xfail, but callable from a dg test.
- proc dg-xfail-if { args } {
-+    # Verify the number of arguments.  The last three are optional.
-+    set args [lreplace $args 0 0]
-+    if { [llength $args] < 2 || [llength $args] > 4 } {
-+      error "dg-xfail-if: need 2, 3, or 4 arguments"
-+    }
-+
-     # Don't change anything if we're already skipping the test.
-     upvar dg-do-what dg-do-what
-     if { [lindex ${dg-do-what} 1] == "N" } {
-       return
-     }
--    set args [lreplace $args 0 0]
-     set selector [list target [lindex $args 1]]
-     if { [dg-process-target $selector] == "S" } {
-       global compiler_conditional_xfail_data
--      set compiler_conditional_xfail_data [lreplace $args 1 1 "*-*-*"]
-+
-+      # The target list might be an effective-target keyword.  Replace
-+      # the original list with "*-*-*", since we already know it matches.
-+      set args [lreplace $args 1 1 "*-*-*"]
-+
-+      # Supply default values for unspecified optional arguments.
-+      if { [llength $args] == 2 } {
-+          lappend $args [list "*"]
-+      }
-+      if { [llength $args] == 3 } {
-+          lappend $args [list ""]
-+      }
-+
-+      set compiler_conditional_xfail_data $args
-     }
- }
- # Like dg-xfail-if but for the execute step.
- proc dg-xfail-run-if { args } {
-+    # Verify the number of arguments.  The last two are optional.
-+    set args [lreplace $args 0 0]
-+    if { [llength $args] < 2 || [llength $args] > 4 } {
-+      error "dg-xfail-run-if: need 2, 3, or 4 arguments"
-+    }
-+
-     # Don't bother if we're already skipping the test.
-     upvar dg-do-what dg-do-what
-     if { [lindex ${dg-do-what} 1] == "N" } {
-       return
-     }
--    set args [lreplace $args 0 0]
--
-     set selector [list target [lindex $args 1]]
-     if { [dg-process-target $selector] == "S" } {
-       if [check-flags $args] {
-Index: gcc/testsuite/lib/target-supports.exp
-===================================================================
---- gcc/testsuite/lib/target-supports.exp      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/lib/target-supports.exp      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2787,6 +2787,28 @@
-     return $flags
- }
-+# Add to FLAGS the flags needed to enable functions to bind locally
-+# when using pic/PIC passes in the testsuite.
-+
-+proc add_options_for_bind_pic_locally { flags } {
-+    if {[check_no_compiler_messages using_pic2 assembly {
-+        #if __PIC__ != 2
-+        #error FOO
-+        #endif
-+    }]} {
-+      return "$flags -fPIE"
-+    }
-+    if {[check_no_compiler_messages using_pic1 assembly {
-+        #if __PIC__ != 1
-+        #error FOO
-+        #endif
-+    }]} {
-+      return "$flags -fpie"
-+    }
-+
-+    return $flags
-+}
-+
- # Return 1 if the target provides a full C99 runtime.
- proc check_effective_target_c99_runtime { } {
-@@ -2894,3 +2916,24 @@
-       #endif
-     }]
- }
-+
-+# Return 1 if the language for the compiler under test is C.
-+
-+proc check_effective_target_c { } {
-+ global tool
-+    if [string match $tool "gcc"] {
-+   return 1
-+    }
-+ return 0
-+}
-+
-+# Return 1 if the language for the compiler under test is C++.
-+
-+proc check_effective_target_c++ { } {
-+ global tool
-+    if [string match $tool "g++"] {
-+   return 1
-+    }
-+ return 0
-+}
-+
-Index: gcc/testsuite/gfortran.dg/data_value_1.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/data_value_1.f90 (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gfortran.dg/data_value_1.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3,12 +3,14 @@
- ! is not a constant and so the DATA statement did not have
- ! a constant value expression.
- !
-+! Modified dg-error for PR41807
-+!
- ! Contributed by Philippe Marguinaud <philippe.marguinaud@meteo.fr>
- !
-       TYPE POINT
-         REAL :: X 
-       ENDTYPE
-       TYPE(POINT) :: P
--      DATA P / POINT(1.+X) / ! { dg-error "non-constant DATA value" }
-+      DATA P / POINT(1.+X) / ! { dg-error "non-constant initialization" }
-       print *, p
-       END
-Index: gcc/testsuite/gfortran.dg/interface_assignment_5.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/interface_assignment_5.f90       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/interface_assignment_5.f90       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,49 @@
-+! { dg-do compile }
-+!
-+! PR 42677: [4.5 Regression] Bogus Error: Ambiguous interfaces '...' in intrinsic assignment operator
-+!
-+! Contributed by Harald Anlauf <anlauf@gmx.de>
-+
-+module mod1
-+  implicit none
-+  type t_m
-+     integer :: i = 0
-+  end type t_m
-+!------------------------------------------------------------------------------
-+  interface assignment (=)
-+     module procedure assign_m
-+  end interface
-+!------------------------------------------------------------------------------
-+contains
-+  subroutine assign_m (y, x)
-+    type(t_m) ,intent(inout) :: y
-+    type(t_m) ,intent(in)    :: x
-+  end subroutine assign_m
-+end module mod1
-+!==============================================================================
-+module mod2
-+  use mod1, only: t_m, assignment(=)
-+  implicit none
-+  type t_atm
-+     integer :: k
-+  end type t_atm
-+!------------------------------------------------------------------------------
-+  interface assignment(=)
-+     module procedure assign_to_atm
-+  end interface
-+!------------------------------------------------------------------------------
-+  interface
-+     pure subroutine delete_m (x)
-+       use mod1
-+       type(t_m) ,intent(in) :: x
-+     end subroutine delete_m
-+  end interface
-+!------------------------------------------------------------------------------
-+contains
-+  subroutine assign_to_atm (atm, r)
-+    type(t_atm) ,intent(inout) :: atm
-+    integer     ,intent(in)    :: r
-+  end subroutine assign_to_atm
-+end module mod2
-+ 
-+! { dg-final { cleanup-modules "mod1 mod2" } }
-Index: gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,50 @@
-+! { dg-do run }
-+! Test the fix for PR38324, in which the bounds were not set correctly for
-+! constructor assignments with allocatable components.
-+!
-+! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr>
-+!
-+  integer, parameter :: ik4 = 4
-+  integer, parameter :: ik8 = 8
-+  integer, parameter :: from = -1, to = 2
-+  call foo
-+  call bar
-+contains
-+  subroutine foo
-+    type :: struct
-+      integer(4), allocatable :: ib(:)
-+    end type struct
-+    integer(ik4), allocatable :: ia(:)
-+    type(struct) :: x
-+    allocate(ia(from:to))
-+    if (any(lbound(ia) .ne. -1) .or. any(ubound(ia) .ne. 2)) call abort
-+    if (any(lbound(ia(:)) .ne. 1) .or. any(ubound(ia(:)) .ne. 4)) call abort
-+    if (any(lbound(ia(from:to)) .ne. 1) .or. any(ubound(ia(from:to)) .ne. 4)) call abort
-+    x=struct(ia)
-+    if (any(lbound(x%ib) .ne. -1) .or. any(ubound(x%ib) .ne. 2)) call abort
-+    x=struct(ia(:))
-+    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
-+    x=struct(ia(from:to))
-+    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
-+    deallocate(ia)
-+  end subroutine
-+  subroutine bar
-+    type :: struct
-+      integer(4), allocatable :: ib(:)
-+    end type struct
-+    integer(ik8), allocatable :: ia(:)
-+    type(struct) :: x
-+    allocate(ia(from:to))
-+    if (any(lbound(ia) .ne. -1) .or. any(ubound(ia) .ne. 2)) call abort
-+    if (any(lbound(ia(:)) .ne. 1) .or. any(ubound(ia(:)) .ne. 4)) call abort
-+    if (any(lbound(ia(from:to)) .ne. 1) .or. any(ubound(ia(from:to)) .ne. 4)) call abort
-+    x=struct(ia)
-+    if (any(lbound(x%ib) .ne. -1) .or. any(ubound(x%ib) .ne. 2)) call abort
-+    x=struct(ia(:))
-+    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
-+    x=struct(ia(from:to))
-+    if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort
-+    deallocate(ia)
-+  end subroutine
-+end
-+
-Index: gcc/testsuite/gfortran.dg/interface_31.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/interface_31.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/interface_31.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,41 @@
-+! { dg-do compile }
-+! PR42684 (42680) Ice with Interface.
-+MODULE mod1
-+  IMPLICIT NONE  
-+  TYPE ta
-+    INTEGER i
-+  END TYPE ta
-+  INTERFACE OPERATOR(+)
-+    MODULE PROCEDURE add_a
-+  END INTERFACE OPERATOR(+)  
-+CONTAINS  
-+  FUNCTION add_a(lhs, rhs) RESULT(r)
-+    TYPE(ta), INTENT(IN) :: lhs
-+    TYPE(ta), INTENT(IN) :: rhs
-+    TYPE(ta) :: r
-+    !****
-+    r%i = lhs%i + rhs%i
-+  END FUNCTION add_a  
-+END MODULE mod1
-+
-+MODULE mod2
-+  IMPLICIT NONE 
-+  TYPE tb
-+    INTEGER j
-+  END TYPE tb
-+  INTERFACE OPERATOR(+)
-+    MODULE PROCEDURE add_b
-+  END INTERFACE OPERATOR(+)  
-+CONTAINS  
-+  SUBROUTINE other_proc()
-+    USE mod1    ! Causes ICE
-+  END SUBROUTINE other_proc  
-+  FUNCTION add_b(lhs, rhs) RESULT(r)
-+    TYPE(tb), INTENT(IN) :: lhs
-+    TYPE(tb), INTENT(IN) :: rhs
-+    TYPE(tb) :: r
-+    !****
-+    r%j = lhs%j + rhs%j
-+  END FUNCTION add_b  
-+END MODULE mod2
-+! { dg-final { cleanup-modules "mod1 mod2" } }
-Index: gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,39 @@
-+! { dg-do compile }
-+! Test the fix for the problems in PR41044
-+!
-+! Contributed by <ros@rzg.mpg.de>
-+! Reduced by Joos VandeVondele <jv244@cam.ac.uk>
-+!
-+  Subroutine PS_INIT (bkgd, punit, pform, psize, rot90, bbox, clip, eps,  &
-+                        caller)
-+    type psfd                          ! paper size and frame defaults
-+      character(3)                     :: n
-+      real                             :: p(2)
-+      real                             :: f(4)
-+    end type psfd
-+    character(4)                       :: fn, orich, pfmt
-+    type(psfd), parameter              :: pfd(0:11)=(/  &
-+         psfd('   ',(/   0.0,   0.0/),(/200.,120.,800.,560./)), &    ! A0_L
-+         psfd('A0 ',(/ 840.9,1189.2/),(/140., 84.,560.,400./)), &    ! A0_P
-+         psfd('A1 ',(/ 594.6, 840.9/),(/100., 60.,400.,280./)), &    ! A1_P
-+         psfd('A2 ',(/ 420.4, 594.6/),(/ 70., 42.,280.,200./)), &    ! A2_P
-+         psfd('A3 ',(/ 297.3, 420.4/),(/ 50., 30.,200.,140./)), &    ! A3_P
-+         psfd('A4 ',(/ 210.2, 297.3/),(/ 35., 21.,140.,100./)), &    ! A4_P
-+         psfd('A5 ',(/ 148.7, 210.2/),(/ 25., 15.,100., 70./)), &    ! A5_P
-+         psfd('A6 ',(/ 105.1, 148.7/),(/ 18., 11., 70., 50./)), &    ! A6_P
-+         psfd('   ',(/   0.0,   0.0/),(/ 50., 30.,200.,140./)), &    ! Letter_L
-+         psfd('LET',(/ 215.9, 279.4/),(/ 35., 21.,140.,100./)), &    ! Letter_P
-+         psfd('   ',(/   0.0,   0.0/),(/ 50., 30.,200.,140./)), &    ! Legal_L
-+         psfd('LEG',(/ 215.9, 355.6/),(/ 35., 21.,140.,100./))/)     ! Legal_P
-+    if (len_trim(pfmt) > 0) then       ! set paper format
-+      idx=sum(maxloc(index(pfd%n,pfmt(1:3))))-1
-+    end if
-+  end subroutine PS_INIT
-+
-+! This, additional problem, was posted as comment #8 by Tobias Burnus <burnus@gcc.gnu.org>
-+  type t
-+    integer :: i
-+  end type t
-+  type(t), parameter :: a(1) = t(4) ! [t(4)] worked OK
-+  real(a(1)%i) :: b
-+end
-Index: gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,38 @@
-+! { dg-do run }
-+! Tests the fix for PR41772 in which the empty array reference
-+! 'qname(1:n-1)' was not handled correctly in TRANSFER.
-+!
-+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
-+!
-+module m
-+  implicit none
-+contains
-+  pure function str_vs(vs) result(s)
-+    character, dimension(:), intent(in) :: vs
-+    character(len=size(vs)) :: s
-+    s = transfer(vs, s)
-+  end function str_vs
-+  subroutine has_key_ns(uri, localname, n)
-+    character(len=*), intent(in) :: uri, localname
-+    integer, intent(in) :: n
-+    if ((n .lt. 2) .and. (len (uri) .ne. 0)) then
-+      call abort
-+    else IF ((n .ge. 2) .and. (len (uri) .ne. n - 1)) then 
-+      call abort
-+    end if
-+  end subroutine
-+end module m
-+
-+  use m
-+  implicit none
-+  character, dimension(:), pointer :: QName
-+  integer :: n
-+  allocate(qname(6))
-+  qname = (/ 'a','b','c','d','e','f' /)
-+
-+  do n = 0, 3
-+    call has_key_ns(str_vs(qname(1:n-1)),"", n)
-+  end do
-+  deallocate(qname)
-+end
-+! { dg-final { cleanup-modules "m" } }
-\ No newline at end of file
-Index: gcc/testsuite/gfortran.dg/associated_target_3.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/associated_target_3.f90  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/associated_target_3.f90  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,35 @@
-+! { dg-do run }
-+!
-+! PR fortran/41777
-+!
-+module m
-+type t2
-+ integer :: i
-+end type t2
-+interface f
-+ module procedure f2
-+end interface f
-+contains
-+function f2(a)
-+  type(t2), pointer :: f2,a
-+  f2 => a
-+end function f2
-+end module m
-+
-+use m
-+implicit none
-+type(t2), pointer :: a
-+allocate(a)
-+if (.not. associated(a,f(a))) call abort()
-+call cmpPtr(a,f2(a))
-+call cmpPtr(a,f(a))
-+deallocate(a)
-+contains
-+  subroutine cmpPtr(a,b)
-+    type(t2), pointer :: a,b
-+!    print *, associated(a,b)
-+    if (.not. associated (a, b)) call abort()
-+  end subroutine cmpPtr
-+end
-+
-+! { dg-final { cleanup-modules "m" } }
-Index: gcc/testsuite/gfortran.dg/pr42294.f
-===================================================================
---- gcc/testsuite/gfortran.dg/pr42294.f        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr42294.f        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,41 @@
-+C PR rtl-optimization/42294
-+C { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } }
-+C { dg-options "-O2 -fselective-scheduling2 -fsel-sched-pipelining -funroll-all-loops" }
-+
-+      SUBROUTINE ORIEN(IW,NATOT,NTOTORB,NATORB,P,T)
-+      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
-+      DIMENSION NATORB(NATOT),P(NTOTORB*(NTOTORB+1)/2)
-+      DIMENSION T(NTOTORB,NTOTORB)
-+      DO 9000 IATOM=1,NATOT
-+         ILAST = NTOTORB
-+         IF (IATOM.NE.NATOT) ILAST=NATORB(IATOM+1)-1
-+         DO 8000 IAOI=NATORB(IATOM),ILAST
-+            DO 7000 IAOJ = IAOI+1,ILAST
-+               R2 = 0.0D+00
-+               R3 = 0.0D+00
-+               DO 6000 INOTA=1,NATOT
-+                  DO 5000 IK=NATORB(INOTA),NTOTORB
-+                     IMAI=MAX(IK,IAOI)
-+                     IMII=MIN(IK,IAOI)
-+                     IMAJ=MAX(IK,IAOJ)
-+                     IMIJ=MIN(IK,IAOJ)
-+                     IKI=(IMAI*(IMAI-1))/2 + IMII
-+                     IKJ=(IMAJ*(IMAJ-1))/2 + IMIJ
-+                     PIKI=P(IKI)
-+                     PIKJ=P(IKJ)
-+                     R2 = R2 + (PIKI**4)-6*(PIKI*PIKI*PIKJ*PIKJ)+(PIKJ)
-+ 5000             CONTINUE
-+ 6000          CONTINUE
-+               R2 = (R2/4.0D+00)
-+               Q = SQRT(R2*R2 + R3*R3)
-+               IF (Q.LT.1.0D-08) GO TO 7000
-+               A = COS(THETA)
-+               B = -SIN(THETA)
-+               CALL ROT1INT(NTOTORB,IAOI,IAOJ,A,B,P)
-+ 7000       CONTINUE
-+ 8000    CONTINUE
-+ 9000 CONTINUE
-+      RETURN
-+      END
-+
-+
-Index: gcc/testsuite/gfortran.dg/gomp/pr41344.f
-===================================================================
---- gcc/testsuite/gfortran.dg/gomp/pr41344.f   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/gomp/pr41344.f   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+      subroutine xrotate(nerr)
-+
-+      common /dfm/ndfl
-+
-+*$omp parallel private(ix)
-+      ix = 0
-+*$omp do
-+      do i=1,ndfl
-+         ix = ix + 1
-+       if (ix.gt.5) go to 9000 ! { dg-error "invalid (exit|branch)" }
-+      enddo
-+*$omp end do
-+*$omp end parallel
-+
-+9000  continue
-+      end
-Index: gcc/testsuite/gfortran.dg/namelist_60.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/namelist_60.f90  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/namelist_60.f90  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+! { dg-do run }
-+! PR42901  Reading array of structures from namelist
-+! Test case derived from the reporters test case.
-+program test_nml
-+type field_descr
-+  integer number
-+end type
-+type fsetup
-+  type (field_descr), dimension(3) :: vel ! 3 velocity components
-+end type
-+type (fsetup) field_setup
-+namelist /nl_setup/ field_setup
-+field_setup%vel%number = 0
-+! write(*,nml=nl_setup)
-+open(10, status="scratch")
-+write(10,'(a)') "&nl_setup"
-+write(10,'(a)') " field_setup%vel(1)%number=  3,"
-+write(10,'(a)') " field_setup%vel(2)%number=  9,"
-+write(10,'(a)') " field_setup%vel(3)%number=  27,"
-+write(10,'(a)') "/"
-+rewind(10)
-+read(10,nml=nl_setup)
-+if (field_setup%vel(1)%number .ne. 3) call abort
-+if (field_setup%vel(2)%number .ne. 9) call abort
-+if (field_setup%vel(3)%number .ne. 27) call abort
-+! write(*,nml=nl_setup)
-+end program test_nml
-Index: gcc/testsuite/gfortran.dg/bounds_check_15.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/bounds_check_15.f90      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/bounds_check_15.f90      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+! { dg-do run }
-+! { dg-options "-fbounds-check" }
-+! Test the fix for PR42783, in which a bogus array bounds violation
-+! with missing optional array argument.
-+!
-+! Contributed by Harald Anlauf <anlauf@gmx.de>
-+!
-+program gfcbug99
-+  implicit none
-+  character(len=8), parameter :: mnem_list(2) = "A"
-+
-+  call foo (mnem_list)  ! This call succeeds
-+  call foo ()           ! This call fails
-+contains
-+  subroutine foo (mnem_list)
-+    character(len=8) ,intent(in) ,optional :: mnem_list(:)
-+
-+    integer            :: i,j
-+    character(len=256) :: ml
-+    ml = ''
-+    j = 0
-+    if (present (mnem_list)) then
-+       do i = 1, size (mnem_list)
-+          if (mnem_list(i) /= "") then
-+             j = j + 1
-+             if (j > len (ml)/8) call abort ()
-+             ml((j-1)*8+1:(j-1)*8+8) = mnem_list(i)
-+          end if
-+       end do
-+    end if
-+    if (j > 0) print *, trim (ml(1:8))
-+  end subroutine foo
-+end program gfcbug99
-Index: gcc/testsuite/gfortran.dg/fmt_cache_2.f
-===================================================================
---- gcc/testsuite/gfortran.dg/fmt_cache_2.f    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/fmt_cache_2.f    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,36 @@
-+! { dg-do run }
-+! PR42742 Handle very large format strings correctly
-+! Test derived from example developed by Manfred Schwarb.
-+      character(12) bufarr(74)
-+      character(74*13+30) fmtstr,fmtstr2
-+      character(1) delim
-+      integer i,j,dat(5),pindx, loopcounter
-+      character(983) big_string ! any less and this test fails.
-+
-+      do i=1,74
-+        write(bufarr(i),'(i12)') i
-+      enddo
-+
-+      delim=" "
-+      dat(1)=2009
-+      dat(2)=10
-+      dat(3)=31
-+      dat(4)=3
-+      dat(5)=0
-+      fmtstr="(i2,i6,4(a1,i2.2)"
-+      open(10, status="scratch")
-+      do j=1,74
-+        fmtstr=fmtstr(1:len_trim(fmtstr))//",a1,a12"
-+        fmtstr2=fmtstr(1:len_trim(fmtstr))//")"
-+c        write(0,*) "interation ",j,": ",len_trim(fmtstr2)
-+        do i=1,10
-+          write(10,fmtstr2)
-+     &           i,dat(1),"-",dat(2),"-",dat(3),
-+     &           delim,dat(4),":",dat(5),
-+     &           (delim,bufarr(pindx),pindx=1,j)
-+        enddo
-+        loopcounter = j
-+      enddo
-+      close(10)
-+      if (loopcounter /= 74) call abort
-+      end
-Index: gcc/testsuite/gfortran.dg/module_write_1.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/module_write_1.f90       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/module_write_1.f90       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,59 @@
-+! { dg-do compile }
-+!
-+! PR fortran/41869
-+!
-+! Was ICEing while module write of symbol 'vs_str' in m_dom_dom
-+! because of "len" being private in fox_m_fsys_format.
-+!
-+module fox_m_fsys_array_str
-+contains
-+  pure function str_vs(vs) result(s)
-+    character, dimension(:), intent(in) :: vs
-+    character(len=size(vs)) :: s
-+    s = transfer(vs, s)
-+  end function str_vs
-+  pure function vs_str(s) result(vs)
-+    character(len=*), intent(in) :: s
-+    character, dimension(len(s)) :: vs
-+    vs = transfer(s, vs)
-+  end function vs_str
-+end module fox_m_fsys_array_str
-+
-+module fox_m_fsys_format
-+  private
-+  interface str
-+    module procedure  str_logical_array
-+  end interface str
-+  interface len
-+    module procedure str_logical_array_len
-+  end interface
-+  public :: str
-+contains
-+  pure function str_logical_array_len(la) result(n)
-+    logical, dimension(:), intent(in)   :: la
-+  end function str_logical_array_len
-+  pure function str_logical_array(la) result(s)
-+    logical, dimension(:), intent(in)   :: la
-+    character(len=len(la)) :: s
-+  end function str_logical_array
-+  pure function checkFmt(fmt) result(good)
-+    character(len=*), intent(in) :: fmt
-+    logical :: good
-+    good = len(fmt) > 0
-+  end function checkFmt
-+end module fox_m_fsys_format
-+
-+module m_dom_dom
-+  use fox_m_fsys_array_str, only: str_vs, vs_str
-+end module m_dom_dom
-+
-+module FoX_dom
-+  use fox_m_fsys_format
-+  use m_dom_dom
-+end module FoX_dom
-+
-+use FoX_dom
-+implicit none
-+print *, vs_str("ABC")
-+end
-+! { dg-final { cleanup-modules "fox_m_fsys_array_str fox_m_fsys_format m_dom_dom fox_dom" } }
-Index: gcc/testsuite/gfortran.dg/array_constructor_32.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/array_constructor_32.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/array_constructor_32.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+! { dg-do run }
-+! PR41807  data statement with nested type constructors
-+! Test case provided by Steve Kargl
-+  implicit none
-+
-+  type :: a
-+     real :: x(3)
-+  end type a
-+
-+  integer, parameter :: n = 3
-+
-+  type(a) :: b(n)
-+
-+  real, parameter :: d1(3) = (/1., 2., 3./)
-+  real, parameter :: d2(3) = (/4., 5., 6./)
-+  real, parameter :: d3(3) = (/7., 8., 9./)
-+
-+  integer :: i, z(n)
-+ 
-+  data (b(i), i = 1, n) /a(d1), a(d2), a(d3)/
-+  data (z(i), i = 1, n) / 1, 2, 3/
-+
-+  if (any(z.ne.[1, 2, 3])) call abort
-+  if (any(b(1)%x.ne.[1, 2, 3]) .or. &
-+      any(b(2)%x.ne.[4, 5, 6]) .or. &
-+      any(b(3)%x.ne.[7, 8, 9])) call abort
-+end
-+
-Index: gcc/testsuite/gfortran.dg/func_result_5.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/func_result_5.f90        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/func_result_5.f90        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+! { dg-do compile }
-+!
-+! PR fortran/42650
-+!
-+! Result type was not working
-+!
-+
-+type(t) function func2() result(res)
-+  type t
-+    sequence
-+    integer :: i = 5
-+  end type t
-+  res%i = 2
-+end function func2
-Index: gcc/testsuite/gfortran.dg/internal_pack_8.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/internal_pack_8.f90      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/internal_pack_8.f90      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+! { dg-do run }
-+!
-+! Test the fix for PR43111, in which necessary calls to
-+! internal PACK/UNPACK were not being generated because
-+! of an over agressive fix to PR41113/7.
-+!
-+! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
-+!
-+SUBROUTINE S2(I)
-+ INTEGER :: I(4)
-+ !write(6,*) I
-+ IF (ANY(I.NE.(/3,5,7,9/))) CALL ABORT()
-+END SUBROUTINE S2
-+
-+MODULE M1
-+ TYPE T1
-+  INTEGER, POINTER, DIMENSION(:) :: data
-+ END TYPE T1
-+CONTAINS
-+ SUBROUTINE S1()
-+   TYPE(T1) :: d
-+   INTEGER, TARGET, DIMENSION(10) :: scratch=(/(i,i=1,10)/)
-+   INTEGER :: i=2
-+   d%data=>scratch(1:9:2)
-+!   write(6,*) d%data(i:)
-+   CALL S2(d%data(i:))
-+ END SUBROUTINE S1
-+END MODULE M1
-+
-+USE M1
-+CALL S1
-+END
-+! { dg-final { cleanup-modules "M1" } }
-Index: gcc/testsuite/gfortran.dg/char_array_arg_1.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/char_array_arg_1.f90     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/char_array_arg_1.f90     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,17 @@
-+! { dg-do compile }
-+! Test the fix for pr41167, in which the first argument of 'pack', below,
-+! was simplified incorrectly, with the results indicated.
-+!
-+! Contributed by Harald Anlauf <anlauf@gmx.de>
-+!
-+program gfcbug88
-+  implicit none
-+  type t
-+     character(len=8) :: name
-+  end type t
-+  type(t) ,parameter :: obstyp(2)= (/ t ('A'), t ('B') /)
-+  character(9) :: chr(1)
-+
-+  print *, pack (" "//obstyp(:)% name, (/ .true., .false. /))  ! Used to ICE on compilation
-+  chr = pack (" "//obstyp(:)% name, (/ .true., .false. /))  ! Used to give conversion error
-+end program gfcbug88
-Index: gcc/testsuite/gfortran.dg/pr41928.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/pr41928.f90      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr41928.f90      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,263 @@
-+! { dg-do compile }
-+! { dg-options "-O -fbounds-check -w" }
-+MODULE kinds
-+  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND ( 14, 200 )
-+  INTEGER, DIMENSION(:), ALLOCATABLE     :: nco,ncoset,nso,nsoset
-+  INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: co,coset
-+END MODULE kinds
-+MODULE ai_moments
-+  USE kinds
-+CONTAINS
-+  SUBROUTINE cossin(la_max,npgfa,zeta,rpgfa,la_min,&
-+                    lb_max,npgfb,zetb,rpgfb,lb_min,&
-+                    rac,rbc,kvec,cosab,sinab)
-+    REAL(KIND=dp), DIMENSION(ncoset(la_max),&
-+      ncoset(lb_max))                        :: sc, ss
-+    DO ipgf=1,npgfa
-+      DO jpgf=1,npgfb
-+        IF (la_max > 0) THEN
-+          DO la=2,la_max
-+            DO ax=2,la
-+              DO ay=0,la-ax
-+                sc(coset(ax,ay,az),1) = rap(1)*sc(coset(ax-1,ay,az),1) +&
-+                              f2 *          kvec(1)*ss(coset(ax-1,ay,az),1)
-+                ss(coset(ax,ay,az),1) = rap(1)*ss(coset(ax-1,ay,az),1) +&
-+                              f2 *          kvec(1)*sc(coset(ax-1,ay,az),1)
-+              END DO
-+            END DO
-+          END DO
-+          IF (lb_max > 0) THEN
-+            DO lb=2,lb_max
-+              ss(1,coset(0,0,lb)) = rbp(3)*ss(1,coset(0,0,lb-1)) +&
-+                           f2 *         kvec(3)*sc(1,coset(0,0,lb-1))
-+              DO bx=2,lb
-+                DO by=0,lb-bx
-+                  ss(1,coset(bx,by,bz)) = rbp(1)*ss(1,coset(bx-1,by,bz)) +&
-+                               f2 *           kvec(1)*sc(1,coset(bx-1,by,bz))
-+                END DO
-+              END DO
-+            END DO
-+          END IF
-+        END IF
-+       DO j=ncoset(lb_min-1)+1,ncoset(lb_max)
-+        END DO
-+      END DO
-+    END DO
-+  END SUBROUTINE cossin
-+  SUBROUTINE moment(la_max,npgfa,zeta,rpgfa,la_min,&
-+                    lb_max,npgfb,zetb,rpgfb,&
-+                    lc_max,rac,rbc,mab)
-+    REAL(KIND=dp), DIMENSION(:), INTENT(IN)  :: zeta, rpgfa
-+    REAL(KIND=dp), DIMENSION(:), INTENT(IN)  :: zetb, rpgfb
-+    REAL(KIND=dp), DIMENSION(:, :, :), &
-+      INTENT(INOUT)                          :: mab
-+    REAL(KIND=dp), DIMENSION(3)              :: rab, rap, rbp, rpc
-+    REAL(KIND=dp), DIMENSION(ncoset(la_max),&
-+      ncoset(lb_max), ncoset(lc_max))        :: s
-+    DO ipgf=1,npgfa
-+      DO jpgf=1,npgfb
-+        IF (rpgfa(ipgf) + rpgfb(jpgf) < dab) THEN
-+          DO k=1, ncoset(lc_max)-1
-+            DO j=nb+1,nb+ncoset(lb_max)
-+              DO i=na+1,na+ncoset(la_max)
-+                mab(i,j,k) = 0.0_dp
-+              END DO
-+            END DO
-+          END DO
-+        END IF
-+        rpc = zetp*(zeta(ipgf)*rac+zetb(jpgf)*rbc)
-+        DO l=2, ncoset(lc_max)
-+          lx = indco(1,l)
-+          l2 = 0
-+          IF ( lz > 0 ) THEN
-+            IF ( lz > 1 ) l2 = coset(lx,ly,lz-2)
-+          ELSE IF ( ly > 0 ) THEN
-+            IF ( ly > 1 ) l2 = coset(lx,ly-2,lz)
-+            IF ( lx > 1 ) l2 = coset(lx-2,ly,lz)
-+          END IF
-+          s(1,1,l) = rpc(i)*s(1,1,l1)
-+          IF ( l2 > 0 ) s(1,1,l) = s(1,1,l) + f2*REAL(ni,dp)*s(1,1,l2)
-+        END DO
-+        DO l = 1, ncoset(lc_max)
-+          IF ( lx > 0 ) THEN 
-+            lx1 = coset(lx-1,ly,lz)
-+          END IF
-+          IF ( ly > 0 ) THEN 
-+            ly1 = coset(lx,ly-1,lz)
-+          END IF
-+          IF (la_max > 0) THEN
-+            DO la=2,la_max
-+              IF ( lz1 > 0 ) s(coset(0,0,la),1,l) = s(coset(0,0,la),1,l) + &
-+                             f2z*s(coset(0,0,la-1),1,lz1)
-+              IF ( ly1 > 0 ) s(coset(0,1,az),1,l) = s(coset(0,1,az),1,l) + &
-+                             f2y*s(coset(0,0,az),1,ly1)
-+              DO ay=2,la
-+                s(coset(0,ay,az),1,l) = rap(2)*s(coset(0,ay-1,az),1,l) +&
-+                                       f2*REAL(ay-1,dp)*s(coset(0,ay-2,az),1,l)
-+                IF ( ly1 > 0 ) s(coset(0,ay,az),1,l) = s(coset(0,ay,az),1,l) + &
-+                             f2y*s(coset(0,ay-1,az),1,ly1)
-+              END DO
-+              DO ay=0,la-1
-+                IF ( lx1 > 0 ) s(coset(1,ay,az),1,l) = s(coset(1,ay,az),1,l) + &
-+                             f2x*s(coset(0,ay,az),1,lx1)
-+              END DO
-+              DO ax=2,la
-+                DO ay=0,la-ax
-+                  s(coset(ax,ay,az),1,l) = rap(1)*s(coset(ax-1,ay,az),1,l) +&
-+                                          f3*s(coset(ax-2,ay,az),1,l) 
-+                  IF ( lx1 > 0 ) s(coset(ax,ay,az),1,l) = s(coset(ax,ay,az),1,l) + &
-+                                 f2x*s(coset(ax-1,ay,az),1,lx1)
-+                END DO
-+              END DO
-+            END DO
-+            IF (lb_max > 0) THEN
-+              DO j=2,ncoset(lb_max)
-+                DO i=1,ncoset(la_max)
-+                  s(i,j,l) = 0.0_dp
-+                END DO
-+              END DO
-+              DO la=la_start,la_max-1
-+                DO ax=0,la
-+                  DO ay=0,la-ax
-+                    s(coset(ax,ay,az),2,l) = s(coset(ax+1,ay,az),1,l) -&
-+                                           rab(1)*s(coset(ax,ay,az),1,l)
-+                    s(coset(ax,ay,az),4,l) = s(coset(ax,ay,az+1),1,l) -&
-+                                           rab(3)*s(coset(ax,ay,az),1,l)
-+                  END DO
-+                END DO
-+              END DO
-+              DO ax=0,la_max
-+                DO ay=0,la_max-ax
-+                  IF (ax == 0) THEN
-+                    s(coset(ax,ay,az),2,l) = rbp(1)*s(coset(ax,ay,az),1,l)
-+                  ELSE
-+                    s(coset(ax,ay,az),2,l) = rbp(1)*s(coset(ax,ay,az),1,l) +&
-+                                            fx*s(coset(ax-1,ay,az),1,l)
-+                  END IF
-+                  IF (lx1 > 0) s(coset(ax,ay,az),2,l) = s(coset(ax,ay,az),2,l) +&
-+                        f2x*s(coset(ax,ay,az),1,lx1)
-+                  IF (ay == 0) THEN
-+                    s(coset(ax,ay,az),3,l) = rbp(2)*s(coset(ax,ay,az),1,l)
-+                  ELSE
-+                    s(coset(ax,ay,az),3,l) = rbp(2)*s(coset(ax,ay,az),1,l) +&
-+                                            fy*s(coset(ax,ay-1,az),1,l)
-+                  END IF
-+                  IF (ly1 > 0) s(coset(ax,ay,az),3,l) = s(coset(ax,ay,az),3,l) +&
-+                        f2y*s(coset(ax,ay,az),1,ly1)
-+                  IF (az == 0) THEN
-+                    s(coset(ax,ay,az),4,l) = rbp(3)*s(coset(ax,ay,az),1,l)
-+                  ELSE
-+                    s(coset(ax,ay,az),4,l) = rbp(3)*s(coset(ax,ay,az),1,l) +&
-+                                            fz*s(coset(ax,ay,az-1),1,l)
-+                  END IF
-+                  IF (lz1 > 0) s(coset(ax,ay,az),4,l) = s(coset(ax,ay,az),4,l) +&
-+                        f2z*s(coset(ax,ay,az),1,lz1)
-+                END DO
-+              END DO
-+              DO lb=2,lb_max
-+                DO la=la_start,la_max-1
-+                  DO ax=0,la
-+                    DO ay=0,la-ax
-+                      s(coset(ax,ay,az),coset(0,0,lb),l) =&
-+                        rab(3)*s(coset(ax,ay,az),coset(0,0,lb-1),l)
-+                      DO bx=1,lb
-+                        DO by=0,lb-bx
-+                          s(coset(ax,ay,az),coset(bx,by,bz),l) =&
-+                            rab(1)*s(coset(ax,ay,az),coset(bx-1,by,bz),l)
-+                        END DO
-+                      END DO
-+                    END DO
-+                  END DO
-+                END DO
-+                DO ax=0,la_max
-+                  DO ay=0,la_max-ax
-+                    IF (az == 0) THEN
-+                      s(coset(ax,ay,az),coset(0,0,lb),l) =&
-+                        rbp(3)*s(coset(ax,ay,az),coset(0,0,lb-1),l) +&
-+                        f3*s(coset(ax,ay,az),coset(0,0,lb-2),l)
-+                    END IF
-+                    IF (lz1 > 0) s(coset(ax,ay,az),coset(0,0,lb),l) =&
-+                                 f2z*s(coset(ax,ay,az),coset(0,0,lb-1),lz1)
-+                    IF (ay == 0) THEN
-+                      IF (ly1 > 0) s(coset(ax,ay,az),coset(0,1,bz),l) =&
-+                                 f2y*s(coset(ax,ay,az),coset(0,0,bz),ly1)
-+                      DO by=2,lb
-+                        s(coset(ax,ay,az),coset(0,by,bz),l) =&
-+                          f3*s(coset(ax,ay,az),coset(0,by-2,bz),l)
-+                        IF (ly1 > 0) s(coset(ax,ay,az),coset(0,by,bz),l) =&
-+                                 f2y*s(coset(ax,ay,az),coset(0,by-1,bz),ly1)
-+                      END DO
-+                      s(coset(ax,ay,az),coset(0,1,bz),l) =&
-+                        fy*s(coset(ax,ay-1,az),coset(0,0,bz),l)
-+                    END IF
-+                    IF (ax == 0) THEN
-+                      DO by=0,lb-1
-+                        IF (lx1 > 0) s(coset(ax,ay,az),coset(1,by,bz),l) =&
-+                                 f2x*s(coset(ax,ay,az),coset(0,by,bz),lx1)
-+                      END DO
-+                      DO bx=2,lb
-+                        DO by=0,lb-bx
-+                          s(coset(ax,ay,az),coset(bx,by,bz),l) =&
-+                            f3*s(coset(ax,ay,az),coset(bx-2,by,bz),l)
-+                          IF (lx1 > 0) s(coset(ax,ay,az),coset(bx,by,bz),l) =&
-+                                 f2x*s(coset(ax,ay,az),coset(bx-1,by,bz),lx1)
-+                        END DO
-+                      END DO
-+                      DO by=0,lb-1
-+                        IF (lx1 > 0) s(coset(ax,ay,az),coset(1,by,bz),l) =&
-+                                 f2x*s(coset(ax,ay,az),coset(0,by,bz),lx1)
-+                      END DO
-+                      DO bx=2,lb
-+                        DO by=0,lb-bx
-+                          s(coset(ax,ay,az),coset(bx,by,bz),l) =&
-+                            f3*s(coset(ax,ay,az),coset(bx-2,by,bz),l)
-+                          IF (lx1 > 0) s(coset(ax,ay,az),coset(bx,by,bz),l) =&
-+                                 f2x*s(coset(ax,ay,az),coset(bx-1,by,bz),lx1)
-+                        END DO
-+                      END DO
-+                    END IF
-+                  END DO
-+                END DO
-+              END DO
-+            END IF
-+            IF (lb_max > 0) THEN
-+              DO lb=2,lb_max
-+                IF (lz1 > 0) s(1,coset(0,0,lb),l) = s(1,coset(0,0,lb),l) +&
-+                             f2z*s(1,coset(0,0,lb-1),lz1)
-+                IF (ly1 > 0) s(1,coset(0,1,bz),l) = s(1,coset(0,1,bz),l) +&
-+                             f2y*s(1,coset(0,0,bz),ly1)
-+              DO by=2,lb
-+                s(1,coset(0,by,bz),l) = rbp(2)*s(1,coset(0,by-1,bz),l) +&
-+                                       f2*REAL(by-1,dp)*s(1,coset(0,by-2,bz),l)
-+                IF (lx1 > 0) s(1,coset(1,by,bz),l) = s(1,coset(1,by,bz),l) +&
-+                             f2x*s(1,coset(0,by,bz),lx1)
-+              END DO
-+              DO bx=2,lb
-+                DO by=0,lb-bx
-+                  IF (lx1 > 0) s(1,coset(bx,by,bz),l) = s(1,coset(bx,by,bz),l) +&
-+                               f2x*s(1,coset(bx-1,by,bz),lx1)
-+                END DO
-+              END DO
-+            END DO
-+          END IF
-+        END IF
-+        END DO
-+        DO k=2,ncoset(lc_max)
-+          DO j=1,ncoset(lb_max)
-+          END DO
-+        END DO
-+      END DO
-+    END DO
-+  END SUBROUTINE moment
-+  SUBROUTINE diff_momop(la_max,npgfa,zeta,rpgfa,la_min,&
-+                    order,rac,rbc,difmab,mab_ext)
-+    REAL(KIND=dp), DIMENSION(:, :, :), &
-+      OPTIONAL, POINTER                      :: mab_ext
-+    REAL(KIND=dp), ALLOCATABLE, &
-+      DIMENSION(:, :, :)                     :: difmab_tmp
-+    DO imom = 1,ncoset(order)-1
-+      CALL adbdr(la_max,npgfa,rpgfa,la_min,&
-+                 difmab_tmp(:,:,2), difmab_tmp(:,:,3))
-+    END DO
-+  END SUBROUTINE diff_momop
-+END MODULE ai_moments
-Index: gcc/testsuite/gfortran.dg/namelist_59.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/namelist_59.f90  (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/namelist_59.f90  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,26 @@
-+! { dg-do run }
-+! PR41192 NAMELIST input with just a comment ("&NAME ! comment \") error 
-+program cmdline
-+! comment by itself causes error in gfortran
-+   call process(' ')
-+   call process('i=10 , j=20 k=30 ! change all three values')
-+   call process(' ')
-+   call process('! change no values')! before patch this failed.
-+end program cmdline
-+
-+subroutine process(string)
-+ implicit none
-+ character(len=*) :: string
-+ character(len=132) :: lines(3)
-+ character(len=255) :: message
-+ integer :: i=1,j=2,k=3
-+ integer ios
-+ namelist /cmd/ i,j,k
-+ save cmd
-+ lines(1)='&cmd'
-+ lines(2)=string
-+ lines(3)='/'
-+
-+ read(lines,nml=cmd,iostat=ios,iomsg=message)
-+ if (ios.ne.0) call abort
-+end subroutine process
-Index: gcc/testsuite/gfortran.dg/pr42166.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/pr42166.f90      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr42166.f90      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,20 @@
-+! { dg-options "-O2 -g" }
-+
-+MODULE powell
-+  INTEGER, PARAMETER :: dp=8
-+CONTAINS
-+  SUBROUTINE newuob (n,  bmat,  ndim,  d,  vlag,  w, npt)
-+    REAL(dp), DIMENSION(ndim, *), INTENT(inout) :: bmat
-+    REAL(dp), DIMENSION(*), INTENT(inout)    :: d, vlag, w
-+    REAL(dp) :: sum
-+    INTEGER, INTENT(in) :: npt
-+    DO j=1,n
-+       jp=npt+j
-+       DO k=1,n
-+          sum=sum+bmat(jp,k)*d(k)
-+       END DO
-+       vlag(jp)=sum
-+    END DO
-+  END SUBROUTINE newuob
-+END MODULE powell
-+
-Index: gcc/testsuite/gfortran.dg/array_function_5.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/array_function_5.f90     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/array_function_5.f90     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+! {  dg-do run )
-+! PR41278 internal compiler error related to matmul and transpose
-+! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+program bug
-+  implicit none
-+  real, dimension(3,3) :: matA,matB,matC
-+
-+  matA(1,:)=(/1., 2., 3./)
-+  matA(2,:)=(/4., 5., 6./)
-+  matA(3,:)=(/7., 8., 9./)
-+
-+  matB=matmul(transpose(0.5*matA),matA)
-+  matC = transpose(0.5*matA)
-+  matC = matmul(matC, matA)
-+  if (any(matB.ne.matC)) call abort()
-+end program bug
-Index: gcc/testsuite/gfortran.dg/list_read_10.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/list_read_10.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/list_read_10.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,14 @@
-+! { dg-do run }
-+! PR 42422 - read with a repeat specifyer following a separator
-+program main
-+  integer, dimension(10) :: i1, i2
-+
-+  i1 = 0
-+  i2 = (/ 1, 2, 3, 5, 5, 5, 5, 0, 0, 0 /)
-+  open (10,file="pr42422.dat")
-+  write (10,'(A)') ' 1 2 3 4*5 /'
-+  rewind 10
-+  read (10,*) i1
-+  if (any(i1 /= i2)) call abort
-+  close (10,status="delete")
-+end program main
-Index: gcc/testsuite/gfortran.dg/c_assoc_3.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/c_assoc_3.f90    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/c_assoc_3.f90    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+! { dg-do compile }
-+!
-+! PR fortran/43303
-+!
-+! Contributed by Dennis Wassel
-+!
-+PROGRAM c_assoc
-+  use iso_c_binding
-+  type(c_ptr) :: x
-+  x = c_null_ptr
-+  print *, C_ASSOCIATED(x) ! <<< was ICEing here
-+  if (C_ASSOCIATED(x)) call abort ()
-+END PROGRAM c_assoc
-Index: gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- ! { dg-do run }
--! { dg-options "-O2 -fdump-tree-original" }
-+! { dg-options "-fdump-tree-original" }
- !
- ! Check some basic functionality of allocatable components, including that they
- ! are nullified when created and automatically deallocated when
-Index: gcc/testsuite/gfortran.dg/dependency_25.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/dependency_25.f90        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/dependency_25.f90        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,95 @@
-+! { dg-do run }
-+! Test the fix for PR42736, in which an excessively rigorous dependency
-+! checking for the assignment generated an unnecessary temporary, whose
-+! rank was wrong.  When accessed by the scalarizer, a segfault ensued.
-+!
-+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
-+! Reported by Armelius Cameron <armeliusc@gmail.com>
-+!
-+module UnitValue_Module
-+
-+  implicit none
-+  private
-+
-+  public :: &
-+    operator(*), &
-+    assignment(=)
-+
-+  type, public :: UnitValue
-+    real :: &
-+      Value = 1.0
-+    character(31) :: &
-+      Label
-+  end type UnitValue
-+
-+  interface operator(*)
-+    module procedure ProductReal_LV
-+  end interface operator(*)
-+
-+  interface assignment(=)
-+    module procedure Assign_LV_Real
-+  end interface assignment(=)
-+
-+contains
-+
-+  elemental function ProductReal_LV(Multiplier, Multiplicand) result(P_R_LV)
-+
-+    real, intent(in) :: &
-+      Multiplier
-+    type(UnitValue), intent(in) :: &
-+      Multiplicand
-+    type(UnitValue) :: &
-+      P_R_LV
-+
-+    P_R_LV%Value = Multiplier * Multiplicand%Value
-+    P_R_LV%Label = Multiplicand%Label
-+
-+  end function ProductReal_LV
-+
-+
-+  elemental subroutine Assign_LV_Real(LeftHandSide, RightHandSide)
-+
-+    real, intent(inout) :: &
-+      LeftHandSide
-+    type(UnitValue), intent(in) :: &
-+      RightHandSide
-+
-+    LeftHandSide = RightHandSide%Value
-+
-+  end subroutine Assign_LV_Real
-+
-+end module UnitValue_Module
-+
-+program TestProgram
-+
-+  use UnitValue_Module
-+
-+  implicit none
-+
-+  type :: TableForm
-+    real, dimension(:,:), allocatable :: &
-+      RealData
-+  end type TableForm
-+
-+  type(UnitValue) :: &
-+    CENTIMETER
-+
-+  type(TableForm), pointer :: &
-+    Table
-+
-+  allocate(Table)
-+  allocate(Table%RealData(10,5))
-+
-+  CENTIMETER%value = 42
-+  Table%RealData = 1
-+  Table%RealData(:,1) = Table%RealData(:,1) * CENTIMETER
-+  Table%RealData(:,2) = Table%RealData(:,2) * CENTIMETER
-+  Table%RealData(:,3) = Table%RealData(:,3) * CENTIMETER
-+  Table%RealData(:,5) = Table%RealData(:,5) * CENTIMETER
-+
-+!  print *, Table%RealData
-+  if (any (abs(Table%RealData(:,4) - 1) > epsilon(1.0))) call abort ()
-+  if (any (abs(Table%RealData(:,[1,2,3,5]) - 42) > epsilon(1.0))) call abort ()
-+end program TestProgram
-+
-+! { dg-final { cleanup-modules "UnitValue_Module" } }
-Index: gcc/testsuite/gfortran.dg/equiv_8.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/equiv_8.f90      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/equiv_8.f90      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,7 @@
-+! { dg-do compile }
-+!
-+! PR fortran/41755
-+!
-+      common /uno/ aa
-+      equivalence (aa,aaaaa)   (bb,cc) ! { dg-error "Expecting a comma in EQUIVALENCE" }
-+      end
-Index: gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,16 @@
-+! { dg-do run }
-+!
-+! PR 41478: Corrupted memory using PACK for derived-types with allocated components
-+! PR 42268: [4.4/4.5 Regression] derived type segfault with pack
-+!
-+! Original test case by Juergen Reuter <reuter@physik.uni-freiburg.de>
-+! Modified by Janus Weil <janus@gcc.gnu.org>
-+
-+type :: container_t
-+  integer:: entry = -1
-+end type container_t
-+type(container_t), dimension(1) :: a1, a2
-+a2(1)%entry = 1
-+a1 = pack (a2, mask = [.true.])
-+if (a1(1)%entry/=1) call abort()
-+end
-Index: gcc/testsuite/gfortran.dg/array_constructor_35.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/array_constructor_35.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/array_constructor_35.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,9 @@
-+! { dg-do compile }
-+! PR42999  bogus error: Parameter 'i' at (1) has not been declared
-+! or is a variable, which does not reduce to a constant expression
-+ TYPE DD
-+  INTEGER :: I
-+ END TYPE DD
-+ TYPE(DD) :: X(2)=(/(DD(I),I=1,2)/)
-+ END
-+
-Index: gcc/testsuite/gfortran.dg/generic_21.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/generic_21.f90   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/generic_21.f90   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+! { dg-do compile }
-+!
-+! PR fortran/42858
-+!
-+! Contributed by Harald Anlauf
-+!
-+module gfcbug102
-+  implicit none
-+  type t_vector_segm
-+     real ,pointer :: x(:) => NULL()
-+  end type t_vector_segm
-+
-+  type t_vector
-+     integer                       :: n_s     =  0
-+     type (t_vector_segm) ,pointer :: s (:)   => NULL()
-+  end type t_vector
-+
-+  interface sqrt
-+     module procedure sqrt_vector
-+  end interface sqrt
-+
-+contains
-+  function sqrt_vector (x) result (y)
-+    type (t_vector)             :: y
-+    type (t_vector) ,intent(in) :: x
-+    integer :: i
-+    do i = 1, y% n_s
-+       y% s(i)% x = sqrt (x% s(i)% x)
-+    end do
-+  end function sqrt_vector
-+end module gfcbug102
-+
-+! { dg-final { cleanup-modules "gfcbug102" } }
-Index: gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+! { dg-do run }
-+! Tests the fix for PR42309, in which the indexing of 'Q'
-+! was off by one.
-+!
-+! Contributed by Gilbert Scott <gilbert.scott@easynet.co.uk>
-+!
-+PROGRAM X
-+  TYPE T
-+    INTEGER :: I
-+    REAL :: X
-+  END TYPE T
-+  TYPE(T), TARGET :: T1(0:3)
-+  INTEGER, POINTER :: P(:)
-+  REAL :: SOURCE(4) = [10., 20., 30., 40.]
-+
-+  T1%I = [1, 2, 3, 4]
-+  T1%X = SOURCE
-+  P => T1%I
-+  CALL Z(P)
-+  IF (ANY (T1%I .NE. [999, 2, 999, 4])) CALL ABORT
-+  IF (ANY (T1%X .NE. SOURCE)) CALL ABORT
-+CONTAINS
-+  SUBROUTINE Z(Q)
-+    INTEGER, POINTER :: Q(:)
-+    Q(1:3:2) = 999
-+  END SUBROUTINE Z
-+END PROGRAM X
-Index: gcc/testsuite/gfortran.dg/recursive_check_15.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/recursive_check_15.f90   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/recursive_check_15.f90   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,12 @@
-+! { dg-do compile }
-+! PR41909 ICE with "call foo" in "program foo"
-+program test ! { dg-error "Global name" }
-+  implicit none
-+  call test()  ! { dg-error "" }
-+contains
-+  subroutine one(a)
-+    real, dimension(:,:), intent(inout), optional :: a
-+    call two(a)
-+  end subroutine one
-+end program test
-+
-Index: gcc/testsuite/gfortran.dg/intent_out_6.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/intent_out_6.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/intent_out_6.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,39 @@
-+! { dg-do run }
-+!
-+! PR fortran/41850
-+!
-+module test_module
-+  implicit none
-+contains
-+  subroutine sub2(a)
-+    implicit none
-+    real,allocatable,intent(out),optional :: a(:)
-+    if(present(a)) then
-+      if(allocated(a)) call abort()
-+      allocate(a(1))
-+      a(1) = 5
-+    end if
-+  end subroutine sub2
-+  subroutine sub1(a)
-+    implicit none
-+    real,allocatable,intent(out),optional :: a(:)
-+!    print *,'in sub1'
-+    call sub2(a)
-+    if(present(a)) then
-+      if(a(1) /= 5) call abort()
-+    end if
-+  end subroutine sub1
-+end module test_module
-+
-+program test
-+  use test_module
-+  implicit none
-+  real, allocatable :: x(:)
-+  allocate(x(1))
-+  call sub1()
-+  x = 8
-+  call sub1(x)
-+  if(x(1) /= 5) call abort()
-+end program
-+
-+! { dg-final { cleanup-modules "test_module" } }
-Index: gcc/testsuite/gfortran.dg/direct_io_11.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/direct_io_11.f90 (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/direct_io_11.f90 (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,55 @@
-+! { dg-do run }
-+! PR42090 Problems reading partial records in formatted direct access files
-+! Test case from PR, prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org>
-+program da_good_now
-+  implicit none
-+  real :: a, b
-+
-+  a = 1.111111111
-+  b = 2.222222222
-+
-+  open( 10, file = 't.dat', form = 'formatted', access = 'direct', recl = 12 )
-+  write( 10, rec = 1, fmt = '( f6.4, /, f6.4 )' ) a, b
-+  close( 10 )
-+
-+  a = -1.0
-+  b = -1.0
-+
-+  open( 10, file = 't.dat', form = 'formatted', access = 'direct', recl = 12 )
-+
-+  read( 10, rec = 1, fmt = '( f6.4, /, f6.4 )' ) a, b
-+  !write( *, '( "partial record 1", t25, 2( f6.4, 1x ) )' ) a, b
-+  a = -1.0
-+  b = -1.0
-+
-+  read( 10, rec = 1, fmt = '( f6.4 )' ) a, b
-+  !write( *, '( "partial record 2", t25, 2( f6.4, 1x ) )' ) a, b
-+  if (a /= 1.1111 .and. b /= 2.2222) call abort()
-+  a = -1.0
-+  b = -1.0
-+
-+  read( 10, rec = 1, fmt = '( f12.4, /, f12.4 )' ) a, b
-+  !write( *, '( "full record 1", t25, 2( f6.4, 1x ) )' ) a, b
-+  if (a /= 1.1111 .and. b /= 2.2222) call abort()
-+  a = -1.0
-+  b = -1.0
-+
-+  read( 10, rec = 1, fmt = '( f12.4 )' ) a, b
-+  !write( *, '( "full record 2", t25, 2( f6.4, 1x ) )' ) a, b
-+  if (a /= 1.1111 .and. b /= 2.2222) call abort()
-+  a = -1.0
-+  b = -1.0
-+
-+  read( 10, rec = 1, fmt = '( f6.4, 6x, /, f6.4, 6x )' ) a, b
-+  !write( *, '( "full record with 6x", t25, 2( f6.4, 1x ) )' ) a, b
-+  if (a /= 1.1111 .and. b /= 2.2222) call abort()
-+  a = -1.0
-+  b = -1.0
-+
-+  read( 10, rec = 1, fmt = '( f6.4 )' ) a
-+  read( 10, rec = 2, fmt = '( f6.4 )' ) b
-+  !write( *, '( "record at a time", t25, 2( f6.4, 1x ) )' ) a, b
-+  if (a /= 1.1111 .and. b /= 2.2222) call abort()
-+
-+  close( 10, status="delete")
-+end program da_good_now
-Index: gcc/testsuite/objc/execute/forward-1.x
-===================================================================
---- gcc/testsuite/objc/execute/forward-1.x     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/testsuite/objc/execute/forward-1.x     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,8 +1,6 @@
- load_lib target-supports.exp
- # XFAIL: PR libobjc/36610, for targets which pass arguments via registers
--# For powerpc-darwin it fails with -fgnu-runtime, passes with -fnext-runtime,
--# but that would be too ugly to handle; let it fail there.
- if { ([istarget x86_64-*-linux*] && [check_effective_target_lp64] )
-      || [istarget powerpc*-*-linux*]
-@@ -15,4 +13,21 @@
-     set torture_execute_xfail "*-*-*"
- }
-+# For darwin and alpha-linux it fails with -fgnu-runtime,
-+# passes with -fnext-runtime.
-+
-+if { ([istarget x86_64-*-darwin*] && [check_effective_target_lp64] )
-+     || [istarget powerpc*-*-darwin*]
-+     || [istarget alpha*-*-linux*] } {
-+    set torture_eval_before_execute {
-+      global compiler_conditional_xfail_data
-+      set compiler_conditional_xfail_data {
-+          "Target fails with -fgnu-runtime" \
-+              "*-*-*" \
-+              { "-fgnu-runtime" } \
-+              { "" }
-+      }
-+    }
-+}
-+
- return 0
-Index: gcc/testsuite/c-c++-common/builtin-offsetof.c
-===================================================================
---- gcc/testsuite/c-c++-common/builtin-offsetof.c      (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/c-c++-common/builtin-offsetof.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,28 @@
-+// Contributed by Dodji Seketeli <dodji@redhat.com>
-+// Origin PR c++/38699
-+// { dg-options "-Warray-bounds" }
-+// { dg-do compile }
-+
-+struct A
-+{
-+  const char *p;
-+};
-+
-+struct B
-+{
-+    char p[10];
-+    struct A a;
-+};
-+
-+void
-+f0 ()
-+{
-+  __builtin_offsetof(struct A, p); // OK
-+  __builtin_offsetof(struct A, p[0]); // { dg-error "non constant address" }
-+  __builtin_offsetof(struct B, p[0]); // OK
-+  __builtin_offsetof(struct B, p[9]); // OK
-+  __builtin_offsetof(struct B, p[10]); // OK
-+  __builtin_offsetof(struct B, a.p); // OK
-+  __builtin_offsetof(struct B, p[0]); // OK
-+  __builtin_offsetof(struct B, a.p[0]); // { dg-error "non constant address" }
-+}
-Index: gcc/testsuite/c-c++-common/pr42674.c
-===================================================================
---- gcc/testsuite/c-c++-common/pr42674.c       (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/testsuite/c-c++-common/pr42674.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,13 @@
-+/* PR middle-end/42674 */
-+/* { dg-do compile } */
-+/* { dg-options "-Wreturn-type" } */
-+
-+extern void bar (void);
-+static int foo (void) __attribute__ ((__noreturn__, __used__));
-+
-+static int
-+foo (void)
-+{
-+  while (1)
-+    bar ();
-+}
-Index: gcc/objcp/ChangeLog
-===================================================================
---- gcc/objcp/ChangeLog        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/objcp/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: gcc/cp/typeck.c
-===================================================================
---- gcc/cp/typeck.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/typeck.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -5463,12 +5463,17 @@
-                intype, type);
-       expr = cp_build_unary_op (ADDR_EXPR, expr, 0, complain);
-+
-+      if (warn_strict_aliasing > 2)
-+      strict_aliasing_warning (TREE_TYPE (expr), type, expr);
-+
-       if (expr != error_mark_node)
-       expr = build_reinterpret_cast_1
-         (build_pointer_type (TREE_TYPE (type)), expr, c_cast_p,
-          valid_p, complain);
-       if (expr != error_mark_node)
--      expr = cp_build_indirect_ref (expr, 0, complain);
-+      /* cp_build_indirect_ref isn't right for rvalue refs.  */
-+      expr = convert_from_reference (fold_convert (type, expr));
-       return expr;
-     }
-@@ -6091,11 +6096,15 @@
-     {
-       int from_array;
--      if (BRACE_ENCLOSED_INITIALIZER_P (rhs))
--      rhs = digest_init (lhstype, rhs);
-+      if (BRACE_ENCLOSED_INITIALIZER_P (newrhs))
-+      {
-+        if (check_array_initializer (lhs, lhstype, newrhs))
-+          return error_mark_node;
-+        newrhs = digest_init (lhstype, newrhs);
-+      }
-       else if (!same_or_base_type_p (TYPE_MAIN_VARIANT (lhstype),
--                                   TYPE_MAIN_VARIANT (TREE_TYPE (rhs))))
-+                                   TYPE_MAIN_VARIANT (TREE_TYPE (newrhs))))
-       {
-         if (complain & tf_error)
-           error ("incompatible types in assignment of %qT to %qT",
-Index: gcc/cp/decl.c
-===================================================================
---- gcc/cp/decl.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/decl.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -7133,16 +7133,9 @@
- {
-   if (TREE_CODE (member_type) == METHOD_TYPE)
-     {
--      tree arg_types;
--
--      arg_types = TYPE_ARG_TYPES (member_type);
--      class_type = (cp_build_qualified_type
--                  (class_type,
--                   cp_type_quals (TREE_TYPE (TREE_VALUE (arg_types)))));
--      member_type
--      = build_method_type_directly (class_type,
--                                    TREE_TYPE (member_type),
--                                    TREE_CHAIN (arg_types));
-+      tree arg_types = TYPE_ARG_TYPES (member_type);
-+      cp_cv_quals quals = cp_type_quals (TREE_TYPE (TREE_VALUE (arg_types)));
-+      member_type = build_memfn_type (member_type, class_type, quals);
-       return build_ptrmemfunc_type (build_pointer_type (member_type));
-     }
-   else
-@@ -7225,11 +7218,8 @@
-        structural equality checks.  */
-       itype = build_index_type (build_min (MINUS_EXPR, sizetype,
-                                          size, integer_one_node));
--      if (!TREE_SIDE_EFFECTS (size))
--      {
--        TYPE_DEPENDENT_P (itype) = 1;
--        TYPE_DEPENDENT_P_VALID (itype) = 1;
--      }
-+      TYPE_DEPENDENT_P (itype) = 1;
-+      TYPE_DEPENDENT_P_VALID (itype) = 1;
-       SET_TYPE_STRUCTURAL_EQUALITY (itype);
-       return itype;
-     }
-@@ -8898,7 +8888,9 @@
-       tree decls = NULL_TREE;
-       tree args;
--      for (args = TYPE_ARG_TYPES (type); args; args = TREE_CHAIN (args))
-+      for (args = TYPE_ARG_TYPES (type);
-+         args && args != void_list_node;
-+         args = TREE_CHAIN (args))
-       {
-         tree decl = cp_build_parm_decl (NULL_TREE, TREE_VALUE (args));
-@@ -12361,6 +12353,8 @@
-       && !current_function_returns_value && !current_function_returns_null
-       /* Don't complain if we abort or throw.  */
-       && !current_function_returns_abnormally
-+      /* Don't complain if we are declared noreturn.  */
-+      && !TREE_THIS_VOLATILE (fndecl)
-       && !DECL_NAME (DECL_RESULT (fndecl))
-       && !TREE_NO_WARNING (fndecl)
-       /* Structor return values (if any) are set by the compiler.  */
-Index: gcc/cp/call.c
-===================================================================
---- gcc/cp/call.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/call.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -887,10 +887,7 @@
-         || cp_type_quals (fbase) != cp_type_quals (tbase))
-       return NULL;
--      from = cp_build_qualified_type (tbase, cp_type_quals (fbase));
--      from = build_method_type_directly (from,
--                                       TREE_TYPE (fromfn),
--                                       TREE_CHAIN (TYPE_ARG_TYPES (fromfn)));
-+      from = build_memfn_type (fromfn, tbase, cp_type_quals (tbase));
-       from = build_ptrmemfunc_type (build_pointer_type (from));
-       conv = build_conv (ck_pmem, from, conv);
-       conv->base_p = true;
-@@ -1221,6 +1218,8 @@
-         && CONSTRUCTOR_NELTS (expr) == 1)
-       {
-         expr = CONSTRUCTOR_ELT (expr, 0)->value;
-+        if (error_operand_p (expr))
-+          return NULL;
-         from = TREE_TYPE (expr);
-       }
-     }
-@@ -4744,7 +4743,7 @@
-   switch (convs->kind)
-     {
-     case ck_rvalue:
--      expr = convert_bitfield_to_declared_type (expr);
-+      expr = decay_conversion (expr);
-       if (! MAYBE_CLASS_TYPE_P (totype))
-       return expr;
-       /* Else fall through.  */
-@@ -6327,8 +6326,9 @@
-       /* We couldn't make up our minds; try to figure it out below.  */
-     }
--  if (ics1->ellipsis_p)
--    /* Both conversions are ellipsis conversions.  */
-+  if (ics1->ellipsis_p || ics1->kind == ck_list)
-+    /* Both conversions are ellipsis conversions or both are building a
-+       std::initializer_list.  */
-     return 0;
-   /* User-defined  conversion sequence U1 is a better conversion sequence
-Index: gcc/cp/method.c
-===================================================================
---- gcc/cp/method.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/method.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -380,7 +380,7 @@
-   DECL_VISIBILITY (thunk_fndecl) = DECL_VISIBILITY (function);
-   DECL_VISIBILITY_SPECIFIED (thunk_fndecl)
-     = DECL_VISIBILITY_SPECIFIED (function);
--  if (DECL_ONE_ONLY (function))
-+  if (DECL_ONE_ONLY (function) || DECL_WEAK (function))
-     make_decl_one_only (thunk_fndecl);
-   if (flag_syntax_only)
-Index: gcc/cp/tree.c
-===================================================================
---- gcc/cp/tree.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/tree.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -922,10 +922,14 @@
- tree
- canonical_type_variant (tree t)
- {
-+  tree r;
-+
-   if (t == error_mark_node)
-     return error_mark_node;
--  return cp_build_qualified_type (TYPE_MAIN_VARIANT (t), cp_type_quals (t));
-+  r = cp_build_type_attribute_variant (TYPE_MAIN_VARIANT (t),
-+                                     TYPE_ATTRIBUTES (t));
-+  return cp_build_qualified_type (r, cp_type_quals (t));
- }
\f
- /* Makes a copy of BINFO and TYPE, which is to be inherited into a
-@@ -1909,6 +1913,8 @@
-     case TEMPLATE_PARM_INDEX:
-       return (TEMPLATE_PARM_IDX (t1) == TEMPLATE_PARM_IDX (t2)
-             && TEMPLATE_PARM_LEVEL (t1) == TEMPLATE_PARM_LEVEL (t2)
-+            && (TEMPLATE_PARM_PARAMETER_PACK (t1)
-+                == TEMPLATE_PARM_PARAMETER_PACK (t2))
-             && same_type_p (TREE_TYPE (TEMPLATE_PARM_DECL (t1)),
-                             TREE_TYPE (TEMPLATE_PARM_DECL (t2))));
-Index: gcc/cp/mangle.c
-===================================================================
---- gcc/cp/mangle.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/mangle.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2071,21 +2071,22 @@
- /* Non-terminal <template-args>.  ARGS is a TREE_VEC of template
-    arguments.
--     <template-args> ::= I <template-arg>+ E  */
-+     <template-args> ::= I <template-arg>* E  */
- static void
- write_template_args (tree args)
- {
-   int i;
--  int length = TREE_VEC_LENGTH (args);
-+  int length = 0;
-   MANGLE_TRACE_TREE ("template-args", args);
-   write_char ('I');
--  gcc_assert (length > 0);
-+  if (args)
-+    length = TREE_VEC_LENGTH (args);
--  if (TREE_CODE (TREE_VEC_ELT (args, 0)) == TREE_VEC)
-+  if (args && TREE_CODE (TREE_VEC_ELT (args, 0)) == TREE_VEC)
-     {
-       /* We have nested template args.  We want the innermost template
-        argument list.  */
-@@ -2109,12 +2110,7 @@
-   if (TREE_CODE (member) == IDENTIFIER_NODE)
-     write_source_name (member);
-   else if (DECL_P (member))
--    {
--      /* G++ 3.2 incorrectly put out both the "sr" code and
--       the nested name of the qualified name.  */
--      G.need_abi_warning = 1;
--      write_unqualified_name (member);
--    }
-+    write_unqualified_name (member);
-   else if (TREE_CODE (member) == TEMPLATE_ID_EXPR)
-     {
-       tree name = TREE_OPERAND (member, 0);
-@@ -2212,17 +2208,27 @@
-       write_string ("at");
-       write_type (TREE_OPERAND (expr, 0));
-     }
--  else if (abi_version_at_least (2) && TREE_CODE (expr) == SCOPE_REF)
-+  else if (TREE_CODE (expr) == SCOPE_REF)
-     {
-       tree scope = TREE_OPERAND (expr, 0);
-       tree member = TREE_OPERAND (expr, 1);
-+      if (!abi_version_at_least (2))
-+      {
-+        write_string ("sr");
-+        write_type (scope);
-+        /* G++ 3.2 incorrectly put out both the "sr" code and
-+           the nested name of the qualified name.  */
-+        G.need_abi_warning = 1;
-+        write_encoding (member);
-+      }
-+
-       /* If the MEMBER is a real declaration, then the qualifying
-        scope was not dependent.  Ideally, we would not have a
-        SCOPE_REF in those cases, but sometimes we do.  If the second
-        argument is a DECL, then the name must not have been
-        dependent.  */
--      if (DECL_P (member))
-+      else if (DECL_P (member))
-       write_expression (member);
-       else
-       {
-@@ -2387,12 +2393,6 @@
-         sorry ("mangling new-expression");
-         break;
--      /* Handle pointers-to-members specially.  */
--      case SCOPE_REF:
--        write_type (TREE_OPERAND (expr, 0));
--        write_member_name (TREE_OPERAND (expr, 1));
--        break;
--
-       default:
-         for (i = 0; i < TREE_OPERAND_LENGTH (expr); ++i)
-           {
-@@ -2748,7 +2748,7 @@
-   finish_mangling_internal (warn);
-   /* Don't obstack_finish here, and the next start_mangling will
-      remove the identifier.  */
--  return get_identifier ((const char *) name_base);
-+  return get_identifier ((const char *) obstack_base (mangle_obstack));
- }
- /* Initialize data structures for mangling.  */
-Index: gcc/cp/cp-tree.h
-===================================================================
---- gcc/cp/cp-tree.h   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/cp-tree.h   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -883,7 +883,8 @@
-    expression for `*this'.  */
- #define current_class_ptr \
--  (cfun ? cp_function_chain->x_current_class_ptr : NULL_TREE)
-+  (cfun && cp_function_chain                                  \
-+   ? cp_function_chain->x_current_class_ptr : NULL_TREE)
- #define current_class_ref \
-   (cfun ? cp_function_chain->x_current_class_ref : NULL_TREE)
-Index: gcc/cp/ChangeLog
-===================================================================
---- gcc/cp/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,187 @@
-+2010-02-12  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/43024
-+      * name-lookup.h (current_binding_level): Check for null
-+      cp_function_chain.
-+
-+2010-02-12  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/43033
-+      * name-lookup.c (pushdecl_maybe_friend): Check default args of t
-+      instead of x.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR middle-end/42674
-+      * decl.c (finish_function): Don't emit -Wreturn-type warnings in
-+      functions with noreturn attribute.
-+
-+2010-01-14  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42655
-+      * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
-+
-+2009-12-22  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42331
-+      * typeck.c (cp_build_modify_expr): Fix thinko.
-+
-+2009-12-21  Jason Merrill  <jason@redhat.com>
-+
-+      * mangle.c (write_member_name): Move abi-version=1 code back to...
-+      (write_expression): ...here.
-+
-+2009-12-16  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/42387
-+      * decl.c (compute_array_index_type): Mark a VLA as dependent.
-+
-+2009-12-15  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/41183
-+      * cp-tree.h (current_class_ptr): Give NULL even when cfun
-+      has NULL cfun->language.
-+
-+2009-11-13  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/27425
-+      PR c++/34274
-+      PR c++/42301
-+      * pt.c (expand_template_argument_pack): Handle null arg gracefully.
-+      (convert_template_argument): Use %T for type.
-+
-+2009-11-17  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/42061
-+      * call.c (reference_binding): Return NULL for initializer list with
-+      error operand inside of it.
-+
-+      PR c++/42059
-+      * typeck.c (cp_build_modify_expr): For initializer list call
-+      check_array_initializer to make sure lhs isn't a VLA.
-+
-+2009-11-13  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/21008, DR 515
-+      * semantics.c (finish_non_static_data_member): Don't check
-+      derivation in a template.
-+
-+2009-11-12  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/37037
-+      * decl.c (grokdeclarator): Don't generate a void PARM_DECL.
-+
-+2009-11-09  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41972
-+      * parser.c (cp_parser_template_argument): Accept SCOPE_REF around
-+      VAR_DECL.
-+
-+2009-11-09  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41994
-+      * pt.c (tsubst_baselink): tsubst the name.
-+
-+2009-11-06  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/9381
-+      * decl2.c (build_memfn_type): Preserve attributes.
-+      * tree.c (canonical_type_variant): Likewise.
-+      * call.c (standard_conversion): Use build_memfn_type.
-+      * pt.c (tsubst): Likewise.
-+      * decl.c (build_ptrmem_type): Likewise
-+
-+2009-11-06  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR c++/41967
-+      * parser.c (cp_parser_omp_for_loop): After diagnosing not perfectly
-+      nested loop and parsing statements, don't cp_parser_require }, instead
-+      exit the loop if next token is CPP_EOF.
-+
-+2009-11-04  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/35067
-+      * method.c (use_thunk): Check DECL_WEAK as well as
-+      DECL_ONE_ONLY.
-+
-+2009-11-03  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/36959
-+      * decl2.c (cxx_callgraph_analyze_expr): Don't reference a function
-+      just because a static variable in it is needed unless -frepo.
-+
-+2009-11-03  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41876
-+      * parser.c (cp_parser_exception_declaration): Pass true to
-+      is_condition parm of cp_parser_type_specifier_seq.
-+      (cp_parser_omp_for_loop): Likewise.
-+
-+      PR c++/39786, Core issue 812, 861
-+      * name-lookup.c (qualified_lookup_using_namespace): Overhaul.
-+
-+2009-11-02  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/37093
-+      * pt.c (check_valid_ptrmem_cst_expr): New function.
-+      (convert_nontype_argument): Use it to output an error for
-+      illegal pointer to member expressions used as template arguments.
-+
-+2009-10-31  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/41754
-+      * call.c (compare_ics): Avoid bad union use when
-+      comparing two ck_lists.
-+
-+2009-10-23  Dodji Seketeli  <dodji@redhat.com>
-+
-+      PR c++/40808
-+      * mangle.c (write_template_args): Allow mangling of empty template
-+      argument list. Updated function comments.
-+
-+2009-10-21  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * mangle.c (finish_mangling_get_identifier): Use
-+      obstack_base (mangle_obstack) instead of name_base.
-+
-+2009-10-15  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/38798
-+      * parser.c (CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS): New.
-+      (cp_parser_type_specifier): Don't try to parse a class-specifier
-+      or enum-specifier in that case.
-+      (cp_parser_trailing_type_id): New.
-+      (cp_parser_late_return_type_opt): Call it.
-+      (cp_parser_type_id_1): Add is_trailing_return parm.
-+      (cp_parser_type_specifier_seq): Likewise.
-+
-+2009-10-14  Larry Evans  <cppljevans@suddenlink.net>
-+
-+      PR c++/40092
-+      * tree.c (cp_tree_equal): Add test for TEMPLATE_PARM_PARAMETER_PACK
-+      equality.
-+
-+2009-10-12  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/37875
-+      * parser.c (cp_parser_decltype): Set greater_than_is_operator_p.
-+
-+      PR c++/37766
-+      * pt.c (type_unification_real): Call convert_template_argument
-+      for function default template arguments.
-+      (check_default_tmpl_args): Suggest -std=c++0x when function default
-+      template args seen in C++98 mode.
-+
-+2009-10-11  Jason Merrill  <jason@redhat.com>
-+
-+      PR c++/37204
-+      * typeck.c (build_reinterpret_cast_1): Handle rvalue refs
-+      properly.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: gcc/cp/pt.c
-===================================================================
---- gcc/cp/pt.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/pt.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2780,6 +2780,8 @@
-   for (in_arg = 0; in_arg < nargs; ++in_arg)
-     {
-       tree arg = TREE_VEC_ELT (args, in_arg);
-+      if (arg == NULL_TREE)
-+      return args;
-       if (ARGUMENT_PACK_P (arg))
-         {
-           int num_packed = TREE_VEC_LENGTH (ARGUMENT_PACK_ARGS (arg));
-@@ -3670,7 +3672,8 @@
-   else if (is_friend_decl)
-     msg = "default template arguments may not be used in function template friend declarations";
-   else if (TREE_CODE (decl) == FUNCTION_DECL && (cxx_dialect == cxx98))
--    msg = "default template arguments may not be used in function templates";
-+    msg = ("default template arguments may not be used in function templates "
-+         "without -std=c++0x or -std=gnu++0x");
-   else if (is_partial)
-     msg = "default template arguments may not be used in partial specializations";
-   else
-@@ -4321,6 +4324,22 @@
-   return fn;
- }
-+/* Subroutine of convert_nontype_argument.
-+   Check if EXPR of type TYPE is a valid pointer-to-member constant.
-+   Emit an error otherwise.  */
-+
-+static bool
-+check_valid_ptrmem_cst_expr (tree type, tree expr)
-+{
-+  STRIP_NOPS (expr);
-+  if (expr && (null_ptr_cst_p (expr) || TREE_CODE (expr) == PTRMEM_CST))
-+    return true;
-+  error ("%qE is not a valid template argument for type %qT",
-+       expr, type);
-+  error ("it must be a pointer-to-member of the form `&X::Y'");
-+  return false;
-+}
-+
- /* Attempt to convert the non-type template parameter EXPR to the
-    indicated TYPE.  If the conversion is successful, return the
-    converted value.  If the conversion is unsuccessful, return
-@@ -4620,6 +4639,11 @@
-       if (expr == error_mark_node)
-       return error_mark_node;
-+      /* [temp.arg.nontype] bullet 1 says the pointer to member
-+         expression must be a pointer-to-member constant.  */
-+      if (!check_valid_ptrmem_cst_expr (type, expr))
-+      return error_mark_node;
-+
-       /* There is no way to disable standard conversions in
-        resolve_address_of_overloaded_function (called by
-        instantiate_type). It is possible that the call succeeded by
-@@ -4646,6 +4670,11 @@
-      qualification conversions (_conv.qual_) are applied.  */
-   else if (TYPE_PTRMEM_P (type))
-     {
-+      /* [temp.arg.nontype] bullet 1 says the pointer to member
-+         expression must be a pointer-to-member constant.  */
-+      if (!check_valid_ptrmem_cst_expr (type, expr))
-+      return error_mark_node;
-+
-       expr = perform_qualification_conversions (type, expr);
-       if (expr == error_mark_node)
-       return expr;
-@@ -5061,7 +5090,7 @@
-                     error ("type/value mismatch at argument %d in "
-                            "template parameter list for %qD",
-                            i + 1, in_decl);
--                    error ("  expected a template of type %qD, got %qD",
-+                    error ("  expected a template of type %qD, got %qT",
-                            parm, orig_arg);
-                   }
-@@ -9575,13 +9604,8 @@
-         {
-           /* The type of the implicit object parameter gets its
-              cv-qualifiers from the FUNCTION_TYPE. */
--          tree method_type;
--          tree this_type = cp_build_qualified_type (TYPE_MAIN_VARIANT (r),
--                                                    cp_type_quals (type));
-           tree memptr;
--          method_type = build_method_type_directly (this_type,
--                                                    TREE_TYPE (type),
--                                                    TYPE_ARG_TYPES (type));
-+          tree method_type = build_memfn_type (type, r, cp_type_quals (type));
-           memptr = build_ptrmemfunc_type (build_pointer_type (method_type));
-           return cp_build_qualified_type_real (memptr, cp_type_quals (t),
-                                                complain);
-@@ -9866,7 +9890,7 @@
-     qualifying_scope = tsubst (qualifying_scope, args,
-                              complain, in_decl);
-     fns = BASELINK_FUNCTIONS (baselink);
--    optype = BASELINK_OPTYPE (baselink);
-+    optype = tsubst (BASELINK_OPTYPE (baselink), args, complain, in_decl);
-     if (TREE_CODE (fns) == TEMPLATE_ID_EXPR)
-       {
-       template_id_p = true;
-@@ -9877,6 +9901,8 @@
-                                               complain, in_decl);
-       }
-     name = DECL_NAME (get_first_fn (fns));
-+    if (IDENTIFIER_TYPENAME_P (name))
-+      name = mangle_conv_op_name_for_type (optype);
-     baselink = lookup_fnfields (qualifying_scope, name, /*protect=*/1);
-     /* If lookup found a single function, mark it as used at this
-@@ -9895,8 +9921,7 @@
-                   BASELINK_FUNCTIONS (baselink),
-                   template_args);
-     /* Update the conversion operator type.  */
--    BASELINK_OPTYPE (baselink) 
--      = tsubst (optype, args, complain, in_decl);
-+    BASELINK_OPTYPE (baselink) = optype;
-     if (!object_type)
-       object_type = current_class_type;
-@@ -12657,9 +12682,11 @@
-            to explicitly check cxx_dialect here.  */
-           if (TREE_PURPOSE (TREE_VEC_ELT (tparms, i)))
-             {
--              tree arg = tsubst_template_arg
--                              (TREE_PURPOSE (TREE_VEC_ELT (tparms, i)),
--                               targs, tf_none, NULL_TREE);
-+            tree parm = TREE_VALUE (TREE_VEC_ELT (tparms, i));
-+            tree arg = TREE_PURPOSE (TREE_VEC_ELT (tparms, i));
-+              arg = tsubst_template_arg (arg, targs, tf_none, NULL_TREE);
-+            arg = convert_template_argument (parm, arg, targs, tf_none,
-+                                             i, NULL_TREE);
-               if (arg == error_mark_node)
-                 return 1;
-               else
-Index: gcc/cp/semantics.c
-===================================================================
---- gcc/cp/semantics.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/semantics.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1467,6 +1467,14 @@
-       return build_min (COMPONENT_REF, type, object, decl, NULL_TREE);
-     }
-+  /* If PROCESSING_TEMPLATE_DECL is nonzero here, then
-+     QUALIFYING_SCOPE is also non-null.  Wrap this in a SCOPE_REF
-+     for now.  */
-+  else if (processing_template_decl)
-+    return build_qualified_name (TREE_TYPE (decl),
-+                               qualifying_scope,
-+                               DECL_NAME (decl),
-+                               /*template_p=*/false);
-   else
-     {
-       tree access_type = TREE_TYPE (object);
-@@ -1486,15 +1494,6 @@
-           }
-       }
--      /* If PROCESSING_TEMPLATE_DECL is nonzero here, then
--       QUALIFYING_SCOPE is also non-null.  Wrap this in a SCOPE_REF
--       for now.  */
--      if (processing_template_decl)
--      return build_qualified_name (TREE_TYPE (decl),
--                                   qualifying_scope,
--                                   DECL_NAME (decl),
--                                   /*template_p=*/false);
--
-       perform_or_defer_access_check (TYPE_BINFO (access_type), decl,
-                                    decl);
-Index: gcc/cp/name-lookup.c
-===================================================================
---- gcc/cp/name-lookup.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/name-lookup.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Definitions for C++ name lookup routines.
--   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
-@@ -840,8 +840,8 @@
-           add_decl_to_level (x, NAMESPACE_LEVEL (CP_DECL_CONTEXT (t)));
-       }
--      if (TREE_CODE (x) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (x))
--      check_default_args (x);
-+      if (TREE_CODE (t) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (t))
-+      check_default_args (t);
-       if (t != x || DECL_FUNCTION_TEMPLATE_P (t))
-       POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
-@@ -3905,6 +3905,19 @@
-   POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, val->value != error_mark_node);
- }
-+/* Returns true iff VEC contains TARGET.  */
-+
-+static bool
-+tree_vec_contains (VEC(tree,gc)* vec, tree target)
-+{
-+  unsigned int i;
-+  tree elt;
-+  for (i = 0; VEC_iterate(tree,vec,i,elt); ++i)
-+    if (elt == target)
-+      return true;
-+  return false;
-+}
-+
- /* [namespace.qual]
-    Accepts the NAME to lookup and its qualifying SCOPE.
-    Returns the name/type pair found into the cxx_binding *RESULT,
-@@ -3915,62 +3928,72 @@
-                                 struct scope_binding *result, int flags)
- {
-   /* Maintain a list of namespaces visited...  */
--  tree seen = NULL_TREE;
-+  VEC(tree,gc) *seen = NULL;
-+  VEC(tree,gc) *seen_inline = NULL;
-   /* ... and a list of namespace yet to see.  */
--  tree todo = NULL_TREE;
--  tree todo_maybe = NULL_TREE;
-+  VEC(tree,gc) *todo = NULL;
-+  VEC(tree,gc) *todo_maybe = NULL;
-+  VEC(tree,gc) *todo_inline = NULL;
-   tree usings;
-   timevar_push (TV_NAME_LOOKUP);
-   /* Look through namespace aliases.  */
-   scope = ORIGINAL_NAMESPACE (scope);
--  while (scope && result->value != error_mark_node)
-+
-+  /* Algorithm: Starting with SCOPE, walk through the the set of used
-+     namespaces.  For each used namespace, look through its inline
-+     namespace set for any bindings and usings.  If no bindings are found,
-+     add any usings seen to the set of used namespaces.  */
-+  VEC_safe_push (tree, gc, todo, scope);
-+
-+  while (VEC_length (tree, todo))
-     {
--      cxx_binding *binding =
--      cxx_scope_find_binding_for_name (NAMESPACE_LEVEL (scope), name);
--      seen = tree_cons (scope, NULL_TREE, seen);
--      if (binding)
--      ambiguous_decl (result, binding, flags);
-+      bool found_here;
-+      scope = VEC_pop (tree, todo);
-+      if (tree_vec_contains (seen, scope))
-+      continue;
-+      VEC_safe_push (tree, gc, seen, scope);
-+      VEC_safe_push (tree, gc, todo_inline, scope);
--      /* Consider strong using directives always, and non-strong ones
--       if we haven't found a binding yet.  ??? Shouldn't we consider
--       non-strong ones if the initial RESULT is non-NULL, but the
--       binding in the given namespace is?  */
--      for (usings = DECL_NAMESPACE_USING (scope); usings;
--         usings = TREE_CHAIN (usings))
--      /* If this was a real directive, and we have not seen it.  */
--      if (!TREE_INDIRECT_USING (usings))
--        {
--          /* Try to avoid queuing the same namespace more than once,
--             the exception being when a namespace was already
--             enqueued for todo_maybe and then a strong using is
--             found for it.  We could try to remove it from
--             todo_maybe, but it's probably not worth the effort.  */
--          if (is_associated_namespace (scope, TREE_PURPOSE (usings))
--              && !purpose_member (TREE_PURPOSE (usings), seen)
--              && !purpose_member (TREE_PURPOSE (usings), todo))
--            todo = tree_cons (TREE_PURPOSE (usings), NULL_TREE, todo);
--          else if ((!result->value && !result->type)
--                   && !purpose_member (TREE_PURPOSE (usings), seen)
--                   && !purpose_member (TREE_PURPOSE (usings), todo)
--                   && !purpose_member (TREE_PURPOSE (usings), todo_maybe))
--            todo_maybe = tree_cons (TREE_PURPOSE (usings), NULL_TREE,
--                                    todo_maybe);
--        }
--      if (todo)
-+      found_here = false;
-+      while (VEC_length (tree, todo_inline))
-       {
--        scope = TREE_PURPOSE (todo);
--        todo = TREE_CHAIN (todo);
-+        cxx_binding *binding;
-+
-+        scope = VEC_pop (tree, todo_inline);
-+        if (tree_vec_contains (seen_inline, scope))
-+          continue;
-+        VEC_safe_push (tree, gc, seen_inline, scope);
-+
-+        binding =
-+          cxx_scope_find_binding_for_name (NAMESPACE_LEVEL (scope), name);
-+        if (binding)
-+          {
-+            found_here = true;
-+            ambiguous_decl (result, binding, flags);
-+          }
-+
-+        for (usings = DECL_NAMESPACE_USING (scope); usings;
-+             usings = TREE_CHAIN (usings))
-+          if (!TREE_INDIRECT_USING (usings))
-+            {
-+              if (is_associated_namespace (scope, TREE_PURPOSE (usings)))
-+                VEC_safe_push (tree, gc, todo_inline, TREE_PURPOSE (usings));
-+              else
-+                VEC_safe_push (tree, gc, todo_maybe, TREE_PURPOSE (usings));
-+            }
-       }
--      else if (todo_maybe
--             && (!result->value && !result->type))
--      {
--        scope = TREE_PURPOSE (todo_maybe);
--        todo = TREE_CHAIN (todo_maybe);
--        todo_maybe = NULL_TREE;
--      }
-+
-+      if (found_here)
-+      VEC_truncate (tree, todo_maybe, 0);
-       else
--      scope = NULL_TREE; /* If there never was a todo list.  */
-+      while (VEC_length (tree, todo_maybe))
-+        VEC_safe_push (tree, gc, todo, VEC_pop (tree, todo_maybe));
-     }
-+  VEC_free (tree,gc,todo);
-+  VEC_free (tree,gc,todo_maybe);
-+  VEC_free (tree,gc,todo_inline);
-+  VEC_free (tree,gc,seen);
-+  VEC_free (tree,gc,seen_inline);
-   POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, result->value != error_mark_node);
- }
-Index: gcc/cp/decl2.c
-===================================================================
---- gcc/cp/decl2.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/decl2.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -108,20 +108,27 @@
- build_memfn_type (tree fntype, tree ctype, cp_cv_quals quals)
- {
-   tree raises;
-+  tree attrs;
-   int type_quals;
-   if (fntype == error_mark_node || ctype == error_mark_node)
-     return error_mark_node;
-+  gcc_assert (TREE_CODE (fntype) == FUNCTION_TYPE
-+            || TREE_CODE (fntype) == METHOD_TYPE);
-+
-   type_quals = quals & ~TYPE_QUAL_RESTRICT;
-   ctype = cp_build_qualified_type (ctype, type_quals);
-+  raises = TYPE_RAISES_EXCEPTIONS (fntype);
-+  attrs = TYPE_ATTRIBUTES (fntype);
-   fntype = build_method_type_directly (ctype, TREE_TYPE (fntype),
-                                      (TREE_CODE (fntype) == METHOD_TYPE
-                                       ? TREE_CHAIN (TYPE_ARG_TYPES (fntype))
-                                       : TYPE_ARG_TYPES (fntype)));
--  raises = TYPE_RAISES_EXCEPTIONS (fntype);
-   if (raises)
-     fntype = build_exception_variant (fntype, raises);
-+  if (attrs)
-+    fntype = cp_build_type_attribute_variant (fntype, attrs);
-   return fntype;
- }
-@@ -3278,6 +3285,7 @@
-           mark_decl_referenced (vtbl);
-       }
-       else if (DECL_CONTEXT (t)
-+             && flag_use_repository
-              && TREE_CODE (DECL_CONTEXT (t)) == FUNCTION_DECL)
-       /* If we need a static variable in a function, then we
-          need the containing function.  */
-Index: gcc/cp/name-lookup.h
-===================================================================
---- gcc/cp/name-lookup.h       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/name-lookup.h       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -263,7 +263,7 @@
- /* The binding level currently in effect.  */
- #define current_binding_level                 \
--  (*(cfun && cp_function_chain->bindings      \
-+  (*(cfun && cp_function_chain && cp_function_chain->bindings \
-    ? &cp_function_chain->bindings             \
-    : &scope_chain->bindings))
-Index: gcc/cp/parser.c
-===================================================================
---- gcc/cp/parser.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cp/parser.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1198,8 +1198,12 @@
-   /* The construct is optional.  If it is not present, then no error
-      should be issued.  */
-   CP_PARSER_FLAGS_OPTIONAL = 0x1,
--  /* When parsing a type-specifier, do not allow user-defined types.  */
--  CP_PARSER_FLAGS_NO_USER_DEFINED_TYPES = 0x2
-+  /* When parsing a type-specifier, treat user-defined type-names
-+     as non-type identifiers.  */
-+  CP_PARSER_FLAGS_NO_USER_DEFINED_TYPES = 0x2,
-+  /* When parsing a type-specifier, do not try to parse a class-specifier
-+     or enum-specifier.  */
-+  CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS = 0x4
- } cp_parser_flags;
- /* The different kinds of declarators we want to parse.  */
-@@ -1735,10 +1739,11 @@
-   (cp_parser *);
- static tree cp_parser_template_type_arg
-   (cp_parser *);
-+static tree cp_parser_trailing_type_id (cp_parser *);
- static tree cp_parser_type_id_1
--  (cp_parser *, bool);
-+  (cp_parser *, bool, bool);
- static void cp_parser_type_specifier_seq
--  (cp_parser *, bool, cp_decl_specifier_seq *);
-+  (cp_parser *, bool, bool, cp_decl_specifier_seq *);
- static tree cp_parser_parameter_declaration_clause
-   (cp_parser *);
- static tree cp_parser_parameter_declaration_list
-@@ -5740,6 +5745,7 @@
-     = "types may not be defined in a new-type-id";
-   /* Parse the type-specifier-seq.  */
-   cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
-+                              /*is_trailing_return=*/false,
-                               &type_specifier_seq);
-   /* Restore the old message.  */
-   parser->type_definition_forbidden_message = saved_message;
-@@ -7414,6 +7420,7 @@
-     = "types may not be defined in conditions";
-   /* Parse the type-specifier-seq.  */
-   cp_parser_type_specifier_seq (parser, /*is_condition==*/true,
-+                              /*is_trailing_return=*/false,
-                               &type_specifiers);
-   /* Restore the saved message.  */
-   parser->type_definition_forbidden_message = saved_message;
-@@ -8918,12 +8925,25 @@
-     cp_parser_parse_definitely (parser);
-   else
-     {
-+      bool saved_greater_than_is_operator_p;
-+
-       /* Abort our attempt to parse an id-expression or member access
-          expression.  */
-       cp_parser_abort_tentative_parse (parser);
-+      /* Within a parenthesized expression, a `>' token is always
-+       the greater-than operator.  */
-+      saved_greater_than_is_operator_p
-+      = parser->greater_than_is_operator_p;
-+      parser->greater_than_is_operator_p = true;
-+
-       /* Parse a full expression.  */
-       expr = cp_parser_expression (parser, /*cast_p=*/false, NULL);
-+
-+      /* The `>' token might be the end of a template-id or
-+       template-parameter-list now.  */
-+      parser->greater_than_is_operator_p
-+      = saved_greater_than_is_operator_p;
-     }
-   /* Go back to evaluating expressions.  */
-@@ -9032,6 +9052,7 @@
-   attributes = cp_parser_attributes_opt (parser);
-   /* Parse the type-specifiers.  */
-   cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
-+                              /*is_trailing_return=*/false,
-                               &type_specifiers);
-   /* If that didn't work, stop.  */
-   if (type_specifiers.type == error_mark_node)
-@@ -10679,18 +10700,26 @@
-       cp_parser_abort_tentative_parse (parser);
-       else
-       {
-+        tree probe;
-+
-         if (TREE_CODE (argument) == INDIRECT_REF)
-           {
-             gcc_assert (REFERENCE_REF_P (argument));
-             argument = TREE_OPERAND (argument, 0);
-           }
--        if (TREE_CODE (argument) == VAR_DECL)
-+        /* If we're in a template, we represent a qualified-id referring
-+           to a static data member as a SCOPE_REF even if the scope isn't
-+           dependent so that we can check access control later.  */
-+        probe = argument;
-+        if (TREE_CODE (probe) == SCOPE_REF)
-+          probe = TREE_OPERAND (probe, 1);
-+        if (TREE_CODE (probe) == VAR_DECL)
-           {
-             /* A variable without external linkage might still be a
-                valid constant-expression, so no error is issued here
-                if the external-linkage check fails.  */
--            if (!address_p && !DECL_EXTERNAL_LINKAGE_P (argument))
-+            if (!address_p && !DECL_EXTERNAL_LINKAGE_P (probe))
-               cp_parser_simulate_error (parser);
-           }
-         else if (is_overloaded_fn (argument))
-@@ -10994,6 +11023,9 @@
-   switch (keyword)
-     {
-     case RID_ENUM:
-+      if ((flags & CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS))
-+      goto elaborated_type_specifier;
-+
-       /* Look for the enum-specifier.  */
-       type_spec = cp_parser_enum_specifier (parser);
-       /* If that worked, we're done.  */
-@@ -11016,6 +11048,9 @@
-     case RID_CLASS:
-     case RID_STRUCT:
-     case RID_UNION:
-+      if ((flags & CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS))
-+      goto elaborated_type_specifier;
-+
-       /* Parse tentatively so that we can back up if we don't find a
-        class-specifier.  */
-       cp_parser_parse_tentatively (parser);
-@@ -11882,6 +11917,7 @@
-       /* Parse the type-specifier-seq.  */
-       cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
-+                                  /*is_trailing_return=*/false,
-                                     &type_specifiers);
-       /* At this point this is surely not elaborated type specifier.  */
-@@ -13713,7 +13749,7 @@
- /* Parse a late-specified return type, if any.  This is not a separate
-    non-terminal, but part of a function declarator, which looks like
--   -> type-id
-+   -> trailing-type-specifier-seq abstract-declarator(opt)
-    Returns the type indicated by the type-id.  */
-@@ -13731,7 +13767,7 @@
-   /* Consume the ->.  */
-   cp_lexer_consume_token (parser->lexer);
--  return cp_parser_type_id (parser);
-+  return cp_parser_trailing_type_id (parser);
- }
- /* Parse a declarator-id.
-@@ -13784,13 +13820,15 @@
-    Returns the TYPE specified.  */
- static tree
--cp_parser_type_id_1 (cp_parser* parser, bool is_template_arg)
-+cp_parser_type_id_1 (cp_parser* parser, bool is_template_arg,
-+                   bool is_trailing_return)
- {
-   cp_decl_specifier_seq type_specifier_seq;
-   cp_declarator *abstract_declarator;
-   /* Parse the type-specifier-seq.  */
-   cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
-+                              is_trailing_return,
-                               &type_specifier_seq);
-   if (type_specifier_seq.type == error_mark_node)
-     return error_mark_node;
-@@ -13828,14 +13866,19 @@
- static tree cp_parser_type_id (cp_parser *parser)
- {
--  return cp_parser_type_id_1 (parser, false);
-+  return cp_parser_type_id_1 (parser, false, false);
- }
- static tree cp_parser_template_type_arg (cp_parser *parser)
- {
--  return cp_parser_type_id_1 (parser, true);
-+  return cp_parser_type_id_1 (parser, true, false);
- }
-+static tree cp_parser_trailing_type_id (cp_parser *parser)
-+{
-+  return cp_parser_type_id_1 (parser, false, true);
-+}
-+
- /* Parse a type-specifier-seq.
-    type-specifier-seq:
-@@ -13849,11 +13892,15 @@
-    If IS_CONDITION is true, we are at the start of a "condition",
-    e.g., we've just seen "if (".
-+   If IS_TRAILING_RETURN is true, we are in a trailing-return-type,
-+   i.e. we've just seen "->".
-+
-    Sets *TYPE_SPECIFIER_SEQ to represent the sequence.  */
- static void
- cp_parser_type_specifier_seq (cp_parser* parser,
-                             bool is_condition,
-+                            bool is_trailing_return,
-                             cp_decl_specifier_seq *type_specifier_seq)
- {
-   bool seen_type_specifier = false;
-@@ -13863,6 +13910,12 @@
-   /* Clear the TYPE_SPECIFIER_SEQ.  */
-   clear_decl_specs (type_specifier_seq);
-+  /* In the context of a trailing return type, enum E { } is an
-+     elaborated-type-specifier followed by a function-body, not an
-+     enum-specifier.  */
-+  if (is_trailing_return)
-+    flags |= CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS;
-+
-   /* Parse the type-specifiers and attributes.  */
-   while (true)
-     {
-@@ -16565,7 +16618,8 @@
-     = "types may not be defined in exception-declarations";
-   /* Parse the type-specifier-seq.  */
--  cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
-+  cp_parser_type_specifier_seq (parser, /*is_declaration=*/true,
-+                              /*is_trailing_return=*/false,
-                               &type_specifiers);
-   /* If it's a `)', then there is no declarator.  */
-   if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_PAREN))
-@@ -21249,7 +21303,8 @@
-            cp_parser_condition, from whence the bulk of this is copied.  */
-         cp_parser_parse_tentatively (parser);
--        cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
-+        cp_parser_type_specifier_seq (parser, /*is_declaration=*/true,
-+                                      /*is_trailing_return=*/false,
-                                       &type_specifiers);
-         if (cp_parser_parse_definitely (parser))
-           {
-@@ -21567,7 +21622,8 @@
-           }
-         collapse_err = true;
-         cp_parser_statement_seq_opt (parser, NULL);
--        cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
-+        if (cp_lexer_next_token_is (parser->lexer, CPP_EOF))
-+          break;
-       }
-     }
-Index: gcc/tree-ssa-ccp.c
-===================================================================
---- gcc/tree-ssa-ccp.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Conditional constant propagation pass for the GNU compiler.
--   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
--   Free Software Foundation, Inc.
-+   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-+   2010  Free Software Foundation, Inc.
-    Adapted from original RTL SSA-CCP by Daniel Berlin <dberlin@dberlin.org>
-    Adapted to GIMPLE trees by Diego Novillo <dnovillo@redhat.com>
-@@ -1727,7 +1727,7 @@
- static tree
- maybe_fold_offset_to_component_ref (tree record_type, tree base, tree offset,
--                                  tree orig_type, bool base_is_ptr)
-+                                  tree orig_type)
- {
-   tree f, t, field_type, tail_array_field, field_offset;
-   tree ret;
-@@ -1779,8 +1779,6 @@
-       if (cmp == 0
-         && useless_type_conversion_p (orig_type, field_type))
-       {
--        if (base_is_ptr)
--          base = build1 (INDIRECT_REF, record_type, base);
-         t = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE);
-         return t;
-       }
-@@ -1805,11 +1803,7 @@
-       /* If we matched, then set offset to the displacement into
-        this field.  */
--      if (base_is_ptr)
--      new_base = build1 (INDIRECT_REF, record_type, base);
--      else
--      new_base = base;
--      new_base = build3 (COMPONENT_REF, field_type, new_base, f, NULL_TREE);
-+      new_base = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE);
-       /* Recurse to possibly find the match.  */
-       ret = maybe_fold_offset_to_array_ref (new_base, t, orig_type,
-@@ -1817,7 +1811,7 @@
-       if (ret)
-       return ret;
-       ret = maybe_fold_offset_to_component_ref (field_type, new_base, t,
--                                              orig_type, false);
-+                                              orig_type);
-       if (ret)
-       return ret;
-     }
-@@ -1831,8 +1825,6 @@
-   /* If we get here, we've got an aggregate field, and a possibly 
-      nonzero offset into them.  Recurse and hope for a valid match.  */
--  if (base_is_ptr)
--    base = build1 (INDIRECT_REF, record_type, base);
-   base = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE);
-   t = maybe_fold_offset_to_array_ref (base, offset, orig_type,
-@@ -1840,7 +1832,7 @@
-   if (t)
-     return t;
-   return maybe_fold_offset_to_component_ref (field_type, base, offset,
--                                           orig_type, false);
-+                                           orig_type);
- }
- /* Attempt to express (ORIG_TYPE)BASE+OFFSET as BASE->field_of_orig_type
-@@ -1854,57 +1846,44 @@
- {
-   tree ret;
-   tree type;
--  bool base_is_ptr = true;
-   STRIP_NOPS (base);
--  if (TREE_CODE (base) == ADDR_EXPR)
--    {
--      base_is_ptr = false;
-+  if (TREE_CODE (base) != ADDR_EXPR)
-+    return NULL_TREE;
--      base = TREE_OPERAND (base, 0);
-+  base = TREE_OPERAND (base, 0);
--      /* Handle case where existing COMPONENT_REF pick e.g. wrong field of union,
--       so it needs to be removed and new COMPONENT_REF constructed.
--       The wrong COMPONENT_REF are often constructed by folding the
--       (type *)&object within the expression (type *)&object+offset  */
--      if (handled_component_p (base))
-+  /* Handle case where existing COMPONENT_REF pick e.g. wrong field of union,
-+     so it needs to be removed and new COMPONENT_REF constructed.
-+     The wrong COMPONENT_REF are often constructed by folding the
-+     (type *)&object within the expression (type *)&object+offset  */
-+  if (handled_component_p (base))
-+    {
-+      HOST_WIDE_INT sub_offset, size, maxsize;
-+      tree newbase;
-+      newbase = get_ref_base_and_extent (base, &sub_offset,
-+                                       &size, &maxsize);
-+      gcc_assert (newbase);
-+      if (size == maxsize
-+        && size != -1
-+        && !(sub_offset & (BITS_PER_UNIT - 1)))
-       {
--          HOST_WIDE_INT sub_offset, size, maxsize;
--        tree newbase;
--        newbase = get_ref_base_and_extent (base, &sub_offset,
--                                           &size, &maxsize);
--        gcc_assert (newbase);
--        if (size == maxsize
--            && size != -1
--            && !(sub_offset & (BITS_PER_UNIT - 1)))
--          {
--            base = newbase;
--            if (sub_offset)
--              offset = int_const_binop (PLUS_EXPR, offset,
--                                        build_int_cst (TREE_TYPE (offset),
--                                        sub_offset / BITS_PER_UNIT), 1);
--          }
-+        base = newbase;
-+        if (sub_offset)
-+          offset = int_const_binop (PLUS_EXPR, offset,
-+                                    build_int_cst (TREE_TYPE (offset),
-+                                           sub_offset / BITS_PER_UNIT), 1);
-       }
--      if (useless_type_conversion_p (orig_type, TREE_TYPE (base))
--        && integer_zerop (offset))
--      return base;
--      type = TREE_TYPE (base);
-     }
--  else
--    {
--      base_is_ptr = true;
--      if (!POINTER_TYPE_P (TREE_TYPE (base)))
--      return NULL_TREE;
--      type = TREE_TYPE (TREE_TYPE (base));
--    }
--  ret = maybe_fold_offset_to_component_ref (type, base, offset,
--                                          orig_type, base_is_ptr);
-+  if (useless_type_conversion_p (orig_type, TREE_TYPE (base))
-+      && integer_zerop (offset))
-+    return base;
-+  type = TREE_TYPE (base);
-+
-+  ret = maybe_fold_offset_to_component_ref (type, base, offset, orig_type);
-   if (!ret)
--    {
--      if (base_is_ptr)
--      base = build1 (INDIRECT_REF, type, base);
--      ret = maybe_fold_offset_to_array_ref (base, offset, orig_type, true);
--    }
-+    ret = maybe_fold_offset_to_array_ref (base, offset, orig_type, true);
-+
-   return ret;
- }
-@@ -2143,7 +2122,7 @@
-   t = maybe_fold_offset_to_array_ref (op0, op1, ptd_type, true);
-   if (!t)
-     t = maybe_fold_offset_to_component_ref (TREE_TYPE (op0), op0, op1,
--                                          ptd_type, false);
-+                                          ptd_type);
-   if (t)
-     t = build1 (ADDR_EXPR, res_type, t);
-@@ -3000,7 +2979,10 @@
-       continue;
-       callee = gimple_call_fndecl (stmt);
--      if (!callee || DECL_BUILT_IN_CLASS (callee) != BUILT_IN_NORMAL)
-+      if (!callee
-+        || DECL_BUILT_IN_CLASS (callee) != BUILT_IN_NORMAL
-+        /* All regular builtins are ok, just obviously not alloca.  */
-+        || DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA)
-       return NULL_TREE;
-       if (DECL_FUNCTION_CODE (callee) == BUILT_IN_STACK_RESTORE)
-Index: gcc/dojump.c
-===================================================================
---- gcc/dojump.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/dojump.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Convert tree expression to rtl instructions, for GNU compiler.
-    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -35,13 +35,22 @@
- #include "langhooks.h"
- #include "ggc.h"
- #include "basic-block.h"
-+#include "output.h"
- static bool prefer_and_bit_test (enum machine_mode, int);
--static void do_jump_by_parts_greater (tree, int, rtx, rtx);
--static void do_jump_by_parts_equality (tree, rtx, rtx);
-+static void do_jump_by_parts_greater (tree, int, rtx, rtx, int);
-+static void do_jump_by_parts_equality (tree, rtx, rtx, int);
- static void do_compare_and_jump       (tree, enum rtx_code, enum rtx_code, rtx,
--                               rtx);
-+                               rtx, int);
-+/* Invert probability if there is any.  -1 stands for unknown.  */
-+
-+static inline int
-+inv (int prob)
-+{
-+  return prob == -1 ? -1 : REG_BR_PROB_BASE - prob;
-+}
-+
- /* At the start of a function, record that we have no previously-pushed
-    arguments waiting to be popped.  */
-@@ -96,17 +105,17 @@
-    functions here.  */
- void
--jumpifnot (tree exp, rtx label)
-+jumpifnot (tree exp, rtx label, int prob)
- {
--  do_jump (exp, label, NULL_RTX);
-+  do_jump (exp, label, NULL_RTX, inv (prob));
- }
- /* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
- void
--jumpif (tree exp, rtx label)
-+jumpif (tree exp, rtx label, int prob)
- {
--  do_jump (exp, NULL_RTX, label);
-+  do_jump (exp, NULL_RTX, label, prob);
- }
- /* Used internally by prefer_and_bit_test.  */
-@@ -156,10 +165,12 @@
-    do_jump always does any pending stack adjust except when it does not
-    actually perform a jump.  An example where there is no jump
--   is when EXP is `(foo (), 0)' and IF_FALSE_LABEL is null.  */
-+   is when EXP is `(foo (), 0)' and IF_FALSE_LABEL is null.
-+   PROB is probability of jump to if_true_label, or -1 if unknown.  */
-+
- void
--do_jump (tree exp, rtx if_false_label, rtx if_true_label)
-+do_jump (tree exp, rtx if_false_label, rtx if_true_label, int prob)
- {
-   enum tree_code code = TREE_CODE (exp);
-   rtx temp;
-@@ -206,11 +217,12 @@
-     case LROTATE_EXPR:
-     case RROTATE_EXPR:
-       /* These cannot change zero->nonzero or vice versa.  */
--      do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
-+      do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label, prob);
-       break;
-     case TRUTH_NOT_EXPR:
--      do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label);
-+      do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label,
-+             inv (prob));
-       break;
-     case COND_EXPR:
-@@ -226,10 +238,10 @@
-         }
-         do_pending_stack_adjust ();
--        do_jump (TREE_OPERAND (exp, 0), label1, NULL_RTX);
--        do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label);
-+      do_jump (TREE_OPERAND (exp, 0), label1, NULL_RTX, -1);
-+      do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label, prob);
-         emit_label (label1);
--        do_jump (TREE_OPERAND (exp, 2), if_false_label, if_true_label);
-+      do_jump (TREE_OPERAND (exp, 2), if_false_label, if_true_label, prob);
-       break;
-       }
-@@ -261,7 +273,8 @@
-             && (optab_handler (cmp_optab, TYPE_MODE (type))->insn_code
-               != CODE_FOR_nothing))
-           {
--            do_jump (fold_convert (type, exp), if_false_label, if_true_label);
-+          do_jump (fold_convert (type, exp), if_false_label, if_true_label,
-+                   prob);
-             break;
-           }
-         goto normal;
-@@ -277,12 +290,14 @@
-                   != MODE_COMPLEX_INT);
-       
-         if (integer_zerop (TREE_OPERAND (exp, 1)))
--          do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label);
-+          do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label,
-+                 inv (prob));
-         else if (GET_MODE_CLASS (TYPE_MODE (inner_type)) == MODE_INT
-                  && !can_compare_p (EQ, TYPE_MODE (inner_type), ccp_jump))
--          do_jump_by_parts_equality (exp, if_false_label, if_true_label);
-+          do_jump_by_parts_equality (exp, if_false_label, if_true_label, prob);
-         else
--          do_compare_and_jump (exp, EQ, EQ, if_false_label, if_true_label);
-+          do_compare_and_jump (exp, EQ, EQ, if_false_label, if_true_label,
-+                             prob);
-         break;
-       }
-@@ -302,12 +317,14 @@
-                   != MODE_COMPLEX_INT);
-       
-         if (integer_zerop (TREE_OPERAND (exp, 1)))
--          do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
-+          do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label, prob);
-         else if (GET_MODE_CLASS (TYPE_MODE (inner_type)) == MODE_INT
-            && !can_compare_p (NE, TYPE_MODE (inner_type), ccp_jump))
--          do_jump_by_parts_equality (exp, if_true_label, if_false_label);
-+          do_jump_by_parts_equality (exp, if_true_label, if_false_label,
-+                                   inv (prob));
-         else
--          do_compare_and_jump (exp, NE, NE, if_false_label, if_true_label);
-+          do_compare_and_jump (exp, NE, NE, if_false_label, if_true_label,
-+                             prob);
-         break;
-       }
-@@ -315,36 +332,43 @@
-       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
-       if (GET_MODE_CLASS (mode) == MODE_INT
-           && ! can_compare_p (LT, mode, ccp_jump))
--        do_jump_by_parts_greater (exp, 1, if_false_label, if_true_label);
-+        do_jump_by_parts_greater (exp, 1, if_false_label, if_true_label, prob);
-       else
--        do_compare_and_jump (exp, LT, LTU, if_false_label, if_true_label);
-+        do_compare_and_jump (exp, LT, LTU, if_false_label, if_true_label,
-+                           prob);
-       break;
-     case LE_EXPR:
-       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
-       if (GET_MODE_CLASS (mode) == MODE_INT
-           && ! can_compare_p (LE, mode, ccp_jump))
--        do_jump_by_parts_greater (exp, 0, if_true_label, if_false_label);
-+        do_jump_by_parts_greater (exp, 0, if_true_label, if_false_label,
-+                                inv (prob));
-       else
--        do_compare_and_jump (exp, LE, LEU, if_false_label, if_true_label);
-+        do_compare_and_jump (exp, LE, LEU, if_false_label, if_true_label,
-+                           prob);
-       break;
-     case GT_EXPR:
-       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
-       if (GET_MODE_CLASS (mode) == MODE_INT
-           && ! can_compare_p (GT, mode, ccp_jump))
--        do_jump_by_parts_greater (exp, 0, if_false_label, if_true_label);
-+        do_jump_by_parts_greater (exp, 0, if_false_label, if_true_label,
-+                                prob);
-       else
--        do_compare_and_jump (exp, GT, GTU, if_false_label, if_true_label);
-+        do_compare_and_jump (exp, GT, GTU, if_false_label, if_true_label,
-+                           prob);
-       break;
-     case GE_EXPR:
-       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
-       if (GET_MODE_CLASS (mode) == MODE_INT
-           && ! can_compare_p (GE, mode, ccp_jump))
--        do_jump_by_parts_greater (exp, 1, if_true_label, if_false_label);
-+        do_jump_by_parts_greater (exp, 1, if_true_label, if_false_label,
-+                                inv (prob));
-       else
--        do_compare_and_jump (exp, GE, GEU, if_false_label, if_true_label);
-+        do_compare_and_jump (exp, GE, GEU, if_false_label, if_true_label,
-+                           prob);
-       break;
-     case UNORDERED_EXPR:
-@@ -368,9 +392,10 @@
-           do_rev = 1;
-         if (! do_rev)
--          do_compare_and_jump (exp, cmp, cmp, if_false_label, if_true_label);
-+          do_compare_and_jump (exp, cmp, cmp, if_false_label, if_true_label, prob);
-         else
--          do_compare_and_jump (exp, rcmp, rcmp, if_true_label, if_false_label);
-+          do_compare_and_jump (exp, rcmp, rcmp, if_true_label, if_false_label,
-+                             inv (prob));
-       }
-       break;
-@@ -415,7 +440,7 @@
-         mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
-         if (can_compare_p (rcode1, mode, ccp_jump))
-           do_compare_and_jump (exp, rcode1, rcode1, if_false_label,
--                               if_true_label);
-+                               if_true_label, prob);
-         else
-           {
-             tree op0 = save_expr (TREE_OPERAND (exp, 0));
-@@ -429,8 +454,8 @@
-             
-             cmp0 = fold_build2 (tcode1, TREE_TYPE (exp), op0, op1);
-             cmp1 = fold_build2 (tcode2, TREE_TYPE (exp), op0, op1);
--          do_jump (cmp0, 0, if_true_label);
--          do_jump (cmp1, if_false_label, if_true_label);
-+          do_jump (cmp0, 0, if_true_label, prob);
-+          do_jump (cmp1, if_false_label, if_true_label, prob);
-           }
-       break;
-     }
-@@ -443,6 +468,7 @@
-       {
-         tree exp0 = TREE_OPERAND (exp, 0);
-         rtx set_label, clr_label;
-+        int setclr_prob = prob;
-         /* Strip narrowing integral type conversions.  */
-         while (CONVERT_EXPR_P (exp0)
-@@ -458,6 +484,7 @@
-             exp0 = TREE_OPERAND (exp0, 0);
-             clr_label = if_true_label;
-             set_label = if_false_label;
-+            setclr_prob = inv (prob);
-           }
-         else
-           {
-@@ -480,7 +507,7 @@
-                   = (unsigned HOST_WIDE_INT) 1 << TREE_INT_CST_LOW (shift);
-                 do_jump (build2 (BIT_AND_EXPR, argtype, arg,
-                                  build_int_cst_wide_type (argtype, mask, 0)),
--                         clr_label, set_label);
-+                         clr_label, set_label, setclr_prob);
-                 break;
-               }
-           }
-@@ -503,7 +530,8 @@
-           && (optab_handler (cmp_optab, TYPE_MODE (type))->insn_code
-               != CODE_FOR_nothing))
-         {
--          do_jump (fold_convert (type, exp), if_false_label, if_true_label);
-+        do_jump (fold_convert (type, exp), if_false_label, if_true_label,
-+                 prob);
-           break;
-         }
-@@ -526,13 +554,13 @@
-       if (if_false_label == NULL_RTX)
-         {
-         drop_through_label = gen_label_rtx ();
--          do_jump (TREE_OPERAND (exp, 0), drop_through_label, NULL_RTX);
--          do_jump (TREE_OPERAND (exp, 1), NULL_RTX, if_true_label);
-+          do_jump (TREE_OPERAND (exp, 0), drop_through_label, NULL_RTX, prob);
-+          do_jump (TREE_OPERAND (exp, 1), NULL_RTX, if_true_label, prob);
-       }
-       else
-       {
--        do_jump (TREE_OPERAND (exp, 0), if_false_label, NULL_RTX);
--          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label);
-+        do_jump (TREE_OPERAND (exp, 0), if_false_label, NULL_RTX, prob);
-+          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label, prob);
-       }
-       break;
-@@ -541,7 +569,7 @@
-       /* High branch cost, expand as the bitwise OR of the conditions.
-        Do the same if the RHS has side effects, because we're effectively
-        turning a TRUTH_OR_EXPR into a TRUTH_ORIF_EXPR.  */
--      if (BRANCH_COST (optimize_insn_for_speed_p (), false)>= 4
-+      if (BRANCH_COST (optimize_insn_for_speed_p (), false) >= 4
-         || TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1)))
-       goto normal;
-@@ -549,13 +577,13 @@
-       if (if_true_label == NULL_RTX)
-       {
-           drop_through_label = gen_label_rtx ();
--          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, drop_through_label);
--          do_jump (TREE_OPERAND (exp, 1), if_false_label, NULL_RTX);
-+          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, drop_through_label, prob);
-+          do_jump (TREE_OPERAND (exp, 1), if_false_label, NULL_RTX, prob);
-       }
-       else
-       {
--          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, if_true_label);
--          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label);
-+          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, if_true_label, prob);
-+          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label, prob);
-       }
-       break;
-@@ -577,7 +605,7 @@
-       do_compare_rtx_and_jump (temp, CONST0_RTX (GET_MODE (temp)),
-                              NE, TYPE_UNSIGNED (TREE_TYPE (exp)),
-                              GET_MODE (temp), NULL_RTX,
--                             if_false_label, if_true_label);
-+                             if_false_label, if_true_label, prob);
-     }
-   if (drop_through_label)
-@@ -593,7 +621,8 @@
- static void
- do_jump_by_parts_greater_rtx (enum machine_mode mode, int unsignedp, rtx op0,
--                            rtx op1, rtx if_false_label, rtx if_true_label)
-+                            rtx op1, rtx if_false_label, rtx if_true_label,
-+                            int prob)
- {
-   int nwords = (GET_MODE_SIZE (mode) / UNITS_PER_WORD);
-   rtx drop_through_label = 0;
-@@ -625,11 +654,12 @@
-       /* All but high-order word must be compared as unsigned.  */
-       do_compare_rtx_and_jump (op0_word, op1_word, GT,
-                                (unsignedp || i > 0), word_mode, NULL_RTX,
--                               NULL_RTX, if_true_label);
-+                             NULL_RTX, if_true_label, prob);
-       /* Consider lower words only if these are equal.  */
-       do_compare_rtx_and_jump (op0_word, op1_word, NE, unsignedp, word_mode,
--                               NULL_RTX, NULL_RTX, if_false_label);
-+                             NULL_RTX, NULL_RTX, if_false_label,
-+                             inv (prob));
-     }
-   if (if_false_label)
-@@ -645,7 +675,7 @@
- static void
- do_jump_by_parts_greater (tree exp, int swap, rtx if_false_label,
--                        rtx if_true_label)
-+                        rtx if_true_label, int prob)
- {
-   rtx op0 = expand_normal (TREE_OPERAND (exp, swap));
-   rtx op1 = expand_normal (TREE_OPERAND (exp, !swap));
-@@ -653,7 +683,7 @@
-   int unsignedp = TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0)));
-   do_jump_by_parts_greater_rtx (mode, unsignedp, op0, op1, if_false_label,
--                              if_true_label);
-+                              if_true_label, prob);
- }
\f
- /* Jump according to whether OP0 is 0.  We assume that OP0 has an integer
-@@ -663,7 +693,7 @@
- static void
- do_jump_by_parts_zero_rtx (enum machine_mode mode, rtx op0,
--                         rtx if_false_label, rtx if_true_label)
-+                         rtx if_false_label, rtx if_true_label, int prob)
- {
-   int nwords = GET_MODE_SIZE (mode) / UNITS_PER_WORD;
-   rtx part;
-@@ -685,8 +715,7 @@
-   if (part != 0)
-     {
-       do_compare_rtx_and_jump (part, const0_rtx, EQ, 1, word_mode,
--                               NULL_RTX, if_false_label, if_true_label);
--
-+                             NULL_RTX, if_false_label, if_true_label, prob);
-       return;
-     }
-@@ -697,7 +726,7 @@
-   for (i = 0; i < nwords; i++)
-     do_compare_rtx_and_jump (operand_subword_force (op0, i, mode),
-                              const0_rtx, EQ, 1, word_mode, NULL_RTX,
--                             if_false_label, NULL_RTX);
-+                           if_false_label, NULL_RTX, prob);
-   if (if_true_label)
-     emit_jump (if_true_label);
-@@ -713,7 +742,7 @@
- static void
- do_jump_by_parts_equality_rtx (enum machine_mode mode, rtx op0, rtx op1,
--                             rtx if_false_label, rtx if_true_label)
-+                             rtx if_false_label, rtx if_true_label, int prob)
- {
-   int nwords = (GET_MODE_SIZE (mode) / UNITS_PER_WORD);
-   rtx drop_through_label = 0;
-@@ -721,12 +750,14 @@
-   if (op1 == const0_rtx)
-     {
--      do_jump_by_parts_zero_rtx (mode, op0, if_false_label, if_true_label);
-+      do_jump_by_parts_zero_rtx (mode, op0, if_false_label, if_true_label,
-+                               prob);
-       return;
-     }
-   else if (op0 == const0_rtx)
-     {
--      do_jump_by_parts_zero_rtx (mode, op1, if_false_label, if_true_label);
-+      do_jump_by_parts_zero_rtx (mode, op1, if_false_label, if_true_label,
-+                               prob);
-       return;
-     }
-@@ -737,7 +768,7 @@
-     do_compare_rtx_and_jump (operand_subword_force (op0, i, mode),
-                              operand_subword_force (op1, i, mode),
-                              EQ, 0, word_mode, NULL_RTX,
--                           if_false_label, NULL_RTX);
-+                           if_false_label, NULL_RTX, prob);
-   if (if_true_label)
-     emit_jump (if_true_label);
-@@ -749,13 +780,14 @@
-    with one insn, test the comparison and jump to the appropriate label.  */
- static void
--do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label)
-+do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label,
-+                         int prob)
- {
-   rtx op0 = expand_normal (TREE_OPERAND (exp, 0));
-   rtx op1 = expand_normal (TREE_OPERAND (exp, 1));
-   enum machine_mode mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
-   do_jump_by_parts_equality_rtx (mode, op0, op1, if_false_label,
--                               if_true_label);
-+                               if_true_label, prob);
- }
\f
- /* Generate code for a comparison of OP0 and OP1 with rtx code CODE.
-@@ -825,7 +857,7 @@
- void
- do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp,
-                        enum machine_mode mode, rtx size, rtx if_false_label,
--                       rtx if_true_label)
-+                       rtx if_true_label, int prob)
- {
-   rtx tem;
-   int dummy_true_label = 0;
-@@ -837,6 +869,7 @@
-       if_true_label = if_false_label;
-       if_false_label = 0;
-       code = reverse_condition (code);
-+      prob = inv (prob);
-     }
-   /* If one operand is constant, make it the second one.  Only do this
-@@ -886,52 +919,56 @@
-       {
-       case LTU:
-         do_jump_by_parts_greater_rtx (mode, 1, op1, op0,
--                                      if_false_label, if_true_label);
-+                                      if_false_label, if_true_label, prob);
-         break;
-       case LEU:
-         do_jump_by_parts_greater_rtx (mode, 1, op0, op1,
--                                      if_true_label, if_false_label);
-+                                      if_true_label, if_false_label,
-+                                      inv (prob));
-         break;
-       case GTU:
-         do_jump_by_parts_greater_rtx (mode, 1, op0, op1,
--                                      if_false_label, if_true_label);
-+                                      if_false_label, if_true_label, prob);
-         break;
-       case GEU:
-         do_jump_by_parts_greater_rtx (mode, 1, op1, op0,
--                                      if_true_label, if_false_label);
-+                                      if_true_label, if_false_label,
-+                                      inv (prob));
-         break;
-       case LT:
-         do_jump_by_parts_greater_rtx (mode, 0, op1, op0,
--                                      if_false_label, if_true_label);
-+                                      if_false_label, if_true_label, prob);
-         break;
-       case LE:
-         do_jump_by_parts_greater_rtx (mode, 0, op0, op1,
--                                      if_true_label, if_false_label);
-+                                      if_true_label, if_false_label,
-+                                      inv (prob));
-         break;
-       case GT:
-         do_jump_by_parts_greater_rtx (mode, 0, op0, op1,
--                                      if_false_label, if_true_label);
-+                                      if_false_label, if_true_label, prob);
-         break;
-       case GE:
-         do_jump_by_parts_greater_rtx (mode, 0, op1, op0,
--                                      if_true_label, if_false_label);
-+                                      if_true_label, if_false_label,
-+                                      inv (prob));
-         break;
-       case EQ:
-         do_jump_by_parts_equality_rtx (mode, op0, op1, if_false_label,
--                                       if_true_label);
-+                                       if_true_label, prob);
-         break;
-       case NE:
-         do_jump_by_parts_equality_rtx (mode, op0, op1, if_true_label,
--                                       if_false_label);
-+                                       if_false_label, inv (prob));
-         break;
-       default:
-@@ -939,8 +976,32 @@
-       }
-     }
-   else
--    emit_cmp_and_jump_insns (op0, op1, code, size, mode, unsignedp,
--                           if_true_label);
-+    {
-+      rtx last = get_last_insn ();
-+      emit_cmp_and_jump_insns (op0, op1, code, size, mode, unsignedp,
-+                             if_true_label);
-+      if (prob != -1 && profile_status != PROFILE_ABSENT)
-+       {
-+       for (last = NEXT_INSN (last);
-+            last && NEXT_INSN (last);
-+            last = NEXT_INSN (last))
-+         if (JUMP_P (last))
-+           break;
-+       if (!last
-+           || !JUMP_P (last)
-+           || NEXT_INSN (last)
-+           || !any_condjump_p (last))
-+         {
-+           if (dump_file)
-+             fprintf (dump_file, "Failed to add probability note\n");
-+         }
-+       else
-+         {
-+           gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
-+           add_reg_note (last, REG_BR_PROB, GEN_INT (prob));
-+         }
-+       }
-+    }
-   if (if_false_label)
-     emit_jump (if_false_label);
-@@ -961,7 +1022,7 @@
- static void
- do_compare_and_jump (tree exp, enum rtx_code signed_code,
-                    enum rtx_code unsigned_code, rtx if_false_label,
--                   rtx if_true_label)
-+                   rtx if_true_label, int prob)
- {
-   rtx op0, op1;
-   tree type;
-@@ -1022,7 +1083,7 @@
-   do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode,
-                            ((mode == BLKmode)
-                             ? expr_size (TREE_OPERAND (exp, 0)) : NULL_RTX),
--                           if_false_label, if_true_label);
-+                           if_false_label, if_true_label, prob);
- }
- #include "gt-dojump.h"
-Index: gcc/dbxout.c
-===================================================================
---- gcc/dbxout.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/dbxout.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -349,6 +349,7 @@
- {
-   dbxout_init,
-   dbxout_finish,
-+  debug_nothing_void,
-   debug_nothing_int_charstar,
-   debug_nothing_int_charstar,
-   dbxout_start_source_file,
-@@ -385,6 +386,7 @@
- {
-   dbxout_init,
-   dbxout_finish,
-+  debug_nothing_void,
-   debug_nothing_int_charstar,
-   debug_nothing_int_charstar,
-   dbxout_start_source_file,
-Index: gcc/tree-ssa-math-opts.c
-===================================================================
---- gcc/tree-ssa-math-opts.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-math-opts.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -528,7 +528,9 @@
-                     || DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD))
-               {
-                 enum built_in_function code;
--                bool md_code;
-+                bool md_code, fail;
-+                imm_use_iterator ui;
-+                use_operand_p use_p;
-                 code = DECL_FUNCTION_CODE (fndecl);
-                 md_code = DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD;
-@@ -537,12 +539,34 @@
-                 if (!fndecl)
-                   continue;
-+                /* Check that all uses of the SSA name are divisions,
-+                   otherwise replacing the defining statement will do
-+                   the wrong thing.  */
-+                fail = false;
-+                FOR_EACH_IMM_USE_FAST (use_p, ui, arg1)
-+                  {
-+                    gimple stmt2 = USE_STMT (use_p);
-+                    if (!is_gimple_assign (stmt2)
-+                        || gimple_assign_rhs_code (stmt2) != RDIV_EXPR
-+                        || gimple_assign_rhs1 (stmt2) == arg1
-+                        || gimple_assign_rhs2 (stmt2) != arg1)
-+                      {
-+                        fail = true;
-+                        break;
-+                      }
-+                  }
-+                if (fail)
-+                  continue;
-+
-                 gimple_call_set_fndecl (stmt1, fndecl);
-                 update_stmt (stmt1);
--                gimple_assign_set_rhs_code (stmt, MULT_EXPR);
--                fold_stmt_inplace (stmt);
--                update_stmt (stmt);
-+                FOR_EACH_IMM_USE_STMT (stmt, ui, arg1)
-+                  {
-+                    gimple_assign_set_rhs_code (stmt, MULT_EXPR);
-+                    fold_stmt_inplace (stmt);
-+                    update_stmt (stmt);
-+                  }
-               }
-           }
-       }
-Index: gcc/tree-ssa-dom.c
-===================================================================
---- gcc/tree-ssa-dom.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-dom.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2491,6 +2491,8 @@
-       if (arg == lhs)
-       continue;
-+      else if (!arg)
-+      break;
-       else if (!val)
-       val = arg;
-       else if (!operand_equal_p (arg, val, 0))
-Index: gcc/tree-ssa-alias.c
-===================================================================
---- gcc/tree-ssa-alias.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-alias.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2335,39 +2335,7 @@
-   size_t i;
-   timevar_push (TV_FLOW_INSENSITIVE);
--  /* For every pointer P, determine which addressable variables may alias
--     with P's symbol memory tag.  */
--  for (i = 0; i < ai->num_pointers; i++)
--    {
--      size_t j;
--      struct alias_map_d *p_map = ai->pointers[i];
--      tree tag = symbol_mem_tag (p_map->var);
--      tree var;
--      for (j = 0; j < ai->num_addressable_vars; j++)
--      {
--        struct alias_map_d *v_map;
--        var_ann_t v_ann;
--        
--        v_map = ai->addressable_vars[j];
--        var = v_map->var;
--        v_ann = var_ann (var);
--
--        /* We used to skip variables that have never been written to
--           if the memory tag has been never written to directly (or
--           either of them were call clobbered).  This is not enough
--           though, as this misses writes through the tags aliases.
--           So, for correctness we need to include any aliased
--           variable here.  */
--
--        if (may_alias_p (p_map->var, p_map->set, var, v_map->set, false))
--          {
--            /* Add VAR to TAG's may-aliases set.  */
--            add_may_alias (tag, var);
--          }
--      }
--    }
--
-   /* Since this analysis is based exclusively on symbols, it fails to
-      handle cases where two pointers P and Q have different memory
-      tags with conflicting alias set numbers but no aliased symbols in
-@@ -2387,7 +2355,11 @@
-      To avoid this problem, we do a final traversal of AI->POINTERS
-      looking for pairs of pointers that have no aliased symbols in
--     common and yet have conflicting alias set numbers.  */
-+     common and yet have conflicting alias set numbers.
-+
-+     Note this has to be done first as we only can avoid adding
-+     aliases for common memory tag aliases, not for common symbol
-+     aliases as they might get pruned by the operand scanner later.  */
-   for (i = 0; i < ai->num_pointers; i++)
-     {
-       size_t j;
-@@ -2418,6 +2390,39 @@
-       }
-     }
-+  /* For every pointer P, determine which addressable variables may alias
-+     with P's symbol memory tag.  */
-+  for (i = 0; i < ai->num_pointers; i++)
-+    {
-+      size_t j;
-+      struct alias_map_d *p_map = ai->pointers[i];
-+      tree tag = symbol_mem_tag (p_map->var);
-+      tree var;
-+
-+      for (j = 0; j < ai->num_addressable_vars; j++)
-+      {
-+        struct alias_map_d *v_map;
-+        var_ann_t v_ann;
-+        
-+        v_map = ai->addressable_vars[j];
-+        var = v_map->var;
-+        v_ann = var_ann (var);
-+
-+        /* We used to skip variables that have never been written to
-+           if the memory tag has been never written to directly (or
-+           either of them were call clobbered).  This is not enough
-+           though, as this misses writes through the tags aliases.
-+           So, for correctness we need to include any aliased
-+           variable here.  */
-+
-+        if (may_alias_p (p_map->var, p_map->set, var, v_map->set, false))
-+          {
-+            /* Add VAR to TAG's may-aliases set.  */
-+            add_may_alias (tag, var);
-+          }
-+      }
-+    }
-+
-   /* We have to add all HEAP variables to all SMTs aliases bitmaps.
-      As we don't know which effective type the HEAP will have we cannot
-      do better here and we need the conflicts with obfuscated pointers
-Index: gcc/ipa-inline.c
-===================================================================
---- gcc/ipa-inline.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ipa-inline.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1418,7 +1418,10 @@
-     }
-   /* Now do the automatic inlining.  */
--  if (mode != INLINE_ALL && mode != INLINE_ALWAYS_INLINE)
-+  if (mode != INLINE_ALL && mode != INLINE_ALWAYS_INLINE
-+      /* Never inline regular functions into always-inline functions
-+       during incremental inlining.  */
-+      && !node->local.disregard_inline_limits)
-     for (e = node->callees; e; e = e->next_callee)
-       {
-       if (!e->callee->local.inlinable
-@@ -1606,17 +1609,17 @@
-   node->global.stack_frame_offset = 0;
-   /* Can this function be inlined at all?  */
--  node->local.inlinable = tree_inlinable_function_p (current_function_decl);
-+  node->local.inlinable = tree_inlinable_function_p (node->decl);
-   /* Estimate the number of instructions for this function.
-      ??? At -O0 we don't use this information except for the dumps, and
-        even then only for always_inline functions.  But disabling this
-        causes ICEs in the inline heuristics...  */
-   inline_summary (node)->self_insns
--      = estimate_num_insns_fn (current_function_decl, &eni_inlining_weights);
-+      = estimate_num_insns_fn (node->decl, &eni_inlining_weights);
-   if (node->local.inlinable && !node->local.disregard_inline_limits)
-     node->local.disregard_inline_limits
--      = DECL_DISREGARD_INLINE_LIMITS (current_function_decl);
-+      = DECL_DISREGARD_INLINE_LIMITS (node->decl);
-   /* Inlining characteristics are maintained by the cgraph_mark_inline.  */
-   node->global.insns = inline_summary (node)->self_insns;
-Index: gcc/config.in
-===================================================================
---- gcc/config.in      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config.in      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -839,6 +839,12 @@
- #endif
-+/* Define 0/1 if your assembler supports .cfi_sections. */
-+#ifndef USED_FOR_TARGET
-+#undef HAVE_GAS_CFI_SECTIONS_DIRECTIVE
-+#endif
-+
-+
- /* Define if your assembler uses the new HImode fild and fist notation. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_GAS_FILDS_FISTS
-Index: gcc/ifcvt.c
-===================================================================
---- gcc/ifcvt.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ifcvt.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -4040,7 +4040,8 @@
-         if (! note)
-           continue;
-         set = single_set (insn);
--        if (!set || !function_invariant_p (SET_SRC (set)))
-+        if (!set || !function_invariant_p (SET_SRC (set))
-+            || !function_invariant_p (XEXP (note, 0)))
-           remove_note (insn, note);
-       } while (insn != end && (insn = NEXT_INSN (insn)));
-@@ -4118,7 +4119,12 @@
- #ifdef IFCVT_MULTIPLE_DUMPS
-       if (dump_file && cond_exec_changed_p)
--      print_rtl_with_bb (dump_file, get_insns ());
-+      {
-+        if (dump_flags & TDF_SLIM)
-+          print_rtl_slim_with_bb (dump_file, get_insns (), dump_flags);
-+        else
-+          print_rtl_with_bb (dump_file, get_insns ());
-+      }
- #endif
-     }
-   while (cond_exec_changed_p);
-Index: gcc/dwarf2out.c
-===================================================================
---- gcc/dwarf2out.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/dwarf2out.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,7 @@
- /* Output Dwarf2 format symbol table information from GCC.
-    Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
--   2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-+   Free Software Foundation, Inc.
-    Contributed by Gary Funck (gary@intrepid.com).
-    Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com).
-    Extensively modified by Jason Merrill (jason@cygnus.com).
-@@ -145,8 +146,19 @@
- #endif
-   if (!flag_dwarf2_cfi_asm || !dwarf2out_do_frame ())
-     return false;
--  if (saved_do_cfi_asm || !eh_personality_libfunc)
-+  if (saved_do_cfi_asm)
-     return true;
-+  if (!HAVE_GAS_CFI_SECTIONS_DIRECTIVE)
-+    {
-+#ifdef TARGET_UNWIND_INFO
-+      return false;
-+#else
-+      if (USING_SJLJ_EXCEPTIONS || (!flag_unwind_tables && !flag_exceptions))
-+      return false;
-+#endif
-+    }
-+  if (!eh_personality_libfunc)
-+    return true;
-   if (!HAVE_GAS_CFI_PERSONALITY_DIRECTIVE)
-     return false;
-@@ -4583,6 +4595,7 @@
- static void dwarf2out_init (const char *);
- static void dwarf2out_finish (const char *);
-+static void dwarf2out_assembly_start (void);
- static void dwarf2out_define (unsigned int, const char *);
- static void dwarf2out_undef (unsigned int, const char *);
- static void dwarf2out_start_source_file (unsigned, const char *);
-@@ -4605,6 +4618,7 @@
- {
-   dwarf2out_init,
-   dwarf2out_finish,
-+  dwarf2out_assembly_start,
-   dwarf2out_define,
-   dwarf2out_undef,
-   dwarf2out_start_source_file,
-@@ -10627,6 +10641,8 @@
-     case CEIL_DIV_EXPR:
-     case ROUND_DIV_EXPR:
-     case TRUNC_DIV_EXPR:
-+      if (TYPE_UNSIGNED (TREE_TYPE (loc)))
-+      return 0;
-       op = DW_OP_div;
-       goto do_binop;
-@@ -10638,9 +10654,24 @@
-     case CEIL_MOD_EXPR:
-     case ROUND_MOD_EXPR:
-     case TRUNC_MOD_EXPR:
--      op = DW_OP_mod;
--      goto do_binop;
-+      if (TYPE_UNSIGNED (TREE_TYPE (loc)))
-+      {
-+        op = DW_OP_mod;
-+        goto do_binop;
-+      }
-+      ret = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 0), 0);
-+      ret1 = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 1), 0);
-+      if (ret == 0 || ret1 == 0)
-+      return 0;
-+      add_loc_descr (&ret, ret1);
-+      add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0));
-+      add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0));
-+      add_loc_descr (&ret, new_loc_descr (DW_OP_div, 0, 0));
-+      add_loc_descr (&ret, new_loc_descr (DW_OP_mul, 0, 0));
-+      add_loc_descr (&ret, new_loc_descr (DW_OP_minus, 0, 0));
-+      break;
-+
-     case MULT_EXPR:
-       op = DW_OP_mul;
-       goto do_binop;
-@@ -13191,7 +13222,9 @@
-   int i;
-   for (i = VEC_length (tree, incomplete_types) - 1; i >= 0; i--)
--    gen_type_die (VEC_index (tree, incomplete_types, i), comp_unit_die);
-+    if (should_emit_struct_debug (VEC_index (tree, incomplete_types, i),
-+                                DINFO_USAGE_DIR_USE))
-+      gen_type_die (VEC_index (tree, incomplete_types, i), comp_unit_die);
- }
- /* Determine what tag to use for a record type.  */
-@@ -16187,8 +16220,24 @@
-       switch_to_section (cold_text_section);
-       ASM_OUTPUT_LABEL (asm_out_file, cold_text_section_label);
-     }
-+
- }
-+/* Called before cgraph_optimize starts outputtting functions, variables
-+   and toplevel asms into assembly.  */
-+
-+static void
-+dwarf2out_assembly_start (void)
-+{
-+  if (HAVE_GAS_CFI_SECTIONS_DIRECTIVE && dwarf2out_do_cfi_asm ())
-+    {
-+#ifndef TARGET_UNWIND_INFO
-+      if (USING_SJLJ_EXCEPTIONS || (!flag_unwind_tables && !flag_exceptions))
-+#endif
-+      fprintf (asm_out_file, "\t.cfi_sections\t.debug_frame\n");
-+    }
-+}
-+
- /* A helper function for dwarf2out_finish called through
-    ht_forall.  Emit one queued .debug_str string.  */
-Index: gcc/expr.c
-===================================================================
---- gcc/expr.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/expr.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Convert tree expression to rtl instructions, for GNU compiler.
-    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -4248,7 +4248,7 @@
-       /* Handle expand_expr of a complex value returning a CONCAT.  */
-       if (GET_CODE (to_rtx) == CONCAT)
-       {
--        if (TREE_CODE (TREE_TYPE (from)) == COMPLEX_TYPE)
-+        if (COMPLEX_MODE_P (TYPE_MODE (TREE_TYPE (from))))
-           {
-             gcc_assert (bitpos == 0);
-             result = store_expr (from, to_rtx, false, nontemporal);
-@@ -4483,7 +4483,7 @@
-       do_pending_stack_adjust ();
-       NO_DEFER_POP;
--      jumpifnot (TREE_OPERAND (exp, 0), lab1);
-+      jumpifnot (TREE_OPERAND (exp, 0), lab1, -1);
-       store_expr (TREE_OPERAND (exp, 1), target, call_param_p,
-                 nontemporal);
-       emit_jump_insn (gen_jump (lab2));
-@@ -5503,7 +5503,7 @@
-                   /* Generate a conditional jump to exit the loop.  */
-                   exit_cond = build2 (LT_EXPR, integer_type_node,
-                                       index, hi_index);
--                  jumpif (exit_cond, loop_end);
-+                  jumpif (exit_cond, loop_end, -1);
-                   /* Update the loop counter, and jump to the head of
-                      the loop.  */
-@@ -8974,7 +8974,8 @@
-       temp = gen_label_rtx ();
-       do_compare_rtx_and_jump (target, cmpop1, comparison_code,
--                               unsignedp, mode, NULL_RTX, NULL_RTX, temp);
-+                               unsignedp, mode, NULL_RTX, NULL_RTX, temp,
-+                               -1);
-       }
-       emit_move_insn (target, op1);
-       emit_label (temp);
-@@ -9125,7 +9126,7 @@
-       emit_move_insn (target, const0_rtx);
-       op1 = gen_label_rtx ();
--      jumpifnot (exp, op1);
-+      jumpifnot (exp, op1, -1);
-       if (target)
-       emit_move_insn (target, const1_rtx);
-@@ -9194,7 +9195,7 @@
-        NO_DEFER_POP;
-        op0 = gen_label_rtx ();
-        op1 = gen_label_rtx ();
--       jumpifnot (TREE_OPERAND (exp, 0), op0);
-+       jumpifnot (TREE_OPERAND (exp, 0), op0, -1);
-        store_expr (TREE_OPERAND (exp, 1), temp,
-                 modifier == EXPAND_STACK_PARM,
-                 false);
-@@ -9240,7 +9241,7 @@
-           int value = TREE_CODE (rhs) == BIT_IOR_EXPR;
-           do_jump (TREE_OPERAND (rhs, 1),
-                    value ? label : 0,
--                   value ? 0 : label);
-+                   value ? 0 : label, -1);
-           expand_assignment (lhs, build_int_cst (TREE_TYPE (rhs), value),
-                              MOVE_NONTEMPORAL (exp));
-           do_pending_stack_adjust ();
-@@ -9924,7 +9925,7 @@
-   emit_move_insn (target, invert ? const0_rtx : const1_rtx);
-   label = gen_label_rtx ();
-   do_compare_rtx_and_jump (op0, op1, code, unsignedp, operand_mode, NULL_RTX,
--                         NULL_RTX, label);
-+                         NULL_RTX, label, -1);
-   emit_move_insn (target, invert ? const1_rtx : const0_rtx);
-   emit_label (label);
-Index: gcc/expr.h
-===================================================================
---- gcc/expr.h (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/expr.h (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Definitions for code generation pass of GNU compiler.
-    Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -564,20 +564,20 @@
- extern tree string_constant (tree, tree *);
- /* Generate code to evaluate EXP and jump to LABEL if the value is zero.  */
--extern void jumpifnot (tree, rtx);
-+extern void jumpifnot (tree, rtx, int);
- /* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
--extern void jumpif (tree, rtx);
-+extern void jumpif (tree, rtx, int);
- /* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
-    the result is zero, or IF_TRUE_LABEL if the result is one.  */
--extern void do_jump (tree, rtx, rtx);
-+extern void do_jump (tree, rtx, rtx, int);
- /* Generate rtl to compare two rtx's, will call emit_cmp_insn.  */
- extern rtx compare_from_rtx (rtx, rtx, enum rtx_code, int, enum machine_mode,
-                            rtx);
- extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
--                                   enum machine_mode, rtx, rtx, rtx);
-+                                   enum machine_mode, rtx, rtx, rtx, int);
- /* Two different ways of generating switch statements.  */
- extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx);
-Index: gcc/opts.c
-===================================================================
---- gcc/opts.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/opts.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -837,6 +837,8 @@
-             if (optimize_val != -1)
-               {
-                 optimize = optimize_val;
-+                if ((unsigned int) optimize > 255)
-+                  optimize = 255;
-                 optimize_size = 0;
-               }
-           }
-Index: gcc/unwind-dw2.c
-===================================================================
---- gcc/unwind-dw2.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/unwind-dw2.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* DWARF2 exception handling and frame unwind runtime interface routines.
-    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
--   2008, 2009  Free Software Foundation, Inc.
-+   2008, 2009, 2010  Free Software Foundation, Inc.
-    This file is part of GCC.
-@@ -765,7 +765,7 @@
-               result = second - first;
-               break;
-             case DW_OP_mod:
--              result = (_Unwind_Sword) second % (_Unwind_Sword) first;
-+              result = second % first;
-               break;
-             case DW_OP_mul:
-               result = second * first;
-@@ -789,22 +789,22 @@
-               result = second ^ first;
-               break;
-             case DW_OP_le:
--              result = (_Unwind_Sword) first <= (_Unwind_Sword) second;
-+              result = (_Unwind_Sword) second <= (_Unwind_Sword) first;
-               break;
-             case DW_OP_ge:
--              result = (_Unwind_Sword) first >= (_Unwind_Sword) second;
-+              result = (_Unwind_Sword) second >= (_Unwind_Sword) first;
-               break;
-             case DW_OP_eq:
--              result = (_Unwind_Sword) first == (_Unwind_Sword) second;
-+              result = (_Unwind_Sword) second == (_Unwind_Sword) first;
-               break;
-             case DW_OP_lt:
--              result = (_Unwind_Sword) first < (_Unwind_Sword) second;
-+              result = (_Unwind_Sword) second < (_Unwind_Sword) first;
-               break;
-             case DW_OP_gt:
--              result = (_Unwind_Sword) first > (_Unwind_Sword) second;
-+              result = (_Unwind_Sword) second > (_Unwind_Sword) first;
-               break;
-             case DW_OP_ne:
--              result = (_Unwind_Sword) first != (_Unwind_Sword) second;
-+              result = (_Unwind_Sword) second != (_Unwind_Sword) first;
-               break;
-             default:
-Index: gcc/ada/init.c
-===================================================================
---- gcc/ada/init.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ada/init.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -290,28 +290,21 @@
- extern void __gnat_set_code_loc (struct sigcontext *, char *);
- extern size_t __gnat_machine_state_length (void);
--/* __gnat_adjust_context_for_raise - see comments along with the default
--   version later in this file.  */
--
- #define HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE
- void
--__gnat_adjust_context_for_raise (int signo, void *context)
-+__gnat_adjust_context_for_raise (int signo, void *ucontext)
- {
--  struct sigcontext * sigcontext = (struct sigcontext *) context;
-+  struct sigcontext *sigcontext = (struct sigcontext *) ucontext;
--  /* The fallback code fetches the faulting insn address from sc_pc, so
--     adjust that when need be.  For SIGFPE, the required adjustment depends
--     on the trap shadow situation (see man ieee).  */
-+  /* The unwinder expects the signal context to contain the address of the
-+     faulting instruction.  For SIGFPE, this depends on the trap shadow
-+     situation (see man ieee).  We nonetheless always compensate for it,
-+     considering that PC designates the instruction following the one that
-+     trapped.  This is not necessarily true but corresponds to what we have
-+     always observed.  */
-   if (signo == SIGFPE)
--    {
--      /* ??? We never adjust here, considering that sc_pc always
--       designates the instruction following the one which trapped.
--       This is not necessarily true but corresponds to what we have
--       always observed.  */
--    }
--  else
--    sigcontext->sc_pc ++;
-+    sigcontext->sc_pc--;
- }
- static void
-@@ -2154,8 +2147,11 @@
-                                void *ucontext ATTRIBUTE_UNUSED)
- {
-   /* We used to compensate here for the raised from call vs raised from signal
--     exception discrepancy with the GCC ZCX scheme, but this is now dealt with
--     generically (except for the Alpha and IA-64), see GCC PR other/26208.
-+     exception discrepancy with the GCC ZCX scheme, but this now can be dealt
-+     with generically in the unwinder (see GCC PR other/26208).  This however
-+     requires the use of the _Unwind_GetIPInfo routine in raise-gcc.c, which
-+     is predicated on the definition of HAVE_GETIPINFO at compile time.  Only
-+     the VMS ports still do the compensation described in the few lines below.
-      *** Call vs signal exception discrepancy with GCC ZCX scheme ***
-Index: gcc/ada/ChangeLog
-===================================================================
---- gcc/ada/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ada/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,30 @@
-+2010-02-27  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      PR ada/42253
-+      * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Assert that fat
-+      pointer base types are variant of each other.  Apply special treatment
-+      for null to fat pointer types in all cases.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-10-27  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      * raise-gcc (db_region_for): Use _Unwind_GetIPInfo instead of
-+      _Unwind_GetIP if HAVE_GETIPINFO is defined.
-+      (db_action_for): Likewise.
-+
-+2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      * init.c (__gnat_adjust_context_for_raise): Mention _Unwind_GetIPInfo.
-+      * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Add HAVE_GETIPINFO.
-+      Pass GNATLIBCFLAGS_FOR_C to recursive invocations.
-+
-+      Backport from mainline:
-+      2009-04-10  Eric Botcazou  <ebotcazou@adacore.com>
-+      * init.c: Adjust EH support code on Alpha/Tru64.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: gcc/ada/raise-gcc.c
-===================================================================
---- gcc/ada/raise-gcc.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ada/raise-gcc.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -56,6 +56,14 @@
- #include "adaint.h"
- #include "raise.h"
-+#ifdef __APPLE__
-+/* On MacOS X, versions older than 10.5 don't export _Unwind_GetIPInfo.  */
-+#undef HAVE_GETIPINFO
-+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
-+#define HAVE_GETIPINFO 1
-+#endif
-+#endif
-+
- /* The names of a couple of "standard" routines for unwinding/propagation
-    actually vary depending on the underlying GCC scheme for exception handling
-    (SJLJ or DWARF). We need a consistently named interface to import from
-@@ -501,7 +509,14 @@
- static void
- db_region_for (region_descriptor *region, _Unwind_Context *uw_context)
- {
--  _Unwind_Ptr ip = _Unwind_GetIP (uw_context) - 1;
-+  int ip_before_insn = 0;
-+#ifdef HAVE_GETIPINFO
-+  _Unwind_Ptr ip = _Unwind_GetIPInfo (uw_context, &ip_before_insn);
-+#else
-+  _Unwind_Ptr ip = _Unwind_GetIP (uw_context);
-+#endif
-+  if (!ip_before_insn)
-+    ip--;
-   if (! (db_accepted_codes () & DB_REGIONS))
-     return;
-@@ -631,7 +646,14 @@
- static void
- db_action_for (action_descriptor *action, _Unwind_Context *uw_context)
- {
--  _Unwind_Ptr ip = _Unwind_GetIP (uw_context) - 1;
-+  int ip_before_insn = 0;
-+#ifdef HAVE_GETIPINFO
-+  _Unwind_Ptr ip = _Unwind_GetIPInfo (uw_context, &ip_before_insn);
-+#else
-+  _Unwind_Ptr ip = _Unwind_GetIP (uw_context);
-+#endif
-+  if (!ip_before_insn)
-+    ip--;
-   db (DB_ACTIONS, "For ip @ 0x%08x => ", ip);
-@@ -670,14 +692,6 @@
-    There are two variants of this routine, depending on the underlying
-    mechanism (DWARF/SJLJ), which account for differences in the tables.  */
--#ifdef __APPLE__
--/* On MacOS X, versions older than 10.5 don't export _Unwind_GetIPInfo.  */
--#undef HAVE_GETIPINFO
--#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
--#define HAVE_GETIPINFO 1
--#endif
--#endif
--
- #ifdef __USING_SJLJ_EXCEPTIONS__
- #define __builtin_eh_return_data_regno(x) x
-Index: gcc/ada/gcc-interface/Makefile.in
-===================================================================
---- gcc/ada/gcc-interface/Makefile.in  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ada/gcc-interface/Makefile.in  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -106,8 +106,11 @@
- FORCE_DEBUG_ADAFLAGS = -g
- GNATLIBFLAGS = -gnatpg -nostdinc
- GNATLIBCFLAGS = -g -O2
-+# Pretend that _Unwind_GetIPInfo is available for the target by default.  This
-+# should be autodetected during the configuration of libada and passed down to
-+# here, but we need something for --disable-libada and hope for the best.
- GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
--      -DIN_RTS
-+      -DIN_RTS -DHAVE_GETIPINFO
- ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
- MOST_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(SOME_ADAFLAGS)
- THREAD_KIND = native
-@@ -2074,6 +2077,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib
-@@ -2099,6 +2103,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib-shared-default
-@@ -2107,6 +2112,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib
-@@ -2116,6 +2122,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib-shared-win32
-@@ -2124,6 +2131,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib
-@@ -2137,6 +2145,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib
-@@ -2156,6 +2165,7 @@
-            GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
-                           -fno-common" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-            gnatlib
-@@ -2179,6 +2189,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-              gnatlib
-@@ -2207,6 +2218,7 @@
-       $(MAKE) $(FLAGS_TO_PASS) \
-              GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-            TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
-@@ -2220,6 +2232,7 @@
-            EH_MECHANISM="" \
-            GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-            TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib
-@@ -2232,6 +2245,7 @@
-            EH_MECHANISM="-gcc" \
-            GNATLIBFLAGS="$(GNATLIBFLAGS)" \
-            GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
-+           GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
-            MULTISUBDIR="$(MULTISUBDIR)" \
-            THREAD_KIND="$(THREAD_KIND)" \
-            TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib
-Index: gcc/ada/gcc-interface/utils2.c
-===================================================================
---- gcc/ada/gcc-interface/utils2.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ada/gcc-interface/utils2.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -879,26 +879,28 @@
-         return result;
-       }
--      /* Otherwise, the base types must be the same unless the objects are
--       fat pointers or records.  If we have records, use the best type and
--       convert both operands to that type.  */
-+      /* Otherwise, the base types must be the same, unless they are both fat
-+       pointer types or record types.  In the latter case, use the best type
-+       and convert both operands to that type.  */
-       if (left_base_type != right_base_type)
-       {
-         if (TYPE_FAT_POINTER_P (left_base_type)
--            && TYPE_FAT_POINTER_P (right_base_type)
--            && TYPE_MAIN_VARIANT (left_base_type)
--               == TYPE_MAIN_VARIANT (right_base_type))
--          best_type = left_base_type;
-+            && TYPE_FAT_POINTER_P (right_base_type))
-+          {
-+            gcc_assert (TYPE_MAIN_VARIANT (left_base_type)
-+                        == TYPE_MAIN_VARIANT (right_base_type));
-+            best_type = left_base_type;
-+          }
-+
-         else if (TREE_CODE (left_base_type) == RECORD_TYPE
-                  && TREE_CODE (right_base_type) == RECORD_TYPE)
-           {
--            /* The only way these are permitted to be the same is if both
--               types have the same name.  In that case, one of them must
--               not be self-referential.  Use that one as the best type.
--               Even better is if one is of fixed size.  */
-+            /* The only way this is permitted is if both types have the same
-+               name.  In that case, one of them must not be self-referential.
-+               Use it as the best type.  Even better with a fixed size.  */
-             gcc_assert (TYPE_NAME (left_base_type)
--                        && (TYPE_NAME (left_base_type)
--                            == TYPE_NAME (right_base_type)));
-+                        && TYPE_NAME (left_base_type)
-+                           == TYPE_NAME (right_base_type));
-             if (TREE_CONSTANT (TYPE_SIZE (left_base_type)))
-               best_type = left_base_type;
-@@ -911,34 +913,34 @@
-             else
-               gcc_unreachable ();
-           }
-+
-         else
-           gcc_unreachable ();
-         left_operand = convert (best_type, left_operand);
-         right_operand = convert (best_type, right_operand);
-       }
--
--      /* If we are comparing a fat pointer against zero, we need to
--       just compare the data pointer.  */
--      else if (TYPE_FAT_POINTER_P (left_base_type)
--             && TREE_CODE (right_operand) == CONSTRUCTOR
--             && integer_zerop (VEC_index (constructor_elt,
--                                          CONSTRUCTOR_ELTS (right_operand),
--                                          0)
--                               ->value))
--      {
--        right_operand = build_component_ref (left_operand, NULL_TREE,
--                                             TYPE_FIELDS (left_base_type),
--                                             false);
--        left_operand = convert (TREE_TYPE (right_operand),
--                                integer_zero_node);
--      }
-       else
-       {
-         left_operand = convert (left_base_type, left_operand);
-         right_operand = convert (right_base_type, right_operand);
-       }
-+      /* If we are comparing a fat pointer against zero, we just need to
-+       compare the data pointer.  */
-+      if (TYPE_FAT_POINTER_P (left_base_type)
-+        && TREE_CODE (right_operand) == CONSTRUCTOR
-+        && integer_zerop (VEC_index (constructor_elt,
-+                                     CONSTRUCTOR_ELTS (right_operand),
-+                                     0)->value))
-+      {
-+        left_operand
-+          = build_component_ref (left_operand, NULL_TREE,
-+                                 TYPE_FIELDS (left_base_type), false);
-+        right_operand
-+          = convert (TREE_TYPE (left_operand), integer_zero_node);
-+      }
-+
-       modulus = NULL_TREE;
-       break;
-Index: gcc/dse.c
-===================================================================
---- gcc/dse.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/dse.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1015,9 +1015,6 @@
- {
-   switch (GET_CODE (x))
-     {
--    case MEM:
--      return MEM_READONLY_P (x);
--
-     case CONST:
-     case CONST_INT:
-     case CONST_DOUBLE:
-Index: gcc/c-decl.c
-===================================================================
---- gcc/c-decl.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/c-decl.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Process declarations and variables for C compiler.
-    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -3735,7 +3735,8 @@
-   tree complit;
-   tree stmt;
--  if (type == error_mark_node)
-+  if (type == error_mark_node
-+      || init == error_mark_node)
-     return error_mark_node;
-   decl = build_decl (VAR_DECL, NULL_TREE, type);
-@@ -6777,6 +6778,8 @@
-       && !current_function_returns_value && !current_function_returns_null
-       /* Don't complain if we are no-return.  */
-       && !current_function_returns_abnormally
-+      /* Don't complain if we are declared noreturn.  */
-+      && !TREE_THIS_VOLATILE (fndecl)
-       /* Don't warn for main().  */
-       && !MAIN_NAME_P (DECL_NAME (fndecl))
-       /* Or if they didn't actually specify a return type.  */
-Index: gcc/fortran/trans-expr.c
-===================================================================
---- gcc/fortran/trans-expr.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-expr.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2118,8 +2118,8 @@
-    an actual argument derived type array is copied and then returned
-    after the function call.  */
- void
--gfc_conv_subref_array_arg (gfc_se * parmse, gfc_expr * expr,
--                         int g77, sym_intent intent)
-+gfc_conv_subref_array_arg (gfc_se * parmse, gfc_expr * expr, int g77,
-+                         sym_intent intent, bool formal_ptr)
- {
-   gfc_se lse;
-   gfc_se rse;
-@@ -2132,8 +2132,10 @@
-   tree tmp_index;
-   tree tmp;
-   tree base_type;
-+  tree size;
-   stmtblock_t body;
-   int n;
-+  int dimen;
-   gcc_assert (expr->expr_type == EXPR_VARIABLE);
-@@ -2262,9 +2264,10 @@
-      outside the innermost loop, so the overall transfer could be
-      optimized further.  */
-   info = &rse.ss->data.info;
-+  dimen = info->dimen;
-   tmp_index = gfc_index_zero_node;
--  for (n = info->dimen - 1; n > 0; n--)
-+  for (n = dimen - 1; n > 0; n--)
-     {
-       tree tmp_str;
-       tmp = rse.loop->loopvar[n];
-@@ -2324,6 +2327,38 @@
-   if (expr->ts.type == BT_CHARACTER)
-     parmse->string_length = expr->ts.cl->backend_decl;
-+  /* Determine the offset for pointer formal arguments and set the
-+     lbounds to one.  */
-+  if (formal_ptr)
-+    {
-+      size = gfc_index_one_node;
-+      offset = gfc_index_zero_node;  
-+      for (n = 0; n < dimen; n++)
-+      {
-+        tmp = gfc_conv_descriptor_ubound (parmse->expr,
-+                                          gfc_rank_cst[n]);
-+        gfc_add_modify (&parmse->pre, tmp,
-+                        fold_build2 (PLUS_EXPR, gfc_array_index_type,
-+                                     tmp, gfc_index_one_node));
-+        tmp = gfc_conv_descriptor_lbound (parmse->expr,
-+                                          gfc_rank_cst[n]);
-+        gfc_add_modify (&parmse->pre, tmp, gfc_index_one_node);
-+        size = gfc_evaluate_now (size, &parmse->pre);
-+        offset = fold_build2 (MINUS_EXPR, gfc_array_index_type,
-+                              offset, size);
-+        offset = gfc_evaluate_now (offset, &parmse->pre);
-+        tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type,
-+                           rse.loop->to[n], rse.loop->from[n]);
-+        tmp = fold_build2 (PLUS_EXPR, gfc_array_index_type,
-+                           tmp, gfc_index_one_node);
-+        size = fold_build2 (MULT_EXPR, gfc_array_index_type,
-+                            size, tmp);
-+      }
-+
-+      tmp = gfc_conv_descriptor_offset (parmse->expr);
-+      gfc_add_modify (&parmse->pre, tmp, offset);
-+    }
-+
-   /* We want either the address for the data or the address of the descriptor,
-      depending on the mode of passing array arguments.  */
-   if (g77)
-@@ -2620,8 +2655,11 @@
-                  through arg->name.  */
-               conv_arglist_function (&parmse, arg->expr, arg->name);
-             else if ((e->expr_type == EXPR_FUNCTION)
--                        && e->symtree->n.sym->attr.pointer
--                        && fsym && fsym->attr.target)
-+                      && ((e->value.function.esym
-+                           && e->value.function.esym->result->attr.pointer)
-+                          || (!e->value.function.esym
-+                              && e->symtree->n.sym->attr.pointer))
-+                      && fsym && fsym->attr.target)
-               {
-                 gfc_conv_expr (&parmse, e);
-                 parmse.expr = build_fold_addr_expr (parmse.expr);
-@@ -2663,21 +2701,27 @@
-                  is converted to a temporary, which is passed and then
-                  written back after the procedure call.  */
-               gfc_conv_subref_array_arg (&parmse, e, f,
--                      fsym ? fsym->attr.intent : INTENT_INOUT);
-+                              fsym ? fsym->attr.intent : INTENT_INOUT,
-+                              fsym && fsym->attr.pointer);
-             else
-               gfc_conv_array_parameter (&parmse, e, argss, f, fsym,
-                                         sym->name);
--              /* If an ALLOCATABLE dummy argument has INTENT(OUT) and is 
--                 allocated on entry, it must be deallocated.  */
--              if (fsym && fsym->attr.allocatable
--                  && fsym->attr.intent == INTENT_OUT)
--                {
--                  tmp = build_fold_indirect_ref (parmse.expr);
--                  tmp = gfc_trans_dealloc_allocated (tmp);
--                  gfc_add_expr_to_block (&se->pre, tmp);
--                }
--
-+            /* If an ALLOCATABLE dummy argument has INTENT(OUT) and is 
-+               allocated on entry, it must be deallocated.  */
-+            if (fsym && fsym->attr.allocatable
-+                && fsym->attr.intent == INTENT_OUT)
-+              {
-+                tmp = build_fold_indirect_ref (parmse.expr);
-+                tmp = gfc_trans_dealloc_allocated (tmp);
-+                if (fsym->attr.optional
-+                    && e->expr_type == EXPR_VARIABLE
-+                    && e->symtree->n.sym->attr.optional)
-+                  tmp = fold_build3 (COND_EXPR, void_type_node,
-+                                   gfc_conv_expr_present (e->symtree->n.sym),
-+                                     tmp, build_empty_stmt ());
-+                gfc_add_expr_to_block (&se->pre, tmp);
-+              }
-           } 
-       }
-@@ -3510,6 +3554,150 @@
- }
-+static tree
-+gfc_trans_alloc_subarray_assign (tree dest, gfc_component * cm,
-+                               gfc_expr * expr)
-+{
-+  gfc_se se;
-+  gfc_ss *rss;
-+  stmtblock_t block;
-+  tree offset;
-+  int n;
-+  tree tmp;
-+  tree tmp2;
-+  gfc_array_spec *as;
-+  gfc_expr *arg = NULL;
-+
-+  gfc_start_block (&block);
-+  gfc_init_se (&se, NULL);
-+
-+  /* Get the descriptor for the expressions.  */ 
-+  rss = gfc_walk_expr (expr);
-+  se.want_pointer = 0;
-+  gfc_conv_expr_descriptor (&se, expr, rss);
-+  gfc_add_block_to_block (&block, &se.pre);
-+  gfc_add_modify (&block, dest, se.expr);
-+
-+  /* Deal with arrays of derived types with allocatable components.  */
-+  if (cm->ts.type == BT_DERIVED
-+      && cm->ts.derived->attr.alloc_comp)
-+    tmp = gfc_copy_alloc_comp (cm->ts.derived,
-+                             se.expr, dest,
-+                             cm->as->rank);
-+  else
-+    tmp = gfc_duplicate_allocatable (dest, se.expr,
-+                                   TREE_TYPE(cm->backend_decl),
-+                                   cm->as->rank);
-+
-+  gfc_add_expr_to_block (&block, tmp);
-+  gfc_add_block_to_block (&block, &se.post);
-+
-+  if (expr->expr_type != EXPR_VARIABLE)
-+    gfc_conv_descriptor_data_set (&block, se.expr,
-+                                null_pointer_node);
-+
-+  /* We need to know if the argument of a conversion function is a
-+     variable, so that the correct lower bound can be used.  */
-+  if (expr->expr_type == EXPR_FUNCTION
-+      && expr->value.function.isym
-+      && expr->value.function.isym->conversion
-+      && expr->value.function.actual->expr
-+      && expr->value.function.actual->expr->expr_type == EXPR_VARIABLE)
-+    arg = expr->value.function.actual->expr;
-+
-+  /* Obtain the array spec of full array references.  */
-+  if (arg)
-+    as = gfc_get_full_arrayspec_from_expr (arg);
-+  else
-+    as = gfc_get_full_arrayspec_from_expr (expr);
-+
-+  /* Shift the lbound and ubound of temporaries to being unity,
-+     rather than zero, based. Always calculate the offset.  */
-+  offset = gfc_conv_descriptor_offset (dest);
-+  gfc_add_modify (&block, offset, gfc_index_zero_node);
-+  tmp2 =gfc_create_var (gfc_array_index_type, NULL);
-+
-+  for (n = 0; n < expr->rank; n++)
-+    {
-+      tree span;
-+      tree lbound;
-+      tree ubound;
-+
-+      /* Obtain the correct lbound - ISO/IEC TR 15581:2001 page 9.
-+       TODO It looks as if gfc_conv_expr_descriptor should return
-+       the correct bounds and that the following should not be
-+       necessary.  This would simplify gfc_conv_intrinsic_bound
-+       as well.  */
-+      if (as && as->lower[n])
-+      {
-+        gfc_se lbse;
-+        gfc_init_se (&lbse, NULL);
-+        gfc_conv_expr (&lbse, as->lower[n]);
-+        gfc_add_block_to_block (&block, &lbse.pre);
-+        lbound = gfc_evaluate_now (lbse.expr, &block);
-+      }
-+      else if (as && arg)
-+      {
-+        tmp = gfc_get_symbol_decl (arg->symtree->n.sym);
-+        lbound = gfc_conv_descriptor_lbound (tmp, gfc_rank_cst[n]);
-+      }
-+      else if (as)
-+      lbound = gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]);
-+      else
-+      lbound = gfc_index_one_node;
-+
-+      lbound = fold_convert (gfc_array_index_type, lbound);
-+
-+      /* Shift the bounds and set the offset accordingly.  */
-+      tmp = gfc_conv_descriptor_ubound (dest, gfc_rank_cst[n]);
-+      span = fold_build2 (MINUS_EXPR, gfc_array_index_type, tmp,
-+              gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]));
-+
-+      ubound = fold_build2 (PLUS_EXPR, gfc_array_index_type,
-+                          span, lbound);
-+      gfc_add_modify (&block, tmp, ubound);
-+
-+      tmp = gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]);
-+      gfc_add_modify (&block, tmp, lbound);
-+
-+      tmp = fold_build2 (MULT_EXPR, gfc_array_index_type,
-+              gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]),
-+              gfc_conv_descriptor_stride (dest, gfc_rank_cst[n]));
-+
-+      gfc_add_modify (&block, tmp2, tmp);
-+      tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type,
-+                       offset, tmp2);
-+      gfc_add_modify (&block, offset, tmp);
-+    }
-+
-+  if (arg)
-+    {
-+      /* If a conversion expression has a null data pointer
-+       argument, nullify the allocatable component.  */
-+      tree non_null_expr;
-+      tree null_expr;
-+
-+      if (arg->symtree->n.sym->attr.allocatable
-+          || arg->symtree->n.sym->attr.pointer)
-+      {
-+        non_null_expr = gfc_finish_block (&block);
-+        gfc_start_block (&block);
-+        gfc_conv_descriptor_data_set (&block, dest,
-+                                      null_pointer_node);
-+        null_expr = gfc_finish_block (&block);
-+        tmp = gfc_conv_descriptor_data_get (arg->symtree->n.sym->backend_decl);
-+        tmp = build2 (EQ_EXPR, boolean_type_node, tmp,
-+                      fold_convert (TREE_TYPE (tmp),
-+                                    null_pointer_node));
-+        return build3_v (COND_EXPR, tmp,
-+                         null_expr, non_null_expr);
-+      }
-+    }
-+
-+  return gfc_finish_block (&block);
-+}
-+
-+
- /* Assign a single component of a derived type constructor.  */
- static tree
-@@ -3520,8 +3708,6 @@
-   gfc_ss *rss;
-   stmtblock_t block;
-   tree tmp;
--  tree offset;
--  int n;
-   gfc_start_block (&block);
-@@ -3561,91 +3747,8 @@
-       gfc_conv_descriptor_data_set (&block, dest, null_pointer_node);
-       else if (cm->attr.allocatable)
-       {
--        tree tmp2;
--
--          gfc_init_se (&se, NULL);
-- 
--        rss = gfc_walk_expr (expr);
--        se.want_pointer = 0;
--        gfc_conv_expr_descriptor (&se, expr, rss);
--        gfc_add_block_to_block (&block, &se.pre);
--
--        tmp = fold_convert (TREE_TYPE (dest), se.expr);
--        gfc_add_modify (&block, dest, tmp);
--
--        if (cm->ts.type == BT_DERIVED && cm->ts.derived->attr.alloc_comp)
--          tmp = gfc_copy_alloc_comp (cm->ts.derived, se.expr, dest,
--                                     cm->as->rank);
--        else
--          tmp = gfc_duplicate_allocatable (dest, se.expr,
--                                           TREE_TYPE(cm->backend_decl),
--                                           cm->as->rank);
--
-+        tmp = gfc_trans_alloc_subarray_assign (dest, cm, expr);
-         gfc_add_expr_to_block (&block, tmp);
--        gfc_add_block_to_block (&block, &se.post);
--
--        if (expr->expr_type != EXPR_VARIABLE)
--          gfc_conv_descriptor_data_set (&block, se.expr, null_pointer_node);
--
--        /* Shift the lbound and ubound of temporaries to being unity, rather
--           than zero, based.  Calculate the offset for all cases.  */
--        offset = gfc_conv_descriptor_offset (dest);
--        gfc_add_modify (&block, offset, gfc_index_zero_node);
--        tmp2 =gfc_create_var (gfc_array_index_type, NULL);
--        for (n = 0; n < expr->rank; n++)
--          {
--            if (expr->expr_type != EXPR_VARIABLE
--                  && expr->expr_type != EXPR_CONSTANT)
--              {
--                tree span;
--                tmp = gfc_conv_descriptor_ubound (dest, gfc_rank_cst[n]);
--                span = fold_build2 (MINUS_EXPR, gfc_array_index_type, tmp,
--                          gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]));
--                gfc_add_modify (&block, tmp,
--                                     fold_build2 (PLUS_EXPR,
--                                                  gfc_array_index_type,
--                                                  span, gfc_index_one_node));
--                tmp = gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]);
--                gfc_add_modify (&block, tmp, gfc_index_one_node);
--              }
--            tmp = fold_build2 (MULT_EXPR, gfc_array_index_type,
--                               gfc_conv_descriptor_lbound (dest,
--                                                           gfc_rank_cst[n]),
--                               gfc_conv_descriptor_stride (dest,
--                                                           gfc_rank_cst[n]));
--            gfc_add_modify (&block, tmp2, tmp);
--            tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type, offset, tmp2);
--            gfc_add_modify (&block, offset, tmp);
--          }
--
--        if (expr->expr_type == EXPR_FUNCTION
--              && expr->value.function.isym
--              && expr->value.function.isym->conversion
--              && expr->value.function.actual->expr
--              && expr->value.function.actual->expr->expr_type
--                                              == EXPR_VARIABLE)
--          {
--            /* If a conversion expression has a null data pointer
--               argument, nullify the allocatable component.  */
--            gfc_symbol *s;
--            tree non_null_expr;
--            tree null_expr;
--            s = expr->value.function.actual->expr->symtree->n.sym;
--            if (s->attr.allocatable || s->attr.pointer)
--              {
--                non_null_expr = gfc_finish_block (&block);
--                gfc_start_block (&block);
--                gfc_conv_descriptor_data_set (&block, dest,
--                                              null_pointer_node);
--                null_expr = gfc_finish_block (&block);
--                tmp = gfc_conv_descriptor_data_get (s->backend_decl);
--                tmp = build2 (EQ_EXPR, boolean_type_node, tmp,
--                              fold_convert (TREE_TYPE (tmp),
--                                            null_pointer_node));
--                return build3_v (COND_EXPR, tmp, null_expr,
--                                 non_null_expr);
--              }
--          }
-       }
-       else
-       {
-@@ -3948,8 +4051,12 @@
-     }
-   if (expr->expr_type == EXPR_FUNCTION
--      && expr->symtree->n.sym->attr.pointer
--      && !expr->symtree->n.sym->attr.dimension)
-+      && ((expr->value.function.esym
-+         && expr->value.function.esym->result->attr.pointer
-+         && !expr->value.function.esym->result->attr.dimension)
-+        || (!expr->value.function.esym
-+            && expr->symtree->n.sym->attr.pointer
-+            && !expr->symtree->n.sym->attr.dimension)))
-     {
-       se->want_pointer = 1;
-       gfc_conv_expr (se, expr);
-Index: gcc/fortran/trans-array.c
-===================================================================
---- gcc/fortran/trans-array.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-array.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -788,7 +788,6 @@
-   src_info = &src_ss->data.info;
-   dest_info = &dest_ss->data.info;
-   gcc_assert (dest_info->dimen == 2);
--  gcc_assert (src_info->dimen == 2);
-   /* Get a descriptor for EXPR.  */
-   gfc_init_se (&src_se, NULL);
-Index: gcc/fortran/symbol.c
-===================================================================
---- gcc/fortran/symbol.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/symbol.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2693,7 +2693,7 @@
-       if (p->gfc_new)
-       {
-         /* Symbol was new.  */
--        if (p->attr.in_common && p->common_block->head)
-+        if (p->attr.in_common && p->common_block && p->common_block->head)
-           {
-             /* If the symbol was added to any common block, it
-                needs to be removed to stop the resolver looking
-@@ -4237,6 +4237,8 @@
-   new_symtree->n.sym->module = gfc_get_string (old_sym->module);
-   new_symtree->n.sym->from_intmod = old_sym->from_intmod;
-   new_symtree->n.sym->intmod_sym_id = old_sym->intmod_sym_id;
-+  if (old_sym->attr.function)
-+    new_symtree->n.sym->result = new_symtree->n.sym;
-   /* Build the formal arg list.  */
-   build_formal_args (new_symtree->n.sym, old_sym, add_optional_arg);
-Index: gcc/fortran/decl.c
-===================================================================
---- gcc/fortran/decl.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/decl.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Declaration statement matcher
--   Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008
-+   Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by Andy Vaught
-@@ -6597,10 +6597,9 @@
-   if (initializer == NULL || initializer->ts.type != BT_INTEGER)
-     {
--      gfc_error("ENUMERATOR %L not initialized with integer expression",
--              &var_locus);
-+      gfc_error ("ENUMERATOR %L not initialized with integer expression",
-+               &var_locus);
-       m = MATCH_ERROR;
--      gfc_free_enum_history ();
-       goto cleanup;
-     }
-@@ -6666,7 +6665,10 @@
-     {
-       m = enumerator_decl ();
-       if (m == MATCH_ERROR)
--      goto cleanup;
-+      {
-+        gfc_free_enum_history ();
-+        goto cleanup;
-+      }
-       if (m == MATCH_NO)
-       break;
-Index: gcc/fortran/trans-openmp.c
-===================================================================
---- gcc/fortran/trans-openmp.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-openmp.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1155,6 +1155,7 @@
-     {
-       int simple = 0;
-       int dovar_found = 0;
-+      tree dovar_decl;
-       if (clauses)
-       {
-@@ -1195,12 +1196,19 @@
-       gfc_conv_expr_val (&se, code->ext.iterator->step);
-       gfc_add_block_to_block (pblock, &se.pre);
-       step = gfc_evaluate_now (se.expr, pblock);
-+      dovar_decl = dovar;
-       /* Special case simple loops.  */
--      if (integer_onep (step))
--      simple = 1;
--      else if (tree_int_cst_equal (step, integer_minus_one_node))
--      simple = -1;
-+      if (TREE_CODE (dovar) == VAR_DECL)
-+      {
-+        if (integer_onep (step))
-+          simple = 1;
-+        else if (tree_int_cst_equal (step, integer_minus_one_node))
-+          simple = -1;
-+      }
-+      else
-+      dovar_decl
-+        = gfc_trans_omp_variable (code->ext.iterator->var->symtree->n.sym);
-       /* Loop body.  */
-       if (simple)
-@@ -1244,7 +1252,7 @@
-       if (!dovar_found)
-       {
-         tmp = build_omp_clause (OMP_CLAUSE_PRIVATE);
--        OMP_CLAUSE_DECL (tmp) = dovar;
-+        OMP_CLAUSE_DECL (tmp) = dovar_decl;
-         omp_clauses = gfc_trans_add_clause (tmp, omp_clauses);
-       }
-       else if (dovar_found == 2)
-@@ -1264,7 +1272,7 @@
-             tmp = fold_build2 (MODIFY_EXPR, type, dovar, tmp);
-             for (c = omp_clauses; c ; c = OMP_CLAUSE_CHAIN (c))
-               if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE
--                  && OMP_CLAUSE_DECL (c) == dovar)
-+                  && OMP_CLAUSE_DECL (c) == dovar_decl)
-                 {
-                   OMP_CLAUSE_LASTPRIVATE_STMT (c) = tmp;
-                   break;
-@@ -1274,10 +1282,10 @@
-           {
-             for (c = par_clauses; c ; c = OMP_CLAUSE_CHAIN (c))
-               if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE
--                  && OMP_CLAUSE_DECL (c) == dovar)
-+                  && OMP_CLAUSE_DECL (c) == dovar_decl)
-                 {
-                   tree l = build_omp_clause (OMP_CLAUSE_LASTPRIVATE);
--                  OMP_CLAUSE_DECL (l) = dovar;
-+                  OMP_CLAUSE_DECL (l) = dovar_decl;
-                   OMP_CLAUSE_CHAIN (l) = omp_clauses;
-                   OMP_CLAUSE_LASTPRIVATE_STMT (l) = tmp;
-                   omp_clauses = l;
-Index: gcc/fortran/gfortran.h
-===================================================================
---- gcc/fortran/gfortran.h     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/gfortran.h     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2450,6 +2450,8 @@
- gfc_expr *gfc_default_initializer (gfc_typespec *);
- gfc_expr *gfc_get_variable_expr (gfc_symtree *);
-+gfc_array_spec *gfc_get_full_arrayspec_from_expr (gfc_expr *expr);
-+
- bool gfc_traverse_expr (gfc_expr *, gfc_symbol *,
-                       bool (*)(gfc_expr *, gfc_symbol *, int*),
-                       int);
-Index: gcc/fortran/ChangeLog
-===================================================================
---- gcc/fortran/ChangeLog      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,140 @@
-+2010-03-11  Tobias Burnus  <burnus@net-b.de
-+
-+      PR fortran/43303
-+      * symbol.c (get_iso_c_sym): Set sym->result.
-+
-+2010-02-16  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/41869
-+      * module.c (fix_mio_expr): Fix for private generic procedures.
-+
-+2010-02-11  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR fortran/43030
-+      * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
-+
-+      PR fortran/43029
-+      * decl.c (enumerator_decl): Don't call gfc_free_enum_history
-+      here.
-+      (gfc_match_enumerator_def): But here whenever enumerator_decl returns
-+      MATCH_ERROR.
-+
-+2010-02-10  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR fortran/42309
-+      * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
-+      info->dimen after info has been freed.
-+
-+2010-02-06  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/42309
-+      * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
-+      'formal_ptr'. If this is true, give returned descriptor unity
-+      lbounds, in all dimensions, and the appropriate offset.
-+      (gfc_conv_procedure_call); If formal is a pointer, set the last
-+      argument of gfc_conv_subref_array_arg to true.
-+      * trans.h : Add last argument for gfc_conv_subref_array_arg.
-+      * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
-+      new arg of gfc_conv_subref_array_arg to false.
-+      * trans-stmt.c (forall_make_variable_temp): The same.
-+
-+2010-02-02  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/42650
-+      * parse.c (decode_specification_statement): Use sym->result not sym.
-+
-+2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/38324
-+      * expr.c (gfc_get_full_arrayspec_from_expr): New function.
-+      * gfortran.h : Add prototype for above.
-+      * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
-+      (gfc_trans_subcomponent_assign): Call new function to replace
-+      the code to deal with allocatable components.
-+      * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
-+      gfc_get_full_arrayspec_from_expr to replace existing code.
-+
-+2010-01-30  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/41044
-+      PR fortran/41167
-+      * expr.c (remove_subobject_ref): If the constructor is NULL use
-+      the expression as the source.
-+      (simplify_const_ref): Change the type of expression if
-+      there are component references.  Allow for substring to be at
-+      the end of an arbitrarily long chain of references.  If an
-+      element is found that is not in an EXPR_ARRAY, assume that this
-+      is scalar initialization of array. Call remove_subobject_ref in
-+      this case with NULL second argument.
-+
-+2010-01-27  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/42736
-+      * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
-+      is required, turn any trailing array elements after a range
-+      into ranges so that offsets can be calculated.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * gfortranspec.c (lang_specific_driver): Update copyright notice
-+      dates.
-+
-+2009-11-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/41278
-+      Backport from mainline.
-+      * trans-array.c (gfc_conv_array_transpose): Delete unnecessary assert.
-+      
-+2009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/41807
-+      Backport from mainline.
-+      * trans-const.c (gfc_conv_const): Fix typo in comment. Replace assert
-+      with error message if not constant. Set se->expr to a constant on error.
-+      * resolve.c (next_data_value): Delete check for constant.
-+      
-+2009-11-25  Jakub Jelinek  <jakub@redhat.com>
-+
-+      PR fortran/42162
-+      * trans-openmp.c (gfc_trans_omp_do): When dovar isn't a VAR_DECL,
-+      don't use simple loop and handle clauses properly.
-+
-+2009-11-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR fortran/41909
-+      * resolve.c (is_illegal_recursion): Return false if sym is program.
-+
-+2009-11-02  Paul Thomas  <pault@gcc.gnu.org>
-+
-+      PR fortran/41772
-+      * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Stop'extent'
-+      from going negative.
-+
-+2009-11-01  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/41850
-+      * trans-expr.c (gfc_conv_procedure_call): Deallocate intent-out
-+      variables only when present.
-+
-+2009-10-30  Tobias Burnus  <burnus@net-b.de>
-+
-+      PR fortran/41777
-+      * trans-expr.c (gfc_conv_procedure_call,gfc_conv_expr_reference):
-+      Use for generic EXPR_FUNCTION the attributes of the specific
-+      function.
-+
-+2009-10-19  Tobias Burnus  <burnus@net-b.de>
-+          Steven G. Kargl  <kargl@gcc.gnu.org>
-+
-+      PR fortran/41755
-+      * symbol.c (gfc_undo_symbols): Add NULL check.
-+      * match.c (gfc_match_equivalence): Add check for
-+      missing comma.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: gcc/fortran/trans-const.c
-===================================================================
---- gcc/fortran/trans-const.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-const.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -336,7 +336,7 @@
- gfc_conv_constant (gfc_se * se, gfc_expr * expr)
- {
-   /* We may be receiving an expression for C_NULL_PTR or C_NULL_FUNPTR.  If
--     so, they expr_type will not yet be an EXPR_CONSTANT.  We need to make
-+     so, the expr_type will not yet be an EXPR_CONSTANT.  We need to make
-      it so here.  */
-   if (expr->ts.type == BT_DERIVED && expr->ts.derived
-       && expr->ts.derived->attr.is_iso_c)
-@@ -349,7 +349,12 @@
-         }
-     }
--  gcc_assert (expr->expr_type == EXPR_CONSTANT);
-+  if (expr->expr_type != EXPR_CONSTANT)
-+    {
-+      gfc_error ("non-constant initialization expression at %L", &expr->where);
-+      se->expr = gfc_conv_constant_to_tree (gfc_int_expr (0));
-+      return;
-+    }
-   if (se->ss != NULL)
-     {
-Index: gcc/fortran/trans-stmt.c
-===================================================================
---- gcc/fortran/trans-stmt.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-stmt.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -212,6 +212,7 @@
-   gfc_ss *ss;
-   gfc_ss_info *info;
-   gfc_symbol *fsym;
-+  gfc_ref *ref;
-   int n;
-   tree data;
-   tree offset;
-@@ -267,6 +268,34 @@
-         /* Obtain the argument descriptor for unpacking.  */
-         gfc_init_se (&parmse, NULL);
-         parmse.want_pointer = 1;
-+
-+        /* The scalarizer introduces some specific peculiarities when
-+           handling elemental subroutines; the stride can be needed up to
-+           the dim_array - 1, rather than dim_loop - 1 to calculate
-+           offsets outside the loop.  For this reason, we make sure that
-+           the descriptor has the dimensionality of the array by converting
-+           trailing elements into ranges with end = start.  */
-+        for (ref = e->ref; ref; ref = ref->next)
-+          if (ref->type == REF_ARRAY && ref->u.ar.type == AR_SECTION)
-+            break;
-+
-+        if (ref)
-+          {
-+            bool seen_range = false;
-+            for (n = 0; n < ref->u.ar.dimen; n++)
-+              {
-+                if (ref->u.ar.dimen_type[n] == DIMEN_RANGE)
-+                  seen_range = true;
-+
-+                if (!seen_range
-+                      || ref->u.ar.dimen_type[n] != DIMEN_ELEMENT)
-+                  continue;
-+
-+                ref->u.ar.end[n] = gfc_copy_expr (ref->u.ar.start[n]);
-+                ref->u.ar.dimen_type[n] = DIMEN_RANGE;
-+              }
-+          }
-+
-         gfc_conv_expr_descriptor (&parmse, e, gfc_walk_expr (e));
-         gfc_add_block_to_block (&se->pre, &parmse.pre);
-@@ -1691,7 +1720,7 @@
-   if (old_sym->attr.dimension)
-     {
-       gfc_init_se (&tse, NULL);
--      gfc_conv_subref_array_arg (&tse, e, 0, INTENT_IN);
-+      gfc_conv_subref_array_arg (&tse, e, 0, INTENT_IN, false);
-       gfc_add_block_to_block (pre, &tse.pre);
-       gfc_add_block_to_block (post, &tse.post);
-       tse.expr = build_fold_indirect_ref (tse.expr);
-Index: gcc/fortran/expr.c
-===================================================================
---- gcc/fortran/expr.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/expr.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1123,8 +1123,13 @@
- {
-   gfc_expr *e;
--  e = cons->expr;
--  cons->expr = NULL;
-+  if (cons)
-+    {
-+      e = cons->expr;
-+      cons->expr = NULL;
-+    }
-+  else
-+    e = gfc_copy_expr (p);
-   e->ref = p->ref->next;
-   p->ref->next =  NULL;
-   gfc_replace_expr (p, e);
-@@ -1428,6 +1433,7 @@
- {
-   gfc_constructor *cons;
-   gfc_expr *newp;
-+  gfc_ref *last_ref;
-   while (p->ref)
-     {
-@@ -1437,6 +1443,13 @@
-         switch (p->ref->u.ar.type)
-           {
-           case AR_ELEMENT:
-+            /* <type/kind spec>, parameter :: x(<int>) = scalar_expr
-+               will generate this.  */
-+            if (p->expr_type != EXPR_ARRAY)
-+              {
-+                remove_subobject_ref (p, NULL);
-+                break;
-+              }
-             if (find_array_element (p->value.constructor, &p->ref->u.ar,
-                                     &cons) == FAILURE)
-               return FAILURE;
-@@ -1466,18 +1479,25 @@
-                       return FAILURE;
-                   }
--                /* If this is a CHARACTER array and we possibly took a
--                   substring out of it, update the type-spec's character
--                   length according to the first element (as all should have
--                   the same length).  */
--                if (p->ts.type == BT_CHARACTER)
-+                if (p->ts.type == BT_DERIVED
-+                      && p->ref->next
-+                      && p->value.constructor)
-                   {
--                    int string_len;
-+                    /* There may have been component references.  */
-+                    p->ts = p->value.constructor->expr->ts;
-+                  }
--                    gcc_assert (p->ref->next);
--                    gcc_assert (!p->ref->next->next);
--                    gcc_assert (p->ref->next->type == REF_SUBSTRING);
-+                last_ref = p->ref;
-+                for (; last_ref->next; last_ref = last_ref->next) {};
-+                if (p->ts.type == BT_CHARACTER
-+                      && last_ref->type == REF_SUBSTRING)
-+                  {
-+                    /* If this is a CHARACTER array and we possibly took
-+                       a substring out of it, update the type-spec's
-+                       character length according to the first element
-+                       (as all should have the same length).  */
-+                    int string_len;
-                     if (p->value.constructor)
-                       {
-                         const gfc_expr* first = p->value.constructor->expr;
-@@ -3327,6 +3347,58 @@
- }
-+/* Returns the array_spec of a full array expression.  A NULL is
-+   returned otherwise.  */
-+gfc_array_spec *
-+gfc_get_full_arrayspec_from_expr (gfc_expr *expr)
-+{
-+  gfc_array_spec *as;
-+  gfc_ref *ref;
-+
-+  if (expr->rank == 0)
-+    return NULL;
-+
-+  /* Follow any component references.  */
-+  if (expr->expr_type == EXPR_VARIABLE
-+      || expr->expr_type == EXPR_CONSTANT)
-+    {
-+      as = expr->symtree->n.sym->as;
-+      for (ref = expr->ref; ref; ref = ref->next)
-+      {
-+        switch (ref->type)
-+          {
-+          case REF_COMPONENT:
-+            as = ref->u.c.component->as;
-+            continue;
-+
-+          case REF_SUBSTRING:
-+            continue;
-+
-+          case REF_ARRAY:
-+            {
-+              switch (ref->u.ar.type)
-+                {
-+                case AR_ELEMENT:
-+                case AR_SECTION:
-+                case AR_UNKNOWN:
-+                  as = NULL;
-+                  continue;
-+
-+                case AR_FULL:
-+                  break;
-+                }
-+              break;
-+            }
-+          }
-+      }
-+    }
-+  else
-+    as = NULL;
-+
-+  return as;
-+}
-+
-+
- /* General expression traversal function.  */
- bool
-Index: gcc/fortran/module.c
-===================================================================
---- gcc/fortran/module.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/module.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2846,13 +2846,29 @@
-     }
-   else if (e->expr_type == EXPR_FUNCTION && e->value.function.name)
-     {
-+      gfc_symbol *sym;
-+
-       /* In some circumstances, a function used in an initialization
-        expression, in one use associated module, can fail to be
-        coupled to its symtree when used in a specification
-        expression in another module.  */
-+
-       fname = e->value.function.esym ? e->value.function.esym->name
-                                    : e->value.function.isym->name;
-       e->symtree = gfc_find_symtree (gfc_current_ns->sym_root, fname);
-+
-+      if (e->symtree)
-+      return;
-+
-+      /* This is probably a reference to a private procedure from another
-+       module.  To prevent a segfault, make a generic with no specific
-+       instances.  If this module is used, without the required
-+       specific coming from somewhere, the appropriate error message
-+       is issued.  */
-+      gfc_get_symbol (fname, gfc_current_ns, &sym);
-+      sym->attr.flavor = FL_PROCEDURE;
-+      sym->attr.generic = 1;
-+      e->symtree = gfc_find_symtree (gfc_current_ns->sym_root, fname);
-     }
- }
-Index: gcc/fortran/trans.h
-===================================================================
---- gcc/fortran/trans.h        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans.h        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -314,7 +314,7 @@
- int gfc_conv_function_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *,
-                           tree);
--void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent);
-+void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent, bool);
- /* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */
-Index: gcc/fortran/gfortranspec.c
-===================================================================
---- gcc/fortran/gfortranspec.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/gfortranspec.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Specific flags and argument handling of the Fortran front-end.
-    Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
--   2007, 2008, 2009
-+   2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -379,7 +379,7 @@
-       case OPTION_version:
-         printf ("GNU Fortran %s%s\n", pkgversion_string, version_string);
--        printf ("Copyright %s 2009 Free Software Foundation, Inc.\n\n",
-+        printf ("Copyright %s 2010 Free Software Foundation, Inc.\n\n",
-                 _("(C)"));
-         printf (_("GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n\
- You may redistribute copies of GNU Fortran\n\
-Index: gcc/fortran/resolve.c
-===================================================================
---- gcc/fortran/resolve.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/resolve.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Perform type resolution on the various structures.
--   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.
-    Contributed by Andy Vaught
-@@ -1100,6 +1100,9 @@
-   gfc_symbol* proc_sym;
-   gfc_symbol* context_proc;
-+  if (sym->attr.flavor == FL_PROGRAM)
-+    return false;
-+
-   gcc_assert (sym->attr.flavor == FL_PROCEDURE);
-   /* If we've got an ENTRY, find real procedure.  */
-@@ -3719,6 +3722,7 @@
-     {
-       gfc_typespec ts;
-+      gfc_clear_ts (&ts);
-       ts.type = BT_INTEGER;
-       ts.kind = gfc_index_integer_kind;
-@@ -9444,10 +9448,6 @@
- {
-   while (mpz_cmp_ui (values.left, 0) == 0)
-     {
--      if (!gfc_is_constant_expr (values.vnode->expr))
--      gfc_error ("non-constant DATA value at %L",
--                 &values.vnode->expr->where);
--
-       if (values.vnode->next == NULL)
-       return FAILURE;
-Index: gcc/fortran/trans-io.c
-===================================================================
---- gcc/fortran/trans-io.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-io.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -746,7 +746,7 @@
-         /* Use a temporary for components of arrays of derived types
-            or substring array references.  */
-         gfc_conv_subref_array_arg (&se, e, 0,
--              last_dt == READ ? INTENT_IN : INTENT_OUT);
-+              last_dt == READ ? INTENT_IN : INTENT_OUT, false);
-         tmp = build_fold_indirect_ref (se.expr);
-         se.expr = gfc_build_addr_expr (pchar_type_node, tmp);
-         tmp = gfc_conv_descriptor_data_get (tmp);
-@@ -2191,7 +2191,7 @@
-         if (seen_vector && last_dt == READ)
-           {
-             /* Create a temp, read to that and copy it back.  */
--            gfc_conv_subref_array_arg (&se, expr, 0, INTENT_OUT);
-+            gfc_conv_subref_array_arg (&se, expr, 0, INTENT_OUT, false);
-             tmp =  se.expr;
-           }
-         else
-Index: gcc/fortran/match.c
-===================================================================
---- gcc/fortran/match.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/match.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3269,7 +3269,10 @@
-       if (gfc_match_eos () == MATCH_YES)
-       break;
-       if (gfc_match_char (',') != MATCH_YES)
--      goto syntax;
-+      {
-+        gfc_error ("Expecting a comma in EQUIVALENCE at %C");
-+        goto cleanup;
-+      }
-     }
-   return MATCH_YES;
-Index: gcc/fortran/parse.c
-===================================================================
---- gcc/fortran/parse.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/parse.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -110,7 +110,7 @@
-   match ("import", gfc_match_import, ST_IMPORT);
-   match ("use", gfc_match_use, ST_USE);
--  if (gfc_current_block ()->ts.type != BT_DERIVED)
-+  if (gfc_current_block ()->result->ts.type != BT_DERIVED)
-     goto end_of_block;
-   match (NULL, gfc_match_st_function, ST_STATEMENT_FUNCTION);
-Index: gcc/fortran/check.c
-===================================================================
---- gcc/fortran/check.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/check.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -596,10 +596,8 @@
-   where = &pointer->where;
--  if (pointer->expr_type == EXPR_VARIABLE)
--    attr1 = gfc_variable_attr (pointer, NULL);
--  else if (pointer->expr_type == EXPR_FUNCTION)
--    attr1 = pointer->symtree->n.sym->attr;
-+  if (pointer->expr_type == EXPR_VARIABLE || pointer->expr_type == EXPR_FUNCTION)
-+    attr1 = gfc_expr_attr (pointer);
-   else if (pointer->expr_type == EXPR_NULL)
-     goto null_arg;
-   else
-@@ -621,10 +619,8 @@
-   if (target->expr_type == EXPR_NULL)
-     goto null_arg;
--  if (target->expr_type == EXPR_VARIABLE)
--    attr2 = gfc_variable_attr (target, NULL);
--  else if (target->expr_type == EXPR_FUNCTION)
--    attr2 = target->symtree->n.sym->attr;
-+  if (target->expr_type == EXPR_VARIABLE || target->expr_type == EXPR_FUNCTION)
-+    attr2 = gfc_expr_attr (target);
-   else
-     {
-       gfc_error ("'%s' argument of '%s' intrinsic at %L must be a pointer "
-Index: gcc/fortran/trans-intrinsic.c
-===================================================================
---- gcc/fortran/trans-intrinsic.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/fortran/trans-intrinsic.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -832,7 +832,6 @@
-   gfc_se argse;
-   gfc_ss *ss;
-   gfc_array_spec * as;
--  gfc_ref *ref;
-   arg = expr->value.function.actual;
-   arg2 = arg->next;
-@@ -901,43 +900,8 @@
-   ubound = gfc_conv_descriptor_ubound (desc, bound);
-   lbound = gfc_conv_descriptor_lbound (desc, bound);
-   
--  /* Follow any component references.  */
--  if (arg->expr->expr_type == EXPR_VARIABLE
--      || arg->expr->expr_type == EXPR_CONSTANT)
--    {
--      as = arg->expr->symtree->n.sym->as;
--      for (ref = arg->expr->ref; ref; ref = ref->next)
--      {
--        switch (ref->type)
--          {
--          case REF_COMPONENT:
--            as = ref->u.c.component->as;
--            continue;
-+  as = gfc_get_full_arrayspec_from_expr (arg->expr);
--          case REF_SUBSTRING:
--            continue;
--
--          case REF_ARRAY:
--            {
--              switch (ref->u.ar.type)
--                {
--                case AR_ELEMENT:
--                case AR_SECTION:
--                case AR_UNKNOWN:
--                  as = NULL;
--                  continue;
--
--                case AR_FULL:
--                  break;
--                }
--              break;
--            }
--          }
--      }
--    }
--  else
--    as = NULL;
--
-   /* 13.14.53: Result value for LBOUND
-      Case (i): For an array section or for an array expression other than a
-@@ -3903,6 +3867,8 @@
- scalar_transfer:
-   extent = fold_build2 (MIN_EXPR, gfc_array_index_type,
-                       dest_word_len, source_bytes);
-+  extent = fold_build2 (MAX_EXPR, gfc_array_index_type,
-+                      extent, gfc_index_zero_node);
-   if (expr->ts.type == BT_CHARACTER)
-     {
-Index: gcc/ira-lives.c
-===================================================================
---- gcc/ira-lives.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/ira-lives.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -500,7 +500,7 @@
-   for (use = 0; use < recog_data.n_operands; use++)
-     {
-       if (use == def || recog_data.operand_type[use] == OP_OUT)
--      return;
-+      continue;
-       
-       if (recog_op_alt[use][alt].anything_ok)
-       use_cl = ALL_REGS;
-@@ -513,7 +513,7 @@
-       if ((use_match = recog_op_alt[use][alt].matches) >= 0)
-       {
-         if (use_match == def)
--          return;
-+          continue;
-         
-         if (recog_op_alt[use_match][alt].anything_ok)
-           use_cl = ALL_REGS;
-Index: gcc/configure.ac
-===================================================================
---- gcc/configure.ac   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/configure.ac   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2297,6 +2297,17 @@
-     then echo 1; else echo 0; fi`],
-   [Define 0/1 if your assembler supports .cfi_personality.])
-+gcc_GAS_CHECK_FEATURE([cfi sections directive],
-+  gcc_cv_as_cfi_sections_directive, ,,
-+[     .text
-+      .cfi_sections .debug_frame, .eh_frame
-+      .cfi_startproc
-+      .cfi_endproc])
-+AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_SECTIONS_DIRECTIVE,
-+  [`if test $gcc_cv_as_cfi_sections_directive = yes;
-+    then echo 1; else echo 0; fi`],
-+  [Define 0/1 if your assembler supports .cfi_sections.])
-+
- # GAS versions up to and including 2.11.0 may mis-optimize
- # .eh_frame data.
- gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
-Index: gcc/BASE-VER
-===================================================================
---- gcc/BASE-VER       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/BASE-VER       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1 +1 @@
--4.4.2
-+4.4.4
-Index: gcc/function.c
-===================================================================
---- gcc/function.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/function.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -4274,12 +4274,8 @@
-   tree guard_decl = targetm.stack_protect_guard ();
-   rtx x, y;
--  /* Avoid expand_expr here, because we don't want guard_decl pulled
--     into registers unless absolutely necessary.  And we know that
--     crtl->stack_protect_guard is a local stack slot, so this skips
--     all the fluff.  */
--  x = validize_mem (DECL_RTL (crtl->stack_protect_guard));
--  y = validize_mem (DECL_RTL (guard_decl));
-+  x = expand_normal (crtl->stack_protect_guard);
-+  y = expand_normal (guard_decl);
-   /* Allow the target to copy from Y to X without leaking Y into a
-      register.  */
-@@ -4312,12 +4308,8 @@
-   rtx label = gen_label_rtx ();
-   rtx x, y, tmp;
--  /* Avoid expand_expr here, because we don't want guard_decl pulled
--     into registers unless absolutely necessary.  And we know that
--     crtl->stack_protect_guard is a local stack slot, so this skips
--     all the fluff.  */
--  x = validize_mem (DECL_RTL (crtl->stack_protect_guard));
--  y = validize_mem (DECL_RTL (guard_decl));
-+  x = expand_normal (crtl->stack_protect_guard);
-+  y = expand_normal (guard_decl);
-   /* Allow the target to compare Y with X without leaking either into
-      a register.  */
-Index: gcc/sdbout.c
-===================================================================
---- gcc/sdbout.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/sdbout.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -307,6 +307,7 @@
- {
-   sdbout_init,                                 /* init */
-   sdbout_finish,                       /* finish */
-+  debug_nothing_void,                  /* assembly_start */
-   debug_nothing_int_charstar,          /* define */
-   debug_nothing_int_charstar,          /* undef */
-   sdbout_start_source_file,            /* start_source_file */
-Index: gcc/tree-vect-analyze.c
-===================================================================
---- gcc/tree-vect-analyze.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-vect-analyze.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3213,6 +3213,7 @@
- {
-   int i = 0, j, prev = -1, next, k;
-   bool supported;
-+  sbitmap load_index;
-   /* FORNOW: permutations are only supported for loop-aware SLP.  */
-   if (!slp_instn)
-@@ -3233,6 +3234,8 @@
-     return false;
-   supported = true;
-+  load_index = sbitmap_alloc (group_size);
-+  sbitmap_zero (load_index); 
-   for (j = 0; j < group_size; j++)
-     {
-       for (i = j * group_size, k = 0;
-@@ -3246,9 +3249,19 @@
-           }
-          prev = next;
--       }  
-+       } 
-+
-+      if (TEST_BIT (load_index, prev))
-+        {
-+          supported = false;
-+          break;
-+        }
-+
-+      SET_BIT (load_index, prev);
-     }
-+  sbitmap_free (load_index);
-+
-   if (supported && i == group_size * group_size
-       && vect_supported_slp_permutation_p (slp_instn))
-     return true;
-@@ -3495,7 +3508,9 @@
-       FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, gimple_op (stmt, 0))
-       if (vinfo_for_stmt (use_stmt)
-           && !STMT_SLP_TYPE (vinfo_for_stmt (use_stmt))
--            && STMT_VINFO_RELEVANT (vinfo_for_stmt (use_stmt)))
-+            && (STMT_VINFO_RELEVANT (vinfo_for_stmt (use_stmt))
-+                || STMT_VINFO_DEF_TYPE (vinfo_for_stmt (use_stmt)) 
-+                    == vect_reduction_def))
-         vect_mark_slp_stmts (node, hybrid, i);
-   vect_detect_hybrid_slp_stmts (SLP_TREE_LEFT (node));
-Index: gcc/c-typeck.c
-===================================================================
---- gcc/c-typeck.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/c-typeck.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2527,6 +2527,7 @@
- {
-   tree typetail, valtail;
-   int parmnum;
-+  bool error_args = false;
-   const bool type_generic = fundecl
-     && lookup_attribute ("type generic", TYPE_ATTRIBUTES(TREE_TYPE (fundecl)));
-   tree selector;
-@@ -2737,6 +2738,9 @@
-       /* Convert `short' and `char' to full-size `int'.  */
-       argarray[parmnum] = default_conversion (val);
-+      if (argarray[parmnum] == error_mark_node)
-+      error_args = true;
-+
-       if (typetail)
-       typetail = TREE_CHAIN (typetail);
-     }
-@@ -2749,7 +2753,7 @@
-       return -1;
-     }
--  return parmnum;
-+  return error_args ? -1 : parmnum;
- }
\f
- /* This is the entry point used by the parser to build unary operators
-Index: gcc/gimplify.c
-===================================================================
---- gcc/gimplify.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/gimplify.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Tree lowering pass.  This pass converts the GENERIC functions-as-trees
-    tree representation into the GIMPLE form.
--   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Major work done by Sebastian Pop <s.pop@laposte.net>,
-    Diego Novillo <dnovillo@redhat.com> and Jason Merrill <jason@redhat.com>.
-@@ -2762,6 +2762,32 @@
- {
-   tree type = TREE_TYPE (expr);
-+  if (TREE_CODE (expr) == NE_EXPR
-+      && TREE_CODE (TREE_OPERAND (expr, 0)) == CALL_EXPR
-+      && integer_zerop (TREE_OPERAND (expr, 1)))
-+    {
-+      tree call = TREE_OPERAND (expr, 0);
-+      tree fn = get_callee_fndecl (call);
-+
-+      /* For __builtin_expect ((long) (x), y) recurse into x as well.  */
-+      if (fn
-+        && DECL_BUILT_IN_CLASS (fn) == BUILT_IN_NORMAL
-+        && DECL_FUNCTION_CODE (fn) == BUILT_IN_EXPECT
-+        && call_expr_nargs (call) == 2)
-+      {
-+        tree arg = CALL_EXPR_ARG (call, 0);
-+        if (arg)
-+          {
-+            if (TREE_CODE (arg) == NOP_EXPR
-+                && TREE_TYPE (arg) == TREE_TYPE (call))
-+              arg = TREE_OPERAND (arg, 0);
-+            arg = gimple_boolify (arg);
-+            CALL_EXPR_ARG (call, 0)
-+              = fold_convert (TREE_TYPE (call), arg);
-+          }
-+      }
-+    }
-+
-   if (TREE_CODE (type) == BOOLEAN_TYPE)
-     return expr;
-@@ -3684,6 +3710,21 @@
-             }
-         }
-+      /* If the target is volatile and we have non-zero elements
-+         initialize the target from a temporary.  */
-+      if (TREE_THIS_VOLATILE (object)
-+          && !TREE_ADDRESSABLE (type)
-+          && num_nonzero_elements > 0)
-+        {
-+          tree temp = create_tmp_var (TYPE_MAIN_VARIANT (type), NULL);
-+          TREE_OPERAND (*expr_p, 0) = temp;
-+          *expr_p = build2 (COMPOUND_EXPR, TREE_TYPE (*expr_p),
-+                            *expr_p,
-+                            build2 (MODIFY_EXPR, void_type_node,
-+                                    object, temp));
-+          return GS_OK;
-+        }
-+
-       if (notify_temp_creation)
-         return GS_OK;
-@@ -3931,11 +3972,14 @@
-     switch (TREE_CODE (*from_p))
-       {
-       case VAR_DECL:
--      /* If we're assigning from a constant constructor, move the
--         constructor expression to the RHS of the MODIFY_EXPR.  */
-+      /* If we're assigning from a read-only variable initialized with
-+         a constructor, do the direct assignment from the constructor,
-+         but only if neither source nor target are volatile since this
-+         latter assignment might end up being done on a per-field basis.  */
-       if (DECL_INITIAL (*from_p)
-           && TREE_READONLY (*from_p)
-           && !TREE_THIS_VOLATILE (*from_p)
-+          && !TREE_THIS_VOLATILE (*to_p)
-           && TREE_CODE (DECL_INITIAL (*from_p)) == CONSTRUCTOR)
-         {
-           tree old_from = *from_p;
-@@ -6134,6 +6178,8 @@
-   tree tmp_load;
-    tmp_load = create_tmp_var (type, NULL);
-+   if (TREE_CODE (type) == COMPLEX_TYPE || TREE_CODE (type) == VECTOR_TYPE)
-+     DECL_GIMPLE_REG_P (tmp_load) = 1;
-    if (goa_stabilize_expr (&rhs, pre_p, addr, tmp_load) < 0)
-      return GS_ERROR;
-Index: gcc/c-pragma.c
-===================================================================
---- gcc/c-pragma.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/c-pragma.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -244,146 +244,6 @@
- }
- #endif  /* HANDLE_PRAGMA_PACK */
--struct def_pragma_macro_value GTY(())
--{
--  struct def_pragma_macro_value *prev;
--  cpp_macro *value;
--};
--
--struct def_pragma_macro GTY(())
--{
--  hashval_t hash;
--  const char *name;
--  struct def_pragma_macro_value value;
--};
--
--static GTY((param_is (struct def_pragma_macro))) htab_t pushed_macro_table;
--
--#ifdef HANDLE_PRAGMA_PUSH_POP_MACRO
--/* Hash table control functions for pushed_macro_table.  */
--static hashval_t
--dpm_hash (const void *p)
--{
--  return ((const struct def_pragma_macro *)p)->hash;
--}
--
--static int
--dpm_eq (const void *pa, const void *pb)
--{
--  const struct def_pragma_macro *const a = (const struct def_pragma_macro *) pa,
--    *const b = (const struct def_pragma_macro *) pb;
--  return a->hash == b->hash && strcmp (a->name, b->name) == 0;
--}
--
--/* #pragma push_macro("MACRO_NAME")
--   #pragma pop_macro("MACRO_NAME") */
--
--static void
--handle_pragma_push_macro (cpp_reader *reader)
--{
--  tree x, id = 0;
--  enum cpp_ttype token;
--  struct def_pragma_macro dummy, *c;
--  const char *macroname;
--  void **slot;
--
--  if (pragma_lex (&x) != CPP_OPEN_PAREN)
--    GCC_BAD ("missing %<(%> after %<#pragma push_macro%> - ignored");
--
--  token = pragma_lex (&id);
--
--  /* Silently ignore */
--  if (token == CPP_CLOSE_PAREN)
--    return;
--  if (token != CPP_STRING)
--    GCC_BAD ("invalid constant in %<#pragma push_macro%> - ignored");
--
--  if (pragma_lex (&x) != CPP_CLOSE_PAREN)
--    GCC_BAD ("missing %<)%> after %<#pragma push_macro%> - ignored");
--
--  if (pragma_lex (&x) != CPP_EOF)
--    warning (OPT_Wpragmas, "junk at end of %<#pragma push_macro%>");
--
--  /* Check for empty string, and silently ignore.  */
--  if (TREE_STRING_LENGTH (id) < 1)
--    return;
--  macroname = TREE_STRING_POINTER (id);
--
--  if (pushed_macro_table == NULL)
--    pushed_macro_table = htab_create_ggc (15, dpm_hash, dpm_eq, 0);
--
--  dummy.hash = htab_hash_string (macroname);
--  dummy.name = macroname;
--  slot = htab_find_slot_with_hash (pushed_macro_table, &dummy,
--                                 dummy.hash, INSERT);
--  c = (struct def_pragma_macro *) *slot;
--  if (c == NULL)
--    {
--      *slot = c = GGC_NEW (struct def_pragma_macro);
--      c->hash = dummy.hash;
--      c->name = ggc_alloc_string (macroname, TREE_STRING_LENGTH (id) - 1);
--      c->value.prev = NULL;
--    }
--  else
--    {
--      struct def_pragma_macro_value *v;
--      v = GGC_NEW (struct def_pragma_macro_value);
--      *v = c->value;
--      c->value.prev = v;
--    }
--
--  c->value.value = cpp_push_definition (reader, macroname);
--}
--
--static void
--handle_pragma_pop_macro (cpp_reader *reader)
--{
--  tree x, id = 0;
--  enum cpp_ttype token;
--  struct def_pragma_macro dummy, *c;
--  const char *macroname;
--  void **slot = NULL;
--
--  if (pragma_lex (&x) != CPP_OPEN_PAREN)
--    GCC_BAD ("missing %<(%> after %<#pragma pop_macro%> - ignored");
--
--  token = pragma_lex (&id);
--
--  /* Silently ignore */
--  if (token == CPP_CLOSE_PAREN)
--    return;
--  if (token != CPP_STRING)
--    GCC_BAD ("invalid constant in %<#pragma pop_macro%> - ignored");
--
--  if (pragma_lex (&x) != CPP_CLOSE_PAREN)
--    GCC_BAD ("missing %<)%> after %<#pragma pop_macro%> - ignored");
--
--  if (pragma_lex (&x) != CPP_EOF)
--    warning (OPT_Wpragmas, "junk at end of %<#pragma pop_macro%>");
--
--  /* Check for empty string, and silently ignore.  */
--  if (TREE_STRING_LENGTH (id) < 1)
--    return;
--  macroname = TREE_STRING_POINTER (id);
--
--  dummy.hash = htab_hash_string (macroname);
--  dummy.name = macroname;
--  if (pushed_macro_table)
--    slot = htab_find_slot_with_hash (pushed_macro_table, &dummy,
--                                   dummy.hash, NO_INSERT);
--  if (slot == NULL)
--    return;
--  c = (struct def_pragma_macro *) *slot;
--
--  cpp_pop_definition (reader, c->name, c->value.value);
--
--  if (c->value.prev)
--    c->value = *c->value.prev;
--  else
--    htab_clear_slot (pushed_macro_table, slot);
--}
--#endif /* HANDLE_PRAGMA_PUSH_POP_MACRO */
--
- static GTY(()) tree pending_weaks;
- #ifdef HANDLE_PRAGMA_WEAK
-@@ -1316,10 +1176,6 @@
-   c_register_pragma (0, "pack", handle_pragma_pack);
- #endif
- #endif
--#ifdef HANDLE_PRAGMA_PUSH_POP_MACRO
--  c_register_pragma (0 ,"push_macro", handle_pragma_push_macro);
--  c_register_pragma (0 ,"pop_macro", handle_pragma_pop_macro);
--#endif
- #ifdef HANDLE_PRAGMA_WEAK
-   c_register_pragma (0, "weak", handle_pragma_weak);
- #endif
-Index: gcc/loop-doloop.c
-===================================================================
---- gcc/loop-doloop.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/loop-doloop.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Perform doloop optimizations
--   Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
-+   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation,
-    Inc.
-    Based on code by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
-@@ -291,7 +291,8 @@
-   op0 = force_operand (op0, NULL_RTX);
-   op1 = force_operand (op1, NULL_RTX);
-   label = block_label (dest);
--  do_compare_rtx_and_jump (op0, op1, code, 0, mode, NULL_RTX, NULL_RTX, label);
-+  do_compare_rtx_and_jump (op0, op1, code, 0, mode, NULL_RTX,
-+                         NULL_RTX, label, -1);
-   jump = get_last_insn ();
-   if (!jump || !JUMP_P (jump))
-Index: gcc/expmed.c
-===================================================================
---- gcc/expmed.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/expmed.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,7 @@
- /* Medium-level subroutines: convert bit-field store and extract
-    and shifts, multiplies and divides to rtl instructions.
-    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -4121,7 +4121,8 @@
-               else if (d == -1)
-                 quotient = expand_unop (compute_mode, neg_optab, op0,
-                                         tquotient, 0);
--              else if (abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
-+              else if (HOST_BITS_PER_WIDE_INT >= size
-+                       && abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
-                 {
-                   /* This case is not handled correctly below.  */
-                   quotient = emit_store_flag (tquotient, EQ, op0, op1,
-@@ -5607,7 +5608,7 @@
-   emit_move_insn (target, const1_rtx);
-   label = gen_label_rtx ();
-   do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode, NULL_RTX,
--                         NULL_RTX, label);
-+                         NULL_RTX, label, -1);
-   emit_move_insn (target, const0_rtx);
-   emit_label (label);
-@@ -5625,5 +5626,5 @@
- {
-   int unsignedp = (op == LTU || op == LEU || op == GTU || op == GEU);
-   do_compare_rtx_and_jump (arg1, arg2, op, unsignedp, mode,
--                         NULL_RTX, NULL_RTX, label);
-+                         NULL_RTX, NULL_RTX, label, -1);
- }
-Index: gcc/except.c
-===================================================================
---- gcc/except.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/except.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Implements exception handling.
-    Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by Mike Stump <mrs@cygnus.com>.
-@@ -1834,7 +1834,7 @@
- #ifdef DONT_USE_BUILTIN_SETJMP
-   {
--    rtx x;
-+    rtx x, last;
-     x = emit_library_call_value (setjmp_libfunc, NULL_RTX, LCT_RETURNS_TWICE,
-                                TYPE_MODE (integer_type_node), 1,
-                                plus_constant (XEXP (fc, 0),
-@@ -1842,7 +1842,12 @@
-     emit_cmp_and_jump_insns (x, const0_rtx, NE, 0,
-                            TYPE_MODE (integer_type_node), 0, dispatch_label);
--    add_reg_br_prob_note (get_insns (), REG_BR_PROB_BASE/100);
-+    last = get_last_insn ();
-+    if (JUMP_P (last) && any_condjump_p (last))
-+      {
-+        gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
-+        add_reg_note (last, REG_BR_PROB, GEN_INT (REG_BR_PROB_BASE / 100));
-+      }
-   }
- #else
-   expand_builtin_setjmp_setup (plus_constant (XEXP (fc, 0), sjlj_fc_jbuf_ofs),
-Index: gcc/cfgexpand.c
-===================================================================
---- gcc/cfgexpand.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cfgexpand.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* A pass for lowering trees to RTL.
--   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
-+   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -379,46 +379,6 @@
- }
--/* Verify that there is exactly single jump instruction since last and attach
--   REG_BR_PROB note specifying probability.
--   ??? We really ought to pass the probability down to RTL expanders and let it
--   re-distribute it when the conditional expands into multiple conditionals.
--   This is however difficult to do.  */
--void
--add_reg_br_prob_note (rtx last, int probability)
--{
--  if (profile_status == PROFILE_ABSENT)
--    return;
--  for (last = NEXT_INSN (last); last && NEXT_INSN (last); last = NEXT_INSN (last))
--    if (JUMP_P (last))
--      {
--      /* It is common to emit condjump-around-jump sequence when we don't know
--         how to reverse the conditional.  Special case this.  */
--      if (!any_condjump_p (last)
--          || !JUMP_P (NEXT_INSN (last))
--          || !simplejump_p (NEXT_INSN (last))
--          || !NEXT_INSN (NEXT_INSN (last))
--          || !BARRIER_P (NEXT_INSN (NEXT_INSN (last)))
--          || !NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))
--          || !LABEL_P (NEXT_INSN (NEXT_INSN (NEXT_INSN (last))))
--          || NEXT_INSN (NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))))
--        goto failed;
--      gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
--      add_reg_note (last, REG_BR_PROB,
--                    GEN_INT (REG_BR_PROB_BASE - probability));
--      return;
--      }
--  if (!last || !JUMP_P (last) || !any_condjump_p (last))
--    goto failed;
--  gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
--  add_reg_note (last, REG_BR_PROB, GEN_INT (probability));
--  return;
--failed:
--  if (dump_file)
--    fprintf (dump_file, "Failed to add probability note\n");
--}
--
--
- #ifndef STACK_ALIGNMENT_NEEDED
- #define STACK_ALIGNMENT_NEEDED 1
- #endif
-@@ -1116,6 +1076,14 @@
-       if (really_expand)
-         expand_one_register_var (var);
-     }
-+  else if (!host_integerp (DECL_SIZE_UNIT (var), 1))
-+    {
-+      if (really_expand)
-+      {
-+        error ("size of variable %q+D is too large", var);
-+        expand_one_error_var (var);
-+      }
-+    }
-   else if (defer_stack_allocation (var, toplevel))
-     add_stack_var (var);
-   else
-@@ -1661,8 +1629,8 @@
-      two-way jump that needs to be decomposed into two basic blocks.  */
-   if (false_edge->dest == bb->next_bb)
-     {
--      jumpif (pred, label_rtx_for_bb (true_edge->dest));
--      add_reg_br_prob_note (last, true_edge->probability);
-+      jumpif (pred, label_rtx_for_bb (true_edge->dest),
-+            true_edge->probability);
-       maybe_dump_rtl_for_gimple_stmt (stmt, last);
-       if (true_edge->goto_locus)
-       {
-@@ -1677,8 +1645,8 @@
-     }
-   if (true_edge->dest == bb->next_bb)
-     {
--      jumpifnot (pred, label_rtx_for_bb (false_edge->dest));
--      add_reg_br_prob_note (last, false_edge->probability);
-+      jumpifnot (pred, label_rtx_for_bb (false_edge->dest),
-+               false_edge->probability);
-       maybe_dump_rtl_for_gimple_stmt (stmt, last);
-       if (false_edge->goto_locus)
-       {
-@@ -1692,8 +1660,7 @@
-       return NULL;
-     }
--  jumpif (pred, label_rtx_for_bb (true_edge->dest));
--  add_reg_br_prob_note (last, true_edge->probability);
-+  jumpif (pred, label_rtx_for_bb (true_edge->dest), true_edge->probability);
-   last = get_last_insn ();
-   if (false_edge->goto_locus)
-     {
-Index: gcc/tree-cfgcleanup.c
-===================================================================
---- gcc/tree-cfgcleanup.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-cfgcleanup.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* CFG cleanup for trees.
--   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -517,7 +517,7 @@
-   control_bb = single_pred (bb);
-   stmt = last_stmt (control_bb);
--  if (gimple_code (stmt) != GIMPLE_OMP_SECTIONS_SWITCH)
-+  if (stmt == NULL || gimple_code (stmt) != GIMPLE_OMP_SECTIONS_SWITCH)
-     return false;
-   /* The block with the control statement normally has two entry edges -- one
-Index: gcc/tree-ssa-pre.c
++  T1%I = [1, 2, 3, 4]
++  T1%X = SOURCE
++  P => T1%I
++  CALL Z(P)
++  IF (ANY (T1%I .NE. [999, 2, 999, 4])) CALL ABORT
++  IF (ANY (T1%X .NE. SOURCE)) CALL ABORT
++CONTAINS
++  SUBROUTINE Z(Q)
++    INTEGER, POINTER :: Q(:)
++    Q(1:3:2) = 999
++  END SUBROUTINE Z
++END PROGRAM X
+Index: gcc/testsuite/gfortran.dg/pr43229.f90
 ===================================================================
---- gcc/tree-ssa-pre.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-pre.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -453,9 +453,6 @@
-    cleaned up.  */
- static bitmap need_eh_cleanup;
--/* Which expressions have been seen during a given phi translation.  */
--static bitmap seen_during_translate;
--
- /* The phi_translate_table caches phi translations for a given
-    expression and predecessor.  */
-@@ -1400,14 +1397,12 @@
- /* Translate EXPR using phis in PHIBLOCK, so that it has the values of
--   the phis in PRED.  SEEN is a bitmap saying which expression we have
--   translated since we started translation of the toplevel expression.
--   Return NULL if we can't find a leader for each part of the
--   translated expression.  */
-+   the phis in PRED.  Return NULL if we can't find a leader for each part
-+   of the translated expression.  */
- static pre_expr
--phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
--               basic_block pred, basic_block phiblock, bitmap seen)
-+phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
-+             basic_block pred, basic_block phiblock)
- {
-   pre_expr oldexpr = expr;
-   pre_expr phitrans;
-@@ -1422,16 +1417,6 @@
-   if (phitrans)
-     return phitrans;
--  /* Prevent cycles when we have recursively dependent leaders.  This
--     can only happen when phi translating the maximal set.  */
--  if (seen)
--    {
--      unsigned int expr_id = get_expression_id (expr);
--      if (bitmap_bit_p (seen, expr_id))
--      return NULL;
--      bitmap_set_bit (seen, expr_id);
--    }
--
-   switch (expr->kind)
-     {
-       /* Constants contain no values that need translation.  */
-@@ -1455,10 +1440,10 @@
-             continue;
-           else
-             {
-+                pre_expr leader, result;
-               unsigned int op_val_id = VN_INFO (newnary.op[i])->value_id;
--              pre_expr leader = find_leader_in_sets (op_val_id, set1, set2);
--              pre_expr result = phi_translate_1 (leader, set1, set2,
--                                                 pred, phiblock, seen);
-+              leader = find_leader_in_sets (op_val_id, set1, set2);
-+                result = phi_translate (leader, set1, set2, pred, phiblock);
-               if (result && result != leader)
-                 {
-                   tree name = get_representative_for (result);
-@@ -1559,8 +1544,7 @@
-             {
-               unsigned int op_val_id = VN_INFO (op0)->value_id;
-               leader = find_leader_in_sets (op_val_id, set1, set2);
--              opresult = phi_translate_1 (leader, set1, set2,
--                                          pred, phiblock, seen);
-+              opresult = phi_translate (leader, set1, set2, pred, phiblock);
-               if (opresult && opresult != leader)
-                 {
-                   tree name = get_representative_for (opresult);
-@@ -1577,8 +1561,7 @@
-             {
-               unsigned int op_val_id = VN_INFO (op1)->value_id;
-               leader = find_leader_in_sets (op_val_id, set1, set2);
--              opresult = phi_translate_1 (leader, set1, set2,
--                                          pred, phiblock, seen);
-+              opresult = phi_translate (leader, set1, set2, pred, phiblock);
-               if (opresult && opresult != leader)
-                 {
-                   tree name = get_representative_for (opresult);
-@@ -1594,8 +1577,7 @@
-             {
-               unsigned int op_val_id = VN_INFO (op2)->value_id;
-               leader = find_leader_in_sets (op_val_id, set1, set2);
--              opresult = phi_translate_1 (leader, set1, set2,
--                                          pred, phiblock, seen);
-+              opresult = phi_translate (leader, set1, set2, pred, phiblock);
-               if (opresult && opresult != leader)
-                 {
-                   tree name = get_representative_for (opresult);
-@@ -1724,20 +1706,6 @@
-     }
- }
--/* Translate EXPR using phis in PHIBLOCK, so that it has the values of
--   the phis in PRED.
--   Return NULL if we can't find a leader for each part of the
--   translated expression.  */
--
--static pre_expr
--phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
--             basic_block pred, basic_block phiblock)
--{
--  bitmap_clear (seen_during_translate);
--  return phi_translate_1 (expr, set1, set2, pred, phiblock,
--                        seen_during_translate);
--}
--
- /* For each expression in SET, translate the values through phi nodes
-    in PHIBLOCK using edge PHIBLOCK->PRED, and store the resulting
-    expressions in DEST.  */
-@@ -1750,7 +1718,7 @@
-   pre_expr expr;
-   int i;
--  if (!phi_nodes (phiblock))
-+  if (gimple_seq_empty_p (phi_nodes (phiblock)))
-     {
-       bitmap_set_copy (dest, set);
-       return;
-@@ -1763,10 +1731,18 @@
-       translated = phi_translate (expr, set, NULL, pred, phiblock);
-       /* Don't add empty translations to the cache  */
--      if (translated)
--      phi_trans_add (expr, translated, pred);
-+      if (!translated)
-+      continue;
--      if (translated != NULL)
-+      phi_trans_add (expr, translated, pred);
-+
-+      /* We might end up with multiple expressions from SET being
-+       translated to the same value.  In this case we do not want
-+       to retain the NARY or REFERENCE expression but prefer a NAME
-+       which would be the leader.  */
-+      if (translated->kind == NAME)
-+      bitmap_value_replace_in_set (dest, translated);
-+      else
-       bitmap_value_insert_into_set (dest, translated);
-     }
-   VEC_free (pre_expr, heap, exprs);
-@@ -2132,14 +2108,14 @@
-         goto maybe_dump_sets;
-       }
--      if (phi_nodes (first))
-+      if (!gimple_seq_empty_p (phi_nodes (first)))
-       phi_translate_set (ANTIC_OUT, ANTIC_IN (first), block, first);
-       else
-       bitmap_set_copy (ANTIC_OUT, ANTIC_IN (first));
-       for (i = 0; VEC_iterate (basic_block, worklist, i, bprime); i++)
-       {
--        if (phi_nodes (bprime))
-+        if (!gimple_seq_empty_p (phi_nodes (bprime)))
-           {
-             bitmap_set_t tmp = bitmap_set_new ();
-             phi_translate_set (tmp, ANTIC_IN (bprime), block, bprime);
-@@ -2289,7 +2265,7 @@
-             FOR_EACH_EXPR_ID_IN_SET (ANTIC_IN (bprime), i, bi)
-               bitmap_value_insert_into_set (PA_OUT,
-                                             expression_for_id (i));
--            if (phi_nodes (bprime))
-+            if (!gimple_seq_empty_p (phi_nodes (bprime)))
-               {
-                 bitmap_set_t pa_in = bitmap_set_new ();
-                 phi_translate_set (pa_in, PA_IN (bprime), block, bprime);
-@@ -4146,7 +4122,6 @@
-   expression_to_id = htab_create (num_ssa_names * 3,
-                                 pre_expr_hash,
-                                 pre_expr_eq, NULL);
--  seen_during_translate = BITMAP_ALLOC (&grand_bitmap_obstack);
-   bitmap_set_pool = create_alloc_pool ("Bitmap sets",
-                                      sizeof (struct bitmap_set), 30);
-   pre_expr_pool = create_alloc_pool ("pre_expr nodes",
-Index: gcc/simplify-rtx.c
-===================================================================
---- gcc/simplify-rtx.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/simplify-rtx.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* RTL simplification functions for GNU compiler.
-    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
+--- gcc/testsuite/gfortran.dg/pr43229.f90      (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/pr43229.f90      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,10 @@
++! PR debug/43229
++! { dg-do compile }
++! { dg-options "-g -O3 -ffast-math" }
++! { dg-options "-g -O3 -ffast-math -msse3" { target { i?86-*-* x86_64-*-* } } }
++
++function foo (c, d)
++  real(8) :: c(6), d(6), foo
++  x = sum (c * d)
++  foo = exp (-x)
++end function foo
+Index: gcc/testsuite/objc/execute/forward-1.x
+===================================================================
+--- gcc/testsuite/objc/execute/forward-1.x     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/testsuite/objc/execute/forward-1.x     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,8 +1,6 @@
+ load_lib target-supports.exp
  
- This file is part of GCC.
-@@ -3863,7 +3863,8 @@
-       && rtx_equal_p (op1, XEXP (op0, 1))
-       /* Don't recurse "infinitely" for (LTU/GEU (PLUS b b) b).  */
-       && !rtx_equal_p (op1, XEXP (op0, 0)))
--    return simplify_gen_relational (code, mode, cmp_mode, op0, XEXP (op0, 0));
-+    return simplify_gen_relational (code, mode, cmp_mode, op0,
-+                                  copy_rtx (XEXP (op0, 0)));
+ # XFAIL: PR libobjc/36610, for targets which pass arguments via registers
+-# For powerpc-darwin it fails with -fgnu-runtime, passes with -fnext-runtime,
+-# but that would be too ugly to handle; let it fail there.
  
-   if (op1 == const0_rtx)
-     {
-Index: gcc/po/ChangeLog
+ if { ([istarget x86_64-*-linux*] && [check_effective_target_lp64] )
+      || [istarget powerpc*-*-linux*]
+@@ -15,4 +13,21 @@
+     set torture_execute_xfail "*-*-*"
+ }
++# For darwin and alpha-linux it fails with -fgnu-runtime,
++# passes with -fnext-runtime.
++
++if { ([istarget x86_64-*-darwin*] && [check_effective_target_lp64] )
++     || [istarget powerpc*-*-darwin*]
++     || [istarget alpha*-*-linux*] } {
++    set torture_eval_before_execute {
++      global compiler_conditional_xfail_data
++      set compiler_conditional_xfail_data {
++          "Target fails with -fgnu-runtime" \
++              "*-*-*" \
++              { "-fgnu-runtime" } \
++              { "" }
++      }
++    }
++}
++
+ return 0
+Index: gcc/cp/ChangeLog
 ===================================================================
---- gcc/po/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/po/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,11 @@
-+2010-01-21  Release Manager
+--- gcc/cp/ChangeLog   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/cp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,15 @@
++2010-02-12  Jason Merrill  <jason@redhat.com>
 +
-+      * GCC 4.4.3 released.
++      PR c++/43024
++      * name-lookup.h (current_binding_level): Check for null
++      cp_function_chain.
 +
-+2009-11-10  Joseph Myers  <joseph@codesourcery.com>
++2010-02-12  Jakub Jelinek  <jakub@redhat.com>
 +
-+      * id.po: Update.
++      PR c++/43033
++      * name-lookup.c (pushdecl_maybe_friend): Check default args of t
++      instead of x.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
  
-       * GCC 4.4.2 released.
-Index: gcc/po/id.po
+       * GCC 4.4.3 released.
+Index: gcc/cp/name-lookup.c
 ===================================================================
---- gcc/po/id.po       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/po/id.po       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,14 +1,14 @@
- # Pesan Bahasa Indonesia untuk GCC
- # Copyright (C) 2008 Free Software Foundation, Inc.
- # This file is distributed under the same license as the gcc package.
--# Arif E. Nugroho <arif_endro@yahoo.com>, 2008.
-+# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009.
- #
- msgid ""
- msgstr ""
--"Project-Id-Version: gcc 4.4-b20081121\n"
-+"Project-Id-Version: gcc 4.4.1\n"
- "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
- "POT-Creation-Date: 2009-07-15 13:37+0200\n"
--"PO-Revision-Date: 2008-11-30 09:00+0700\n"
-+"PO-Revision-Date: 2009-11-10 09:00+0700\n"
- "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
- "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
- "MIME-Version: 1.0\n"
-@@ -628,7 +628,7 @@
- #: cppspec.c:106
- #, c-format
- msgid "\"%s\" is not a valid option to the preprocessor"
--msgstr "\"%s\" bukan sebuah opsi valid untuk preprosesor"
-+msgstr "\"%s\" bukan sebuah pilihan valid untuk preprosesor"
- #: cppspec.c:128
- #, c-format
-@@ -850,11 +850,11 @@
- #: gcc.c:3225
- #, c-format
- msgid "Usage: %s [options] file...\n"
--msgstr "Penggunaan: %s [opsi] berkas...\n"
-+msgstr "Penggunaan: %s [pilihan] berkas...\n"
- #: gcc.c:3226
- msgid "Options:\n"
--msgstr "Opsi:\n"
-+msgstr "Pilihan:\n"
- #: gcc.c:3228
- msgid "  -pass-exit-codes         Exit with highest error code from a phase\n"
-@@ -866,25 +866,23 @@
- #: gcc.c:3230
- msgid "  --target-help            Display target specific command line options\n"
--msgstr "  --target-help            Tampilkan target spesifik opsi baris perintah\n"
-+msgstr "  --target-help            Tampilkan target spesifik pilihan baris perintah\n"
- #: gcc.c:3231
--#, fuzzy
- msgid "  --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n"
--msgstr "  --help={target|optimisasi|peringatan|tidak terdokumentasi|parameter}[,{[^]tergabung|[^]dipisahkan}]\n"
-+msgstr "  --help={target|optimisasi|peringatan|parameter|[^]{tergabung|dipisahkan|tidak terdokumentasi}}[,...]\n"
- #: gcc.c:3232
- msgid "                           Display specific types of command line options\n"
--msgstr "                           Tampilkan tipe spesifik dari opsi baris perintah\n"
-+msgstr "                           Tampilkan tipe spesifik dari pilihan baris perintah\n"
- #: gcc.c:3234
- msgid "  (Use '-v --help' to display command line options of sub-processes)\n"
--msgstr "  (Gunakan '-v --help' untuk menampilkan opsi baris perintah dari sub-proses)\n"
-+msgstr "  (Gunakan '-v --help' untuk menampilkan pilihan baris perintah dari sub-proses)\n"
- #: gcc.c:3235
--#, fuzzy
- msgid "  --version                Display compiler version information\n"
--msgstr "  --help                   Tampilkan informasi ini\n"
-+msgstr "  --version                Tampilkan informasi versi penyusun\n"
- #: gcc.c:3236
- msgid "  -dumpspecs               Display all of the built in spec strings\n"
-@@ -923,7 +921,7 @@
- "  -print-multi-lib         Display the mapping between command line options and\n"
- "                           multiple library search directories\n"
- msgstr ""
--"  -print-multi-lib         Tampilkan pemetaan diantara opsi baris perintah dan\n"
-+"  -print-multi-lib         Tampilkan pemetaan diantara pilihan baris perintah dan\n"
- "                           multiple pencarian direktori perpustakaan\n"
- #: gcc.c:3247
-@@ -940,15 +938,15 @@
- #: gcc.c:3250
- msgid "  -Wa,<options>            Pass comma-separated <options> on to the assembler\n"
--msgstr "  -Wa,<opsi>               Lewatkan dipisahkan-oleh-koma <opsi> ke perakit\n"
-+msgstr "  -Wa,<pilihan>               Lewatkan dipisahkan-oleh-koma <pilihan> ke perakit\n"
- #: gcc.c:3251
- msgid "  -Wp,<options>            Pass comma-separated <options> on to the preprocessor\n"
--msgstr "  -Wp,<opsi>               Lewatkan dipisahkan-oleh-koma <opsi> ke preprosesor\n"
-+msgstr "  -Wp,<pilihan>               Lewatkan dipisahkan-oleh-koma <pilihan> ke preprosesor\n"
- #: gcc.c:3252
- msgid "  -Wl,<options>            Pass comma-separated <options> on to the linker\n"
--msgstr "  -Wl,<opsi>               Lewatkan dipisahkan-oleh-koma <opsi> ke penghubung\n"
-+msgstr "  -Wl,<pilihan>               Lewatkan dipisahkan-oleh-koma <pilihan> ke penghubung\n"
- #: gcc.c:3253
- msgid "  -Xassembler <arg>        Pass <arg> on to the assembler\n"
-@@ -1012,7 +1010,7 @@
- #: gcc.c:3269
- msgid "  -###                     Like -v but options quoted and commands not executed\n"
--msgstr "  -###                     Seperti -v tetapi opsi diquote dan perintah tidak dijalankan\n"
-+msgstr "  -###                     Seperti -v tetapi pilihan diquote dan perintah tidak dijalankan\n"
- #: gcc.c:3270
- msgid "  -E                       Preprocess only; do not compile, assemble or link\n"
-@@ -1051,14 +1049,14 @@
- " other options on to these processes the -W<letter> options must be used.\n"
- msgstr ""
- "\n"
--"Opsi dimulai dengan -g, -f, -m, -O, -W, atau --param secara otomatis\n"
-+"Pilihan dimulai dengan -g, -f, -m, -O, -W, atau --param secara otomatis\n"
- " dilewatkan ke berbagai sub-proses dipanggil oleh %s. Dalam tujuan untuk melewatkan\n"
--" ke opsi lain di proses ini opsi -W<huruf> harus digunakan.\n"
-+" ke pilihan lain di proses ini pilihan -W<huruf> harus digunakan.\n"
- #: gcc.c:3411
- #, c-format
- msgid "'-%c' option must have argument"
--msgstr "'-%c' opsi harus memiliki argumen"
-+msgstr "'-%c' pilihan harus memiliki argumen"
- #: gcc.c:3437
- #, c-format
-@@ -1066,9 +1064,9 @@
- msgstr "tidak dapat menjalankan '%s': %s"
- #: gcc.c:3439
--#, fuzzy, c-format
-+#, c-format
- msgid "couldn't run '%s': %s: %s"
--msgstr "tidak dapat menjalankan '%s': %s"
-+msgstr "tidak dapat menjalankan '%s': %s: %s"
- #. translate_options () has turned --version into -fversion.
- #: gcc.c:3643
-@@ -1307,7 +1305,7 @@
- "\n"
- msgstr ""
- "\n"
--"Opsi penghubung\n"
-+"Pilihan penghubung\n"
- "===============\n"
- "\n"
-@@ -1372,7 +1370,7 @@
- "=================\n"
- "\n"
- msgstr ""
--"Opsi perakit\n"
-+"Pilihan perakit\n"
- "============\n"
- "\n"
-@@ -1776,7 +1774,7 @@
- #: ipa-inline.c:980
- msgid "target specific option mismatch"
--msgstr "opsi target spesifik tidak cocok"
-+msgstr "pilihan target spesifik tidak cocok"
- #: ipa-inline.c:1056
- msgid "--param inline-unit-growth limit reached"
-@@ -1842,63 +1840,61 @@
- #: opts.c:1283
- #, c-format
- msgid " No options with the desired characteristics were found\n"
--msgstr " Tidak ada opsi dengan karakteristik yang diinginkan ditemukan\n"
-+msgstr " Tidak ada pilihan dengan karakteristik yang diinginkan ditemukan\n"
- #: opts.c:1292
- #, c-format
- msgid " None found.  Use --help=%s to show *all* the options supported by the %s front-end\n"
--msgstr " Tidak ditemukan apapun. Gunakan --help=%s untuk menunjukan *seluruh* opsi yang didukung oleh %s front-end\n"
-+msgstr " Tidak ditemukan apapun. Gunakan --help=%s untuk menunjukan *seluruh* pilihan yang didukung oleh %s front-end\n"
- #: opts.c:1298
- #, c-format
- msgid " All options with the desired characteristics have already been displayed\n"
--msgstr " Seluruh opsi dengan karakteristik yang diinginkan telah ditampilkan\n"
-+msgstr " Seluruh pilihan dengan karakteristik yang diinginkan telah ditampilkan\n"
- #: opts.c:1352
- msgid "The following options are target specific"
--msgstr "Opsi berikut adalah target spesifik"
-+msgstr "Pilihan berikut adalah target spesifik"
- #: opts.c:1355
- msgid "The following options control compiler warning messages"
--msgstr "Opsi berikut mengontrol pesan peringatan kompiler"
-+msgstr "Pilihan berikut mengontrol pesan peringatan kompiler"
- #: opts.c:1358
- msgid "The following options control optimizations"
--msgstr "Opsi berikut mengontrol optimisasi"
-+msgstr "Pilihan berikut mengontrol optimisasi"
- #: opts.c:1361 opts.c:1400
- msgid "The following options are language-independent"
--msgstr "Opsi berikut adalah independen terhadap bahasa pemrograman"
-+msgstr "Pilihan berikut adalah independen terhadap bahasa pemrograman"
- #: opts.c:1364
- msgid "The --param option recognizes the following as parameters"
--msgstr "Opsi --param dikenal sebagai parameters"
-+msgstr "Pilihan --param dikenal sebagai parameters"
- #: opts.c:1370
- msgid "The following options are specific to just the language "
--msgstr "Opsi berikut hanya spesifik terhadap bahasa "
-+msgstr "Pilihan berikut hanya spesifik terhadap bahasa "
- #: opts.c:1372
- msgid "The following options are supported by the language "
--msgstr "Opsi berikut tidak didukung oleh bahasa "
-+msgstr "Pilihan berikut tidak didukung oleh bahasa "
- #: opts.c:1383
- msgid "The following options are not documented"
--msgstr "Opsi berikut tidak terdokumentasi"
-+msgstr "Pilihan berikut tidak terdokumentasi"
- #: opts.c:1385
--#, fuzzy
- msgid "The following options take separate arguments"
--msgstr "Opsi berikut tidak terdokumentasi"
-+msgstr "Pilihan berikut mengambil argumen terpisah"
- #: opts.c:1387
--#, fuzzy
- msgid "The following options take joined arguments"
--msgstr "Opsi berikut tidak terdokumentasi"
-+msgstr "Pilihan berikut mengambil argumen tergabung"
- #: opts.c:1398
- msgid "The following options are language-related"
--msgstr "Opsi berikut adalah berhubungan dengan bahasa"
-+msgstr "Pilihan berikut adalah berhubungan dengan bahasa"
- #: opts.c:1558
- #, c-format
-@@ -1908,7 +1904,7 @@
- #: opts.c:1566
- #, c-format
- msgid "warning: unrecognized argument to --help= option: %.*s\n"
--msgstr "peringatan: argumen tidak dikenal ke opsi --help=: %.*s\n"
-+msgstr "peringatan: argumen tidak dikenal ke pilihan --help=: %.*s\n"
- #: protoize.c:583
- #, c-format
-@@ -2335,11 +2331,11 @@
- #: toplev.c:1276
- msgid "options passed: "
--msgstr "opsi dilewatkan: "
-+msgstr "pilihan dilewatkan: "
- #: toplev.c:1310
- msgid "options enabled: "
--msgstr "opsi aktif: "
-+msgstr "pilihan aktif: "
- #: toplev.c:1445
- #, c-format
-@@ -2847,7 +2843,7 @@
- #: params.def:755
- msgid "max size of conflict table in MB"
--msgstr ""
-+msgstr "ukuran maksimal dari tabel konflik dalam MB"
- #: params.def:763
- msgid "The maximum ratio between array size and switch branches for a switch conversion to take place"
-@@ -2855,7 +2851,7 @@
- #: params.def:771
- msgid "max basic blocks number in loop for loop invariant motion"
--msgstr ""
-+msgstr "jumlah maksimal blok dasar dalam loop untuk gerakan loop invariant"
- #: config/alpha/alpha.c:5039
- #, c-format
-@@ -3303,19 +3299,19 @@
- msgstr "UNSPEC tidak valid sebagai operan"
- #: config/i386/i386.c:11065 config/i386/i386.c:11104 config/i386/i386.c:11278
--#, fuzzy, c-format
-+#, c-format
- msgid "operand is not a condition code, invalid operand code 'D'"
--msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
-+msgstr "operan bukan sebuah kode kondisi, kode operan 'D' tidak valid"
- #: config/i386/i386.c:11129
--#, fuzzy, c-format
-+#, c-format
- msgid "operand is neither a constant nor a condition code, invalid operand code 'C'"
--msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
-+msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'C' tidak valid"
- #: config/i386/i386.c:11139
--#, fuzzy, c-format
-+#, c-format
- msgid "operand is neither a constant nor a condition code, invalid operand code 'F'"
--msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
-+msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'F' tidak valid"
- #: config/i386/i386.c:11157
- #, c-format
-@@ -3323,9 +3319,9 @@
- msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
- #: config/i386/i386.c:11167
--#, fuzzy, c-format
-+#, c-format
- msgid "operand is neither a constant nor a condition code, invalid operand code 'f'"
--msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
-+msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'f' tidak valid"
- #: config/i386/i386.c:11292
- #, c-format
-@@ -3850,17 +3846,17 @@
- #: fortran/arith.c:2064
- #, no-c-format
- msgid "Arithmetic overflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
--msgstr "Aritmetik overflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
-+msgstr "Aritmetik overflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
- #: fortran/arith.c:2069
- #, no-c-format
- msgid "Arithmetic underflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
--msgstr "Aritmetik underflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
-+msgstr "Aritmetik underflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
- #: fortran/arith.c:2074
- #, no-c-format
- msgid "Arithmetic NaN converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
--msgstr "Aritmetik NaN mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
-+msgstr "Aritmetik NaN mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
- #: fortran/arith.c:2079
- #, no-c-format
-@@ -4083,9 +4079,9 @@
- msgstr "'dim' argumen dari '%s' instrinsik di %L bukan sebuah indeks dimensi yang valid"
- #: fortran/check.c:431
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Unequal character lengths (%ld/%ld) in %s at %L"
--msgstr "Panjang karakter tidak sama (%ld dan %ld) dalam %s intrinsik di %L"
-+msgstr "Panjang karakter tidak sama (%ld/%ld) dalam %s di %L"
- #: fortran/check.c:537 fortran/check.c:2039 fortran/check.c:2054
- #, no-c-format
-@@ -4211,9 +4207,9 @@
- msgstr "'a1' argumen dari '%s' intrinsik di %L harus berupa INTEGER, REAL, atau KARAKTER"
- #: fortran/check.c:1821
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)"
--msgstr "'a%d' argumen dari '%s' intrinsik di %L harus berupa %s(%d)"
-+msgstr "Tipe argumen dari '%s' intrinsik di %L harus sesuai dengan (%s/%s)"
- #: fortran/check.c:1835
- #, no-c-format
-@@ -4306,9 +4302,9 @@
- msgstr "Bentuk berbeda dalam dimensi %d untuk argumen MASK dan FIELD dari UNPACK di %L"
- #: fortran/check.c:3190 fortran/check.c:3222
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)"
--msgstr "'%s' argumen dari '%s' intrinsik di %L harus berupa %s"
-+msgstr "Ukuran dari '%s' argumen dari '%s' intrinsik di %L terlalu kecil (%i/%i)"
- #: fortran/check.c:3230
- #, no-c-format
-@@ -4636,9 +4632,9 @@
- msgstr "Jenis %d tidak didukung untuk tipe %s di %C"
- #: fortran/decl.c:1992
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "C kind type parameter is for type %s but type at %L is %s"
--msgstr "parameter jenis C adalah untuk tipe %s tetapi simbol '%s' di %L adalah tipe %s"
-+msgstr "Jenis tipe parameter C adalah untuk tipe %s tetapi tipe di %L adalah %s"
- #: fortran/decl.c:2001
- #, no-c-format
-@@ -5136,7 +5132,7 @@
- #: fortran/decl.c:5619
- #, no-c-format
- msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
--msgstr "Deklarasi penunjuk cray di %C membutuhkan opsi -fcray-pointer"
-+msgstr "Deklarasi penunjuk cray di %C membutuhkan pilihan -fcray-pointer"
- #: fortran/decl.c:5714
- #, no-c-format
-@@ -5757,17 +5753,17 @@
- #: fortran/expr.c:2974 fortran/resolve.c:6570
- #, no-c-format
- msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
--msgstr "Aritmetik underflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
-+msgstr "Aritmetik underflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
- #: fortran/expr.c:2978 fortran/resolve.c:6574
- #, no-c-format
- msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
--msgstr "Aritmetik overflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinonaktifkan dengan opsi -fno-range-check"
-+msgstr "Aritmetik overflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinonaktifkan dengan pilihan -fno-range-check"
- #: fortran/expr.c:2982 fortran/resolve.c:6578
- #, no-c-format
- msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
--msgstr "Aritmetik NaN dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
-+msgstr "Aritmetik NaN dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
- #: fortran/expr.c:3004
- #, no-c-format
-@@ -5810,14 +5806,14 @@
- msgstr "Objek penunjuk buruk dalam prosedur PURE di %L"
- #: fortran/expr.c:3134
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Invalid procedure pointer assignment at %L"
--msgstr "Tingkat berbeda dalam penempatan penunjuk di %L"
-+msgstr "Penempatan penunjuk prosedur tidak valid di %L"
- #: fortran/expr.c:3140
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
--msgstr "Jenis parameter berbeda dalam penempatan penunjuk di %L"
-+msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
- #: fortran/expr.c:3159
- #, no-c-format
-@@ -6202,7 +6198,7 @@
- #: fortran/intrinsic.c:840
- #, no-c-format
- msgid "The intrinsic '%s' at %L is not included in the selected standard but %s and '%s' will be treated as if declared EXTERNAL.  Use an appropriate -std=* option or define -fall-intrinsics to allow this intrinsic."
--msgstr "Intrinsik '%s' di %L tidak dimasukan dalam standar yang dipilih tetapi %s dan '%s' akan diperlakukan seperti jika dideklarasikan EXTERNAL. Gunakan sebuah opsi -std=* yang sesuai atau definisikan -fall-intrinsics untuk mengijinkan intrinsik ini."
-+msgstr "Intrinsik '%s' di %L tidak dimasukan dalam standar yang dipilih tetapi %s dan '%s' akan diperlakukan seperti jika dideklarasikan EXTERNAL. Gunakan sebuah pilihan -std=* yang sesuai atau definisikan -fall-intrinsics untuk mengijinkan intrinsik ini."
- #: fortran/intrinsic.c:3079
- #, no-c-format
-@@ -6372,9 +6368,8 @@
- msgstr "Fortran 2008: 'G0' dalam format di %C"
- #: fortran/io.c:745
--#, fuzzy
- msgid "E specifier not allowed with g0 descriptor"
--msgstr "Diduga P edit deskripsi"
-+msgstr "Penspesifikasi E tidak diperbolehkan dengan pendeskripsi g0"
- #: fortran/io.c:759 fortran/io.c:761 fortran/io.c:822 fortran/io.c:824
- #, no-c-format
-@@ -7303,19 +7298,19 @@
- msgstr "Error menulis berkas modul '%s' untuk menulis: %s"
- #: fortran/module.c:4876
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Can't delete module file '%s': %s"
--msgstr "%s: tidak dapat menghapus berkas '%s': %s\n"
-+msgstr "tidak dapat menghapus berkas modul '%s': %s"
- #: fortran/module.c:4879
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Can't rename module file '%s' to '%s': %s"
--msgstr "%s: peringatan: tidak dapat mengubah nama berkas '%s' ke '%s': %s\n"
-+msgstr "tidak dapat mengubah nama berkas modul '%s' ke '%s': %s"
- #: fortran/module.c:4885
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Can't delete temporary module file '%s': %s"
--msgstr "%s: tidak dapat menghapus berkas informasi tambahan '%s': %s\n"
-+msgstr "Tidak dapat menghapus berkas modul sementara '%s': %s"
- #: fortran/module.c:4905 fortran/module.c:4987
- #, no-c-format
-@@ -7345,12 +7340,12 @@
- #: fortran/module.c:5116
- #, no-c-format
- msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %s"
--msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %L adalah tidak kompatibel dengan opsi %s"
-+msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %L adalah tidak kompatibel dengan pilihan %s"
- #: fortran/module.c:5144
- #, no-c-format
- msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s"
--msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %C adalah tidak kompatibel dengan opsi %s"
-+msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %C adalah tidak kompatibel dengan pilihan %s"
- #: fortran/module.c:5160
- #, no-c-format
-@@ -7394,12 +7389,12 @@
- #: fortran/module.c:5252
- #, no-c-format
- msgid "Parse error when checking module version for file '%s' opened at %C"
--msgstr ""
-+msgstr "Parse error ketika memeriksa versi modul untuk berkas '%s' dibuka di %C"
- #: fortran/module.c:5257
- #, no-c-format
- msgid "Wrong module version '%s' (expected '"
--msgstr ""
-+msgstr "Versi modul salah '%s' (diduga '"
- #: fortran/module.c:5270
- #, no-c-format
-@@ -7640,7 +7635,7 @@
- #: fortran/options.c:233
- #, no-c-format
- msgid "Option -fwhole-program is not supported for Fortran"
--msgstr "Opsi -fwhole-program tidak didukung untuk Fortran"
-+msgstr "Pilihan -fwhole-program tidak didukung untuk Fortran"
- #: fortran/options.c:287
- #, no-c-format
-@@ -7660,32 +7655,32 @@
- #: fortran/options.c:318
- #, no-c-format
- msgid "Flag -fno-automatic overwrites -fmax-stack-var-size=%d"
--msgstr "Opsi -fno-automatic overwrites -fmax-stack-var-size=%d"
-+msgstr "Pilihan -fno-automatic overwrites -fmax-stack-var-size=%d"
- #: fortran/options.c:321
- #, no-c-format
- msgid "Flag -fno-automatic overwrites -frecursive"
--msgstr "Opsi -fno-automatic overwrites -frecursive"
-+msgstr "Pilihan -fno-automatic overwrites -frecursive"
- #: fortran/options.c:323
- #, no-c-format
- msgid "Flag -fno-automatic overwrites -frecursive implied by -fopenmp"
--msgstr "Opsi -fno-automatic overwrites -frecursive diimplikasikan dengan -fopenmp"
-+msgstr "Pilihan -fno-automatic overwrites -frecursive diimplikasikan dengan -fopenmp"
- #: fortran/options.c:327
- #, no-c-format
- msgid "Flag -frecursive overwrites -fmax-stack-var-size=%d"
--msgstr "Opsi -frecursive overwrites -fmax-stack-var-size=%d"
-+msgstr "Pilihan -frecursive overwrites -fmax-stack-var-size=%d"
- #: fortran/options.c:331
- #, no-c-format
- msgid "Flag -fmax-stack-var-size=%d overwrites -frecursive implied by -fopenmp"
--msgstr "Opsi -fmax-stack-var-size=%d overwrites -frecursive diimplikasikan dengan -fopenmp"
-+msgstr "Pilihan -fmax-stack-var-size=%d overwrites -frecursive diimplikasikan dengan -fopenmp"
- #: fortran/options.c:404
- #, no-c-format
- msgid "gfortran: Only one -J option allowed"
--msgstr "gfortran: Hanya satu opsi -J diperbolehkan"
-+msgstr "gfortran: Hanya satu pilihan -J diperbolehkan"
- #: fortran/options.c:447
- #, no-c-format
-@@ -7715,12 +7710,12 @@
- #: fortran/options.c:712
- #, no-c-format
- msgid "Unrecognized option to -finit-logical: %s"
--msgstr "Opsi ke -finit-logical: %s tidak dikenal"
-+msgstr "Pilihan ke -finit-logical: %s tidak dikenal"
- #: fortran/options.c:726
- #, no-c-format
- msgid "Unrecognized option to -finit-real: %s"
--msgstr "Opsi ke -finit-real: %s tidak dikenal"
-+msgstr "Pilihan ke -finit-real: %s tidak dikenal"
- #: fortran/options.c:742
- #, no-c-format
-@@ -8114,7 +8109,7 @@
- #: fortran/primary.c:222
- #, no-c-format
- msgid "Integer too big for its kind at %C. This check can be disabled with the option -fno-range-check"
--msgstr "Integer terlalu besar untuk jenis ini di %C. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
-+msgstr "Integer terlalu besar untuk jenis ini di %C. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
- #: fortran/primary.c:251
- #, no-c-format
-@@ -8284,7 +8279,7 @@
- #: fortran/primary.c:2103
- #, no-c-format
- msgid "Fortran 2003: Structure constructor with missing optional arguments at %C"
--msgstr "Fortran 2003: Konstruktor struktur dengan argumen opsional hilang di %C"
-+msgstr "Fortran 2003: Konstruktor struktur dengan argumen pilihanonal hilang di %C"
- #: fortran/primary.c:2111
- #, no-c-format
-@@ -8589,7 +8584,7 @@
- #: fortran/resolve.c:1163
- #, no-c-format
- msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively.  Declare it RECURSIVE or use -frecursive"
--msgstr ""
-+msgstr "Bukan prosedur REKURSIF '%s' di %L mungkin memanggil dirinya sendiri secara rekursif. Deklarasikan itu secara RECURSIVE atau gunakan -frecursive"
- #: fortran/resolve.c:1196 fortran/resolve.c:6023 fortran/resolve.c:6778
- #, no-c-format
-@@ -8644,7 +8639,7 @@
- #: fortran/resolve.c:1523
- #, no-c-format
- msgid "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (12.4.1.5)"
--msgstr "'%s' di %L adalah sebuah array dan OPSIONAL; JIKA INI HILANG, ini tidak dapat berupa argumen aktual dari sebual prosedur ELEMENTAL kecuali disana ada sebuah tidak opsional argumen dengan tingkat sama (12.4.1.5)"
-+msgstr "'%s' di %L adalah sebuah array dan OPSIONAL; JIKA INI HILANG, ini tidak dapat berupa argumen aktual dari sebual prosedur ELEMENTAL kecuali disana ada sebuah tidak pilihanonal argumen dengan tingkat sama (12.4.1.5)"
- #: fortran/resolve.c:1545
- msgid "elemental procedure"
-@@ -8776,14 +8771,14 @@
- msgstr "Referensi fungsi ke '%s' di %L adalah ke sebuah prosedur bukan-PURE dalam sebuah prosedur PURE"
- #: fortran/resolve.c:2493
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE"
--msgstr "Panggilan ke MASUKAN '%s' di %L adalah rekursif, bukan fungsi '%s' tidak terdeklarasi sebagai REKURSIF"
-+msgstr "MASUKAN '%s' di %L tidak dapat dipanggil secara rekursif, karena fungsi '%s' tidak REKURSIF"
- #: fortran/resolve.c:2497
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
--msgstr "Fungsi '%s' di %L tidak dapat memanggil dirinya sendiri, karena ini bukan REKURSIF"
-+msgstr "Fungsi '%s' di %L tidak dapat dipanggil secara rekursif, karena ini bukan REKURSIF"
- #: fortran/resolve.c:2544
- #, no-c-format
-@@ -8831,14 +8826,14 @@
- msgstr "'%s' di %L memiliki sebuah tipe, yang tidak konsisten dengan CALL di %L"
- #: fortran/resolve.c:2957
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE"
--msgstr "Panggilan ke MASUKAN '%s' di %L adalah rekursif, tetapi subroutine '%s' tidak dideklarasikan sebagai REKURSIF"
-+msgstr "MASUKAN '%s' di %L tidak dapat dipanggil secara rekursif, karena subroutine '%s' tidak REKURSIF"
- #: fortran/resolve.c:2961
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
--msgstr "SUBROUTINE '%s' di %L tidak dapat memanggil dirinya sendiri, karena ini bukan REKURSIF"
-+msgstr "SUBROUTINE '%s' di %L tidak dapat dipanggil secara rekursif, karena ini bukan REKURSIF"
- #: fortran/resolve.c:3035
- #, no-c-format
-@@ -9769,9 +9764,9 @@
- msgstr "Panjang karakter dari komponen '%s' butuh untuk menjadi sebuah ekspresi spesifikasi konstan di %L"
- #: fortran/resolve.c:8735
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
--msgstr "Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L"
-+msgstr "Fortran 2003: Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L"
- #: fortran/resolve.c:8746
- #, no-c-format
-@@ -9871,7 +9866,7 @@
- #: fortran/resolve.c:9118
- #, no-c-format
- msgid "The intrinsic '%s' declared INTRINSIC at %L is not available in the current standard settings but %s.  Use an appropriate -std=* option or enable -fall-intrinsics in order to use it."
--msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfigurasi baku sekarang tetapi %s. Gunakan sebuah opsi -std=* yang sesuai atau aktifkan -fall-intrinsics untuk menggunakan itu."
-+msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfigurasi baku sekarang tetapi %s. Gunakan sebuah pilihan -std=* yang sesuai atau aktifkan -fall-intrinsics untuk menggunakan itu."
- #: fortran/resolve.c:9162
- #, no-c-format
-@@ -9929,9 +9924,9 @@
- msgstr "Threadprivate di %L bukan SAVEd"
- #: fortran/resolve.c:9448
--#, fuzzy, no-c-format
-+#, no-c-format
- msgid "non-constant DATA value at %L"
--msgstr "bukan-konstanta array dalam pernyataan DATA %L"
-+msgstr "bukan-konstanta nilai DATA di %L"
- #: fortran/resolve.c:9488
- #, no-c-format
-@@ -10066,12 +10061,12 @@
- #: fortran/resolve.c:10349
- #, no-c-format
- msgid "First argument of operator interface at %L cannot be optional"
--msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa opsional"
-+msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa pilihanonal"
- #: fortran/resolve.c:10361
- #, no-c-format
- msgid "Second argument of operator interface at %L cannot be optional"
--msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa opsional"
-+msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa pilihanonal"
- #: fortran/resolve.c:10365
- #, no-c-format
-@@ -10768,7 +10763,7 @@
- #: fortran/trans-array.c:3957
- #, no-c-format
- msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit.   See -fmax-array-constructor option"
--msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat opsi -fmax-array-constructor"
-+msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat pilihan -fmax-array-constructor"
- #: fortran/trans-array.c:5315
- #, no-c-format
-@@ -11198,7 +11193,7 @@
- #: config/vax/netbsd-elf.h:41
- msgid "the -shared option is not currently supported for VAX ELF"
--msgstr "opsi -shared saat ini tidak didukung untuk VAX ELF"
-+msgstr "pilihan -shared saat ini tidak didukung untuk VAX ELF"
- #: config/i386/nwld.h:34
- msgid "Static linking is not supported.\n"
-@@ -11598,7 +11593,7 @@
- #: config/mcore/mcore.opt:56 config/fr30/fr30.opt:27
- msgid "Assume that run-time support has been provided, so omit -lsim from the linker command line"
--msgstr ""
-+msgstr "Asumsikan bahwa dukungan waktu jalan telah disediakan, jadi abaikan -lsim dari baris perintah penggabung"
- #: config/mcore/mcore.opt:60
- msgid "Use arbitrary sized immediates in bit operations"
-@@ -12161,9 +12156,8 @@
- msgstr "Ijinkan percabangan untuk dipack dengan instruksi lain"
- #: config/picochip/picochip.opt:23
--#, fuzzy
- msgid "Specify which type of AE to target. This option sets the mul-type and byte-access."
--msgstr "Spesifikasikan tipe mana dari AE untuk target. Opsi in menset tipe-mul"
-+msgstr "Spesifikasikan tipe mana dari AE untuk target. Pilihan ini menset mul-type dan byte-access."
- #: config/picochip/picochip.opt:27
- msgid "Specify which type of multiplication to use. Can be mem, mac or none."
-@@ -12178,9 +12172,8 @@
- msgstr "Aktifkan keluaran debug untuk dihasilkan."
- #: config/picochip/picochip.opt:39
--#, fuzzy
- msgid "Allow a symbol value to be used as an immediate value in an instruction."
--msgstr "Ijinkan sebuah nilai simbol untuk digunakan sebagai sebuah nilai langsung dalam sebuah"
-+msgstr "Ijinkan sebuah nilai simbol untuk digunakan sebagai sebuah nilai langsung dalam sebuah instruksi."
- #: config/picochip/picochip.opt:43
- msgid "Generate warnings when inefficient code is known to be generated."
-@@ -12689,7 +12682,7 @@
- #: config/cris/cris.opt:149
- msgid "Use the most feature-enabling options allowed by other options"
--msgstr "Gunakan opsi paling feature-enabling yang diijinkan oleh opsi lain"
-+msgstr "Gunakan pilihan paling feature-enabling yang diijinkan oleh pilihan lain"
- #: config/cris/cris.opt:158
- msgid "Override -mbest-lib-options"
-@@ -12883,11 +12876,11 @@
- #: config/rs6000/rs6000.opt:48
- msgid "Use PowerPC General Purpose group optional instructions"
--msgstr "Gunakan grup opsional instruksi PowerPC General Purpose"
-+msgstr "Gunakan grup pilihanonal instruksi PowerPC General Purpose"
- #: config/rs6000/rs6000.opt:52
- msgid "Use PowerPC Graphics group optional instructions"
--msgstr "Gunakan grup opsional instruksi PowerPC Graphics"
-+msgstr "Gunakan grup pilihanonal instruksi PowerPC Graphics"
- #: config/rs6000/rs6000.opt:56
- msgid "Use PowerPC V2.01 single field mfcr instruction"
-@@ -12955,7 +12948,7 @@
- #: config/rs6000/rs6000.opt:124
- msgid "Avoid generation of indexed load/store instructions when possible"
--msgstr ""
-+msgstr "Abaikan pembuatan dari indeks instruksi muat/simpan jika memungkinkan"
- #: config/rs6000/rs6000.opt:128
- msgid "Do not generate fused multiply/add instructions"
-@@ -13015,7 +13008,7 @@
- #: config/rs6000/rs6000.opt:194
- msgid "Deprecated option.  Use -mvrsave/-mno-vrsave instead"
--msgstr "Opsi ditinggalkan. Gunakan -mvrsave/-mno-vrsave lebih baik"
-+msgstr "Pilihan ditinggalkan. Gunakan -mvrsave/-mno-vrsave lebih baik"
- #: config/rs6000/rs6000.opt:198
- msgid "Generate isel instructions"
-@@ -13023,7 +13016,7 @@
- #: config/rs6000/rs6000.opt:202
- msgid "Deprecated option.  Use -misel/-mno-isel instead"
--msgstr "Opsi ditinggalkan. Gunakan -misel/-mno-isel lebih baik"
-+msgstr "Pilihan ditinggalkan. Gunakan -misel/-mno-isel lebih baik"
- #: config/rs6000/rs6000.opt:206
- msgid "Generate SPE SIMD instructions on E500"
-@@ -13035,7 +13028,7 @@
- #: config/rs6000/rs6000.opt:214
- msgid "Deprecated option.  Use -mspe/-mno-spe instead"
--msgstr "Opsi ditinggalkan. Gunakan -mspe/-mno-spe lebih baik"
-+msgstr "Pilihan ditinggalkan. Gunakan -mspe/-mno-spe lebih baik"
- #: config/rs6000/rs6000.opt:218
- msgid "Enable debug output"
-@@ -14607,7 +14600,7 @@
- #: config/bfin/bfin.opt:101
- msgid "Assume ICPLBs are enabled at runtime."
--msgstr ""
-+msgstr "Asumsikan ICPLB telah aktif di waktu jalan."
- #: java/lang.opt:69
- msgid "Warn if deprecated empty statements are found"
-@@ -14719,7 +14712,7 @@
- #: common.opt:32
- msgid "Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params"
--msgstr "Tampilkan deskripsi dari opsi spesifik class. <class> adalah satu atau lebih dari pengoptimasi, target, peringatan, tidak terdokumentasi, params"
-+msgstr "Tampilkan deskripsi dari pilihan spesifik class. <class> adalah satu atau lebih dari pengoptimasi, target, peringatan, tidak terdokumentasi, params"
- #: common.opt:36
- msgid "Alias for --help=target"
-@@ -14743,7 +14736,7 @@
- #: common.opt:71
- msgid "This switch is deprecated; use -Wextra instead"
--msgstr "Opsi ini sudah ditinggalkan; lebih baik gunakan -Wextra"
-+msgstr "Pilihan ini sudah ditinggalkan; lebih baik gunakan -Wextra"
- #: common.opt:75
- msgid "Warn about returning structures, unions or arrays"
-@@ -15055,7 +15048,7 @@
- #: common.opt:448
- msgid "Amend appropriate diagnostic messages with the command line option that controls them"
--msgstr "Tambahkan pesan diagnosa yang sesuai dengan opsi baris perintah yang mengontrolnya"
-+msgstr "Tambahkan pesan diagnosa yang sesuai dengan pilihan baris perintah yang mengontrolnya"
- #: common.opt:452
- msgid "Dump various compiler internals to a file"
-@@ -15255,13 +15248,12 @@
- msgstr "Lakukan optimisasi berdasarkan struktur layout"
- #: common.opt:680
--#, fuzzy
- msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
--msgstr "-fire-algorithm=[regional|CB|mixed] Set penggunaan algoritma IRA"
-+msgstr "-fire-algorithm=[CB|prioritas] Set penggunaan algoritma IRA"
- #: common.opt:684
- msgid "-fira-region=[one|all|mixed] Set regions for IRA"
--msgstr ""
-+msgstr "-fira-region=[one|all|mixed] Set daerah untuk IRA"
- #: common.opt:688
- msgid "Do optimistic coalescing."
-@@ -15445,19 +15437,19 @@
- #: common.opt:880
- msgid "Enable common options for generating profile info for profile feedback directed optimizations"
--msgstr "Aktifkan opsi umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi"
-+msgstr "Aktifkan pilihan umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi"
- #: common.opt:884
- msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir="
--msgstr "Aktifkan opsi umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi, dan set -fprofile-dir="
-+msgstr "Aktifkan pilihan umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi, dan set -fprofile-dir="
- #: common.opt:888
- msgid "Enable common options for performing profile feedback directed optimizations"
--msgstr "Aktifkan opsi umum untuk melakukan profile feedback directed optimisasi"
-+msgstr "Aktifkan pilihan umum untuk melakukan profile feedback directed optimisasi"
- #: common.opt:892
- msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir="
--msgstr "Aktifkan opsi umum untuk melakukan profile feedback directed optimisasi, dan set -fprofile-dir="
-+msgstr "Aktifkan pilihan umum untuk melakukan profile feedback directed optimisasi, dan set -fprofile-dir="
- #: common.opt:896
- msgid "Insert code to profile values of expressions"
-@@ -15469,7 +15461,7 @@
- #: common.opt:913
- msgid "Record gcc command line switches in the object file."
--msgstr "Rekam opsi baris perintah gcc dalam berkas objek."
-+msgstr "Rekam pilihan baris perintah gcc dalam berkas objek."
- #: common.opt:917
- msgid "Return small aggregates in registers"
-@@ -16105,7 +16097,7 @@
- #: c.opt:216
- msgid "This switch is deprecated; use -Werror=implicit-function-declaration instead"
--msgstr "Opsi ini sudah ditinggalkan; lebih baik gunakan -Werror=implicit-function-declaration"
-+msgstr "Pilihan ini sudah ditinggalkan; lebih baik gunakan -Werror=implicit-function-declaration"
- #: c.opt:220
- msgid "Warn if testing floating point numbers for equality"
-@@ -16253,7 +16245,7 @@
- #: c.opt:373
- msgid "Warn about packed bit-fields whose offset changed in GCC 4.4"
--msgstr ""
-+msgstr "Peringatkan tentang pemaketan bit-filed yang offset-nya berbah dalam GCC 4.4"
- #: c.opt:377
- msgid "Warn about possibly missing parentheses"
-@@ -16325,7 +16317,7 @@
- #: c.opt:445
- msgid "Deprecated.  This switch has no effect"
--msgstr "Ditinggalkan. Opsi ini tidak memiliki efek"
-+msgstr "Ditinggalkan. Pilihan ini tidak memiliki efek"
- #: c.opt:453
- msgid "Warn about features not present in traditional C"
-@@ -16520,9 +16512,8 @@
- msgstr "Aktifkan Objectif-C setjmp eksepsi penanganan waktu-jalan"
- #: c.opt:694
--#, fuzzy
- msgid "Enable OpenMP (implies -frecursive in Fortran)"
--msgstr "Aktifkan OpenMP (juga sets frecursive)"
-+msgstr "Aktifkan OpenMP (mengindikasikan -frecursive dalam Fortran)"
- #: c.opt:698
- msgid "Recognize C++ keywords like \"compl\" and \"xor\""
-@@ -16530,7 +16521,7 @@
- #: c.opt:702
- msgid "Enable optional diagnostics"
--msgstr "Aktifkan opsional diagnosa"
-+msgstr "Aktifkan pilihanonal diagnosa"
- #: c.opt:709
- msgid "Look for and use PCH files even when preprocessing"
-@@ -16674,7 +16665,7 @@
- #: c.opt:862
- msgid "Specify <path> as a prefix for next two options"
--msgstr "Spesifikasikan <jalur> sebagai sebuah prefix untuk dua opsi berikutnya"
-+msgstr "Spesifikasikan <jalur> sebagai sebuah prefix untuk dua pilihan berikutnya"
- #: c.opt:866
- msgid "Set <dir> to be the system root directory"
-@@ -16774,7 +16765,7 @@
- #: ada/gcc-interface/lang.opt:100
- msgid "Specify options to GNAT"
--msgstr "Spesifikasikan opsi ke GNAT"
-+msgstr "Spesifikasikan pilihan ke GNAT"
- #: attribs.c:284
- #, gcc-internal-format
-@@ -17277,7 +17268,7 @@
- #: c-common.c:4763
- #, gcc-internal-format
- msgid "multiple default labels in one switch"
--msgstr "multiple default label dalam satu opsi"
-+msgstr "multiple default label dalam satu pilihan"
- #: c-common.c:4764
- #, gcc-internal-format
-@@ -17642,12 +17633,12 @@
- #: c-common.c:7074
- #, gcc-internal-format
- msgid "Bad option %s to optimize attribute."
--msgstr "Opsi %s buruk untuk mengoptimasi atribut."
-+msgstr "Pilihan %s buruk untuk mengoptimasi atribut."
- #: c-common.c:7077
- #, gcc-internal-format
- msgid "Bad option %s to pragma attribute"
--msgstr "Opsi %s buruk untuk atribut pragma"
-+msgstr "Pilihan %s buruk untuk atribut pragma"
- #: c-common.c:7270
- #, gcc-internal-format
-@@ -18551,9 +18542,9 @@
- #. C99 6.7.5.2p4
- #: c-decl.c:4431
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%<[*]%> not in a declaration"
--msgstr "%<[*]%> tidak diperbolehkan selain dari sebuah deklarasi"
-+msgstr "%<[*]%> tidak dalam sebuah deklarasi"
- #: c-decl.c:4444
- #, gcc-internal-format
-@@ -18985,7 +18976,7 @@
- #: c-decl.c:6859
- #, gcc-internal-format
- msgid "use option -std=c99 or -std=gnu99 to compile your code"
--msgstr "gunakan opsi -std=c99 atau -std=gnu99 untuk mengkompile kode anda"
-+msgstr "gunakan pilihan -std=c99 atau -std=gnu99 untuk mengkompile kode anda"
- #: c-decl.c:6890
- #, gcc-internal-format
-@@ -19897,7 +19888,7 @@
- #: c-opts.c:324
- #, gcc-internal-format
- msgid "obsolete option -I- used, please use -iquote instead"
--msgstr "opsi ditinggalkan -I- digunakan, lebih baik mohon gunakan -iquote"
-+msgstr "pilihan ditinggalkan -I- digunakan, lebih baik mohon gunakan -iquote"
- #: c-opts.c:495
- #, gcc-internal-format
-@@ -19907,7 +19898,7 @@
- #: c-opts.c:582
- #, gcc-internal-format
- msgid "switch %qs is no longer supported"
--msgstr "opsi %qs tidak lagi didukung"
-+msgstr "pilihan %qs tidak lagi didukung"
- #: c-opts.c:689
- #, gcc-internal-format
-@@ -19962,22 +19953,22 @@
- #: c-opts.c:1226
- #, gcc-internal-format
- msgid "The C parser does not support -dy, option ignored"
--msgstr "C parser tidak mendukung -dy, opsi diabaikan"
-+msgstr "C parser tidak mendukung -dy, pilihan diabaikan"
- #: c-opts.c:1230
- #, gcc-internal-format
- msgid "The Objective-C parser does not support -dy, option ignored"
--msgstr "Objective-C parser tidak mendukung -dy, opsi diabaikan"
-+msgstr "Objective-C parser tidak mendukung -dy, pilihan diabaikan"
- #: c-opts.c:1233
- #, gcc-internal-format
- msgid "The C++ parser does not support -dy, option ignored"
--msgstr "C++ parser tidak mendukung -dy, opsi diabaikan"
-+msgstr "C++ parser tidak mendukung -dy, pilihan diabaikan"
- #: c-opts.c:1237
- #, gcc-internal-format
- msgid "The Objective-C++ parser does not support -dy, option ignored"
--msgstr "Objective-C++ parser tidak mendukung -dy, opsi diabaikan"
-+msgstr "Objective-C++ parser tidak mendukung -dy, pilihan diabaikan"
- #: c-opts.c:1287
- #, gcc-internal-format
-@@ -20734,12 +20725,12 @@
- #: c-pragma.c:852
- #, gcc-internal-format
- msgid "missing option after %<#pragma GCC diagnostic%> kind"
--msgstr "hilang jenis opsi setelah %<#pragma GCC diagnosa%>"
-+msgstr "hilang jenis pilihan setelah %<#pragma GCC diagnosa%>"
- #: c-pragma.c:866
- #, gcc-internal-format
- msgid "unknown option after %<#pragma GCC diagnostic%> kind"
--msgstr "jenis opsi tidak dikenal setelah %<#pragma GCC diagnosa%>"
-+msgstr "jenis pilihan tidak dikenal setelah %<#pragma GCC diagnosa%>"
- #: c-pragma.c:879
- #, gcc-internal-format
-@@ -21553,7 +21544,7 @@
- #: c-typeck.c:7375
- #, gcc-internal-format
- msgid "%<long%> switch expression not converted to %<int%> in ISO C"
--msgstr "opsi %<long%> ekspresi tidak diubah ke %<int%> dalam ISO C"
-+msgstr "pilihan %<long%> ekspresi tidak diubah ke %<int%> dalam ISO C"
- #: c-typeck.c:7418
- #, gcc-internal-format
-@@ -22616,17 +22607,17 @@
- #: gcc.c:1325
- #, gcc-internal-format
- msgid "incomplete '%s' option"
--msgstr "opsi '%s' tidak lengkap"
-+msgstr "pilihan '%s' tidak lengkap"
- #: gcc.c:1336
- #, gcc-internal-format
- msgid "missing argument to '%s' option"
--msgstr "hilang argumen ke opsi '%s'"
-+msgstr "hilang argumen ke pilihan '%s'"
- #: gcc.c:1349
- #, gcc-internal-format
- msgid "extraneous argument to '%s' option"
--msgstr "kelebihan argumen ke opsi '%s'"
-+msgstr "kelebihan argumen ke pilihan '%s'"
- #: gcc.c:4029
- #, gcc-internal-format
-@@ -22654,7 +22645,7 @@
- #: gcc.c:5495
- #, gcc-internal-format
- msgid "spec failure: unrecognized spec option '%c'"
--msgstr "spec gagal: opsi spec tidak dikenal '%c'"
-+msgstr "spec gagal: pilihan spec tidak dikenal '%c'"
- #: gcc.c:6401
- #, gcc-internal-format
-@@ -22669,7 +22660,7 @@
- #: gcc.c:6511
- #, gcc-internal-format
- msgid "unrecognized option '-%s'"
--msgstr "opsi '-%s' tidak dikenal"
-+msgstr "pilihan '-%s' tidak dikenal"
- #: gcc.c:6726 gcc.c:6789
- #, gcc-internal-format
-@@ -22884,17 +22875,17 @@
- #: opts.c:442
- #, gcc-internal-format
- msgid "command line option \"%s\" is valid for %s but not for %s"
--msgstr "opsi baris perintah \"%s\" valid untuk %s tetapi tidak untuk %s"
-+msgstr "pilihan baris perintah \"%s\" valid untuk %s tetapi tidak untuk %s"
- #: opts.c:473 opts.c:769
- #, gcc-internal-format
- msgid "unrecognized command line option \"%s\""
--msgstr "opsi baris perintah \"%s\" tidak dikenal"
-+msgstr "pilihan baris perintah \"%s\" tidak dikenal"
- #: opts.c:534
- #, gcc-internal-format
- msgid "command line option %qs is not supported by this configuration"
--msgstr "opsi baris perintah %qs tidak didukung dalam konfigurasi ini"
-+msgstr "pilihan baris perintah %qs tidak didukung dalam konfigurasi ini"
- #: opts.c:587
- #, gcc-internal-format
-@@ -22937,9 +22928,9 @@
- msgstr "-freorder-blocks-and-partition tidak bekerja dalam arsitektur ini"
- #: opts.c:1081
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "-fira-algorithm=CB does not work on this architecture"
--msgstr "-fira tidak bekerja dalam arsitektur ini"
-+msgstr "-fira-algorithm=CB tidak bekerja dalam arsitektur ini"
- #: opts.c:1390
- #, gcc-internal-format
-@@ -22977,9 +22968,9 @@
- msgstr "algoritma ira \"%s\" tidak diketahui"
- #: opts.c:1980
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "unknown ira region \"%s\""
--msgstr "algoritma ira \"%s\" tidak diketahui"
-+msgstr "daerah ira \"%s\" tidak diketahui"
- #: opts.c:2083
- #, gcc-internal-format
-@@ -23014,7 +23005,7 @@
- #: opts.c:2313
- #, gcc-internal-format
- msgid "-Werror=%s: No option -%s"
--msgstr "-Werror=%s: Tidak ada opsi -%s"
-+msgstr "-Werror=%s: Tidak ada pilihan -%s"
- #: params.c:69
- #, gcc-internal-format
-@@ -23399,7 +23390,7 @@
- #: stor-layout.c:969
- #, gcc-internal-format
- msgid "Offset of packed bit-field %qD has changed in GCC 4.4"
--msgstr ""
-+msgstr "Offset dari packet bit-field %qD telah berubah dalam GCC 4.4"
- #: stor-layout.c:1273
- #, gcc-internal-format
-@@ -23464,7 +23455,7 @@
- #: toplev.c:519
- #, gcc-internal-format
- msgid "invalid option argument %qs"
--msgstr "opsi argumen %qs tidak valid"
-+msgstr "pilihan argumen %qs tidak valid"
- #: toplev.c:617
- #, gcc-internal-format
-@@ -23514,7 +23505,7 @@
- #: toplev.c:1090
- #, gcc-internal-format
- msgid "unrecognized gcc debugging option: %c"
--msgstr "opsi debuggin gcc: %c tidak dikenal"
-+msgstr "pilihan debuggin gcc: %c tidak dikenal"
- #: toplev.c:1347
- #, gcc-internal-format
-@@ -23589,7 +23580,7 @@
- #: toplev.c:1920
- #, gcc-internal-format
- msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
--msgstr "-fprefetch-loop-array tidak didukung untuk target ini (coba opsi -march)"
-+msgstr "-fprefetch-loop-array tidak didukung untuk target ini (coba pilihan -march)"
- #: toplev.c:1929
- #, gcc-internal-format
-@@ -23599,7 +23590,7 @@
- #: toplev.c:1940
- #, gcc-internal-format
- msgid "-fassociative-math disabled; other options take precedence"
--msgstr "-fassociative-math non-aktif; opsi lain mengambil prioritas"
-+msgstr "-fassociative-math non-aktif; pilihan lain mengambil prioritas"
- #: toplev.c:1956
- #, gcc-internal-format
-@@ -23632,9 +23623,9 @@
- msgstr "SSA nama dalam daftar bebas tetapi tetap direferensikan"
- #: tree-cfg.c:2829
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "Indirect reference's operand is not a register or a constant."
--msgstr "%s: Sumber operan ketiga bukan sebuah konstanta"
-+msgstr "Referensi tidak langsung operan bukan sebuah register atau konstanta."
- #: tree-cfg.c:2838
- #, gcc-internal-format
-@@ -23644,7 +23635,7 @@
- #: tree-cfg.c:2844
- #, gcc-internal-format
- msgid "MODIFY_EXPR not expected while having tuples."
--msgstr ""
-+msgstr "MODIFY_EXPR tidak terduga ketika memiliki tuples."
- #: tree-cfg.c:2865
- #, gcc-internal-format
-@@ -24079,7 +24070,7 @@
- #: tree-dump.c:1060
- #, gcc-internal-format
- msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
--msgstr "mengabaikan opsi tidak dikenal %q.*s dalam %<-fdump-%s%>"
-+msgstr "mengabaikan pilihan tidak dikenal %q.*s dalam %<-fdump-%s%>"
- #: tree-eh.c:1993
- #, gcc-internal-format
-@@ -24244,19 +24235,19 @@
- msgstr "fungsionalitas tidak terimplementasi"
- #: tree-ssa-structalias.c:4791
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "initialized from %qE"
--msgstr "tidak terinisialisasi const %qD"
-+msgstr "terinisialisasi dari %qE"
- #: tree-ssa-structalias.c:4795
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "initialized from here"
--msgstr "dipanggil dari sini"
-+msgstr "terinisialisasi dari sini"
- #: tree-ssa-structalias.c:4844
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "dereferencing pointer %qD does break strict-aliasing rules"
--msgstr "dereferencing tipe-punned penunjuk %D akan melanggar aturan strict aliasing"
-+msgstr "dereferencing penunjuk %qD akan melanggar aturan strict aliasing"
- #: tree-ssa.c:252
- #, gcc-internal-format
-@@ -24782,13 +24773,13 @@
- #: config/darwin-c.c:85
- #, gcc-internal-format
- msgid "too many #pragma options align=reset"
--msgstr "terlalu banyak opsi #pragma align=reset"
-+msgstr "terlalu banyak pilihan #pragma align=reset"
- #: config/darwin-c.c:105 config/darwin-c.c:108 config/darwin-c.c:110
- #: config/darwin-c.c:112
- #, gcc-internal-format
- msgid "malformed '#pragma options', ignoring"
--msgstr "salah bentuk '#pragma opsi', diabaikan"
-+msgstr "salah bentuk '#pragma pilihan', diabaikan"
- #: config/darwin-c.c:115
- #, gcc-internal-format
-@@ -24944,7 +24935,7 @@
- #: config/alpha/alpha.c:233 config/rs6000/rs6000.c:2193
- #, gcc-internal-format
- msgid "bad value %qs for -mtls-size switch"
--msgstr "nilai buruk %qs untuk opsi -mtls-size"
-+msgstr "nilai buruk %qs untuk pilihan -mtls-size"
- #: config/alpha/alpha.c:287
- #, gcc-internal-format
-@@ -24964,22 +24955,22 @@
- #: config/alpha/alpha.c:339
- #, gcc-internal-format
- msgid "bad value %qs for -mtrap-precision switch"
--msgstr "nilai buruk %qs untuk opsi -mtrap-precision"
-+msgstr "nilai buruk %qs untuk pilihan -mtrap-precision"
- #: config/alpha/alpha.c:353
- #, gcc-internal-format
- msgid "bad value %qs for -mfp-rounding-mode switch"
--msgstr "nilai buruk %qs untuk opsi -mfp-rounding-mode"
-+msgstr "nilai buruk %qs untuk pilihan -mfp-rounding-mode"
- #: config/alpha/alpha.c:368
- #, gcc-internal-format
- msgid "bad value %qs for -mfp-trap-mode switch"
--msgstr "nilai buruk %qs untuk opsi -mfp-trap-mode"
-+msgstr "nilai buruk %qs untuk pilihan -mfp-trap-mode"
- #: config/alpha/alpha.c:382 config/alpha/alpha.c:394
- #, gcc-internal-format
- msgid "bad value %qs for -mcpu switch"
--msgstr "nilai buruk %qs untuk opsi -mcpu"
-+msgstr "nilai buruk %qs untuk pilihan -mcpu"
- #: config/alpha/alpha.c:401
- #, gcc-internal-format
-@@ -25035,17 +25026,17 @@
- #: config/arm/arm.c:1182
- #, gcc-internal-format
- msgid "switch -mcpu=%s conflicts with -march= switch"
--msgstr "opsi -mcpu=%s konflik dengan opsi -march="
-+msgstr "pilihan -mcpu=%s konflik dengan pilihan -march="
- #: config/arm/arm.c:1192 config/rs6000/rs6000.c:1593 config/sparc/sparc.c:764
- #, gcc-internal-format
- msgid "bad value (%s) for %s switch"
--msgstr "nilai (%s) buruk untuk opsi %s"
-+msgstr "nilai (%s) buruk untuk pilihan %s"
- #: config/arm/arm.c:1305
- #, gcc-internal-format
- msgid "invalid ABI option: -mabi=%s"
--msgstr "opsi ABI tidak valid: -mabi=%s"
-+msgstr "pilihan ABI tidak valid: -mabi=%s"
- #: config/arm/arm.c:1313
- #, gcc-internal-format
-@@ -25115,12 +25106,12 @@
- #: config/arm/arm.c:1445
- #, gcc-internal-format
- msgid "invalid floating point emulation option: -mfpe=%s"
--msgstr "opsi emulasi titik pecahan tidak valid: -mfpe=%s"
-+msgstr "pilihan emulasi titik pecahan tidak valid: -mfpe=%s"
- #: config/arm/arm.c:1462
- #, gcc-internal-format
- msgid "invalid floating point option: -mfpu=%s"
--msgstr "opsi titik pecahan tidak valid: -mfpu=%s"
-+msgstr "pilihan titik pecahan tidak valid: -mfpu=%s"
- #: config/arm/arm.c:1502
- #, gcc-internal-format
-@@ -25145,7 +25136,7 @@
- #: config/arm/arm.c:1542
- #, gcc-internal-format
- msgid "invalid thread pointer option: -mtp=%s"
--msgstr "opsi thread pointer tidak valid: -mtp=%s"
-+msgstr "pilihan thread pointer tidak valid: -mtp=%s"
- #: config/arm/arm.c:1555
- #, gcc-internal-format
-@@ -25224,7 +25215,7 @@
- #: config/arm/arm.c:19618
- #, gcc-internal-format
- msgid "the mangling of %<va_list%> has changed in GCC 4.4"
--msgstr ""
-+msgstr "mangling dari %<va_list%> telah berubah dalam GCC 4.4"
- #: config/arm/pe.c:158 config/mcore/mcore.c:2900
- #, gcc-internal-format
-@@ -25239,17 +25230,17 @@
- #: config/avr/avr.c:399
- #, gcc-internal-format
- msgid "the -mno-tablejump switch is deprecated"
--msgstr ""
-+msgstr "pilihan -mno-tablejump sudah ditinggalkan"
- #: config/avr/avr.c:400
- #, gcc-internal-format
- msgid "GCC 4.4 is the last release with this switch"
--msgstr ""
-+msgstr "GCC 4.4 adalah keluaran terakhir dengan pilihan ini"
- #: config/avr/avr.c:401
- #, gcc-internal-format
- msgid "use the -fno-jump-tables switch instead"
--msgstr ""
-+msgstr "lebih baik gunakan pilihan -fno-jump-tables"
- #: config/avr/avr.c:4626
- #, gcc-internal-format
-@@ -25419,7 +25410,7 @@
- #: config/cris/cris.c:2454
- #, gcc-internal-format
- msgid "that particular -g option is invalid with -maout and -melinux"
--msgstr "opsi -g tertentu tidak valid dengan -maout dan -melinux"
-+msgstr "pilihan -g tertentu tidak valid dengan -maout dan -melinux"
- #: config/cris/cris.c:2680
- #, gcc-internal-format
-@@ -25608,12 +25599,12 @@
- #: config/i386/i386.c:2713
- #, gcc-internal-format
- msgid "generic CPU can be used only for %stune=%s %s"
--msgstr "CPU generik hanya dapat digunakan untuk opsi %stune=%s %s"
-+msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s"
- #: config/i386/i386.c:2716 config/i386/i386.c:2844
- #, gcc-internal-format
- msgid "bad value (%s) for %sarch=%s %s"
--msgstr "nilai (%s) buruk untuk opsi %sarch=%s %s"
-+msgstr "nilai (%s) buruk untuk pilihan %sarch=%s %s"
- #: config/i386/i386.c:2728
- #, gcc-internal-format
-@@ -25623,12 +25614,12 @@
- #: config/i386/i386.c:2734
- #, gcc-internal-format
- msgid "bad value (%s) for %scmodel=%s %s"
--msgstr "nilai (%s) buruk untuk opsi %scmodel=%s %s"
-+msgstr "nilai (%s) buruk untuk pilihan %scmodel=%s %s"
- #: config/i386/i386.c:2758
- #, gcc-internal-format
- msgid "bad value (%s) for %sasm=%s %s"
--msgstr "nilai (%s) buruk untuk opsi %sasm=%s %s"
-+msgstr "nilai (%s) buruk untuk pilihan %sasm=%s %s"
- #: config/i386/i386.c:2762
- #, gcc-internal-format
-@@ -25656,9 +25647,9 @@
- msgstr "%sregparm=%d%s tidak berada diantara 0 dan %d"
- #: config/i386/i386.c:2918
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%salign-loops%s is obsolete, use -falign-loops%s"
--msgstr "%salign-loops%s sudah ditinggalkan, gunakan %salign-loops%s"
-+msgstr "%salign-loops%s sudah ditinggalkan, gunakan -falign-loops%s"
- #: config/i386/i386.c:2924 config/i386/i386.c:2939 config/i386/i386.c:2954
- #, gcc-internal-format
-@@ -25666,14 +25657,14 @@
- msgstr "%salign-loops=%d%s tidak berada diantara 0 dan %d"
- #: config/i386/i386.c:2933
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%salign-jumps%s is obsolete, use -falign-jumps%s"
--msgstr "%salign-jumps%s sudah ditinggalkan, gunakan %salign-jumps%s"
-+msgstr "%salign-jumps%s sudah ditinggalkan, gunakan -falign-jumps%s"
- #: config/i386/i386.c:2948
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%salign-functions%s is obsolete, use -falign-functions%s"
--msgstr "%salign-functions%s sudah ditinggalkan, gunakan %salign-functions%s"
-+msgstr "%salign-functions%s sudah ditinggalkan, gunakan -falign-functions%s"
- #: config/i386/i386.c:2983
- #, gcc-internal-format
-@@ -25688,7 +25679,7 @@
- #: config/i386/i386.c:3005
- #, gcc-internal-format
- msgid "bad value (%s) for %stls-dialect=%s %s"
--msgstr "nilai (%s) buruk untuk opsi %stls-dialect=%s %s"
-+msgstr "nilai (%s) buruk untuk pilihan %stls-dialect=%s %s"
- #: config/i386/i386.c:3013
- #, gcc-internal-format
-@@ -25728,12 +25719,12 @@
- #: config/i386/i386.c:3155
- #, gcc-internal-format
- msgid "bad value (%s) for %sfpmath=%s %s"
--msgstr "nilai (%s) buruk untuk opsi %sfpmath=%s %s"
-+msgstr "nilai (%s) buruk untuk pilihan %sfpmath=%s %s"
- #: config/i386/i386.c:3171
- #, gcc-internal-format
- msgid "unknown vectorization library ABI type (%s) for %sveclibabi=%s %s"
--msgstr "perpusatakaan vektorisasi tidak dikenal tipe ABI (%s) untuk opsi %sveclibabi=%s %s"
-+msgstr "perpusatakaan vektorisasi tidak dikenal tipe ABI (%s) untuk pilihan %sveclibabi=%s %s"
- #: config/i386/i386.c:3191
- #, gcc-internal-format
-@@ -25753,7 +25744,7 @@
- #: config/i386/i386.c:3637
- #, gcc-internal-format
- msgid "option(\"%s\") was already specified"
--msgstr "opsi(\"%s\") telah dispesifikasikan"
-+msgstr "pilihan(\"%s\") telah dispesifikasikan"
- #: config/i386/i386.c:4231 config/i386/i386.c:4275
- #, gcc-internal-format
-@@ -25808,7 +25799,7 @@
- #: config/i386/i386.c:4722
- #, gcc-internal-format
- msgid "ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it"
--msgstr ""
-+msgstr "atribut ms_abi membutuhkan -maccumulate-outgoing-args atau mengindikasikan optimasi subtarget"
- #: config/i386/i386.c:4840
- #, gcc-internal-format
-@@ -25818,17 +25809,17 @@
- #: config/i386/i386.c:5020
- #, gcc-internal-format
- msgid "The ABI of passing struct with a flexible array member has changed in GCC 4.4"
--msgstr ""
-+msgstr "ABI dari melewatkan struct dengan sebuah anggota array flexible telah berubah dalam GCC 4.4"
- #: config/i386/i386.c:5139
- #, gcc-internal-format
- msgid "The ABI of passing union with long double has changed in GCC 4.4"
--msgstr ""
-+msgstr "ABI dari melewatkan union dengan long double telah berubah dalam GCC 4.4"
- #: config/i386/i386.c:5254
- #, gcc-internal-format
- msgid "The ABI of passing structure with complex float member has changed in GCC 4.4"
--msgstr ""
-+msgstr "ABI dari melewatkan structure dengan anggota float kompleks telah berubah dalam GCC 4.4"
- #: config/i386/i386.c:5399
- #, gcc-internal-format
-@@ -25928,12 +25919,12 @@
- #: config/i386/i386.c:24864
- #, gcc-internal-format
- msgid "%qE needs unknown isa option"
--msgstr "%qE membutuhkan opsi isa tidak diketahui"
-+msgstr "%qE membutuhkan pilihan isa tidak diketahui"
- #: config/i386/i386.c:24868
- #, gcc-internal-format
- msgid "%qE needs isa option %s"
--msgstr "%qE membutuhkan opsi isa %s"
-+msgstr "%qE membutuhkan pilihan isa %s"
- #: config/i386/i386.c:26511
- #, gcc-internal-format
-@@ -25988,7 +25979,7 @@
- #: config/i386/djgpp.h:180
- #, gcc-internal-format
- msgid "-mbnu210 is ignored (option is obsolete)"
--msgstr "-mbnu210 diabaikan (opsi ini sudah ditinggalkan)"
-+msgstr "-mbnu210 diabaikan (pilihan ini sudah ditinggalkan)"
- #: config/i386/i386-interix.h:256
- #, gcc-internal-format
-@@ -26035,22 +26026,22 @@
- #: config/ia64/ia64.c:5225
- #, gcc-internal-format
- msgid "bad value %<%s%> for -mtls-size= switch"
--msgstr "nilai %<%s%> buruk untuk opsi -mtls-size="
-+msgstr "nilai %<%s%> buruk untuk pilihan -mtls-size="
- #: config/ia64/ia64.c:5254
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "value %<%s%> for -mtune= switch is deprecated"
--msgstr "nilai %<%s%> buruk untuk opsi -mtune="
-+msgstr "nilai %<%s%> untuk pilihan -mtune= sudah ditinggalkan"
- #: config/ia64/ia64.c:5256
- #, gcc-internal-format
- msgid "GCC 4.4 is the last release with Itanium1 tuning support"
--msgstr ""
-+msgstr "GCC 4.4 adalah keluaran terakhir dengan dukungan penyesuaian Itanium1"
- #: config/ia64/ia64.c:5263
- #, gcc-internal-format
- msgid "bad value %<%s%> for -mtune= switch"
--msgstr "nilai %<%s%> buruk untuk opsi -mtune="
-+msgstr "nilai %<%s%> buruk untuk pilihan -mtune="
- #: config/ia64/ia64.c:5282
- #, gcc-internal-format
-@@ -26235,7 +26226,7 @@
- #: config/mips/mips.c:13777
- #, gcc-internal-format
- msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
--msgstr "%<-%s%> konflik dengan opsi arsitektur lain, yang menspesifikasikan sebuah %s prosesor"
-+msgstr "%<-%s%> konflik dengan pilihan arsitektur lain, yang menspesifikasikan sebuah %s prosesor"
- #: config/mips/mips.c:13793
- #, gcc-internal-format
-@@ -26388,7 +26379,7 @@
- #: config/pa/pa.c:494
- #, gcc-internal-format
- msgid "-g option disabled"
--msgstr "-g opsi tidak aktif"
-+msgstr "-g pilihan tidak aktif"
- #: config/pa/pa.c:8388
- #, gcc-internal-format
-@@ -26398,7 +26389,7 @@
- #: config/pa/pa-hpux11.h:84
- #, gcc-internal-format
- msgid "-munix=98 option required for C89 Amendment 1 features.\n"
--msgstr "-munix=98 opsi dibutuhkan untuk feature C89 Amendment 1.\n"
-+msgstr "-munix=98 pilihan dibutuhkan untuk feature C89 Amendment 1.\n"
- #: config/picochip/picochip.c:379
- #, gcc-internal-format
-@@ -26489,7 +26480,7 @@
- #: config/picochip/picochip.c:4128
- #, gcc-internal-format
- msgid "%s (disable warning using -mno-inefficient-warnings)"
--msgstr "%s (Non-aktifkan peringatan menggunakan opsi -mno-inefficient-warnings)"
-+msgstr "%s (Non-aktifkan peringatan menggunakan pilihan -mno-inefficient-warnings)"
- #: config/rs6000/host-darwin.c:62
- #, gcc-internal-format
-@@ -26618,7 +26609,7 @@
- #: config/rs6000/rs6000.c:1655
- #, gcc-internal-format
- msgid "unknown -mdebug-%s switch"
--msgstr "opsi -mdebug-%s tidak dikenal"
-+msgstr "pilihan -mdebug-%s tidak dikenal"
- #: config/rs6000/rs6000.c:1667
- #, gcc-internal-format
-@@ -26628,12 +26619,12 @@
- #: config/rs6000/rs6000.c:2176
- #, gcc-internal-format
- msgid "unknown -m%s= option specified: '%s'"
--msgstr "opsi -m%s= tidak diketahui dispesifikasikan: '%s'"
-+msgstr "pilihan -m%s= tidak diketahui dispesifikasikan: '%s'"
- #: config/rs6000/rs6000.c:2222
- #, gcc-internal-format
- msgid "unknown value %s for -mfpu"
--msgstr "nilai %s tidak diketahui untuk opsi -mfpu"
-+msgstr "nilai %s tidak diketahui untuk pilihan -mfpu"
- #: config/rs6000/rs6000.c:2415
- #, gcc-internal-format
-@@ -26668,12 +26659,12 @@
- #: config/rs6000/rs6000.c:2478
- #, gcc-internal-format
- msgid "invalid option for -mfloat-gprs: '%s'"
--msgstr "opsi untuk -mfloat-gprs tidak valid: '%s'"
-+msgstr "pilihan untuk -mfloat-gprs tidak valid: '%s'"
- #: config/rs6000/rs6000.c:2488
- #, gcc-internal-format
- msgid "Unknown switch -mlong-double-%s"
--msgstr "opsi -mlong-double-%s tidak diketahui"
-+msgstr "pilihan -mlong-double-%s tidak diketahui"
- #: config/rs6000/rs6000.c:2509
- #, gcc-internal-format
-@@ -26683,17 +26674,17 @@
- #: config/rs6000/rs6000.c:2517
- #, gcc-internal-format
- msgid "unknown -malign-XXXXX option specified: '%s'"
--msgstr "opsi -malign-XXXXX tidak diketahui dispesifikasikan: '%s'"
-+msgstr "pilihan -malign-XXXXX tidak diketahui dispesifikasikan: '%s'"
- #: config/rs6000/rs6000.c:2524
- #, gcc-internal-format
- msgid "-msingle-float option equivalent to -mhard-float"
--msgstr "opsi -msingle-float ekuivalen dengan -mhard-float"
-+msgstr "pilihan -msingle-float ekuivalen dengan -mhard-float"
- #: config/rs6000/rs6000.c:2540
- #, gcc-internal-format
- msgid "-msimple-fpu option ignored"
--msgstr "opsi -msimple-fpu diabaikan"
-+msgstr "pilihan -msimple-fpu diabaikan"
- #: config/rs6000/rs6000.c:5376
- #, gcc-internal-format
-@@ -27177,7 +27168,7 @@
- #: config/sparc/sparc.c:728
- #, gcc-internal-format
- msgid "bad value (%s) for -mcmodel= switch"
--msgstr "nilai (%s) buruk untuk opsi -mcmodel="
-+msgstr "nilai (%s) buruk untuk pilihan -mcmodel="
- #: config/sparc/sparc.c:733
- #, gcc-internal-format
-@@ -27242,7 +27233,7 @@
- #: config/stormy16/stormy16.c:1875
- #, gcc-internal-format
- msgid "switch statement of size %lu entries too large"
--msgstr "pernyataan opsi dari ukuran %lu masukan terlalu besar"
-+msgstr "pernyataan pilihan dari ukuran %lu masukan terlalu besar"
- #: config/stormy16/stormy16.c:2244
- #, gcc-internal-format
-@@ -27377,7 +27368,7 @@
- #: config/xtensa/xtensa.c:2061
- #, gcc-internal-format
- msgid "boolean registers required for the floating-point option"
--msgstr "register boolean dibutuhkan untuk opsi titik pecahan"
-+msgstr "register boolean dibutuhkan untuk pilihan titik pecahan"
- #: config/xtensa/xtensa.c:2096
- #, gcc-internal-format
-@@ -27577,9 +27568,9 @@
- msgstr "mengubah %<false%> ke tipe penunjuk untuk argumen %P dari %qD"
- #: cp/call.c:4573
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "too many braces around initializer for %qT"
--msgstr "hilang kurung diantara penginisialisasi untuk %qT"
-+msgstr "terlalu banyak kurung diantara penginisialisasi untuk %qT"
- #: cp/call.c:4595 cp/cvt.c:217
- #, gcc-internal-format
-@@ -27698,19 +27689,19 @@
- msgstr "  karena urutan konversi untuk argumen lebih baik"
- #: cp/call.c:6899
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "default argument mismatch in overload resolution"
--msgstr "argumen baku dispesifikasikan dalam spesialisasi eksplisit"
-+msgstr "argumen baku tidak cocok dalam kelebihan beban resolusi"
- #: cp/call.c:6902
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid " candidate 1: %q+#F"
--msgstr "kandidat adalah: %+#D"
-+msgstr " kandidat 1: %q+#F"
- #: cp/call.c:6904
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid " candidate 2: %q+#F"
--msgstr "kandidat adalah: %+#D"
-+msgstr " kandidat 2: %q+#F"
- #: cp/call.c:6942
- #, gcc-internal-format
-@@ -28707,9 +28698,9 @@
- msgstr "tidak dapat menginisialisasi %qT dari %qT"
- #: cp/decl.c:4437
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "name used in a GNU-style designated initializer for an array"
--msgstr "nama %qD digunakan dalam sebuah gaya GNU didesign penginisialisasi untuk sebuah array"
-+msgstr "nama digunakan dalam sebuah gaya GNU diperuntukan penginisialisasi untuk sebuah array"
- #: cp/decl.c:4442
- #, gcc-internal-format
-@@ -29377,9 +29368,9 @@
- msgstr "tidak dapat mendeklarasikan penunjuk ke %q#T anggota"
- #: cp/decl.c:8500
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "cannot declare %s to qualified function type %qT"
--msgstr "tidak dapat mendeklarasikan bit-field %qD dengan tipe fungsi"
-+msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
- #: cp/decl.c:8537
- #, gcc-internal-format
-@@ -29627,9 +29618,9 @@
- msgstr "%<inline%> penspesifikasi tidak valid untuk fungsi %qs dideklarasikan diluar dari lingkup global"
- #: cp/decl.c:9365
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%q#T is not a class or a namespace"
--msgstr "%qT bukan sebuah class atau namespace"
-+msgstr "%q#T bukan sebuah kelas atau ruang nama"
- #: cp/decl.c:9373
- #, gcc-internal-format
-@@ -29637,9 +29628,9 @@
- msgstr "virtual bukan kelas fungsi %qs"
- #: cp/decl.c:9380
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%qs defined in a non-class scope"
--msgstr "%qE atribut diabaikan dalam tipe bukan-class"
-+msgstr "%qs didefinisikan dalam sebuah lingkup bukan kelas"
- #: cp/decl.c:9413
- #, gcc-internal-format
-@@ -29975,9 +29966,9 @@
- msgstr "%<operator=%> seharusnya mengembalikan referensi ke %<*this%>"
- #: cp/decl.c:11874
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "invalid function declaration"
--msgstr "deklarasi anggota fungsi tidak valid"
-+msgstr "deklarasi fungsi tidak valid"
- #: cp/decl.c:11958
- #, gcc-internal-format
-@@ -30050,9 +30041,9 @@
- msgstr "metoda Java %qD memiliki tipe parameter %qT bukan Java"
- #: cp/decl2.c:579
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "template parameter lists provided don't match the template parameters of %qD"
--msgstr "parameter template tidak cocok dengan template"
-+msgstr "daftar parameter template yang disediakan tidak cocok dengan paramter template dari %qD"
- #: cp/decl2.c:647
- #, gcc-internal-format
-@@ -30368,9 +30359,9 @@
- msgstr "%J%qD seharusnya diinisialisasi dalam daftar anggota inisialisasi"
- #: cp/init.c:454
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%Jvalue-initialization of %q#D, which has reference type"
--msgstr "%J inisialisasi-baku dari %q#D, yang memiliki tipe referensi"
-+msgstr "%Jinisialisasi-nilai dari %q#D, yang memiliki tipe referensi"
- #. TYPE_NEEDS_CONSTRUCTING can be set just because we have a
- #. vtable; still give this diagnostic.
-@@ -30530,9 +30521,9 @@
- msgstr "permintaan untuk anggota %qD adalah ambigu"
- #: cp/init.c:2136
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "non-constant array size in new, unable to verify length of initializer-list"
--msgstr "indeks array bukan konstan dalam penginisialisasi"
-+msgstr "bukan ukuran konstanta array dalam new, tidak dapat memverifikasi panjang dari daftar penginisialisasi"
- #: cp/init.c:2145
- #, gcc-internal-format
-@@ -30657,17 +30648,17 @@
- #: cp/mangle.c:1903
- #, gcc-internal-format
- msgid "mangling unknown fixed point type"
--msgstr ""
-+msgstr "mangling tipe fixed point tidak diketahui"
- #: cp/mangle.c:2332
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "mangling %C"
--msgstr "peringatan: "
-+msgstr "mangling %C"
- #: cp/mangle.c:2387
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "mangling new-expression"
--msgstr "hilang ekspresi peningkatan"
-+msgstr "mangling ekspresi-baru"
- #: cp/mangle.c:2407
- #, gcc-internal-format
-@@ -31104,9 +31095,9 @@
- msgstr "%Htidak didukung akhiran bukan-standar di konstanta floating"
- #: cp/parser.c:3154
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%Hfixed-point types not supported in C++"
--msgstr "tipe titik tetap tidak didukung untuk target ini"
-+msgstr "%Htipe titik tetap tidak didukung dalam C++"
- #: cp/parser.c:3235
- #, gcc-internal-format
-@@ -31354,9 +31345,9 @@
- msgstr "gunakan %<%T::template %D%> untuk mengindikasikan bahwa ini adalah template"
- #: cp/parser.c:10483
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%Hexpected parameter pack before %<...%>"
--msgstr "diduga deklarasi penspesifikasi atau %<...%>"
-+msgstr "%Hdiduga parameter pack sebelum %<...%>"
- #: cp/parser.c:10893
- #, gcc-internal-format
-@@ -32127,14 +32118,14 @@
- msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena objek %qD bukan eksternal linkage"
- #: cp/pt.c:4578
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "%qE is not a valid template argument for type %qT"
--msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini adalah sebuah penunjuk"
-+msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT"
- #: cp/pt.c:4579
- #, gcc-internal-format
- msgid "it must be the address of a function with external linkage"
--msgstr ""
-+msgstr "ini harus berupa alamat dari sebuah fungsi dengan hubungan eksternal"
- #: cp/pt.c:4593
- #, gcc-internal-format
-@@ -32199,9 +32190,9 @@
- #. Not sure if this is reachable, but it doesn't hurt
- #. to be robust.
- #: cp/pt.c:5091
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "type mismatch in nontype parameter pack"
--msgstr "tipe tidak cocok dalam referensi komponen"
-+msgstr "tipe tidak cocok dalam paket parameter bukan tipe"
- #: cp/pt.c:5113
- #, gcc-internal-format
-@@ -33108,9 +33099,9 @@
- msgstr "penggunaan tidak valid dari %qD"
- #: cp/typeck.c:2150
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "object type %qT does not match destructor name ~%qT"
--msgstr "tipe kualifikasi %qT tidak cocok dengan nama destruktor ~%qT"
-+msgstr "tipe objek %qT tidak cocok dengan nama destruktor ~%qT"
- #: cp/typeck.c:2158
- #, gcc-internal-format
-@@ -33796,9 +33787,9 @@
- msgstr "penunjuk ke anggota tipe %qT tidak kompatibel dengan tipe objek %qT"
- #: cp/typeck2.c:1450
--#, fuzzy, gcc-internal-format
-+#, gcc-internal-format
- msgid "invalid value-initialization of reference types"
--msgstr "nilai-inisialisasi dari referensi"
-+msgstr "nilai-inisialisasi dari referensi tidak valid"
- #: cp/typeck2.c:1637
- #, gcc-internal-format
-@@ -33883,12 +33874,12 @@
- #: fortran/trans-types.c:378
- #, gcc-internal-format
- msgid "integer kind=8 not available for -fdefault-integer-8 option"
--msgstr "integer kind=8 tidak tersedia untuk opsi -fdefault-integer-8"
-+msgstr "integer kind=8 tidak tersedia untuk pilihan -fdefault-integer-8"
- #: fortran/trans-types.c:401
- #, gcc-internal-format
- msgid "real kind=8 not available for -fdefault-real-8 option"
--msgstr "real kind=8 tidak tersedia untuk opsi -fdefault-real-8"
-+msgstr "real kind=8 tidak tersedia untuk pilihan -fdefault-real-8"
- #: fortran/trans-types.c:414
- #, gcc-internal-format
-Index: gcc/varasm.c
-===================================================================
---- gcc/varasm.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/varasm.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,7 @@
- /* Output variables, constants and external declarations, for GNU compiler.
-    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
--   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+--- gcc/cp/name-lookup.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/cp/name-lookup.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ /* Definitions for C++ name lookup routines.
+-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+    Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
+@@ -840,8 +840,8 @@
+           add_decl_to_level (x, NAMESPACE_LEVEL (CP_DECL_CONTEXT (t)));
+       }
+-      if (TREE_CODE (x) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (x))
+-      check_default_args (x);
++      if (TREE_CODE (t) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (t))
++      check_default_args (t);
+       if (t != x || DECL_FUNCTION_TEMPLATE_P (t))
+       POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
+Index: gcc/cp/name-lookup.h
+===================================================================
+--- gcc/cp/name-lookup.h       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/cp/name-lookup.h       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -263,7 +263,7 @@
+ /* The binding level currently in effect.  */
+ #define current_binding_level                 \
+-  (*(cfun && cp_function_chain->bindings      \
++  (*(cfun && cp_function_chain && cp_function_chain->bindings \
+    ? &cp_function_chain->bindings             \
+    : &scope_chain->bindings))
+Index: gcc/tree-ssa-ccp.c
+===================================================================
+--- gcc/tree-ssa-ccp.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Conditional constant propagation pass for the GNU compiler.
+-   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 -   Free Software Foundation, Inc.
-+   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
++   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 +   2010  Free Software Foundation, Inc.
+    Adapted from original RTL SSA-CCP by Daniel Berlin <dberlin@dberlin.org>
+    Adapted to GIMPLE trees by Diego Novillo <dnovillo@redhat.com>
+@@ -2979,7 +2979,10 @@
+       continue;
+       callee = gimple_call_fndecl (stmt);
+-      if (!callee || DECL_BUILT_IN_CLASS (callee) != BUILT_IN_NORMAL)
++      if (!callee
++        || DECL_BUILT_IN_CLASS (callee) != BUILT_IN_NORMAL
++        /* All regular builtins are ok, just obviously not alloca.  */
++        || DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA)
+       return NULL_TREE;
+       if (DECL_FUNCTION_CODE (callee) == BUILT_IN_STACK_RESTORE)
+Index: gcc/dojump.c
+===================================================================
+--- gcc/dojump.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/dojump.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Convert tree expression to rtl instructions, for GNU compiler.
+    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
  
  This file is part of GCC.
+@@ -35,13 +35,22 @@
+ #include "langhooks.h"
+ #include "ggc.h"
+ #include "basic-block.h"
++#include "output.h"
  
-@@ -2309,13 +2309,15 @@
-   /* We want to output annotation for weak and external symbols at
-      very last to check if they are references or not.  */
--  if (SUPPORTS_WEAK && DECL_WEAK (decl)
-+  if (SUPPORTS_WEAK
-+      && DECL_WEAK (decl)
-       /* TREE_STATIC is a weird and abused creature which is not
-        generally the right test for whether an entity has been
-        locally emitted, inlined or otherwise not-really-extern, but
-        for declarations that can be weak, it happens to be
-        match.  */
--      && !TREE_STATIC (decl))
-+      && !TREE_STATIC (decl)
-+      && lookup_attribute ("weak", DECL_ATTRIBUTES (decl)))
-     weak_decls = tree_cons (NULL, decl, weak_decls);
- #ifdef ASM_OUTPUT_EXTERNAL
-@@ -4070,6 +4072,9 @@
-         && !VEC_empty (constructor_elt, CONSTRUCTOR_ELTS (ctor)));
- }
+ static bool prefer_and_bit_test (enum machine_mode, int);
+-static void do_jump_by_parts_greater (tree, int, rtx, rtx);
+-static void do_jump_by_parts_equality (tree, rtx, rtx);
++static void do_jump_by_parts_greater (tree, int, rtx, rtx, int);
++static void do_jump_by_parts_equality (tree, rtx, rtx, int);
+ static void do_compare_and_jump       (tree, enum rtx_code, enum rtx_code, rtx,
+-                               rtx);
++                               rtx, int);
  
-+static tree initializer_constant_valid_p_1 (tree value, tree endtype,
-+                                          tree *cache);
++/* Invert probability if there is any.  -1 stands for unknown.  */
++
++static inline int
++inv (int prob)
++{
++  return prob == -1 ? -1 : REG_BR_PROB_BASE - prob;
++}
 +
- /* A subroutine of initializer_constant_valid_p.  VALUE is a MINUS_EXPR,
-    PLUS_EXPR or POINTER_PLUS_EXPR.  This looks for cases of VALUE
-    which are valid when ENDTYPE is an integer of any size; in
-@@ -4079,7 +4084,7 @@
-    returns NULL.  */
+ /* At the start of a function, record that we have no previously-pushed
+    arguments waiting to be popped.  */
  
- static tree
--narrowing_initializer_constant_valid_p (tree value, tree endtype)
-+narrowing_initializer_constant_valid_p (tree value, tree endtype, tree *cache)
+@@ -96,17 +105,17 @@
+    functions here.  */
+ void
+-jumpifnot (tree exp, rtx label)
++jumpifnot (tree exp, rtx label, int prob)
  {
-   tree op0, op1;
+-  do_jump (exp, label, NULL_RTX);
++  do_jump (exp, label, NULL_RTX, inv (prob));
+ }
  
-@@ -4118,11 +4123,14 @@
-       op1 = inner;
-     }
+ /* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
  
--  op0 = initializer_constant_valid_p (op0, endtype);
--  op1 = initializer_constant_valid_p (op1, endtype);
-+  op0 = initializer_constant_valid_p_1 (op0, endtype, cache);
-+  if (!op0)
-+    return NULL_TREE;
-+  op1 = initializer_constant_valid_p_1 (op1, endtype,
-+                                      cache ? cache + 2 : NULL);
-   /* Both initializers must be known.  */
--  if (op0 && op1)
-+  if (op1)
-     {
-       if (op0 == op1
-         && (op0 == null_pointer_node
-@@ -4143,7 +4151,8 @@
-   return NULL_TREE;
+ void
+-jumpif (tree exp, rtx label)
++jumpif (tree exp, rtx label, int prob)
+ {
+-  do_jump (exp, NULL_RTX, label);
++  do_jump (exp, NULL_RTX, label, prob);
  }
  
--/* Return nonzero if VALUE is a valid constant-valued expression
-+/* Helper function of initializer_constant_valid_p.
-+   Return nonzero if VALUE is a valid constant-valued expression
-    for use in initializing a static variable; one that can be an
-    element of a "constant" initializer.
+ /* Used internally by prefer_and_bit_test.  */
+@@ -156,10 +165,12 @@
  
-@@ -4151,10 +4160,12 @@
-    if it is relocatable, return the variable that determines the relocation.
-    We assume that VALUE has been folded as much as possible;
-    therefore, we do not need to check for such things as
--   arithmetic-combinations of integers.  */
-+   arithmetic-combinations of integers.
+    do_jump always does any pending stack adjust except when it does not
+    actually perform a jump.  An example where there is no jump
+-   is when EXP is `(foo (), 0)' and IF_FALSE_LABEL is null.  */
++   is when EXP is `(foo (), 0)' and IF_FALSE_LABEL is null.
  
--tree
--initializer_constant_valid_p (tree value, tree endtype)
-+   Use CACHE (pointer to 2 tree values) for caching if non-NULL.  */
++   PROB is probability of jump to if_true_label, or -1 if unknown.  */
 +
-+static tree
-+initializer_constant_valid_p_1 (tree value, tree endtype, tree *cache)
+ void
+-do_jump (tree exp, rtx if_false_label, rtx if_true_label)
++do_jump (tree exp, rtx if_false_label, rtx if_true_label, int prob)
  {
-   tree ret;
+   enum tree_code code = TREE_CODE (exp);
+   rtx temp;
+@@ -206,11 +217,12 @@
+     case LROTATE_EXPR:
+     case RROTATE_EXPR:
+       /* These cannot change zero->nonzero or vice versa.  */
+-      do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
++      do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label, prob);
+       break;
  
-@@ -4167,18 +4178,33 @@
-         tree elt;
-         bool absolute = true;
+     case TRUTH_NOT_EXPR:
+-      do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label);
++      do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label,
++             inv (prob));
+       break;
  
-+        if (cache && cache[0] == value)
-+          return cache[1];
-         FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (value), idx, elt)
-           {
-             tree reloc;
--            reloc = initializer_constant_valid_p (elt, TREE_TYPE (elt));
-+            reloc = initializer_constant_valid_p_1 (elt, TREE_TYPE (elt),
-+                                                    NULL);
-             if (!reloc)
--              return NULL_TREE;
-+              {
-+                if (cache)
-+                  {
-+                    cache[0] = value;
-+                    cache[1] = NULL_TREE;
-+                  }
-+                return NULL_TREE;
-+              }
-             if (reloc != null_pointer_node)
-               absolute = false;
-           }
-         /* For a non-absolute relocation, there is no single
-            variable that can be "the variable that determines the
-            relocation."  */
-+        if (cache)
-+          {
-+            cache[0] = value;
-+            cache[1] = absolute ? null_pointer_node : error_mark_node;
-+          }
-         return absolute ? null_pointer_node : error_mark_node;
-       }
+     case COND_EXPR:
+@@ -226,10 +238,10 @@
+         }
+         do_pending_stack_adjust ();
+-        do_jump (TREE_OPERAND (exp, 0), label1, NULL_RTX);
+-        do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label);
++      do_jump (TREE_OPERAND (exp, 0), label1, NULL_RTX, -1);
++      do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label, prob);
+         emit_label (label1);
+-        do_jump (TREE_OPERAND (exp, 2), if_false_label, if_true_label);
++      do_jump (TREE_OPERAND (exp, 2), if_false_label, if_true_label, prob);
+       break;
+       }
+@@ -261,7 +273,8 @@
+             && (optab_handler (cmp_optab, TYPE_MODE (type))->insn_code
+               != CODE_FOR_nothing))
+           {
+-            do_jump (fold_convert (type, exp), if_false_label, if_true_label);
++          do_jump (fold_convert (type, exp), if_false_label, if_true_label,
++                   prob);
+             break;
+           }
+         goto normal;
+@@ -277,12 +290,14 @@
+                   != MODE_COMPLEX_INT);
+       
+         if (integer_zerop (TREE_OPERAND (exp, 1)))
+-          do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label);
++          do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label,
++                 inv (prob));
+         else if (GET_MODE_CLASS (TYPE_MODE (inner_type)) == MODE_INT
+                  && !can_compare_p (EQ, TYPE_MODE (inner_type), ccp_jump))
+-          do_jump_by_parts_equality (exp, if_false_label, if_true_label);
++          do_jump_by_parts_equality (exp, if_false_label, if_true_label, prob);
+         else
+-          do_compare_and_jump (exp, EQ, EQ, if_false_label, if_true_label);
++          do_compare_and_jump (exp, EQ, EQ, if_false_label, if_true_label,
++                             prob);
+         break;
+       }
  
-@@ -4219,7 +4245,8 @@
+@@ -302,12 +317,14 @@
+                   != MODE_COMPLEX_INT);
+       
+         if (integer_zerop (TREE_OPERAND (exp, 1)))
+-          do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
++          do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label, prob);
+         else if (GET_MODE_CLASS (TYPE_MODE (inner_type)) == MODE_INT
+            && !can_compare_p (NE, TYPE_MODE (inner_type), ccp_jump))
+-          do_jump_by_parts_equality (exp, if_true_label, if_false_label);
++          do_jump_by_parts_equality (exp, if_true_label, if_false_label,
++                                   inv (prob));
+         else
+-          do_compare_and_jump (exp, NE, NE, if_false_label, if_true_label);
++          do_compare_and_jump (exp, NE, NE, if_false_label, if_true_label,
++                             prob);
+         break;
        }
  
-     case NON_LVALUE_EXPR:
--      return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype);
-+      return initializer_constant_valid_p_1 (TREE_OPERAND (value, 0),
-+                                           endtype, cache);
+@@ -315,36 +332,43 @@
+       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
+       if (GET_MODE_CLASS (mode) == MODE_INT
+           && ! can_compare_p (LT, mode, ccp_jump))
+-        do_jump_by_parts_greater (exp, 1, if_false_label, if_true_label);
++        do_jump_by_parts_greater (exp, 1, if_false_label, if_true_label, prob);
+       else
+-        do_compare_and_jump (exp, LT, LTU, if_false_label, if_true_label);
++        do_compare_and_jump (exp, LT, LTU, if_false_label, if_true_label,
++                           prob);
+       break;
+     case LE_EXPR:
+       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
+       if (GET_MODE_CLASS (mode) == MODE_INT
+           && ! can_compare_p (LE, mode, ccp_jump))
+-        do_jump_by_parts_greater (exp, 0, if_true_label, if_false_label);
++        do_jump_by_parts_greater (exp, 0, if_true_label, if_false_label,
++                                inv (prob));
+       else
+-        do_compare_and_jump (exp, LE, LEU, if_false_label, if_true_label);
++        do_compare_and_jump (exp, LE, LEU, if_false_label, if_true_label,
++                           prob);
+       break;
  
-     case VIEW_CONVERT_EXPR:
-       {
-@@ -4234,13 +4261,13 @@
-       if (AGGREGATE_TYPE_P (src_type) && !AGGREGATE_TYPE_P (dest_type))
-         {
-           if (TYPE_MODE (endtype) == TYPE_MODE (dest_type))
--            return initializer_constant_valid_p (src, endtype);
-+            return initializer_constant_valid_p_1 (src, endtype, cache);
-           else
-             return NULL_TREE;
-         }
+     case GT_EXPR:
+       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
+       if (GET_MODE_CLASS (mode) == MODE_INT
+           && ! can_compare_p (GT, mode, ccp_jump))
+-        do_jump_by_parts_greater (exp, 0, if_false_label, if_true_label);
++        do_jump_by_parts_greater (exp, 0, if_false_label, if_true_label,
++                                prob);
+       else
+-        do_compare_and_jump (exp, GT, GTU, if_false_label, if_true_label);
++        do_compare_and_jump (exp, GT, GTU, if_false_label, if_true_label,
++                           prob);
+       break;
  
-       /* Allow all other kinds of view-conversion.  */
--      return initializer_constant_valid_p (src, endtype);
-+      return initializer_constant_valid_p_1 (src, endtype, cache);
-       }
+     case GE_EXPR:
+       mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
+       if (GET_MODE_CLASS (mode) == MODE_INT
+           && ! can_compare_p (GE, mode, ccp_jump))
+-        do_jump_by_parts_greater (exp, 1, if_true_label, if_false_label);
++        do_jump_by_parts_greater (exp, 1, if_true_label, if_false_label,
++                                inv (prob));
+       else
+-        do_compare_and_jump (exp, GE, GEU, if_false_label, if_true_label);
++        do_compare_and_jump (exp, GE, GEU, if_false_label, if_true_label,
++                           prob);
+       break;
  
-     CASE_CONVERT:
-@@ -4255,18 +4282,18 @@
-           || (FLOAT_TYPE_P (dest_type) && FLOAT_TYPE_P (src_type))
-           || (TREE_CODE (dest_type) == OFFSET_TYPE
-               && TREE_CODE (src_type) == OFFSET_TYPE))
--        return initializer_constant_valid_p (src, endtype);
-+        return initializer_constant_valid_p_1 (src, endtype, cache);
-       /* Allow length-preserving conversions between integer types.  */
-       if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type)
-           && (TYPE_PRECISION (dest_type) == TYPE_PRECISION (src_type)))
--        return initializer_constant_valid_p (src, endtype);
-+        return initializer_constant_valid_p_1 (src, endtype, cache);
-       /* Allow conversions between other integer types only if
-          explicit value.  */
-       if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type))
-         {
--          tree inner = initializer_constant_valid_p (src, endtype);
-+          tree inner = initializer_constant_valid_p_1 (src, endtype, cache);
-           if (inner == null_pointer_node)
-             return null_pointer_node;
-           break;
-@@ -4275,7 +4302,7 @@
-       /* Allow (int) &foo provided int is as wide as a pointer.  */
-       if (INTEGRAL_TYPE_P (dest_type) && POINTER_TYPE_P (src_type)
-           && (TYPE_PRECISION (dest_type) >= TYPE_PRECISION (src_type)))
--        return initializer_constant_valid_p (src, endtype);
-+        return initializer_constant_valid_p_1 (src, endtype, cache);
-       /* Likewise conversions from int to pointers, but also allow
-          conversions from 0.  */
-@@ -4289,78 +4316,120 @@
-           if (integer_zerop (src))
-             return null_pointer_node;
-           else if (TYPE_PRECISION (dest_type) <= TYPE_PRECISION (src_type))
--            return initializer_constant_valid_p (src, endtype);
-+            return initializer_constant_valid_p_1 (src, endtype, cache);
-         }
+     case UNORDERED_EXPR:
+@@ -368,9 +392,10 @@
+           do_rev = 1;
  
-       /* Allow conversions to struct or union types if the value
-          inside is okay.  */
-       if (TREE_CODE (dest_type) == RECORD_TYPE
-           || TREE_CODE (dest_type) == UNION_TYPE)
--        return initializer_constant_valid_p (src, endtype);
-+        return initializer_constant_valid_p_1 (src, endtype, cache);
+         if (! do_rev)
+-          do_compare_and_jump (exp, cmp, cmp, if_false_label, if_true_label);
++          do_compare_and_jump (exp, cmp, cmp, if_false_label, if_true_label, prob);
+         else
+-          do_compare_and_jump (exp, rcmp, rcmp, if_true_label, if_false_label);
++          do_compare_and_jump (exp, rcmp, rcmp, if_true_label, if_false_label,
++                             inv (prob));
        }
        break;
  
-     case POINTER_PLUS_EXPR:
-     case PLUS_EXPR:
-+      /* Any valid floating-point constants will have been folded by now;
-+       with -frounding-math we hit this with addition of two constants.  */
-+      if (TREE_CODE (endtype) == REAL_TYPE)
-+      return NULL_TREE;
-+      if (cache && cache[0] == value)
-+      return cache[1];
-       if (! INTEGRAL_TYPE_P (endtype)
-         || TYPE_PRECISION (endtype) >= POINTER_SIZE)
+@@ -415,7 +440,7 @@
+         mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
+         if (can_compare_p (rcode1, mode, ccp_jump))
+           do_compare_and_jump (exp, rcode1, rcode1, if_false_label,
+-                               if_true_label);
++                               if_true_label, prob);
+         else
+           {
+             tree op0 = save_expr (TREE_OPERAND (exp, 0));
+@@ -429,8 +454,8 @@
+             
+             cmp0 = fold_build2 (tcode1, TREE_TYPE (exp), op0, op1);
+             cmp1 = fold_build2 (tcode2, TREE_TYPE (exp), op0, op1);
+-          do_jump (cmp0, 0, if_true_label);
+-          do_jump (cmp1, if_false_label, if_true_label);
++          do_jump (cmp0, 0, if_true_label, prob);
++          do_jump (cmp1, if_false_label, if_true_label, prob);
+           }
+       break;
+     }
+@@ -443,6 +468,7 @@
        {
--        tree valid0 = initializer_constant_valid_p (TREE_OPERAND (value, 0),
--                                                    endtype);
--        tree valid1 = initializer_constant_valid_p (TREE_OPERAND (value, 1),
--                                                    endtype);
-+        tree ncache[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE };
-+        tree valid0
-+          = initializer_constant_valid_p_1 (TREE_OPERAND (value, 0),
-+                                            endtype, ncache);
-+        tree valid1
-+          = initializer_constant_valid_p_1 (TREE_OPERAND (value, 1),
-+                                            endtype, ncache + 2);
-         /* If either term is absolute, use the other term's relocation.  */
-         if (valid0 == null_pointer_node)
--          return valid1;
--        if (valid1 == null_pointer_node)
--          return valid0;
-+          ret = valid1;
-+        else if (valid1 == null_pointer_node)
-+          ret = valid0;
-+        /* Support narrowing pointer differences.  */
-+        else
-+          ret = narrowing_initializer_constant_valid_p (value, endtype,
-+                                                        ncache);
-       }
--
-+      else
-       /* Support narrowing pointer differences.  */
--      ret = narrowing_initializer_constant_valid_p (value, endtype);
--      if (ret != NULL_TREE)
--      return ret;
-+      ret = narrowing_initializer_constant_valid_p (value, endtype, NULL);
-+      if (cache)
-+      {
-+        cache[0] = value;
-+        cache[1] = ret;
-+      }
-+      return ret;
+         tree exp0 = TREE_OPERAND (exp, 0);
+         rtx set_label, clr_label;
++        int setclr_prob = prob;
  
--      break;
--
-     case MINUS_EXPR:
-+      if (TREE_CODE (endtype) == REAL_TYPE)
-+      return NULL_TREE;
-+      if (cache && cache[0] == value)
-+      return cache[1];
-       if (! INTEGRAL_TYPE_P (endtype)
-         || TYPE_PRECISION (endtype) >= POINTER_SIZE)
+         /* Strip narrowing integral type conversions.  */
+         while (CONVERT_EXPR_P (exp0)
+@@ -458,6 +484,7 @@
+             exp0 = TREE_OPERAND (exp0, 0);
+             clr_label = if_true_label;
+             set_label = if_false_label;
++            setclr_prob = inv (prob);
+           }
+         else
+           {
+@@ -480,7 +507,7 @@
+                   = (unsigned HOST_WIDE_INT) 1 << TREE_INT_CST_LOW (shift);
+                 do_jump (build2 (BIT_AND_EXPR, argtype, arg,
+                                  build_int_cst_wide_type (argtype, mask, 0)),
+-                         clr_label, set_label);
++                         clr_label, set_label, setclr_prob);
+                 break;
+               }
+           }
+@@ -503,7 +530,8 @@
+           && (optab_handler (cmp_optab, TYPE_MODE (type))->insn_code
+               != CODE_FOR_nothing))
+         {
+-          do_jump (fold_convert (type, exp), if_false_label, if_true_label);
++        do_jump (fold_convert (type, exp), if_false_label, if_true_label,
++                 prob);
+           break;
+         }
+@@ -526,13 +554,13 @@
+       if (if_false_label == NULL_RTX)
+         {
+         drop_through_label = gen_label_rtx ();
+-          do_jump (TREE_OPERAND (exp, 0), drop_through_label, NULL_RTX);
+-          do_jump (TREE_OPERAND (exp, 1), NULL_RTX, if_true_label);
++          do_jump (TREE_OPERAND (exp, 0), drop_through_label, NULL_RTX, prob);
++          do_jump (TREE_OPERAND (exp, 1), NULL_RTX, if_true_label, prob);
+       }
+       else
        {
--        tree valid0 = initializer_constant_valid_p (TREE_OPERAND (value, 0),
--                                                    endtype);
--        tree valid1 = initializer_constant_valid_p (TREE_OPERAND (value, 1),
--                                                    endtype);
-+        tree ncache[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE };
-+        tree valid0
-+          = initializer_constant_valid_p_1 (TREE_OPERAND (value, 0),
-+                                            endtype, ncache);
-+        tree valid1
-+          = initializer_constant_valid_p_1 (TREE_OPERAND (value, 1),
-+                                            endtype, ncache + 2);
-         /* Win if second argument is absolute.  */
-         if (valid1 == null_pointer_node)
--          return valid0;
-+          ret = valid0;
-         /* Win if both arguments have the same relocation.
-            Then the value is absolute.  */
--        if (valid0 == valid1 && valid0 != 0)
--          return null_pointer_node;
--
-+        else if (valid0 == valid1 && valid0 != 0)
-+          ret = null_pointer_node;
-         /* Since GCC guarantees that string constants are unique in the
-            generated code, a subtraction between two copies of the same
-            constant string is absolute.  */
--        if (valid0 && TREE_CODE (valid0) == STRING_CST
--            && valid1 && TREE_CODE (valid1) == STRING_CST
--            && operand_equal_p (valid0, valid1, 1))
--          return null_pointer_node;
-+        else if (valid0 && TREE_CODE (valid0) == STRING_CST
-+                 && valid1 && TREE_CODE (valid1) == STRING_CST
-+                 && operand_equal_p (valid0, valid1, 1))
-+          ret = null_pointer_node;
-+        /* Support narrowing differences.  */
-+        else
-+          ret = narrowing_initializer_constant_valid_p (value, endtype,
-+                                                        ncache);
+-        do_jump (TREE_OPERAND (exp, 0), if_false_label, NULL_RTX);
+-          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label);
++        do_jump (TREE_OPERAND (exp, 0), if_false_label, NULL_RTX, prob);
++          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label, prob);
        }
-+      else
-+      /* Support narrowing differences.  */
-+      ret = narrowing_initializer_constant_valid_p (value, endtype, NULL);
-+      if (cache)
-+      {
-+        cache[0] = value;
-+        cache[1] = ret;
-+      }
-+      return ret;
--      /* Support narrowing differences.  */
--      ret = narrowing_initializer_constant_valid_p (value, endtype);
--      if (ret != NULL_TREE)
--      return ret;
--
--      break;
--
-     default:
-       break;
-     }
--  return 0;
-+  return NULL_TREE;
- }
-+
-+/* Return nonzero if VALUE is a valid constant-valued expression
-+   for use in initializing a static variable; one that can be an
-+   element of a "constant" initializer.
-+
-+   Return null_pointer_node if the value is absolute;
-+   if it is relocatable, return the variable that determines the relocation.
-+   We assume that VALUE has been folded as much as possible;
-+   therefore, we do not need to check for such things as
-+   arithmetic-combinations of integers.  */
-+tree
-+initializer_constant_valid_p (tree value, tree endtype)
-+{
-+  return initializer_constant_valid_p_1 (value, endtype, NULL);
-+}
\f
- /* Output assembler code for constant EXP to FILE, with no label.
-    This includes the pseudo-op such as ".int" or ".byte", and a newline.
-@@ -4485,8 +4554,8 @@
-     case REAL_TYPE:
-       if (TREE_CODE (exp) != REAL_CST)
-       error ("initializer for floating value is not a floating constant");
--
--      assemble_real (TREE_REAL_CST (exp), TYPE_MODE (TREE_TYPE (exp)), align);
-+      else
-+      assemble_real (TREE_REAL_CST (exp), TYPE_MODE (TREE_TYPE (exp)), align);
        break;
  
-     case COMPLEX_TYPE:
-@@ -5002,6 +5071,9 @@
-     warning (0, "weak declaration of %q+D not supported", decl);
-   mark_weak (decl);
-+  if (!lookup_attribute ("weak", DECL_ATTRIBUTES (decl)))
-+    DECL_ATTRIBUTES (decl)
-+      = tree_cons (get_identifier ("weak"), NULL, DECL_ATTRIBUTES (decl));
- }
- static void
-Index: gcc/rtl.h
-===================================================================
---- gcc/rtl.h  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/rtl.h  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Register Transfer Language (RTL) definitions for GCC
-    Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
- This file is part of GCC.
-@@ -2305,8 +2305,6 @@
- /* In predict.c */
- extern void invert_br_probabilities (rtx);
- extern bool expensive_function_p (int);
--/* In cfgexpand.c */
--extern void add_reg_br_prob_note (rtx last, int probability);
- /* In var-tracking.c */
- extern unsigned int variable_tracking_main (void);
-Index: gcc/tree-inline.c
-===================================================================
---- gcc/tree-inline.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-inline.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2729,6 +2729,8 @@
- {
-   HOST_WIDE_INT size;
-+  gcc_assert (!VOID_TYPE_P (type));
-+
-   size = int_size_in_bytes (type);
-   if (size < 0 || size > MOVE_MAX_PIECES * MOVE_RATIO (!optimize_size))
-@@ -2980,7 +2982,8 @@
-         {
-           tree t;
-           for (t = TYPE_ARG_TYPES (funtype); t; t = TREE_CHAIN (t))
--            cost += estimate_move_cost (TREE_VALUE (t));
-+            if (!VOID_TYPE_P (TREE_VALUE (t)))
-+              cost += estimate_move_cost (TREE_VALUE (t));
-         }
-       else
-         {
-@@ -4268,6 +4271,46 @@
-   return true;
- }
+@@ -541,7 +569,7 @@
+       /* High branch cost, expand as the bitwise OR of the conditions.
+        Do the same if the RHS has side effects, because we're effectively
+        turning a TRUTH_OR_EXPR into a TRUTH_ORIF_EXPR.  */
+-      if (BRANCH_COST (optimize_insn_for_speed_p (), false)>= 4
++      if (BRANCH_COST (optimize_insn_for_speed_p (), false) >= 4
+         || TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1)))
+       goto normal;
  
-+/* Delete all unreachable basic blocks and update callgraph.
-+   Doing so is somewhat nontrivial because we need to update all clones and
-+   remove inline function that become unreachable.  */
-+
-+static bool
-+delete_unreachable_blocks_update_callgraph (copy_body_data *id)
-+{
-+  bool changed = false;
-+  basic_block b, next_bb;
-+
-+  find_unreachable_blocks ();
-+
-+  /* Delete all unreachable basic blocks.  */
-+
-+  for (b = ENTRY_BLOCK_PTR->next_bb; b != EXIT_BLOCK_PTR; b = next_bb)
-+    {
-+      next_bb = b->next_bb;
-+
-+      if (!(b->flags & BB_REACHABLE))
-+      {
-+          gimple_stmt_iterator bsi;
-+
-+          for (bsi = gsi_start_bb (b); !gsi_end_p (bsi); gsi_next (&bsi))
-+          if (gimple_code (gsi_stmt (bsi)) == GIMPLE_CALL)
-+            {
-+              struct cgraph_edge *e;
-+
-+              if ((e = cgraph_edge (id->dst_node, gsi_stmt (bsi))) != NULL)
-+                cgraph_remove_edge (e);
-+            }
-+        delete_basic_block (b);
-+        changed = true;
-+      }
-+    }
-+
-+  if (changed)
-+    tidy_fallthru_edges ();
-+  return changed;
-+}
-+
- /* Create a copy of a function's tree.
-    OLD_DECL and NEW_DECL are FUNCTION_DECL tree nodes
-    of the original function and the new copied function
-@@ -4442,7 +4485,7 @@
-       free_dominance_info (CDI_DOMINATORS);
-       free_dominance_info (CDI_POST_DOMINATORS);
-       if (!update_clones)
--        delete_unreachable_blocks ();
-+        delete_unreachable_blocks_update_callgraph (&id);
-       update_ssa (TODO_update_ssa);
-       if (!update_clones)
+@@ -549,13 +577,13 @@
+       if (if_true_label == NULL_RTX)
        {
-Index: gcc/combine.c
-===================================================================
---- gcc/combine.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/combine.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2445,10 +2445,16 @@
-         i2dest = SET_DEST (temp);
-         i2dest_killed = dead_or_set_p (i2, i2dest);
-+          /* Replace the source in I2 with the new constant and make the
-+             resulting insn the new pattern for I3.  Then skip to
-+             where we validate the pattern.  Everything was set up above.  */
-         SUBST (SET_SRC (temp),
-                immed_double_const (olo, ohi, GET_MODE (SET_DEST (temp))));
-         newpat = PATTERN (i2);
-+
-+          /* The dest of I3 has been replaced with the dest of I2.  */
-+          changed_i3_dest = 1;
-         goto validate_replacement;
+           drop_through_label = gen_label_rtx ();
+-          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, drop_through_label);
+-          do_jump (TREE_OPERAND (exp, 1), if_false_label, NULL_RTX);
++          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, drop_through_label, prob);
++          do_jump (TREE_OPERAND (exp, 1), if_false_label, NULL_RTX, prob);
        }
-     }
-@@ -2820,8 +2826,6 @@
+       else
+       {
+-          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, if_true_label);
+-          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label);
++          do_jump (TREE_OPERAND (exp, 0), NULL_RTX, if_true_label, prob);
++          do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label, prob);
        }
+       break;
+@@ -577,7 +605,7 @@
+       do_compare_rtx_and_jump (temp, CONST0_RTX (GET_MODE (temp)),
+                              NE, TYPE_UNSIGNED (TREE_TYPE (exp)),
+                              GET_MODE (temp), NULL_RTX,
+-                             if_false_label, if_true_label);
++                             if_false_label, if_true_label, prob);
+     }
+   if (drop_through_label)
+@@ -593,7 +621,8 @@
+ static void
+ do_jump_by_parts_greater_rtx (enum machine_mode mode, int unsignedp, rtx op0,
+-                            rtx op1, rtx if_false_label, rtx if_true_label)
++                            rtx op1, rtx if_false_label, rtx if_true_label,
++                            int prob)
+ {
+   int nwords = (GET_MODE_SIZE (mode) / UNITS_PER_WORD);
+   rtx drop_through_label = 0;
+@@ -625,11 +654,12 @@
+       /* All but high-order word must be compared as unsigned.  */
+       do_compare_rtx_and_jump (op0_word, op1_word, GT,
+                                (unsignedp || i > 0), word_mode, NULL_RTX,
+-                               NULL_RTX, if_true_label);
++                             NULL_RTX, if_true_label, prob);
+       /* Consider lower words only if these are equal.  */
+       do_compare_rtx_and_jump (op0_word, op1_word, NE, unsignedp, word_mode,
+-                               NULL_RTX, NULL_RTX, if_false_label);
++                             NULL_RTX, NULL_RTX, if_false_label,
++                             inv (prob));
      }
  
--  /* We come here when we are replacing a destination in I2 with the
--     destination of I3.  */
-  validate_replacement:
+   if (if_false_label)
+@@ -645,7 +675,7 @@
  
-   /* Note which hard regs this insn has as inputs.  */
-@@ -7039,15 +7043,14 @@
-       tem = make_compound_operation (SUBREG_REG (x), in_code);
+ static void
+ do_jump_by_parts_greater (tree exp, int swap, rtx if_false_label,
+-                        rtx if_true_label)
++                        rtx if_true_label, int prob)
+ {
+   rtx op0 = expand_normal (TREE_OPERAND (exp, swap));
+   rtx op1 = expand_normal (TREE_OPERAND (exp, !swap));
+@@ -653,7 +683,7 @@
+   int unsignedp = TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0)));
  
-       {
--      rtx simplified;
--      simplified = simplify_subreg (GET_MODE (x), tem, GET_MODE (tem),
--                                    SUBREG_BYTE (x));
-+      rtx simplified = simplify_subreg (mode, tem, GET_MODE (SUBREG_REG (x)),
-+                                        SUBREG_BYTE (x));
-       if (simplified)
-         tem = simplified;
-       if (GET_CODE (tem) != GET_CODE (SUBREG_REG (x))
--          && GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (tem))
-+          && GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))
-           && subreg_lowpart_p (x))
-         {
-           rtx newer = force_to_mode (tem, mode, ~(HOST_WIDE_INT) 0,
-@@ -8512,6 +8515,12 @@
-   enum rtx_code outer_code, inner_code;
-   rtx decomposed, distributed, inner_op0, inner_op1, new_op0, new_op1, tmp;
-+  /* Distributivity is not true for floating point as it can change the
-+     value.  So we don't do it unless -funsafe-math-optimizations.  */
-+  if (FLOAT_MODE_P (GET_MODE (x))
-+      && ! flag_unsafe_math_optimizations)
-+    return NULL_RTX;
-+
-   decomposed = XEXP (x, n);
-   if (!ARITHMETIC_P (decomposed))
-     return NULL_RTX;
-@@ -13035,4 +13044,3 @@
-   TODO_ggc_collect,                     /* todo_flags_finish */
-  }
- };
--
-Index: gcc/c-common.c
-===================================================================
---- gcc/c-common.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/c-common.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -7633,15 +7633,14 @@
-       error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded");
-       return error_mark_node;
+   do_jump_by_parts_greater_rtx (mode, unsignedp, op0, op1, if_false_label,
+-                              if_true_label);
++                              if_true_label, prob);
+ }
\f
+ /* Jump according to whether OP0 is 0.  We assume that OP0 has an integer
+@@ -663,7 +693,7 @@
  
--    case INTEGER_CST:
--      gcc_assert (integer_zerop (expr));
--      return size_zero_node;
+ static void
+ do_jump_by_parts_zero_rtx (enum machine_mode mode, rtx op0,
+-                         rtx if_false_label, rtx if_true_label)
++                         rtx if_false_label, rtx if_true_label, int prob)
+ {
+   int nwords = GET_MODE_SIZE (mode) / UNITS_PER_WORD;
+   rtx part;
+@@ -685,8 +715,7 @@
+   if (part != 0)
+     {
+       do_compare_rtx_and_jump (part, const0_rtx, EQ, 1, word_mode,
+-                               NULL_RTX, if_false_label, if_true_label);
 -
-     case NOP_EXPR:
-     case INDIRECT_REF:
--      base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
--      gcc_assert (base == error_mark_node || base == size_zero_node);
--      return base;
-+      if (!integer_zerop (TREE_OPERAND (expr, 0)))
-+      {
-+        error ("cannot apply %<offsetof%> to a non constant address");
-+        return error_mark_node;
-+      }
-+      return size_zero_node;
++                             NULL_RTX, if_false_label, if_true_label, prob);
+       return;
+     }
  
-     case COMPONENT_REF:
-       base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
-Index: gcc/config.gcc
-===================================================================
---- gcc/config.gcc     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config.gcc     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -714,7 +714,7 @@
-       case ${target} in
-       arm*-*-linux-*eabi)
-           tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
--          tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
-+          tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
-           # The BPABI long long divmod functions return a 128-bit value in
-           # registers r0-r3.  Correctly modeling that requires the use of
-           # TImode.
-@@ -1088,7 +1088,7 @@
-                       tmake_file="${tmake_file} i386/t-linux64"
-                       need_64bit_hwint=yes
-                       case X"${with_cpu}" in
--                      Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
-+                      Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
-                               ;;
-                       X)
-                               if test x$with_cpu_64 = x; then
-@@ -1097,7 +1097,7 @@
-                               ;;
-                       *)
-                               echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
--                              echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
-+                              echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
-                               exit 1
-                               ;;
-                       esac
-@@ -1202,7 +1202,7 @@
-               # libgcc/configure.ac instead.
-               need_64bit_hwint=yes
-               case X"${with_cpu}" in
--              Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
-+              Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
-                       ;;
-               X)
-                       if test x$with_cpu_64 = x; then
-@@ -1211,7 +1211,7 @@
-                       ;;
-               *)
-                       echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
--                      echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
-+                      echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
-                       exit 1
-                       ;;
-               esac
-@@ -2191,7 +2191,7 @@
-       extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-       ;;
- sparc-*-linux*)               # SPARC's running GNU/Linux, libc6
--      tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h"
-+      tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h"
-       extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-linux"
-       if test x$enable_targets = xall; then
-@@ -2303,7 +2303,7 @@
-       esac
-       ;;
- sparc64-*-linux*)             # 64-bit SPARC's running GNU/Linux
--      tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h sparc/linux64.h"
-+      tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h sparc/linux64.h"
-       extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
-       ;;
-@@ -2472,7 +2472,10 @@
-         amdfam10-*|barcelona-*)
-           with_cpu=amdfam10
-           ;;
--        k8-*|opteron-*|athlon_64-*)
-+        k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
-+          with_cpu=k8-sse3
-+          ;;
-+        k8-*|opteron-*|athlon64-*|athlon_fx-*)
-           with_cpu=k8
-           ;;
-         athlon_xp-*|athlon_mp-*|athlon_4-*)
-@@ -2518,7 +2521,10 @@
-         amdfam10-*|barcelona-*)
-           with_cpu=amdfam10
-           ;;
--        k8-*|opteron-*|athlon_64-*)
-+        k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
-+          with_cpu=k8-sse3
-+          ;;
-+        k8-*|opteron-*|athlon64-*|athlon_fx-*)
-           with_cpu=k8
-           ;;
-         nocona-*)
-@@ -2675,7 +2681,7 @@
+@@ -697,7 +726,7 @@
+   for (i = 0; i < nwords; i++)
+     do_compare_rtx_and_jump (operand_subword_force (op0, i, mode),
+                              const0_rtx, EQ, 1, word_mode, NULL_RTX,
+-                             if_false_label, NULL_RTX);
++                           if_false_label, NULL_RTX, prob);
  
-               case "$with_fpu" in
-               "" \
--              | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon )
-+              | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | vfpv3 | vfpv3-d16 | neon )
-                       # OK
-                       ;;
-               *)
-@@ -2812,7 +2818,7 @@
-                               esac
-                               # OK
-                               ;;
--                      "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic)
-+                      "" | amdfam10 | barcelona | k8-sse3 | opteron-sse3 | athlon64-sse3 | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic)
-                               # OK
-                               ;;
-                       *)
-Index: gcc/Makefile.in
-===================================================================
---- gcc/Makefile.in    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3,7 +3,7 @@
+   if (if_true_label)
+     emit_jump (if_true_label);
+@@ -713,7 +742,7 @@
+ static void
+ do_jump_by_parts_equality_rtx (enum machine_mode mode, rtx op0, rtx op1,
+-                             rtx if_false_label, rtx if_true_label)
++                             rtx if_false_label, rtx if_true_label, int prob)
+ {
+   int nwords = (GET_MODE_SIZE (mode) / UNITS_PER_WORD);
+   rtx drop_through_label = 0;
+@@ -721,12 +750,14 @@
+   if (op1 == const0_rtx)
+     {
+-      do_jump_by_parts_zero_rtx (mode, op0, if_false_label, if_true_label);
++      do_jump_by_parts_zero_rtx (mode, op0, if_false_label, if_true_label,
++                               prob);
+       return;
+     }
+   else if (op0 == const0_rtx)
+     {
+-      do_jump_by_parts_zero_rtx (mode, op1, if_false_label, if_true_label);
++      do_jump_by_parts_zero_rtx (mode, op1, if_false_label, if_true_label,
++                               prob);
+       return;
+     }
+@@ -737,7 +768,7 @@
+     do_compare_rtx_and_jump (operand_subword_force (op0, i, mode),
+                              operand_subword_force (op1, i, mode),
+                              EQ, 0, word_mode, NULL_RTX,
+-                           if_false_label, NULL_RTX);
++                           if_false_label, NULL_RTX, prob);
+   if (if_true_label)
+     emit_jump (if_true_label);
+@@ -749,13 +780,14 @@
+    with one insn, test the comparison and jump to the appropriate label.  */
+ static void
+-do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label)
++do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label,
++                         int prob)
+ {
+   rtx op0 = expand_normal (TREE_OPERAND (exp, 0));
+   rtx op1 = expand_normal (TREE_OPERAND (exp, 1));
+   enum machine_mode mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
+   do_jump_by_parts_equality_rtx (mode, op0, op1, if_false_label,
+-                               if_true_label);
++                               if_true_label, prob);
+ }
\f
+ /* Generate code for a comparison of OP0 and OP1 with rtx code CODE.
+@@ -825,7 +857,7 @@
+ void
+ do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp,
+                        enum machine_mode mode, rtx size, rtx if_false_label,
+-                       rtx if_true_label)
++                       rtx if_true_label, int prob)
+ {
+   rtx tem;
+   int dummy_true_label = 0;
+@@ -837,6 +869,7 @@
+       if_true_label = if_false_label;
+       if_false_label = 0;
+       code = reverse_condition (code);
++      prob = inv (prob);
+     }
+   /* If one operand is constant, make it the second one.  Only do this
+@@ -886,52 +919,56 @@
+       {
+       case LTU:
+         do_jump_by_parts_greater_rtx (mode, 1, op1, op0,
+-                                      if_false_label, if_true_label);
++                                      if_false_label, if_true_label, prob);
+         break;
  
- # Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
- # 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
--# 2008, 2009 Free Software Foundation, Inc.
-+# 2008, 2009, 2010 Free Software Foundation, Inc.
+       case LEU:
+         do_jump_by_parts_greater_rtx (mode, 1, op0, op1,
+-                                      if_true_label, if_false_label);
++                                      if_true_label, if_false_label,
++                                      inv (prob));
+         break;
  
- #This file is part of GCC.
+       case GTU:
+         do_jump_by_parts_greater_rtx (mode, 1, op0, op1,
+-                                      if_false_label, if_true_label);
++                                      if_false_label, if_true_label, prob);
+         break;
  
-@@ -2514,7 +2514,7 @@
-    tree-pass.h $(DF_H) $(DIAGNOSTIC_H) vecprim.h
- dojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
-    $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \
--   langhooks.h $(GGC_H) gt-dojump.h vecprim.h $(BASIC_BLOCK_H)
-+   langhooks.h $(GGC_H) gt-dojump.h vecprim.h $(BASIC_BLOCK_H) output.h
- builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
-    $(TREE_H) $(GIMPLE_H) $(FLAGS_H) $(TARGET_H) $(FUNCTION_H) $(REGS_H) \
-    $(EXPR_H) $(OPTABS_H) insn-config.h $(RECOG_H) output.h typeclass.h \
-Index: gcc/tree-ssa-structalias.c
-===================================================================
---- gcc/tree-ssa-structalias.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-structalias.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2803,7 +2803,7 @@
- get_constraint_for_ptr_offset (tree ptr, tree offset,
-                              VEC (ce_s, heap) **results)
- {
--  struct constraint_expr *c;
-+  struct constraint_expr c;
-   unsigned int j, n;
-   unsigned HOST_WIDE_INT rhsunitoffset, rhsoffset;
+       case GEU:
+         do_jump_by_parts_greater_rtx (mode, 1, op1, op0,
+-                                      if_true_label, if_false_label);
++                                      if_true_label, if_false_label,
++                                      inv (prob));
+         break;
  
-@@ -2854,13 +2854,13 @@
-   for (j = 0; j < n; j++)
-     {
-       varinfo_t curr;
--      c = VEC_index (ce_s, *results, j);
--      curr = get_varinfo (c->var);
-+      c = *VEC_index (ce_s, *results, j);
-+      curr = get_varinfo (c.var);
--      if (c->type == ADDRESSOF
-+      if (c.type == ADDRESSOF
-         && !curr->is_full_var)
-       {
--        varinfo_t temp, curr = get_varinfo (c->var);
-+        varinfo_t temp, curr = get_varinfo (c.var);
-         /* Search the sub-field which overlaps with the
-            pointed-to offset.  As we deal with positive offsets
-@@ -2896,15 +2896,17 @@
-             c2.offset = 0;
-             VEC_safe_push (ce_s, heap, *results, &c2);
-           }
--        c->var = temp->id;
--        c->offset = 0;
-+        c.var = temp->id;
-+        c.offset = 0;
-       }
--      else if (c->type == ADDRESSOF
-+      else if (c.type == ADDRESSOF
-              /* If this varinfo represents a full variable just use it.  */
-              && curr->is_full_var)
--      c->offset = 0;
-+      c.offset = 0;
-       else
--      c->offset = rhsoffset;
-+      c.offset = rhsoffset;
-+
-+      VEC_replace (ce_s, *results, j, &c);
-     }
- }
+       case LT:
+         do_jump_by_parts_greater_rtx (mode, 0, op1, op0,
+-                                      if_false_label, if_true_label);
++                                      if_false_label, if_true_label, prob);
+         break;
  
-Index: gcc/tree-ssa-reassoc.c
-===================================================================
---- gcc/tree-ssa-reassoc.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/tree-ssa-reassoc.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Reassociation for trees.
--   Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
-+   Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-    Contributed by Daniel Berlin <dan@dberlin.org>
+       case LE:
+         do_jump_by_parts_greater_rtx (mode, 0, op0, op1,
+-                                      if_true_label, if_false_label);
++                                      if_true_label, if_false_label,
++                                      inv (prob));
+         break;
  
- This file is part of GCC.
-@@ -844,7 +844,7 @@
-   if ((!op1def || gimple_nop_p (op1def))
-       && (!op2def || gimple_nop_p (op2def)))
-     {
--      gsi = gsi_start_bb (single_succ (ENTRY_BLOCK_PTR));
-+      gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR));
-       gsi_insert_before (&gsi, sum, GSI_NEW_STMT);
-     }
-   else if ((!op1def || gimple_nop_p (op1def))
-@@ -853,7 +853,7 @@
-     {
-       if (gimple_code (op2def) == GIMPLE_PHI)
-       {
--        gsi = gsi_start_bb (gimple_bb (op2def));
-+        gsi = gsi_after_labels (gimple_bb (op2def));
-         gsi_insert_before (&gsi, sum, GSI_NEW_STMT);
-       }
-       else
-@@ -878,7 +878,7 @@
-     {
-       if (gimple_code (op1def) == GIMPLE_PHI)
-       {
--        gsi = gsi_start_bb (gimple_bb (op1def));
-+        gsi = gsi_after_labels (gimple_bb (op1def));
-         gsi_insert_before (&gsi, sum, GSI_NEW_STMT);
-       }
-       else
-Index: gcc/config/alpha/predicates.md
-===================================================================
---- gcc/config/alpha/predicates.md     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/alpha/predicates.md     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -439,9 +439,11 @@
-        (match_code "mem"))
- {
-   rtx base;
-+  int offset;
+       case GT:
+         do_jump_by_parts_greater_rtx (mode, 0, op0, op1,
+-                                      if_false_label, if_true_label);
++                                      if_false_label, if_true_label, prob);
+         break;
  
-   if (MEM_ALIGN (op) >= 32)
-     return 1;
-+
-   op = XEXP (op, 0);
+       case GE:
+         do_jump_by_parts_greater_rtx (mode, 0, op1, op0,
+-                                      if_true_label, if_false_label);
++                                      if_true_label, if_false_label,
++                                      inv (prob));
+         break;
+       case EQ:
+         do_jump_by_parts_equality_rtx (mode, op0, op1, if_false_label,
+-                                       if_true_label);
++                                       if_true_label, prob);
+         break;
+       case NE:
+         do_jump_by_parts_equality_rtx (mode, op0, op1, if_true_label,
+-                                       if_false_label);
++                                       if_false_label, inv (prob));
+         break;
  
-   /* LEGITIMIZE_RELOAD_ADDRESS creates (plus (plus reg const_hi) const_lo)
-@@ -449,14 +451,29 @@
-   if (reload_in_progress
-       && GET_CODE (op) == PLUS
-       && GET_CODE (XEXP (op, 0)) == PLUS)
--    base = XEXP (XEXP (op, 0), 0);
+       default:
+@@ -939,8 +976,32 @@
+       }
+     }
+   else
+-    emit_cmp_and_jump_insns (op0, op1, code, size, mode, unsignedp,
+-                           if_true_label);
 +    {
-+      base = XEXP (XEXP (op, 0), 0);
-+      offset = INTVAL (XEXP (op, 1));
++      rtx last = get_last_insn ();
++      emit_cmp_and_jump_insns (op0, op1, code, size, mode, unsignedp,
++                             if_true_label);
++      if (prob != -1 && profile_status != PROFILE_ABSENT)
++       {
++       for (last = NEXT_INSN (last);
++            last && NEXT_INSN (last);
++            last = NEXT_INSN (last))
++         if (JUMP_P (last))
++           break;
++       if (!last
++           || !JUMP_P (last)
++           || NEXT_INSN (last)
++           || !any_condjump_p (last))
++         {
++           if (dump_file)
++             fprintf (dump_file, "Failed to add probability note\n");
++         }
++       else
++         {
++           gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
++           add_reg_note (last, REG_BR_PROB, GEN_INT (prob));
++         }
++       }
 +    }
-   else
-     {
-       if (! memory_address_p (mode, op))
-       return 0;
--      base = (GET_CODE (op) == PLUS ? XEXP (op, 0) : op);
-+      if (GET_CODE (op) == PLUS)
-+      {
-+        base = XEXP (op, 0);
-+        offset = INTVAL (XEXP (op, 1));
-+      }
-+      else
-+      {
-+        base = op;
-+        offset = 0;
-+      }
+   if (if_false_label)
+     emit_jump (if_false_label);
+@@ -961,7 +1022,7 @@
+ static void
+ do_compare_and_jump (tree exp, enum rtx_code signed_code,
+                    enum rtx_code unsigned_code, rtx if_false_label,
+-                   rtx if_true_label)
++                   rtx if_true_label, int prob)
+ {
+   rtx op0, op1;
+   tree type;
+@@ -1022,7 +1083,7 @@
+   do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode,
+                            ((mode == BLKmode)
+                             ? expr_size (TREE_OPERAND (exp, 0)) : NULL_RTX),
+-                           if_false_label, if_true_label);
++                           if_false_label, if_true_label, prob);
+ }
+ #include "gt-dojump.h"
+Index: gcc/ipa-inline.c
+===================================================================
+--- gcc/ipa-inline.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/ipa-inline.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1418,7 +1418,10 @@
      }
  
-+  if (offset % GET_MODE_SIZE (mode))
-+    return 0;
-+
-   return (GET_CODE (base) == REG && REGNO_POINTER_ALIGN (REGNO (base)) >= 32);
- })
+   /* Now do the automatic inlining.  */
+-  if (mode != INLINE_ALL && mode != INLINE_ALWAYS_INLINE)
++  if (mode != INLINE_ALL && mode != INLINE_ALWAYS_INLINE
++      /* Never inline regular functions into always-inline functions
++       during incremental inlining.  */
++      && !node->local.disregard_inline_limits)
+     for (e = node->callees; e; e = e->next_callee)
+       {
+       if (!e->callee->local.inlinable
+@@ -1606,17 +1609,17 @@
+   node->global.stack_frame_offset = 0;
  
-@@ -467,9 +484,11 @@
-        (match_code "mem"))
- {
-   rtx base;
-+  int offset;
+   /* Can this function be inlined at all?  */
+-  node->local.inlinable = tree_inlinable_function_p (current_function_decl);
++  node->local.inlinable = tree_inlinable_function_p (node->decl);
  
-   if (MEM_ALIGN (op) >= 32)
-     return 0;
-+
-   op = XEXP (op, 0);
+   /* Estimate the number of instructions for this function.
+      ??? At -O0 we don't use this information except for the dumps, and
+        even then only for always_inline functions.  But disabling this
+        causes ICEs in the inline heuristics...  */
+   inline_summary (node)->self_insns
+-      = estimate_num_insns_fn (current_function_decl, &eni_inlining_weights);
++      = estimate_num_insns_fn (node->decl, &eni_inlining_weights);
+   if (node->local.inlinable && !node->local.disregard_inline_limits)
+     node->local.disregard_inline_limits
+-      = DECL_DISREGARD_INLINE_LIMITS (current_function_decl);
++      = DECL_DISREGARD_INLINE_LIMITS (node->decl);
  
-   /* LEGITIMIZE_RELOAD_ADDRESS creates (plus (plus reg const_hi) const_lo)
-@@ -477,14 +496,29 @@
-   if (reload_in_progress
-       && GET_CODE (op) == PLUS
-       && GET_CODE (XEXP (op, 0)) == PLUS)
--    base = XEXP (XEXP (op, 0), 0);
-+    {
-+      base = XEXP (XEXP (op, 0), 0);
-+      offset = INTVAL (XEXP (op, 1));
-+    }
-   else
-     {
-       if (! memory_address_p (mode, op))
-       return 0;
--      base = (GET_CODE (op) == PLUS ? XEXP (op, 0) : op);
-+      if (GET_CODE (op) == PLUS)
-+      {
-+        base = XEXP (op, 0);
-+        offset = INTVAL (XEXP (op, 1));
-+      }
-+      else
-+      {
-+        base = op;
-+        offset = 0;
-+      }
-     }
+   /* Inlining characteristics are maintained by the cgraph_mark_inline.  */
+   node->global.insns = inline_summary (node)->self_insns;
+Index: gcc/dwarf2out.c
+===================================================================
+--- gcc/dwarf2out.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/dwarf2out.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -13222,7 +13222,9 @@
+   int i;
  
-+  if (offset % GET_MODE_SIZE (mode))
-+    return 1;
-+
-   return (GET_CODE (base) == REG && REGNO_POINTER_ALIGN (REGNO (base)) < 32);
- })
+   for (i = VEC_length (tree, incomplete_types) - 1; i >= 0; i--)
+-    gen_type_die (VEC_index (tree, incomplete_types, i), comp_unit_die);
++    if (should_emit_struct_debug (VEC_index (tree, incomplete_types, i),
++                                DINFO_USAGE_DIR_USE))
++      gen_type_die (VEC_index (tree, incomplete_types, i), comp_unit_die);
+ }
  
-Index: gcc/config/alpha/alpha.c
+ /* Determine what tag to use for a record type.  */
+Index: gcc/expr.c
 ===================================================================
---- gcc/config/alpha/alpha.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/alpha/alpha.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -391,7 +391,7 @@
-           break;
-         }
-       if (! cpu_table [i].name)
--      error ("bad value %qs for -mcpu switch", alpha_tune_string);
-+      error ("bad value %qs for -mtune switch", alpha_tune_string);
-     }
+--- gcc/expr.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/expr.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -4483,7 +4483,7 @@
+       do_pending_stack_adjust ();
+       NO_DEFER_POP;
+-      jumpifnot (TREE_OPERAND (exp, 0), lab1);
++      jumpifnot (TREE_OPERAND (exp, 0), lab1, -1);
+       store_expr (TREE_OPERAND (exp, 1), target, call_param_p,
+                 nontemporal);
+       emit_jump_insn (gen_jump (lab2));
+@@ -5503,7 +5503,7 @@
+                   /* Generate a conditional jump to exit the loop.  */
+                   exit_cond = build2 (LT_EXPR, integer_type_node,
+                                       index, hi_index);
+-                  jumpif (exit_cond, loop_end);
++                  jumpif (exit_cond, loop_end, -1);
  
-   /* Do some sanity checks on the above options.  */
-@@ -1457,6 +1457,10 @@
-   else
-     offset = disp & 3;
+                   /* Update the loop counter, and jump to the head of
+                      the loop.  */
+@@ -8974,7 +8974,8 @@
  
-+  /* The location should not cross aligned word boundary.  */
-+  gcc_assert (offset + GET_MODE_SIZE (GET_MODE (ref))
-+            <= GET_MODE_SIZE (SImode));
-+
-   /* Access the entire aligned word.  */
-   *paligned_mem = widen_memory_access (ref, SImode, -offset);
+       temp = gen_label_rtx ();
+       do_compare_rtx_and_jump (target, cmpop1, comparison_code,
+-                               unsignedp, mode, NULL_RTX, NULL_RTX, temp);
++                               unsignedp, mode, NULL_RTX, NULL_RTX, temp,
++                               -1);
+       }
+       emit_move_insn (target, op1);
+       emit_label (temp);
+@@ -9125,7 +9126,7 @@
+       emit_move_insn (target, const0_rtx);
  
-Index: gcc/config/alpha/alpha.md
-===================================================================
---- gcc/config/alpha/alpha.md  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/alpha/alpha.md  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -4350,7 +4350,7 @@
-                (match_dup 4)))]
- {
-   if (can_create_pseudo_p ())
--    operands[5] = gen_reg_rtx (DImode);
-+    operands[5] = gen_reg_rtx (SImode);
-   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
-     operands[5] = operands[0];
- })
-@@ -4376,9 +4376,9 @@
-                                (match_dup 4))))]
- {
-   if (can_create_pseudo_p ())
--    operands[5] = gen_reg_rtx (DImode);
-+    operands[5] = gen_reg_rtx (SImode);
-   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
--    operands[5] = operands[0];
-+    operands[5] = gen_lowpart (SImode, operands[0]);
- })
+       op1 = gen_label_rtx ();
+-      jumpifnot (exp, op1);
++      jumpifnot (exp, op1, -1);
  
- (define_insn_and_split "*cmp_ssub_di"
-@@ -4426,7 +4426,7 @@
-                (match_dup 4)))]
- {
-   if (can_create_pseudo_p ())
--    operands[5] = gen_reg_rtx (DImode);
-+    operands[5] = gen_reg_rtx (SImode);
-   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
-     operands[5] = operands[0];
- })
-@@ -4452,9 +4452,9 @@
-                                 (match_dup 4))))]
- {
-   if (can_create_pseudo_p ())
--    operands[5] = gen_reg_rtx (DImode);
-+    operands[5] = gen_reg_rtx (SImode);
-   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
--    operands[5] = operands[0];
-+    operands[5] = gen_lowpart (SImode, operands[0]);
- })
\f
- ;; Here are the CALL and unconditional branch insns.  Calls on NT and OSF
-Index: gcc/config/s390/s390.c
+       if (target)
+       emit_move_insn (target, const1_rtx);
+@@ -9194,7 +9195,7 @@
+        NO_DEFER_POP;
+        op0 = gen_label_rtx ();
+        op1 = gen_label_rtx ();
+-       jumpifnot (TREE_OPERAND (exp, 0), op0);
++       jumpifnot (TREE_OPERAND (exp, 0), op0, -1);
+        store_expr (TREE_OPERAND (exp, 1), temp,
+                 modifier == EXPAND_STACK_PARM,
+                 false);
+@@ -9240,7 +9241,7 @@
+           int value = TREE_CODE (rhs) == BIT_IOR_EXPR;
+           do_jump (TREE_OPERAND (rhs, 1),
+                    value ? label : 0,
+-                   value ? 0 : label);
++                   value ? 0 : label, -1);
+           expand_assignment (lhs, build_int_cst (TREE_TYPE (rhs), value),
+                              MOVE_NONTEMPORAL (exp));
+           do_pending_stack_adjust ();
+@@ -9924,7 +9925,7 @@
+   emit_move_insn (target, invert ? const0_rtx : const1_rtx);
+   label = gen_label_rtx ();
+   do_compare_rtx_and_jump (op0, op1, code, unsignedp, operand_mode, NULL_RTX,
+-                         NULL_RTX, label);
++                         NULL_RTX, label, -1);
+   emit_move_insn (target, invert ? const1_rtx : const0_rtx);
+   emit_label (label);
+Index: gcc/expr.h
 ===================================================================
---- gcc/config/s390/s390.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/s390/s390.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -224,6 +224,9 @@
- extern int reload_completed;
-+/* Kept up to date using the SCHED_VARIABLE_ISSUE hook.  */
-+static rtx last_scheduled_insn;
-+
- /* Save information from a "cmpxx" operation until the branch or scc is
-    emitted.  */
- rtx s390_compare_op0, s390_compare_op1;
-@@ -9799,9 +9802,12 @@
-   if (!REG_P (*op0) || !REG_P (*op1))
-     return false;
-+  if (GET_MODE_CLASS (GET_MODE (*op0)) != MODE_INT)
-+    return false;
-+
-   /* Swap the COMPARE arguments and its mask if there is a
-      conflicting access in the previous insn.  */
--  prev_insn = PREV_INSN (insn);
-+  prev_insn = prev_active_insn (insn);
-   if (prev_insn != NULL_RTX && INSN_P (prev_insn)
-       && reg_referenced_p (*op1, PATTERN (prev_insn)))
-     s390_swap_cmp (cond, op0, op1, insn);
-@@ -9812,7 +9818,7 @@
-      the operands, or if swapping them would cause a conflict
-      with the previous insn, issue a NOP after the COMPARE in
-      order to separate the two instuctions.  */
--  next_insn = NEXT_INSN (insn);
-+  next_insn = next_active_insn (insn);
-   if (next_insn != NULL_RTX && INSN_P (next_insn)
-       && s390_non_addr_reg_read_p (*op1, next_insn))
-     {
-@@ -9970,7 +9976,128 @@
-     }
- }
+--- gcc/expr.h (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/expr.h (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Definitions for code generation pass of GNU compiler.
+    Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
  
-+/* Return true if INSN is a fp load insn writing register REGNO.  */
-+static inline bool
-+s390_fpload_toreg (rtx insn, unsigned int regno)
-+{
-+  rtx set;
-+  enum attr_type flag = s390_safe_attr_type (insn);
+ This file is part of GCC.
+@@ -564,20 +564,20 @@
+ extern tree string_constant (tree, tree *);
  
-+  if (flag != TYPE_FLOADSF && flag != TYPE_FLOADDF)
-+    return false;
-+
-+  set = single_set (insn);
-+
-+  if (set == NULL_RTX)
-+    return false;
-+
-+  if (!REG_P (SET_DEST (set)) || !MEM_P (SET_SRC (set)))
-+    return false;
-+
-+  if (REGNO (SET_DEST (set)) != regno)
-+    return false;
-+
-+  return true;
-+}
-+
-+/* This value describes the distance to be avoided between an
-+   aritmetic fp instruction and an fp load writing the same register.
-+   Z10_EARLYLOAD_DISTANCE - 1 as well as Z10_EARLYLOAD_DISTANCE + 1 is
-+   fine but the exact value has to be avoided. Otherwise the FP
-+   pipeline will throw an exception causing a major penalty.  */
-+#define Z10_EARLYLOAD_DISTANCE 7
-+
-+/* Rearrange the ready list in order to avoid the situation described
-+   for Z10_EARLYLOAD_DISTANCE.  A problematic load instruction is
-+   moved to the very end of the ready list.  */
-+static void
-+s390_z10_prevent_earlyload_conflicts (rtx *ready, int *nready_p)
-+{
-+  unsigned int regno;
-+  int nready = *nready_p;
-+  rtx tmp;
-+  int i;
-+  rtx insn;
-+  rtx set;
-+  enum attr_type flag;
-+  int distance;
-+
-+  /* Skip DISTANCE - 1 active insns.  */
-+  for (insn = last_scheduled_insn, distance = Z10_EARLYLOAD_DISTANCE - 1;
-+       distance > 0 && insn != NULL_RTX;
-+       distance--, insn = prev_active_insn (insn))
-+    if (CALL_P (insn) || JUMP_P (insn))
-+      return;
-+
-+  if (insn == NULL_RTX)
-+    return;
-+
-+  set = single_set (insn);
-+
-+  if (set == NULL_RTX || !REG_P (SET_DEST (set))
-+      || GET_MODE_CLASS (GET_MODE (SET_DEST (set))) != MODE_FLOAT)
-+    return;
-+
-+  flag = s390_safe_attr_type (insn);
-+
-+  if (flag == TYPE_FLOADSF || flag == TYPE_FLOADDF)
-+    return;
-+
-+  regno = REGNO (SET_DEST (set));
-+  i = nready - 1;
-+
-+  while (!s390_fpload_toreg (ready[i], regno) && i > 0)
-+    i--;
-+
-+  if (!i)
-+    return;
-+
-+  tmp = ready[i];
-+  memmove (&ready[1], &ready[0], sizeof (rtx) * i);
-+  ready[0] = tmp;
-+}
-+
-+/* This function is called via hook TARGET_SCHED_REORDER before
-+   issueing one insn from list READY which contains *NREADYP entries.
-+   For target z10 it reorders load instructions to avoid early load
-+   conflicts in the floating point pipeline  */
-+static int
-+s390_sched_reorder (FILE *file ATTRIBUTE_UNUSED, int verbose ATTRIBUTE_UNUSED,
-+                  rtx *ready, int *nreadyp, int clock ATTRIBUTE_UNUSED)
-+{
-+  if (s390_tune == PROCESSOR_2097_Z10)
-+    if (reload_completed && *nreadyp > 1)
-+      s390_z10_prevent_earlyload_conflicts (ready, nreadyp);
-+
-+  return s390_issue_rate ();
-+}
-+
-+/* This function is called via hook TARGET_SCHED_VARIABLE_ISSUE after
-+   the scheduler has issued INSN.  It stores the last issued insn into
-+   last_scheduled_insn in order to make it available for
-+   s390_sched_reorder.  */
-+static int
-+s390_sched_variable_issue (FILE *file ATTRIBUTE_UNUSED,
-+                           int verbose ATTRIBUTE_UNUSED,
-+                         rtx insn, int more)
-+{
-+  last_scheduled_insn = insn;
-+
-+  if (GET_CODE (PATTERN (insn)) != USE
-+      && GET_CODE (PATTERN (insn)) != CLOBBER)
-+    return more - 1;
-+  else
-+    return more;
-+}
-+
-+static void
-+s390_sched_init (FILE *file ATTRIBUTE_UNUSED,
-+               int verbose ATTRIBUTE_UNUSED,
-+               int max_ready ATTRIBUTE_UNUSED)
-+{
-+  last_scheduled_insn = NULL_RTX;
-+}
-+
- /* Initialize GCC target structure.  */
+ /* Generate code to evaluate EXP and jump to LABEL if the value is zero.  */
+-extern void jumpifnot (tree, rtx);
++extern void jumpifnot (tree, rtx, int);
  
- #undef  TARGET_ASM_ALIGNED_HI_OP
-@@ -10024,6 +10151,13 @@
- #undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD
- #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD s390_first_cycle_multipass_dfa_lookahead
-+#undef TARGET_SCHED_VARIABLE_ISSUE
-+#define TARGET_SCHED_VARIABLE_ISSUE s390_sched_variable_issue
-+#undef TARGET_SCHED_REORDER
-+#define TARGET_SCHED_REORDER s390_sched_reorder
-+#undef TARGET_SCHED_INIT
-+#define TARGET_SCHED_INIT s390_sched_init
-+
- #undef TARGET_CANNOT_COPY_INSN_P
- #define TARGET_CANNOT_COPY_INSN_P s390_cannot_copy_insn_p
- #undef TARGET_RTX_COSTS
-Index: gcc/config/s390/s390.md
-===================================================================
---- gcc/config/s390/s390.md    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/s390/s390.md    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1864,8 +1864,8 @@
- })
+ /* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
+-extern void jumpif (tree, rtx);
++extern void jumpif (tree, rtx, int);
  
- (define_insn "*movqi"
--  [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,T,Q,S")
--        (match_operand:QI 1 "general_operand" "d,n,R,T,d,d,n,n"))]
-+  [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,T,Q,S,?Q")
-+        (match_operand:QI 1 "general_operand"      " d,n,R,T,d,d,n,n,?Q"))]
-   ""
-   "@
-    lr\t%0,%1
-@@ -1875,9 +1875,10 @@
-    stc\t%1,%0
-    stcy\t%1,%0
-    mvi\t%S0,%b1
--   mviy\t%S0,%b1"
--  [(set_attr "op_type" "RR,RI,RX,RXY,RX,RXY,SI,SIY")
--   (set_attr "type" "lr,*,*,*,store,store,store,store")
-+   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,
-                         z10_fwd_A1,
-                         z10_super_E1,
-@@ -1885,7 +1886,8 @@
-                         z10_rec,
-                         z10_rec,
-                         z10_super,
--                        z10_super")])
-+                        z10_super,
-+                        *")])
+ /* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
+    the result is zero, or IF_TRUE_LABEL if the result is one.  */
+-extern void do_jump (tree, rtx, rtx);
++extern void do_jump (tree, rtx, rtx, int);
  
- (define_peephole2
-   [(set (match_operand:QI 0 "nonimmediate_operand" "")
-@@ -2262,6 +2264,22 @@
-   "mvc\t%O0(%2,%R0),%S1"
-   [(set_attr "op_type" "SS")])
+ /* Generate rtl to compare two rtx's, will call emit_cmp_insn.  */
+ extern rtx compare_from_rtx (rtx, rtx, enum rtx_code, int, enum machine_mode,
+                            rtx);
+ extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
+-                                   enum machine_mode, rtx, rtx, rtx);
++                                   enum machine_mode, rtx, rtx, rtx, int);
  
-+; This splitter converts a QI to QI mode copy into a BLK mode copy in
-+; order to have it implemented with mvc.
-+
-+(define_split
-+  [(set (match_operand:QI 0 "memory_operand" "")
-+        (match_operand:QI 1 "memory_operand" ""))]
-+  "reload_completed"
-+  [(parallel
-+    [(set (match_dup 0) (match_dup 1))
-+     (use (const_int 1))])]
-+{
-+  operands[0] = adjust_address (operands[0], BLKmode, 0);
-+  operands[1] = adjust_address (operands[1], BLKmode, 0);
-+})
+ /* Two different ways of generating switch statements.  */
+ extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx);
+Index: gcc/ada/ChangeLog
+===================================================================
+--- gcc/ada/ChangeLog  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/ada/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,10 @@
++2010-02-27  Eric Botcazou  <ebotcazou@adacore.com>
 +
++      PR ada/42253
++      * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Assert that fat
++      pointer base types are variant of each other.  Apply special treatment
++      for null to fat pointer types in all cases.
 +
- (define_peephole2
-   [(parallel
-     [(set (match_operand:BLK 0 "memory_operand" "")
-@@ -7049,21 +7067,6 @@
-    (set_attr "type"     "fsimp<mode>")])
- ;;
--;;- Copy sign instructions
--;;
--
--; cpsdr
--(define_insn "copysign<mode>3"
--  [(set (match_operand:FP 0 "register_operand" "=f")
--      (unspec:FP [(match_operand:FP 1 "register_operand" "<fT0>")
--                  (match_operand:FP 2 "register_operand" "f")]
--                  UNSPEC_COPYSIGN))]
--  "TARGET_DFP"
--  "cpsdr\t%0,%2,%1"
--  [(set_attr "op_type"  "RRF")
--   (set_attr "type"     "fsimp<mode>")])
--
--;;
- ;;- Square root instructions.
- ;;
-Index: gcc/config/s390/2097.md
-===================================================================
---- gcc/config/s390/2097.md    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/s390/2097.md    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -57,7 +57,8 @@
-                   z10_int_fr_A3"
-                   "z10_other_super, z10_other_super_c_E1, z10_other_super_E1, \
-                   z10_int_super, z10_int_super_E1, \
--                  z10_lr, z10_store_super")
-+                  z10_lr, z10_store_super"
-+                  " ! s390_agen_dep_p")
- ; Forwarding from z10_super to frz10_ and z10_rec.
-@@ -68,7 +69,8 @@
-                   z10_store_super"
-                   "z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
-                   z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
--                  z10_other_fr_E1, z10_store_rec")
-+                  z10_other_fr_E1, z10_store_rec"
-+                  " ! s390_agen_dep_p")
- ; Forwarding from z10_fwd and z10_fr to z10_rec and z10_fr.
-@@ -84,7 +86,8 @@
-                   z10_int_fr_A3"
-                   "z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
-                   z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
--                  z10_other_fr_E1, z10_store_rec")
-+                  z10_other_fr_E1, z10_store_rec"
-+                  " ! s390_agen_dep_p")
- ;
-@@ -205,16 +208,13 @@
-        (and (eq_attr "type" "lr")
-             (eq_attr "z10prop" "z10_fr")))
-   "z10_e1_ANY, z10_Gate_ANY")
--;  "z10_e1_ANY")
- (define_insn_reservation "z10_lr_fr_E1" 6
-   (and (eq_attr "cpu" "z10")
-        (and (eq_attr "type" "lr")
-             (eq_attr "z10prop" "z10_fr_E1")))
-   "z10_e1_ANY, z10_Gate_ANY")
--;  "z10_e1_ANY")
--
- (define_insn_reservation "z10_la" 6
-   (and (eq_attr "cpu" "z10")
-        (and (eq_attr "type" "la")
-@@ -227,14 +227,12 @@
-        (and (eq_attr "type" "la")
-             (eq_attr "z10prop" "z10_fwd")))
-   "z10_e1_ANY, z10_Gate_ANY")
--;  "z10_e1_ANY")
- (define_insn_reservation "z10_la_fwd_A1" 6
-   (and (eq_attr "cpu" "z10")
-        (and (eq_attr "type" "la")
-             (eq_attr "z10prop" "z10_fwd_A1")))
-   "z10_e1_ANY, z10_Gate_ANY")
--;  "z10_e1_ANY")
- ; larl-type instructions
-@@ -666,13 +664,14 @@
- ; Address-related bypasses
- ;
--; Here is the cycle diagram for Address-related bypasses:
-+; Here is the cycle diagram for address-related bypasses:
- ; ... G1 G2 G3 A0 A1 A2 A3 E1 P1 P2 P3 R0 ...
--;         ^  ^    ^     ^  ^
--;         |  |    |     |  E1-type bypasses provide the new addr AFTER this cycle
--;         |  |    |     A3-type bypasses provide the new addr AFTER this cycle
--;         |  |    A1-type bypasses provide the new addr AFTER this cycle
--;         |  AGI resolution, actual USE of address is DURING this cycle
-+;         ^  ^    ^     ^  ^        ^
-+;         |  |    |     |  |        without bypass, its available AFTER this cycle
-+;         |  |    |     |  E1-type bypasses provide the new value AFTER this cycle
-+;         |  |    |     A3-type bypasses provide the new value AFTER this cycle
-+;         |  |    A1-type bypasses provide the new value AFTER this cycle
-+;         |  AGI resolution, actual USE of new value is DURING this cycle
- ;         AGI detection
- (define_bypass 3 "z10_larl_A1, z10_la_fwd_A1, z10_other_fwd_A1, \
-@@ -682,7 +681,6 @@
-                   z10_cs, z10_stm, z10_other"
-                "s390_agen_dep_p")
+ 2010-01-21  Release Manager
  
--
- (define_bypass 5 "z10_larl_fwd_A3, z10_load_fwd_A3, z10_other_fwd_A3, \
-                   z10_other_fr_A3, z10_int_fwd_A3, z10_int_fr_A3"
-                  "z10_agen, z10_la, z10_branch, z10_call, z10_load, \
-@@ -699,8 +697,14 @@
-                   z10_cs, z10_stm, z10_other"
-                "s390_agen_dep_p")
-+(define_bypass 9 "z10_int_super, z10_int_fwd, z10_int_fr"
-+                 "z10_agen, z10_la, z10_branch, z10_call, z10_load, \
-+                  z10_store, \
-+                  z10_cs, z10_stm, z10_other"
-+               "s390_agen_dep_p")
-+
- ;
- ; Try to avoid transitions between DFU-, BFU- and FXU-executed instructions as there is a
- ; dispatch delay required.
-Index: gcc/config/spu/spu-protos.h
-===================================================================
---- gcc/config/spu/spu-protos.h        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/spu-protos.h        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -51,6 +51,8 @@
- extern int iohl_immediate_p (rtx op, enum machine_mode mode);
- extern int arith_immediate_p (rtx op, enum machine_mode mode,
-                             HOST_WIDE_INT low, HOST_WIDE_INT high);
-+extern bool exp2_immediate_p (rtx op, enum machine_mode mode, int low,
-+                            int high);
- extern int spu_constant_address_p (rtx x);
- extern int spu_legitimate_constant_p (rtx x);
- extern int spu_legitimate_address (enum machine_mode mode, rtx x,
-@@ -64,17 +66,16 @@
-                                       tree type, int *pretend_size,
-                                       int no_rtl);
- extern void spu_conditional_register_usage (void);
--extern int aligned_mem_p (rtx mem);
- extern int spu_expand_mov (rtx * ops, enum machine_mode mode);
--extern void spu_split_load (rtx * ops);
--extern void spu_split_store (rtx * ops);
--extern int spu_valid_move (rtx * ops);
-+extern int spu_split_load (rtx * ops);
-+extern int spu_split_store (rtx * ops);
- extern int fsmbi_const_p (rtx x);
- extern int cpat_const_p (rtx x, enum machine_mode mode);
- extern rtx gen_cpat_const (rtx * ops);
- extern void constant_to_array (enum machine_mode mode, rtx x,
-                              unsigned char *arr);
- extern rtx array_to_constant (enum machine_mode mode, unsigned char *arr);
-+extern rtx spu_gen_exp2 (enum machine_mode mode, rtx x);
- extern void spu_allocate_stack (rtx op0, rtx op1);
- extern void spu_restore_stack_nonlocal (rtx op0, rtx op1);
- extern void spu_restore_stack_block (rtx op0, rtx op1);
-@@ -88,6 +89,7 @@
- extern void spu_expand_sign_extend (rtx ops[]);
- extern void spu_expand_vector_init (rtx target, rtx vals);
- extern void spu_init_expanders (void);
-+extern void spu_split_convert (rtx *);
- /* spu-c.c */
- extern tree spu_resolve_overloaded_builtin (tree fndecl, tree fnargs);
-Index: gcc/config/spu/predicates.md
-===================================================================
---- gcc/config/spu/predicates.md       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/predicates.md       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -39,14 +39,14 @@
-        (ior (not (match_code "subreg"))
-             (match_test "valid_subreg (op)"))))
--(define_predicate "spu_mem_operand"
--  (and (match_operand 0 "memory_operand")
--       (match_test "reload_in_progress || reload_completed || aligned_mem_p (op)")))
--
- (define_predicate "spu_mov_operand"
--  (ior (match_operand 0 "spu_mem_operand")
-+  (ior (match_operand 0 "memory_operand")
-        (match_operand 0 "spu_nonmem_operand")))
-+(define_predicate "spu_dest_operand"
-+  (ior (match_operand 0 "memory_operand")
-+       (match_operand 0 "spu_reg_operand")))
-+
- (define_predicate "call_operand"
-   (and (match_code "mem")
-        (match_test "(!TARGET_LARGE_MEM && satisfies_constraint_S (op))
-@@ -104,3 +104,19 @@
-        (ior (match_test "GET_MODE (XEXP (op, 0)) == HImode")
-           (match_test "GET_MODE (XEXP (op, 0)) == SImode"))))
-+(define_predicate "spu_inv_exp2_operand"
-+  (and (match_code "const_double,const_vector")
-+       (and (match_operand 0 "immediate_operand")
-+          (match_test "exp2_immediate_p (op, mode, -126, 0)"))))
-+
-+(define_predicate "spu_exp2_operand"
-+  (and (match_code "const_double,const_vector")
-+       (and (match_operand 0 "immediate_operand")
-+          (match_test "exp2_immediate_p (op, mode, 0, 127)"))))
-+
-+(define_predicate "shiftrt_operator"
-+  (match_code "lshiftrt,ashiftrt"))
-+
-+(define_predicate "extend_operator"
-+  (match_code "sign_extend,zero_extend"))
-+
-Index: gcc/config/spu/spu.c
-===================================================================
---- gcc/config/spu/spu.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/spu.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -189,9 +189,9 @@
- static void spu_va_start (tree, rtx);
- static tree spu_gimplify_va_arg_expr (tree valist, tree type,
-                                     gimple_seq * pre_p, gimple_seq * post_p);
--static int regno_aligned_for_load (int regno);
- static int store_with_one_insn_p (rtx mem);
- static int mem_is_padded_component_ref (rtx x);
-+static int reg_aligned_for_addr (rtx x);
- static bool spu_assemble_integer (rtx x, unsigned int size, int aligned_p);
- static void spu_asm_globalize_label (FILE * file, const char *name);
- static unsigned char spu_rtx_costs (rtx x, int code, int outer_code,
-@@ -210,6 +210,7 @@
- static int spu_sms_res_mii (struct ddg *g);
- static void asm_file_start (void);
- static unsigned int spu_section_type_flags (tree, const char *, int);
-+static rtx spu_expand_load (rtx, rtx, rtx, int);
- extern const char *reg_names[];
- rtx spu_compare_op0, spu_compare_op1;
-@@ -576,66 +577,85 @@
- void
- spu_expand_extv (rtx ops[], int unsignedp)
- {
-+  rtx dst = ops[0], src = ops[1];
-   HOST_WIDE_INT width = INTVAL (ops[2]);
-   HOST_WIDE_INT start = INTVAL (ops[3]);
--  HOST_WIDE_INT src_size, dst_size;
--  enum machine_mode src_mode, dst_mode;
--  rtx dst = ops[0], src = ops[1];
--  rtx s;
-+  HOST_WIDE_INT align_mask;
-+  rtx s0, s1, mask, r0;
--  dst = adjust_operand (ops[0], 0);
--  dst_mode = GET_MODE (dst);
--  dst_size = GET_MODE_BITSIZE (GET_MODE (dst));
-+  gcc_assert (REG_P (dst) && GET_MODE (dst) == TImode);
--  src = adjust_operand (src, &start);
--  src_mode = GET_MODE (src);
--  src_size = GET_MODE_BITSIZE (GET_MODE (src));
-+  if (MEM_P (src))
-+    {
-+      /* First, determine if we need 1 TImode load or 2.  We need only 1
-+         if the bits being extracted do not cross the alignment boundary
-+         as determined by the MEM and its address. */
+       * GCC 4.4.3 released.
+Index: gcc/ada/gcc-interface/utils2.c
+===================================================================
+--- gcc/ada/gcc-interface/utils2.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/ada/gcc-interface/utils2.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -879,26 +879,28 @@
+         return result;
+       }
  
--  if (start > 0)
--    {
--      s = gen_reg_rtx (src_mode);
--      switch (src_mode)
-+      align_mask = -MEM_ALIGN (src);
-+      if ((start & align_mask) == ((start + width - 1) & align_mask))
+-      /* Otherwise, the base types must be the same unless the objects are
+-       fat pointers or records.  If we have records, use the best type and
+-       convert both operands to that type.  */
++      /* Otherwise, the base types must be the same, unless they are both fat
++       pointer types or record types.  In the latter case, use the best type
++       and convert both operands to that type.  */
+       if (left_base_type != right_base_type)
        {
--      case SImode:
--        emit_insn (gen_ashlsi3 (s, src, GEN_INT (start)));
--        break;
--      case DImode:
--        emit_insn (gen_ashldi3 (s, src, GEN_INT (start)));
--        break;
--      case TImode:
--        emit_insn (gen_ashlti3 (s, src, GEN_INT (start)));
--        break;
--      default:
--        abort ();
-+        /* Alignment is sufficient for 1 load. */
-+        s0 = gen_reg_rtx (TImode);
-+        r0 = spu_expand_load (s0, 0, src, start / 8);
-+        start &= 7;
-+        if (r0)
-+          emit_insn (gen_rotqby_ti (s0, s0, r0));
-       }
--      src = s;
-+      else
-+      {
-+        /* Need 2 loads. */
-+        s0 = gen_reg_rtx (TImode);
-+        s1 = gen_reg_rtx (TImode);
-+        r0 = spu_expand_load (s0, s1, src, start / 8);
-+        start &= 7;
-+
-+        gcc_assert (start + width <= 128);
-+        if (r0)
+         if (TYPE_FAT_POINTER_P (left_base_type)
+-            && TYPE_FAT_POINTER_P (right_base_type)
+-            && TYPE_MAIN_VARIANT (left_base_type)
+-               == TYPE_MAIN_VARIANT (right_base_type))
+-          best_type = left_base_type;
++            && TYPE_FAT_POINTER_P (right_base_type))
 +          {
-+            rtx r1 = gen_reg_rtx (SImode);
-+            mask = gen_reg_rtx (TImode);
-+            emit_move_insn (mask, GEN_INT (-1));
-+            emit_insn (gen_rotqby_ti (s0, s0, r0));
-+            emit_insn (gen_rotqby_ti (s1, s1, r0));
-+            if (GET_CODE (r0) == CONST_INT)
-+              r1 = GEN_INT (INTVAL (r0) & 15);
-+            else
-+              emit_insn (gen_andsi3 (r1, r0, GEN_INT (15)));
-+            emit_insn (gen_shlqby_ti (mask, mask, r1));
-+            emit_insn (gen_selb (s0, s1, s0, mask));
++            gcc_assert (TYPE_MAIN_VARIANT (left_base_type)
++                        == TYPE_MAIN_VARIANT (right_base_type));
++            best_type = left_base_type;
 +          }
-+      }
 +
-     }
-+  else if (GET_CODE (src) == SUBREG)
-+    {
-+      rtx r = SUBREG_REG (src);
-+      gcc_assert (REG_P (r) && SCALAR_INT_MODE_P (GET_MODE (r)));
-+      s0 = gen_reg_rtx (TImode);
-+      if (GET_MODE_SIZE (GET_MODE (r)) < GET_MODE_SIZE (TImode))
-+      emit_insn (gen_rtx_SET (VOIDmode, s0, gen_rtx_ZERO_EXTEND (TImode, r)));
-+      else
-+      emit_move_insn (s0, src);
-+    }
-+  else
-+    {
-+      gcc_assert (REG_P (src) && GET_MODE (src) == TImode);
-+      s0 = gen_reg_rtx (TImode);
-+      emit_move_insn (s0, src);
-+    }
+         else if (TREE_CODE (left_base_type) == RECORD_TYPE
+                  && TREE_CODE (right_base_type) == RECORD_TYPE)
+           {
+-            /* The only way these are permitted to be the same is if both
+-               types have the same name.  In that case, one of them must
+-               not be self-referential.  Use that one as the best type.
+-               Even better is if one is of fixed size.  */
++            /* The only way this is permitted is if both types have the same
++               name.  In that case, one of them must not be self-referential.
++               Use it as the best type.  Even better with a fixed size.  */
+             gcc_assert (TYPE_NAME (left_base_type)
+-                        && (TYPE_NAME (left_base_type)
+-                            == TYPE_NAME (right_base_type)));
++                        && TYPE_NAME (left_base_type)
++                           == TYPE_NAME (right_base_type));
  
--  if (width < src_size)
-+  /* Now s0 is TImode and contains the bits to extract at start. */
-+
-+  if (start)
-+    emit_insn (gen_rotlti3 (s0, s0, GEN_INT (start)));
+             if (TREE_CONSTANT (TYPE_SIZE (left_base_type)))
+               best_type = left_base_type;
+@@ -911,34 +913,34 @@
+             else
+               gcc_unreachable ();
+           }
 +
-+  if (128 - width)
-     {
--      rtx pat;
--      int icode;
--      switch (src_mode)
+         else
+           gcc_unreachable ();
+         left_operand = convert (best_type, left_operand);
+         right_operand = convert (best_type, right_operand);
+       }
+-
+-      /* If we are comparing a fat pointer against zero, we need to
+-       just compare the data pointer.  */
+-      else if (TYPE_FAT_POINTER_P (left_base_type)
+-             && TREE_CODE (right_operand) == CONSTRUCTOR
+-             && integer_zerop (VEC_index (constructor_elt,
+-                                          CONSTRUCTOR_ELTS (right_operand),
+-                                          0)
+-                               ->value))
 -      {
--      case SImode:
--        icode = unsignedp ? CODE_FOR_lshrsi3 : CODE_FOR_ashrsi3;
--        break;
--      case DImode:
--        icode = unsignedp ? CODE_FOR_lshrdi3 : CODE_FOR_ashrdi3;
--        break;
--      case TImode:
--        icode = unsignedp ? CODE_FOR_lshrti3 : CODE_FOR_ashrti3;
--        break;
--      default:
--        abort ();
+-        right_operand = build_component_ref (left_operand, NULL_TREE,
+-                                             TYPE_FIELDS (left_base_type),
+-                                             false);
+-        left_operand = convert (TREE_TYPE (right_operand),
+-                                integer_zero_node);
 -      }
--      s = gen_reg_rtx (src_mode);
--      pat = GEN_FCN (icode) (s, src, GEN_INT (src_size - width));
--      emit_insn (pat);
--      src = s;
-+      tree c = build_int_cst (NULL_TREE, 128 - width);
-+      s0 = expand_shift (RSHIFT_EXPR, TImode, s0, c, s0, unsignedp);
-     }
--  convert_move (dst, src, unsignedp);
-+  emit_move_insn (dst, s0);
- }
- void
-@@ -728,38 +748,41 @@
-     }
-   if (GET_CODE (ops[0]) == MEM)
-     {
--      rtx aligned = gen_reg_rtx (SImode);
-       rtx low = gen_reg_rtx (SImode);
--      rtx addr = gen_reg_rtx (SImode);
-       rtx rotl = gen_reg_rtx (SImode);
-       rtx mask0 = gen_reg_rtx (TImode);
-+      rtx addr;
-+      rtx addr0;
-+      rtx addr1;
-       rtx mem;
--      emit_move_insn (addr, XEXP (ops[0], 0));
--      emit_insn (gen_andsi3 (aligned, addr, GEN_INT (-16)));
-+      addr = force_reg (Pmode, XEXP (ops[0], 0));
-+      addr0 = gen_rtx_AND (Pmode, addr, GEN_INT (-16));
-       emit_insn (gen_andsi3 (low, addr, GEN_INT (15)));
-       emit_insn (gen_negsi2 (rotl, low));
-       emit_insn (gen_rotqby_ti (shift_reg, shift_reg, rotl));
-       emit_insn (gen_rotqmby_ti (mask0, mask, rotl));
--      mem = change_address (ops[0], TImode, aligned);
-+      mem = change_address (ops[0], TImode, addr0);
-       set_mem_alias_set (mem, 0);
-       emit_move_insn (dst, mem);
-       emit_insn (gen_selb (dst, dst, shift_reg, mask0));
--      emit_move_insn (mem, dst);
-       if (start + width > MEM_ALIGN (ops[0]))
+       else
        {
-         rtx shl = gen_reg_rtx (SImode);
-         rtx mask1 = gen_reg_rtx (TImode);
-         rtx dst1 = gen_reg_rtx (TImode);
-         rtx mem1;
-+        addr1 = plus_constant (addr, 16);
-+        addr1 = gen_rtx_AND (Pmode, addr1, GEN_INT (-16));
-         emit_insn (gen_subsi3 (shl, GEN_INT (16), low));
-         emit_insn (gen_shlqby_ti (mask1, mask, shl));
--        mem1 = adjust_address (mem, TImode, 16);
-+        mem1 = change_address (ops[0], TImode, addr1);
-         set_mem_alias_set (mem1, 0);
-         emit_move_insn (dst1, mem1);
-         emit_insn (gen_selb (dst1, dst1, shift_reg, mask1));
-         emit_move_insn (mem1, dst1);
+         left_operand = convert (left_base_type, left_operand);
+         right_operand = convert (right_base_type, right_operand);
        }
-+      emit_move_insn (mem, dst);
-     }
-   else
-     emit_insn (gen_selb (dst, copy_rtx (dst), shift_reg, mask));
-@@ -1585,6 +1608,13 @@
-       output_addr_const (file, GEN_INT (val));
-       return;
  
-+    case 'v':
-+    case 'w':
-+      constant_to_array (mode, x, arr);
-+      val = (((arr[0] << 1) + (arr[1] >> 7)) & 0xff) - 127;
-+      output_addr_const (file, GEN_INT (code == 'w' ? -val : val));
-+      return;
++      /* If we are comparing a fat pointer against zero, we just need to
++       compare the data pointer.  */
++      if (TYPE_FAT_POINTER_P (left_base_type)
++        && TREE_CODE (right_operand) == CONSTRUCTOR
++        && integer_zerop (VEC_index (constructor_elt,
++                                     CONSTRUCTOR_ELTS (right_operand),
++                                     0)->value))
++      {
++        left_operand
++          = build_component_ref (left_operand, NULL_TREE,
++                                 TYPE_FIELDS (left_base_type), false);
++        right_operand
++          = convert (TREE_TYPE (left_operand), integer_zero_node);
++      }
 +
-     case 0:
-       if (xcode == REG)
-       fprintf (file, "%s", reg_names[REGNO (x)]);
-@@ -1597,7 +1627,7 @@
-       return;
-       /* unused letters
--                    o qr  uvw yz
-+                    o qr  u   yz
-       AB            OPQR  UVWXYZ */
-     default:
-       output_operand_lossage ("invalid %%xn code");
-@@ -1618,6 +1648,8 @@
-   rtx pic_reg = pic_offset_table_rtx;
-   if (!reload_completed && !reload_in_progress)
-     abort ();
-+  if (current_function_is_leaf && !df_regs_ever_live_p (LAST_ARG_REGNUM))
-+    pic_reg = gen_rtx_REG (SImode, LAST_ARG_REGNUM);
-   return pic_reg;
- }
-@@ -2765,6 +2797,25 @@
-   pad_bb ();
-+  for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
-+    if (NONJUMP_INSN_P (insn) && INSN_CODE (insn) == CODE_FOR_hbr)
-+      {
-+      /* Adjust the LABEL_REF in a hint when we have inserted a nop
-+         between its branch label and the branch .  We don't move the
-+         label because GCC expects it at the beginning of the block. */
-+      rtx unspec = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
-+      rtx label_ref = XVECEXP (unspec, 0, 0);
-+      rtx label = XEXP (label_ref, 0);
-+      rtx branch;
-+      int offset = 0;
-+      for (branch = NEXT_INSN (label);
-+           !JUMP_P (branch) && !CALL_P (branch);
-+           branch = NEXT_INSN (branch))
-+        if (NONJUMP_INSN_P (branch))
-+          offset += get_attr_length (branch);
-+      if (offset > 0)
-+        XVECEXP (unspec, 0, 0) = plus_constant (label_ref, offset);
-+      }
-   if (spu_flag_var_tracking)
-     {
-@@ -2972,7 +3023,7 @@
-       insn = ready[i];
-       if (INSN_CODE (insn) == -1
-         || INSN_CODE (insn) == CODE_FOR_blockage
--        || INSN_CODE (insn) == CODE_FOR__spu_convert)
-+        || (INSN_P (insn) && get_attr_length (insn) == 0))
-       {
-         ready[i] = ready[nready - 1];
-         ready[nready - 1] = insn;
-@@ -3103,8 +3154,8 @@
-       || INSN_CODE (dep_insn) == CODE_FOR_blockage)
-     return 0;
--  if (INSN_CODE (insn) == CODE_FOR__spu_convert
--      || INSN_CODE (dep_insn) == CODE_FOR__spu_convert)
-+  if ((INSN_P (insn) && get_attr_length (insn) == 0)
-+      || (INSN_P (dep_insn) && get_attr_length (dep_insn) == 0))
-     return 0;
-   /* Make sure hbrps are spread out. */
-@@ -3503,6 +3554,58 @@
-   return val >= low && val <= high;
- }
+       modulus = NULL_TREE;
+       break;
  
-+/* TRUE when op is an immediate and an exact power of 2, and given that
-+   OP is 2^scale, scale >= LOW && scale <= HIGH.  When OP is a vector,
-+   all entries must be the same. */
-+bool
-+exp2_immediate_p (rtx op, enum machine_mode mode, int low, int high)
-+{
-+  enum machine_mode int_mode;
-+  HOST_WIDE_INT val;
-+  unsigned char arr[16];
-+  int bytes, i, j;
-+
-+  gcc_assert (GET_CODE (op) == CONST_INT || GET_CODE (op) == CONST_DOUBLE
-+            || GET_CODE (op) == CONST_VECTOR);
-+
-+  if (GET_CODE (op) == CONST_VECTOR
-+      && !const_vector_immediate_p (op))
-+    return 0;
-+
-+  if (GET_MODE (op) != VOIDmode)
-+    mode = GET_MODE (op);
-+
-+  constant_to_array (mode, op, arr);
-+
-+  if (VECTOR_MODE_P (mode))
-+    mode = GET_MODE_INNER (mode);
-+
-+  bytes = GET_MODE_SIZE (mode);
-+  int_mode = mode_for_size (GET_MODE_BITSIZE (mode), MODE_INT, 0);
-+
-+  /* Check that bytes are repeated. */
-+  for (i = bytes; i < 16; i += bytes)
-+    for (j = 0; j < bytes; j++)
-+      if (arr[j] != arr[i + j])
-+      return 0;
-+
-+  val = arr[0];
-+  for (j = 1; j < bytes; j++)
-+    val = (val << 8) | arr[j];
-+
-+  val = trunc_int_for_mode (val, int_mode);
-+
-+  /* Currently, we only handle SFmode */
-+  gcc_assert (mode == SFmode);
-+  if (mode == SFmode)
-+    {
-+      int exp = (val >> 23) - 127;
-+      return val > 0 && (val & 0x007fffff) == 0
-+           &&  exp >= low && exp <= high;
-+    }
-+  return FALSE;
-+}
-+
- /* We accept:
-    - any 32-bit constant (SImode, SFmode)
-    - any constant that can be generated with fsmbi (any mode)
-@@ -3533,44 +3636,36 @@
- /* Valid address are:
-    - symbol_ref, label_ref, const
-    - reg
--   - reg + const, where either reg or const is 16 byte aligned
-+   - reg + const_int, where const_int is 16 byte aligned
-    - reg + reg, alignment doesn't matter
-   The alignment matters in the reg+const case because lqd and stqd
--  ignore the 4 least significant bits of the const.  (TODO: It might be
--  preferable to allow any alignment and fix it up when splitting.) */
-+  ignore the 4 least significant bits of the const.  We only care about
-+  16 byte modes because the expand phase will change all smaller MEM
-+  references to TImode.  */
- int
- spu_legitimate_address (enum machine_mode mode ATTRIBUTE_UNUSED,
-                       rtx x, int reg_ok_strict)
+Index: gcc/dse.c
+===================================================================
+--- gcc/dse.c  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/dse.c  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1015,9 +1015,6 @@
  {
--  if (mode == TImode && GET_CODE (x) == AND
-+  int aligned = GET_MODE_SIZE (mode) >= 16;
-+  if (aligned
-+      && GET_CODE (x) == AND
-       && GET_CODE (XEXP (x, 1)) == CONST_INT
--      && INTVAL (XEXP (x, 1)) == (HOST_WIDE_INT) -16)
-+      && INTVAL (XEXP (x, 1)) == (HOST_WIDE_INT) - 16)
-     x = XEXP (x, 0);
    switch (GET_CODE (x))
      {
-+    case LABEL_REF:
-     case SYMBOL_REF:
--    case LABEL_REF:
-+    case CONST:
-       return !TARGET_LARGE_MEM;
--    case CONST:
--      if (!TARGET_LARGE_MEM && GET_CODE (XEXP (x, 0)) == PLUS)
--      {
--        rtx sym = XEXP (XEXP (x, 0), 0);
--        rtx cst = XEXP (XEXP (x, 0), 1);
--
--        /* Accept any symbol_ref + constant, assuming it does not
--           wrap around the local store addressability limit.  */
--        if (GET_CODE (sym) == SYMBOL_REF && GET_CODE (cst) == CONST_INT)
--          return 1;
--      }
--      return 0;
+-    case MEM:
+-      return MEM_READONLY_P (x);
 -
+     case CONST:
      case CONST_INT:
-       return INTVAL (x) >= 0 && INTVAL (x) <= 0x3ffff;
-     case SUBREG:
-       x = XEXP (x, 0);
--      gcc_assert (GET_CODE (x) == REG);
-+      if (REG_P (x))
-+      return 0;
-     case REG:
-       return INT_REG_OK_FOR_BASE_P (x, reg_ok_strict);
-@@ -3584,29 +3679,25 @@
-         op0 = XEXP (op0, 0);
-       if (GET_CODE (op1) == SUBREG)
-         op1 = XEXP (op1, 0);
--      /* We can't just accept any aligned register because CSE can
--         change it to a register that is not marked aligned and then
--         recog will fail.   So we only accept frame registers because
--         they will only be changed to other frame registers. */
-       if (GET_CODE (op0) == REG
-           && INT_REG_OK_FOR_BASE_P (op0, reg_ok_strict)
-           && GET_CODE (op1) == CONST_INT
-           && INTVAL (op1) >= -0x2000
-           && INTVAL (op1) <= 0x1fff
--          && (regno_aligned_for_load (REGNO (op0)) || (INTVAL (op1) & 15) == 0))
--        return 1;
-+          && (!aligned || (INTVAL (op1) & 15) == 0))
-+        return TRUE;
-       if (GET_CODE (op0) == REG
-           && INT_REG_OK_FOR_BASE_P (op0, reg_ok_strict)
-           && GET_CODE (op1) == REG
-           && INT_REG_OK_FOR_INDEX_P (op1, reg_ok_strict))
--        return 1;
-+        return TRUE;
-       }
-       break;
-     default:
-       break;
-     }
--  return 0;
-+  return FALSE;
- }
- /* When the address is reg + const_int, force the const_int into a
-@@ -4061,62 +4152,16 @@
-     }
- }
+     case CONST_DOUBLE:
+Index: gcc/c-decl.c
+===================================================================
+--- gcc/c-decl.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/c-decl.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Process declarations and variables for C compiler.
+    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
  
--/* This is called to decide when we can simplify a load instruction.  We
--   must only return true for registers which we know will always be
--   aligned.  Taking into account that CSE might replace this reg with
--   another one that has not been marked aligned.  
--   So this is really only true for frame, stack and virtual registers,
--   which we know are always aligned and should not be adversely effected
--   by CSE.  */
-+/* This is called any time we inspect the alignment of a register for
-+   addresses.  */
- static int
--regno_aligned_for_load (int regno)
-+reg_aligned_for_addr (rtx x)
- {
--  return regno == FRAME_POINTER_REGNUM
--    || (frame_pointer_needed && regno == HARD_FRAME_POINTER_REGNUM)
--    || regno == ARG_POINTER_REGNUM
--    || regno == STACK_POINTER_REGNUM
--    || (regno >= FIRST_VIRTUAL_REGISTER 
--      && regno <= LAST_VIRTUAL_REGISTER);
-+  int regno =
-+    REGNO (x) < FIRST_PSEUDO_REGISTER ? ORIGINAL_REGNO (x) : REGNO (x);
-+  return REGNO_POINTER_ALIGN (regno) >= 128;
- }
+ This file is part of GCC.
+@@ -3735,7 +3735,8 @@
+   tree complit;
+   tree stmt;
  
--/* Return TRUE when mem is known to be 16-byte aligned. */
--int
--aligned_mem_p (rtx mem)
--{
--  if (MEM_ALIGN (mem) >= 128)
--    return 1;
--  if (GET_MODE_SIZE (GET_MODE (mem)) >= 16)
--    return 1;
--  if (GET_CODE (XEXP (mem, 0)) == PLUS)
--    {
--      rtx p0 = XEXP (XEXP (mem, 0), 0);
--      rtx p1 = XEXP (XEXP (mem, 0), 1);
--      if (regno_aligned_for_load (REGNO (p0)))
--      {
--        if (GET_CODE (p1) == REG && regno_aligned_for_load (REGNO (p1)))
--          return 1;
--        if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15) == 0)
--          return 1;
--      }
--    }
--  else if (GET_CODE (XEXP (mem, 0)) == REG)
--    {
--      if (regno_aligned_for_load (REGNO (XEXP (mem, 0))))
--      return 1;
--    }
--  else if (ALIGNED_SYMBOL_REF_P (XEXP (mem, 0)))
--    return 1;
--  else if (GET_CODE (XEXP (mem, 0)) == CONST)
--    {
--      rtx p0 = XEXP (XEXP (XEXP (mem, 0), 0), 0);
--      rtx p1 = XEXP (XEXP (XEXP (mem, 0), 0), 1);
--      if (GET_CODE (p0) == SYMBOL_REF
--        && GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15) == 0)
--      return 1;
--    }
--  return 0;
--}
--
- /* Encode symbol attributes (local vs. global, tls model) of a SYMBOL_REF
-    into its SYMBOL_REF_FLAGS.  */
- static void
-@@ -4143,9 +4188,12 @@
- static int
- store_with_one_insn_p (rtx mem)
- {
-+  enum machine_mode mode = GET_MODE (mem);
-   rtx addr = XEXP (mem, 0);
--  if (GET_MODE (mem) == BLKmode)
-+  if (mode == BLKmode)
-     return 0;
-+  if (GET_MODE_SIZE (mode) >= 16)
-+    return 1;
-   /* Only static objects. */
-   if (GET_CODE (addr) == SYMBOL_REF)
-     {
-@@ -4169,6 +4217,22 @@
-   return 0;
- }
+-  if (type == error_mark_node)
++  if (type == error_mark_node
++      || init == error_mark_node)
+     return error_mark_node;
  
-+/* Return 1 when the address is not valid for a simple load and store as
-+   required by the '_mov*' patterns.   We could make this less strict
-+   for loads, but we prefer mem's to look the same so they are more
-+   likely to be merged.  */
-+static int
-+address_needs_split (rtx mem)
-+{
-+  if (GET_MODE_SIZE (GET_MODE (mem)) < 16
-+      && (GET_MODE_SIZE (GET_MODE (mem)) < 4
-+        || !(store_with_one_insn_p (mem)
-+             || mem_is_padded_component_ref (mem))))
-+    return 1;
-+
-+  return 0;
-+}
-+
- int
- spu_expand_mov (rtx * ops, enum machine_mode mode)
- {
-@@ -4213,54 +4277,63 @@
-       return spu_split_immediate (ops);
-       return 0;
-     }
--  else
-+
-+  /* Catch the SImode immediates greater than 0x7fffffff, and sign
-+     extend them. */
-+  if (GET_CODE (ops[1]) == CONST_INT)
-     {
--      if (GET_CODE (ops[0]) == MEM)
-+      HOST_WIDE_INT val = trunc_int_for_mode (INTVAL (ops[1]), mode);
-+      if (val != INTVAL (ops[1]))
-       {
--        if (!spu_valid_move (ops))
--          {
--            emit_insn (gen_store (ops[0], ops[1], gen_reg_rtx (TImode),
--                                  gen_reg_rtx (TImode)));
--            return 1;
--          }
-+        emit_move_insn (ops[0], GEN_INT (val));
-+        return 1;
-       }
--      else if (GET_CODE (ops[1]) == MEM)
--      {
--        if (!spu_valid_move (ops))
--          {
--            emit_insn (gen_load
--                       (ops[0], ops[1], gen_reg_rtx (TImode),
--                        gen_reg_rtx (SImode)));
--            return 1;
--          }
--      }
--      /* Catch the SImode immediates greater than 0x7fffffff, and sign
--         extend them. */
--      if (GET_CODE (ops[1]) == CONST_INT)
--      {
--        HOST_WIDE_INT val = trunc_int_for_mode (INTVAL (ops[1]), mode);
--        if (val != INTVAL (ops[1]))
--          {
--            emit_move_insn (ops[0], GEN_INT (val));
--            return 1;
--          }
--      }
+   decl = build_decl (VAR_DECL, NULL_TREE, type);
+@@ -5255,6 +5256,11 @@
+            type itself.  FUNCTION_DECLs appear when there is an implicit
+            function declaration in the parameter list.  */
++        /* When we reinsert this decl in the function body, we need
++           to reconstruct whether it was marked as nested.  */
++        gcc_assert (TREE_CODE (decl) == FUNCTION_DECL
++                    ? b->nested
++                    : !b->nested);
+         TREE_CHAIN (decl) = others;
+         others = decl;
+         /* fall through */
+@@ -6372,7 +6378,8 @@
+       DECL_CONTEXT (decl) = current_function_decl;
+       if (DECL_NAME (decl))
+       bind (DECL_NAME (decl), decl, current_scope,
+-            /*invisible=*/false, /*nested=*/false);
++            /*invisible=*/false,
++            /*nested=*/(TREE_CODE (decl) == FUNCTION_DECL));
      }
-+  if (MEM_P (ops[0]))
-+    return spu_split_store (ops);
-+  if (MEM_P (ops[1]))
-+    return spu_split_load (ops);
-+
-   return 0;
- }
  
--void
--spu_split_load (rtx * ops)
-+static void
-+spu_convert_move (rtx dst, rtx src)
+   /* And all the tag declarations.  */
+Index: gcc/fortran/trans-expr.c
+===================================================================
+--- gcc/fortran/trans-expr.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/trans-expr.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -2118,8 +2118,8 @@
+    an actual argument derived type array is copied and then returned
+    after the function call.  */
+ void
+-gfc_conv_subref_array_arg (gfc_se * parmse, gfc_expr * expr,
+-                         int g77, sym_intent intent)
++gfc_conv_subref_array_arg (gfc_se * parmse, gfc_expr * expr, int g77,
++                         sym_intent intent, bool formal_ptr)
  {
--  enum machine_mode mode = GET_MODE (ops[0]);
--  rtx addr, load, rot, mem, p0, p1;
-+  enum machine_mode mode = GET_MODE (dst);
-+  enum machine_mode int_mode = mode_for_size (GET_MODE_BITSIZE (mode), MODE_INT, 0);
-+  rtx reg;
-+  gcc_assert (GET_MODE (src) == TImode);
-+  reg = int_mode != mode ? gen_reg_rtx (int_mode) : dst;
-+  emit_insn (gen_rtx_SET (VOIDmode, reg,
-+             gen_rtx_TRUNCATE (int_mode,
-+               gen_rtx_LSHIFTRT (TImode, src,
-+                 GEN_INT (int_mode == DImode ? 64 : 96)))));
-+  if (int_mode != mode)
-+    {
-+      reg = simplify_gen_subreg (mode, reg, int_mode, 0);
-+      emit_move_insn (dst, reg);
-+    }
-+}
-+
-+/* Load TImode values into DST0 and DST1 (when it is non-NULL) using
-+   the address from SRC and SRC+16.  Return a REG or CONST_INT that
-+   specifies how many bytes to rotate the loaded registers, plus any
-+   extra from EXTRA_ROTQBY.  The address and rotate amounts are
-+   normalized to improve merging of loads and rotate computations. */
-+static rtx
-+spu_expand_load (rtx dst0, rtx dst1, rtx src, int extra_rotby)
-+{
-+  rtx addr = XEXP (src, 0);
-+  rtx p0, p1, rot, addr0, addr1;
-   int rot_amt;
--  addr = XEXP (ops[1], 0);
--
-   rot = 0;
-   rot_amt = 0;
--  if (GET_CODE (addr) == PLUS)
-+
-+  if (MEM_ALIGN (src) >= 128)
-+    /* Address is already aligned; simply perform a TImode load.  */ ;
-+  else if (GET_CODE (addr) == PLUS)
-     {
-       /* 8 cases:
-          aligned reg   + aligned reg     => lqx
-@@ -4274,13 +4347,35 @@
-        */
-       p0 = XEXP (addr, 0);
-       p1 = XEXP (addr, 1);
--      if (REG_P (p0) && !regno_aligned_for_load (REGNO (p0)))
-+      if (!reg_aligned_for_addr (p0))
-       {
--        if (REG_P (p1) && !regno_aligned_for_load (REGNO (p1)))
-+        if (REG_P (p1) && !reg_aligned_for_addr (p1))
-           {
--            emit_insn (gen_addsi3 (ops[3], p0, p1));
--            rot = ops[3];
-+            rot = gen_reg_rtx (SImode);
-+            emit_insn (gen_addsi3 (rot, p0, p1));
-           }
-+        else if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15))
-+          {
-+            if (INTVAL (p1) > 0
-+                && REG_POINTER (p0)
-+                && INTVAL (p1) * BITS_PER_UNIT
-+                   < REGNO_POINTER_ALIGN (REGNO (p0)))
-+              {
-+                rot = gen_reg_rtx (SImode);
-+                emit_insn (gen_addsi3 (rot, p0, p1));
-+                addr = p0;
-+              }
-+            else
-+              {
-+                rtx x = gen_reg_rtx (SImode);
-+                emit_move_insn (x, p1);
-+                if (!spu_arith_operand (p1, SImode))
-+                  p1 = x;
-+                rot = gen_reg_rtx (SImode);
-+                emit_insn (gen_addsi3 (rot, p0, p1));
-+                addr = gen_rtx_PLUS (Pmode, p0, x);
-+              }
-+          }
-         else
-           rot = p0;
-       }
-@@ -4289,16 +4384,21 @@
-         if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15))
-           {
-             rot_amt = INTVAL (p1) & 15;
--            p1 = GEN_INT (INTVAL (p1) & -16);
--            addr = gen_rtx_PLUS (SImode, p0, p1);
-+            if (INTVAL (p1) & -16)
-+              {
-+                p1 = GEN_INT (INTVAL (p1) & -16);
-+                addr = gen_rtx_PLUS (SImode, p0, p1);
-+              }
-+            else
-+              addr = p0;
-           }
--        else if (REG_P (p1) && !regno_aligned_for_load (REGNO (p1)))
-+        else if (REG_P (p1) && !reg_aligned_for_addr (p1))
-           rot = p1;
-       }
-     }
--  else if (GET_CODE (addr) == REG)
-+  else if (REG_P (addr))
-     {
--      if (!regno_aligned_for_load (REGNO (addr)))
-+      if (!reg_aligned_for_addr (addr))
-       rot = addr;
-     }
-   else if (GET_CODE (addr) == CONST)
-@@ -4317,7 +4417,10 @@
-           addr = XEXP (XEXP (addr, 0), 0);
-       }
-       else
--      rot = addr;
-+      {
-+        rot = gen_reg_rtx (Pmode);
-+        emit_move_insn (rot, addr);
-+      }
-     }
-   else if (GET_CODE (addr) == CONST_INT)
-     {
-@@ -4325,50 +4428,97 @@
-       addr = GEN_INT (rot_amt & -16);
-     }
-   else if (!ALIGNED_SYMBOL_REF_P (addr))
--    rot = addr;
-+    {
-+      rot = gen_reg_rtx (Pmode);
-+      emit_move_insn (rot, addr);
-+    }
+   gfc_se lse;
+   gfc_se rse;
+@@ -2132,8 +2132,10 @@
+   tree tmp_index;
+   tree tmp;
+   tree base_type;
++  tree size;
+   stmtblock_t body;
+   int n;
++  int dimen;
  
--  if (GET_MODE_SIZE (mode) < 4)
--    rot_amt += GET_MODE_SIZE (mode) - 4;
-+  rot_amt += extra_rotby;
+   gcc_assert (expr->expr_type == EXPR_VARIABLE);
  
-   rot_amt &= 15;
+@@ -2262,9 +2264,10 @@
+      outside the innermost loop, so the overall transfer could be
+      optimized further.  */
+   info = &rse.ss->data.info;
++  dimen = info->dimen;
  
-   if (rot && rot_amt)
+   tmp_index = gfc_index_zero_node;
+-  for (n = info->dimen - 1; n > 0; n--)
++  for (n = dimen - 1; n > 0; n--)
      {
--      emit_insn (gen_addsi3 (ops[3], rot, GEN_INT (rot_amt)));
--      rot = ops[3];
-+      rtx x = gen_reg_rtx (SImode);
-+      emit_insn (gen_addsi3 (x, rot, GEN_INT (rot_amt)));
-+      rot = x;
-       rot_amt = 0;
-     }
-+  if (!rot && rot_amt)
-+    rot = GEN_INT (rot_amt);
--  load = ops[2];
-+  addr0 = copy_rtx (addr);
-+  addr0 = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16));
-+  emit_insn (gen__movti (dst0, change_address (src, TImode, addr0)));
+       tree tmp_str;
+       tmp = rse.loop->loopvar[n];
+@@ -2324,6 +2327,38 @@
+   if (expr->ts.type == BT_CHARACTER)
+     parmse->string_length = expr->ts.cl->backend_decl;
  
--  addr = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16));
--  mem = change_address (ops[1], TImode, addr);
-+  if (dst1)
++  /* Determine the offset for pointer formal arguments and set the
++     lbounds to one.  */
++  if (formal_ptr)
 +    {
-+      addr1 = plus_constant (copy_rtx (addr), 16);
-+      addr1 = gen_rtx_AND (SImode, addr1, GEN_INT (-16));
-+      emit_insn (gen__movti (dst1, change_address (src, TImode, addr1)));
++      size = gfc_index_one_node;
++      offset = gfc_index_zero_node;  
++      for (n = 0; n < dimen; n++)
++      {
++        tmp = gfc_conv_descriptor_ubound (parmse->expr,
++                                          gfc_rank_cst[n]);
++        gfc_add_modify (&parmse->pre, tmp,
++                        fold_build2 (PLUS_EXPR, gfc_array_index_type,
++                                     tmp, gfc_index_one_node));
++        tmp = gfc_conv_descriptor_lbound (parmse->expr,
++                                          gfc_rank_cst[n]);
++        gfc_add_modify (&parmse->pre, tmp, gfc_index_one_node);
++        size = gfc_evaluate_now (size, &parmse->pre);
++        offset = fold_build2 (MINUS_EXPR, gfc_array_index_type,
++                              offset, size);
++        offset = gfc_evaluate_now (offset, &parmse->pre);
++        tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type,
++                           rse.loop->to[n], rse.loop->from[n]);
++        tmp = fold_build2 (PLUS_EXPR, gfc_array_index_type,
++                           tmp, gfc_index_one_node);
++        size = fold_build2 (MULT_EXPR, gfc_array_index_type,
++                            size, tmp);
++      }
++
++      tmp = gfc_conv_descriptor_offset (parmse->expr);
++      gfc_add_modify (&parmse->pre, tmp, offset);
 +    }
++
+   /* We want either the address for the data or the address of the descriptor,
+      depending on the mode of passing array arguments.  */
+   if (g77)
+@@ -2666,7 +2701,8 @@
+                  is converted to a temporary, which is passed and then
+                  written back after the procedure call.  */
+               gfc_conv_subref_array_arg (&parmse, e, f,
+-                      fsym ? fsym->attr.intent : INTENT_INOUT);
++                              fsym ? fsym->attr.intent : INTENT_INOUT,
++                              fsym && fsym->attr.pointer);
+             else
+               gfc_conv_array_parameter (&parmse, e, argss, f, fsym,
+                                         sym->name);
+@@ -3518,6 +3554,150 @@
+ }
  
--  emit_insn (gen_movti (load, mem));
-+  return rot;
-+}
  
-+int
-+spu_split_load (rtx * ops)
++static tree
++gfc_trans_alloc_subarray_assign (tree dest, gfc_component * cm,
++                               gfc_expr * expr)
 +{
-+  enum machine_mode mode = GET_MODE (ops[0]);
-+  rtx addr, load, rot;
-+  int rot_amt;
++  gfc_se se;
++  gfc_ss *rss;
++  stmtblock_t block;
++  tree offset;
++  int n;
++  tree tmp;
++  tree tmp2;
++  gfc_array_spec *as;
++  gfc_expr *arg = NULL;
 +
-+  if (GET_MODE_SIZE (mode) >= 16)
-+    return 0;
++  gfc_start_block (&block);
++  gfc_init_se (&se, NULL);
 +
-+  addr = XEXP (ops[1], 0);
-+  gcc_assert (GET_CODE (addr) != AND);
++  /* Get the descriptor for the expressions.  */ 
++  rss = gfc_walk_expr (expr);
++  se.want_pointer = 0;
++  gfc_conv_expr_descriptor (&se, expr, rss);
++  gfc_add_block_to_block (&block, &se.pre);
++  gfc_add_modify (&block, dest, se.expr);
 +
-+  if (!address_needs_split (ops[1]))
-+    {
-+      ops[1] = change_address (ops[1], TImode, addr);
-+      load = gen_reg_rtx (TImode);
-+      emit_insn (gen__movti (load, ops[1]));
-+      spu_convert_move (ops[0], load);
-+      return 1;
-+    }
++  /* Deal with arrays of derived types with allocatable components.  */
++  if (cm->ts.type == BT_DERIVED
++      && cm->ts.derived->attr.alloc_comp)
++    tmp = gfc_copy_alloc_comp (cm->ts.derived,
++                             se.expr, dest,
++                             cm->as->rank);
++  else
++    tmp = gfc_duplicate_allocatable (dest, se.expr,
++                                   TREE_TYPE(cm->backend_decl),
++                                   cm->as->rank);
 +
-+  rot_amt = GET_MODE_SIZE (mode) < 4 ? GET_MODE_SIZE (mode) - 4 : 0;
++  gfc_add_expr_to_block (&block, tmp);
++  gfc_add_block_to_block (&block, &se.post);
 +
-+  load = gen_reg_rtx (TImode);
-+  rot = spu_expand_load (load, 0, ops[1], rot_amt);
++  if (expr->expr_type != EXPR_VARIABLE)
++    gfc_conv_descriptor_data_set (&block, se.expr,
++                                null_pointer_node);
 +
-   if (rot)
-     emit_insn (gen_rotqby_ti (load, load, rot));
--  else if (rot_amt)
--    emit_insn (gen_rotlti3 (load, load, GEN_INT (rot_amt * 8)));
--  if (reload_completed)
--    emit_move_insn (ops[0], gen_rtx_REG (GET_MODE (ops[0]), REGNO (load)));
--  else
--    emit_insn (gen_spu_convert (ops[0], load));
-+  spu_convert_move (ops[0], load);
-+  return 1;
- }
--void
-+int
- spu_split_store (rtx * ops)
- {
-   enum machine_mode mode = GET_MODE (ops[0]);
--  rtx pat = ops[2];
--  rtx reg = ops[3];
-+  rtx reg;
-   rtx addr, p0, p1, p1_lo, smem;
-   int aform;
-   int scalar;
-+  if (GET_MODE_SIZE (mode) >= 16)
-+    return 0;
++  /* We need to know if the argument of a conversion function is a
++     variable, so that the correct lower bound can be used.  */
++  if (expr->expr_type == EXPR_FUNCTION
++      && expr->value.function.isym
++      && expr->value.function.isym->conversion
++      && expr->value.function.actual->expr
++      && expr->value.function.actual->expr->expr_type == EXPR_VARIABLE)
++    arg = expr->value.function.actual->expr;
 +
-   addr = XEXP (ops[0], 0);
-+  gcc_assert (GET_CODE (addr) != AND);
-+  if (!address_needs_split (ops[0]))
++  /* Obtain the array spec of full array references.  */
++  if (arg)
++    as = gfc_get_full_arrayspec_from_expr (arg);
++  else
++    as = gfc_get_full_arrayspec_from_expr (expr);
++
++  /* Shift the lbound and ubound of temporaries to being unity,
++     rather than zero, based. Always calculate the offset.  */
++  offset = gfc_conv_descriptor_offset (dest);
++  gfc_add_modify (&block, offset, gfc_index_zero_node);
++  tmp2 =gfc_create_var (gfc_array_index_type, NULL);
++
++  for (n = 0; n < expr->rank; n++)
 +    {
-+      reg = gen_reg_rtx (TImode);
-+      emit_insn (gen_spu_convert (reg, ops[1]));
-+      ops[0] = change_address (ops[0], TImode, addr);
-+      emit_move_insn (ops[0], reg);
-+      return 1;
-+    }
++      tree span;
++      tree lbound;
++      tree ubound;
 +
-   if (GET_CODE (addr) == PLUS)
-     {
-       /* 8 cases:
-@@ -4379,19 +4529,31 @@
-          unaligned reg + aligned reg     => lqx, c?x, shuf, stqx
-          unaligned reg + unaligned reg   => lqx, c?x, shuf, stqx
-          unaligned reg + aligned const   => lqd, c?d, shuf, stqx
--         unaligned reg + unaligned const -> not allowed by legitimate address
-+         unaligned reg + unaligned const -> lqx, c?d, shuf, stqx
-        */
-       aform = 0;
-       p0 = XEXP (addr, 0);
-       p1 = p1_lo = XEXP (addr, 1);
--      if (GET_CODE (p0) == REG && GET_CODE (p1) == CONST_INT)
-+      if (REG_P (p0) && GET_CODE (p1) == CONST_INT)
-       {
-         p1_lo = GEN_INT (INTVAL (p1) & 15);
--        p1 = GEN_INT (INTVAL (p1) & -16);
--        addr = gen_rtx_PLUS (SImode, p0, p1);
-+        if (reg_aligned_for_addr (p0))
-+          {
-+            p1 = GEN_INT (INTVAL (p1) & -16);
-+            if (p1 == const0_rtx)
-+              addr = p0;
-+            else
-+              addr = gen_rtx_PLUS (SImode, p0, p1);
-+          }
-+        else
-+          {
-+            rtx x = gen_reg_rtx (SImode);
-+            emit_move_insn (x, p1);
-+            addr = gen_rtx_PLUS (SImode, p0, x);
-+          }
-       }
-     }
--  else if (GET_CODE (addr) == REG)
-+  else if (REG_P (addr))
-     {
-       aform = 0;
-       p0 = addr;
-@@ -4405,31 +4567,34 @@
-       p1_lo = addr;
-       if (ALIGNED_SYMBOL_REF_P (addr))
-       p1_lo = const0_rtx;
--      else if (GET_CODE (addr) == CONST)
-+      else if (GET_CODE (addr) == CONST
-+             && GET_CODE (XEXP (addr, 0)) == PLUS
-+             && ALIGNED_SYMBOL_REF_P (XEXP (XEXP (addr, 0), 0))
-+             && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT)
-       {
--        if (GET_CODE (XEXP (addr, 0)) == PLUS
--            && ALIGNED_SYMBOL_REF_P (XEXP (XEXP (addr, 0), 0))
--            && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT)
--          {
--            HOST_WIDE_INT v = INTVAL (XEXP (XEXP (addr, 0), 1));
--            if ((v & -16) != 0)
--              addr = gen_rtx_CONST (Pmode,
--                                    gen_rtx_PLUS (Pmode,
--                                                  XEXP (XEXP (addr, 0), 0),
--                                                  GEN_INT (v & -16)));
--            else
--              addr = XEXP (XEXP (addr, 0), 0);
--            p1_lo = GEN_INT (v & 15);
--          }
-+        HOST_WIDE_INT v = INTVAL (XEXP (XEXP (addr, 0), 1));
-+        if ((v & -16) != 0)
-+          addr = gen_rtx_CONST (Pmode,
-+                                gen_rtx_PLUS (Pmode,
-+                                              XEXP (XEXP (addr, 0), 0),
-+                                              GEN_INT (v & -16)));
-+        else
-+          addr = XEXP (XEXP (addr, 0), 0);
-+        p1_lo = GEN_INT (v & 15);
-       }
-       else if (GET_CODE (addr) == CONST_INT)
-       {
-         p1_lo = GEN_INT (INTVAL (addr) & 15);
-         addr = GEN_INT (INTVAL (addr) & -16);
-       }
-+      else
++      /* Obtain the correct lbound - ISO/IEC TR 15581:2001 page 9.
++       TODO It looks as if gfc_conv_expr_descriptor should return
++       the correct bounds and that the following should not be
++       necessary.  This would simplify gfc_conv_intrinsic_bound
++       as well.  */
++      if (as && as->lower[n])
 +      {
-+        p1_lo = gen_reg_rtx (SImode);
-+        emit_move_insn (p1_lo, addr);
++        gfc_se lbse;
++        gfc_init_se (&lbse, NULL);
++        gfc_conv_expr (&lbse, as->lower[n]);
++        gfc_add_block_to_block (&block, &lbse.pre);
++        lbound = gfc_evaluate_now (lbse.expr, &block);
 +      }
-     }
--  addr = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16));
-+  reg = gen_reg_rtx (TImode);
-   scalar = store_with_one_insn_p (ops[0]);
-   if (!scalar)
-@@ -4439,11 +4604,12 @@
-          possible, and copying the flags will prevent that in certain
-          cases, e.g. consider the volatile flag. */
-+      rtx pat = gen_reg_rtx (TImode);
-       rtx lmem = change_address (ops[0], TImode, copy_rtx (addr));
-       set_mem_alias_set (lmem, 0);
-       emit_insn (gen_movti (reg, lmem));
--      if (!p0 || regno_aligned_for_load (REGNO (p0)))
-+      if (!p0 || reg_aligned_for_addr (p0))
-       p0 = stack_pointer_rtx;
-       if (!p1_lo)
-       p1_lo = const0_rtx;
-@@ -4451,17 +4617,6 @@
-       emit_insn (gen_cpat (pat, p0, p1_lo, GEN_INT (GET_MODE_SIZE (mode))));
-       emit_insn (gen_shufb (reg, ops[1], reg, pat));
-     }
--  else if (reload_completed)
--    {
--      if (GET_CODE (ops[1]) == REG)
--      emit_move_insn (reg, gen_rtx_REG (GET_MODE (reg), REGNO (ops[1])));
--      else if (GET_CODE (ops[1]) == SUBREG)
--      emit_move_insn (reg,
--                      gen_rtx_REG (GET_MODE (reg),
--                                   REGNO (SUBREG_REG (ops[1]))));
--      else
--      abort ();
--    }
-   else
-     {
-       if (GET_CODE (ops[1]) == REG)
-@@ -4473,15 +4628,16 @@
-     }
-   if (GET_MODE_SIZE (mode) < 4 && scalar)
--    emit_insn (gen_shlqby_ti
--             (reg, reg, GEN_INT (4 - GET_MODE_SIZE (mode))));
-+    emit_insn (gen_ashlti3
-+             (reg, reg, GEN_INT (32 - GET_MODE_BITSIZE (mode))));
--  smem = change_address (ops[0], TImode, addr);
-+  smem = change_address (ops[0], TImode, copy_rtx (addr));
-   /* We can't use the previous alias set because the memory has changed
-      size and can potentially overlap objects of other types.  */
-   set_mem_alias_set (smem, 0);
-   emit_insn (gen_movti (smem, reg));
-+  return 1;
- }
- /* Return TRUE if X is MEM which is a struct member reference
-@@ -4580,37 +4736,6 @@
-     }
- }
--int
--spu_valid_move (rtx * ops)
--{
--  enum machine_mode mode = GET_MODE (ops[0]);
--  if (!register_operand (ops[0], mode) && !register_operand (ops[1], mode))
--    return 0;
--
--  /* init_expr_once tries to recog against load and store insns to set
--     the direct_load[] and direct_store[] arrays.  We always want to
--     consider those loads and stores valid.  init_expr_once is called in
--     the context of a dummy function which does not have a decl. */
--  if (cfun->decl == 0)
--    return 1;
--
--  /* Don't allows loads/stores which would require more than 1 insn.
--     During and after reload we assume loads and stores only take 1
--     insn. */
--  if (GET_MODE_SIZE (mode) < 16 && !reload_in_progress && !reload_completed)
--    {
--      if (GET_CODE (ops[0]) == MEM
--        && (GET_MODE_SIZE (mode) < 4
--            || !(store_with_one_insn_p (ops[0])
--                 || mem_is_padded_component_ref (ops[0]))))
--      return 0;
--      if (GET_CODE (ops[1]) == MEM
--        && (GET_MODE_SIZE (mode) < 4 || !aligned_mem_p (ops[1])))
--      return 0;
--    }
--  return 1;
--}
--
- /* Return TRUE if x is a CONST_INT, CONST_DOUBLE or CONST_VECTOR that
-    can be generated using the fsmbi instruction. */
- int
-@@ -6324,12 +6449,25 @@
- void
- spu_init_expanders (void)
--{   
--  /* HARD_FRAME_REGISTER is only 128 bit aligned when
--   * frame_pointer_needed is true.  We don't know that until we're
--   * expanding the prologue. */
-+{
-   if (cfun)
--    REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 8;
-+    {
-+      rtx r0, r1;
-+      /* HARD_FRAME_REGISTER is only 128 bit aligned when
-+         frame_pointer_needed is true.  We don't know that until we're
-+         expanding the prologue. */
-+      REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 8;
-+
-+      /* A number of passes use LAST_VIRTUAL_REGISTER+1 and
-+       LAST_VIRTUAL_REGISTER+2 to test the back-end.  We want them
-+       to be treated as aligned, so generate them here. */
-+      r0 = gen_reg_rtx (SImode);
-+      r1 = gen_reg_rtx (SImode);
-+      mark_reg_pointer (r0, 128);
-+      mark_reg_pointer (r1, 128);
-+      gcc_assert (REGNO (r0) == LAST_VIRTUAL_REGISTER + 1
-+                && REGNO (r1) == LAST_VIRTUAL_REGISTER + 2);
-+    }
- }
- static enum machine_mode
-@@ -6372,5 +6510,53 @@
-   return default_section_type_flags (decl, name, reloc);
- }
-+/* Generate a constant or register which contains 2^SCALE.  We assume
-+   the result is valid for MODE.  Currently, MODE must be V4SFmode and
-+   SCALE must be SImode. */
-+rtx
-+spu_gen_exp2 (enum machine_mode mode, rtx scale)
-+{
-+  gcc_assert (mode == V4SFmode);
-+  gcc_assert (GET_MODE (scale) == SImode || GET_CODE (scale) == CONST_INT);
-+  if (GET_CODE (scale) != CONST_INT)
-+    {
-+      /* unsigned int exp = (127 + scale) << 23;
-+      __vector float m = (__vector float) spu_splats (exp); */
-+      rtx reg = force_reg (SImode, scale);
-+      rtx exp = gen_reg_rtx (SImode);
-+      rtx mul = gen_reg_rtx (mode);
-+      emit_insn (gen_addsi3 (exp, reg, GEN_INT (127)));
-+      emit_insn (gen_ashlsi3 (exp, exp, GEN_INT (23)));
-+      emit_insn (gen_spu_splats (mul, gen_rtx_SUBREG (GET_MODE_INNER (mode), exp, 0)));
-+      return mul;
-+    }
-+  else
-+    {
-+      HOST_WIDE_INT exp = 127 + INTVAL (scale);
-+      unsigned char arr[16];
-+      arr[0] = arr[4] = arr[8] = arr[12] = exp >> 1;
-+      arr[1] = arr[5] = arr[9] = arr[13] = exp << 7;
-+      arr[2] = arr[6] = arr[10] = arr[14] = 0;
-+      arr[3] = arr[7] = arr[11] = arr[15] = 0;
-+      return array_to_constant (mode, arr);
-+    }
-+}
++      else if (as && arg)
++      {
++        tmp = gfc_get_symbol_decl (arg->symtree->n.sym);
++        lbound = gfc_conv_descriptor_lbound (tmp, gfc_rank_cst[n]);
++      }
++      else if (as)
++      lbound = gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]);
++      else
++      lbound = gfc_index_one_node;
 +
-+/* After reload, just change the convert into a move instruction
-+   or a dead instruction. */
-+void
-+spu_split_convert (rtx ops[])
-+{
-+  if (REGNO (ops[0]) == REGNO (ops[1]))
-+    emit_note (NOTE_INSN_DELETED);
-+  else
-+    {
-+      /* Use TImode always as this might help hard reg copyprop.  */
-+      rtx op0 = gen_rtx_REG (TImode, REGNO (ops[0]));
-+      rtx op1 = gen_rtx_REG (TImode, REGNO (ops[1]));
-+      emit_insn (gen_move_insn (op0, op1));
-+    }
-+}
++      lbound = fold_convert (gfc_array_index_type, lbound);
 +
- #include "gt-spu.h"
-Index: gcc/config/spu/spu-builtins.def
-===================================================================
---- gcc/config/spu/spu-builtins.def    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/spu-builtins.def    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -235,8 +235,8 @@
- /* definitions to support generic builtin functions: */
--DEF_BUILTIN (SPU_CONVTS,     CODE_FOR_spu_cflts,      "spu_convts",     B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V4SF,   SPU_BTI_U7))
--DEF_BUILTIN (SPU_CONVTU,     CODE_FOR_spu_cfltu,      "spu_convtu",     B_INSN,     _A3(SPU_BTI_UV4SI,    SPU_BTI_V4SF,   SPU_BTI_U7))
-+DEF_BUILTIN (SPU_CONVTS,     CODE_FOR_spu_cflts,      "spu_convts",     B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V4SF,   SPU_BTI_INTSI))
-+DEF_BUILTIN (SPU_CONVTU,     CODE_FOR_spu_cfltu,      "spu_convtu",     B_INSN,     _A3(SPU_BTI_UV4SI,    SPU_BTI_V4SF,   SPU_BTI_INTSI))
- DEF_BUILTIN (SPU_ROUNDTF,    CODE_FOR_spu_frds,       "spu_roundtf",    B_INSN,     _A2(SPU_BTI_V4SF,     SPU_BTI_V2DF))
- DEF_BUILTIN (SPU_MULH,       CODE_FOR_spu_mpyh,       "spu_mulh",       B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V8HI,   SPU_BTI_V8HI))
- DEF_BUILTIN (SPU_MULSR,      CODE_FOR_spu_mpys,       "spu_mulsr",      B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V8HI,   SPU_BTI_V8HI))
-@@ -257,8 +257,8 @@
- /* definitions to support overloaded generic builtin functions:  */
- DEF_BUILTIN (SPU_CONVTF,           CODE_FOR_nothing,       "spu_convtf",           B_OVERLOAD, _A1(SPU_BTI_VOID))
--DEF_BUILTIN (SPU_CONVTF_0,         CODE_FOR_spu_cuflt,     "spu_convtf_0",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_UV4SI,  SPU_BTI_U7))
--DEF_BUILTIN (SPU_CONVTF_1,         CODE_FOR_spu_csflt,     "spu_convtf_1",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_V4SI,   SPU_BTI_U7))
-+DEF_BUILTIN (SPU_CONVTF_0,         CODE_FOR_spu_cuflt,     "spu_convtf_0",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_UV4SI,  SPU_BTI_UINTSI))
-+DEF_BUILTIN (SPU_CONVTF_1,         CODE_FOR_spu_csflt,     "spu_convtf_1",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_V4SI,   SPU_BTI_UINTSI))
- DEF_BUILTIN (SPU_EXTEND,           CODE_FOR_nothing,       "spu_extend",           B_OVERLOAD, _A1(SPU_BTI_VOID))
- DEF_BUILTIN (SPU_EXTEND_0,         CODE_FOR_spu_xsbh,      "spu_extend_0",         B_INTERNAL, _A2(SPU_BTI_V8HI,   SPU_BTI_V16QI))
- DEF_BUILTIN (SPU_EXTEND_1,         CODE_FOR_spu_xshw,      "spu_extend_1",         B_INTERNAL, _A2(SPU_BTI_V4SI,   SPU_BTI_V8HI))
-Index: gcc/config/spu/spu-builtins.md
-===================================================================
---- gcc/config/spu/spu-builtins.md     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/spu-builtins.md     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -527,37 +527,119 @@
-   [(set_attr "type" "br")])
- ;; float convert
--(define_insn "spu_csflt"
--  [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
--      (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand" "r")
--                    (match_operand:SI 2 "immediate_operand" "K")] UNSPEC_CSFLT ))]
-+(define_expand "spu_csflt"
-+  [(set (match_operand:V4SF 0 "spu_reg_operand")
-+      (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand")
-+                    (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
-   ""
--  "csflt\t%0,%1,%2"
--  [(set_attr "type" "fp7")])
-+{
-+  if (GET_CODE (operands[2]) == CONST_INT
-+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
-+    {
-+      error ("spu_convtf expects an integer literal in the range [0, 127].");
-+      operands[2] = force_reg (SImode, operands[2]);
-+    }
-+  if (GET_CODE (operands[2]) != CONST_INT)
-+    {
-+      rtx exp2;
-+      rtx cnv = gen_reg_rtx (V4SFmode);
-+      rtx scale = gen_reg_rtx (SImode);
-+      rtx op2 = force_reg (SImode, operands[2]);
-+      rtx m1 = spu_gen_exp2 (V4SFmode, GEN_INT (-1));
-+      emit_insn (gen_subsi3 (scale, const1_rtx, op2));
-+      exp2 = spu_gen_exp2 (V4SFmode, scale);
-+      emit_insn (gen_floatv4siv4sf2_mul (cnv, operands[1], m1));
-+      emit_insn (gen_mulv4sf3 (operands[0], cnv, exp2));
-+    }
-+  else
-+    {
-+      rtx exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
-+      emit_insn (gen_floatv4siv4sf2_div (operands[0], operands[1], exp2));
-+    }
-+  DONE;
-+})
--(define_insn "spu_cflts"
--  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
--      (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand" "r")
--                      (match_operand:SI 2 "immediate_operand" "J")] UNSPEC_CFLTS ))]
-+(define_expand "spu_cflts"
-+  [(set (match_operand:V4SI 0 "spu_reg_operand")
-+      (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand")
-+                      (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
-   ""
--  "cflts\t%0,%1,%2"
--  [(set_attr "type" "fp7")])
-+{
-+  rtx exp2;
-+  if (GET_CODE (operands[2]) == CONST_INT
-+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
-+    {
-+      error ("spu_convts expects an integer literal in the range [0, 127].");
-+      operands[2] = force_reg (SImode, operands[2]);
-+    }
-+  exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
-+  if (GET_CODE (operands[2]) != CONST_INT)
-+    {
-+      rtx mul = gen_reg_rtx (V4SFmode);
-+      emit_insn (gen_mulv4sf3 (mul, operands[1], exp2));
-+      emit_insn (gen_fix_truncv4sfv4si2 (operands[0], mul));
-+    }
-+  else
-+    emit_insn (gen_fix_truncv4sfv4si2_mul (operands[0], operands[1], exp2));
-+  DONE;
-+})
--(define_insn "spu_cuflt"
-+(define_expand "spu_cuflt"
-   [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
--      (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand" "r")
--                    (match_operand:SI 2 "immediate_operand" "K")] UNSPEC_CUFLT ))]
-+      (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand")
-+                    (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
-   ""
--  "cuflt\t%0,%1,%2"
--  [(set_attr "type" "fp7")])
-+{
-+  if (GET_CODE (operands[2]) == CONST_INT
-+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
-+    {
-+      error ("spu_convtf expects an integer literal in the range [0, 127].");
-+      operands[2] = force_reg (SImode, operands[2]);
-+    }
-+  if (GET_CODE (operands[2]) != CONST_INT)
-+    {
-+      rtx exp2;
-+      rtx cnv = gen_reg_rtx (V4SFmode);
-+      rtx scale = gen_reg_rtx (SImode);
-+      rtx op2 = force_reg (SImode, operands[2]);
-+      rtx m1 = spu_gen_exp2 (V4SFmode, GEN_INT (-1));
-+      emit_insn (gen_subsi3 (scale, const1_rtx, op2));
-+      exp2 = spu_gen_exp2 (V4SFmode, scale);
-+      emit_insn (gen_floatunsv4siv4sf2_mul (cnv, operands[1], m1));
-+      emit_insn (gen_mulv4sf3 (operands[0], cnv, exp2));
-+    }
-+  else
-+    {
-+      rtx exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
-+      emit_insn (gen_floatunsv4siv4sf2_div (operands[0], operands[1], exp2));
-+    }
-+  DONE;
-+})
--(define_insn "spu_cfltu"
--  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
--      (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand" "r")
--                    (match_operand:SI 2 "immediate_operand" "J")] UNSPEC_CFLTU ))]
-+(define_expand "spu_cfltu"
-+  [(set (match_operand:V4SI 0 "spu_reg_operand")
-+      (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand")
-+                    (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
-   ""
--  "cfltu\t%0,%1,%2"
--  [(set_attr "type" "fp7")])
-+{
-+  rtx exp2;
-+  if (GET_CODE (operands[2]) == CONST_INT
-+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
-+    {
-+      error ("spu_convtu expects an integer literal in the range [0, 127].");
-+      operands[2] = force_reg (SImode, operands[2]);
++      /* Shift the bounds and set the offset accordingly.  */
++      tmp = gfc_conv_descriptor_ubound (dest, gfc_rank_cst[n]);
++      span = fold_build2 (MINUS_EXPR, gfc_array_index_type, tmp,
++              gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]));
++
++      ubound = fold_build2 (PLUS_EXPR, gfc_array_index_type,
++                          span, lbound);
++      gfc_add_modify (&block, tmp, ubound);
++
++      tmp = gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]);
++      gfc_add_modify (&block, tmp, lbound);
++
++      tmp = fold_build2 (MULT_EXPR, gfc_array_index_type,
++              gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]),
++              gfc_conv_descriptor_stride (dest, gfc_rank_cst[n]));
++
++      gfc_add_modify (&block, tmp2, tmp);
++      tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type,
++                       offset, tmp2);
++      gfc_add_modify (&block, offset, tmp);
 +    }
-+  exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
-+  if (GET_CODE (operands[2]) != CONST_INT)
++
++  if (arg)
 +    {
-+      rtx mul = gen_reg_rtx (V4SFmode);
-+      emit_insn (gen_mulv4sf3 (mul, operands[1], exp2));
-+      emit_insn (gen_fixuns_truncv4sfv4si2 (operands[0], mul));
++      /* If a conversion expression has a null data pointer
++       argument, nullify the allocatable component.  */
++      tree non_null_expr;
++      tree null_expr;
++
++      if (arg->symtree->n.sym->attr.allocatable
++          || arg->symtree->n.sym->attr.pointer)
++      {
++        non_null_expr = gfc_finish_block (&block);
++        gfc_start_block (&block);
++        gfc_conv_descriptor_data_set (&block, dest,
++                                      null_pointer_node);
++        null_expr = gfc_finish_block (&block);
++        tmp = gfc_conv_descriptor_data_get (arg->symtree->n.sym->backend_decl);
++        tmp = build2 (EQ_EXPR, boolean_type_node, tmp,
++                      fold_convert (TREE_TYPE (tmp),
++                                    null_pointer_node));
++        return build3_v (COND_EXPR, tmp,
++                         null_expr, non_null_expr);
++      }
 +    }
-+  else
-+    emit_insn (gen_fixuns_truncv4sfv4si2_mul (operands[0], operands[1], exp2));
-+  DONE;
-+})
++
++  return gfc_finish_block (&block);
++}
++
++
+ /* Assign a single component of a derived type constructor.  */
  
- (define_expand "spu_frds"
-    [(set (match_operand:V4SF 0 "spu_reg_operand" "")
-Index: gcc/config/spu/constraints.md
-===================================================================
---- gcc/config/spu/constraints.md      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/constraints.md      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -16,8 +16,14 @@
- ;; <http://www.gnu.org/licenses/>.
+ static tree
+@@ -3528,8 +3708,6 @@
+   gfc_ss *rss;
+   stmtblock_t block;
+   tree tmp;
+-  tree offset;
+-  int n;
  
\f
--;; GCC standard constraints:  g, i, m, n, o, p, r, s, E-H, I-P, V, X
--;; unused for SPU:  E-H, L, Q, d, e, h, q, t-z
-+;;       ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-+;; GCC:      ffffiiiiiiii     x x        x x   xxxx xx
-+;; SPU:  xxxx    xxx xxxx xxxx x xxx xx x   xxx         xx
-+;; FREE:     ffff   i    a          a  a  a        a  aa  aaa
-+;; x - used
-+;; a - available
-+;; i - available for integer immediates
-+;; f - available for floating point immediates
- ;; For most immediate constraints we have 3 variations to deal with the
- ;; fact const_int has no mode.  One variation treats const_int as 32 bit,
-@@ -159,4 +165,15 @@
-                   && INTVAL (XEXP (op, 0)) >= 0
-                   && INTVAL (XEXP (op, 0)) <= 0x3ffff")))
-+\f
-+;; Floating-point constant constraints.
-+(define_constraint "v"
-+  "Floating point power of 2 with exponent in [0..127]"
-+  (and (match_code "const_double,const_vector")
-+       (match_test "exp2_immediate_p (op, VOIDmode, 0, 127)")))
-+
-+(define_constraint "w"
-+  "Floating point power of 2 with exponent in [-126..0]"
-+  (and (match_code "const_double,const_vector")
-+       (match_test "exp2_immediate_p (op, VOIDmode, -126, 0)")))
-Index: gcc/config/spu/spu.md
-===================================================================
---- gcc/config/spu/spu.md      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/spu.md      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -136,10 +136,6 @@
-  (UNSPEC_HEQ            31)
-  (UNSPEC_HGT            32)
-  (UNSPEC_HLGT           33)
-- (UNSPEC_CSFLT          34)
-- (UNSPEC_CFLTS          35)
-- (UNSPEC_CUFLT          36)
-- (UNSPEC_CFLTU          37)
-  (UNSPEC_STOP           38)
-  (UNSPEC_STOPD          39)
-  (UNSPEC_SET_INTR       40)
-@@ -182,6 +178,8 @@
-                         SF V4SF
-                         DF V2DF])
-+(define_mode_iterator QHSI  [QI HI SI])
-+(define_mode_iterator QHSDI  [QI HI SI DI])
- (define_mode_iterator DTI  [DI TI])
- (define_mode_iterator VINT [QI V16QI
-@@ -231,6 +229,10 @@
-                        (DF "di") (V2DF "v2di")])
- (define_mode_attr F2I [(SF "SI") (V4SF "V4SI")
-                        (DF "DI") (V2DF "V2DI")])
-+(define_mode_attr i2f [(SI "sf") (V4SI "v4sf")
-+                       (DI "df") (V2DI "v2df")])
-+(define_mode_attr I2F [(SI "SF") (V4SI "V4SF")
-+                       (DI "DF") (V2DI "V2DF")])
- (define_mode_attr DF2I [(DF "SI") (V2DF "V2DI")])
-@@ -316,9 +318,10 @@
- ;; move internal
- (define_insn "_mov<mode>"
--  [(set (match_operand:MOV 0 "spu_nonimm_operand" "=r,r,r,r,r,m")
-+  [(set (match_operand:MOV 0 "spu_dest_operand" "=r,r,r,r,r,m")
-       (match_operand:MOV 1 "spu_mov_operand" "r,A,f,j,m,r"))]
--  "spu_valid_move (operands)"
-+  "register_operand(operands[0], <MODE>mode)
-+   || register_operand(operands[1], <MODE>mode)"
-   "@
-    ori\t%0,%1,0
-    il%s1\t%0,%S1
-@@ -336,9 +339,10 @@
-   "iohl\t%0,%2@l")
- (define_insn "_movdi"
--  [(set (match_operand:DI 0 "spu_nonimm_operand" "=r,r,r,r,r,m")
-+  [(set (match_operand:DI 0 "spu_dest_operand" "=r,r,r,r,r,m")
-       (match_operand:DI 1 "spu_mov_operand" "r,a,f,k,m,r"))]
--  "spu_valid_move (operands)"
-+  "register_operand(operands[0], DImode)
-+   || register_operand(operands[1], DImode)"
-   "@
-    ori\t%0,%1,0
-    il%d1\t%0,%D1
-@@ -349,9 +353,10 @@
-   [(set_attr "type" "fx2,fx2,shuf,shuf,load,store")])
- (define_insn "_movti"
--  [(set (match_operand:TI 0 "spu_nonimm_operand" "=r,r,r,r,r,m")
-+  [(set (match_operand:TI 0 "spu_dest_operand" "=r,r,r,r,r,m")
-       (match_operand:TI 1 "spu_mov_operand" "r,U,f,l,m,r"))]
--  "spu_valid_move (operands)"
-+  "register_operand(operands[0], TImode)
-+   || register_operand(operands[1], TImode)"
-   "@
-    ori\t%0,%1,0
-    il%t1\t%0,%T1
-@@ -361,30 +366,29 @@
-    stq%p0\t%1,%0"
-   [(set_attr "type" "fx2,fx2,shuf,shuf,load,store")])
--(define_insn_and_split "load"
--  [(set (match_operand 0 "spu_reg_operand" "=r")
--      (match_operand 1 "memory_operand" "m"))
--   (clobber (match_operand:TI 2 "spu_reg_operand" "=&r"))
--   (clobber (match_operand:SI 3 "spu_reg_operand" "=&r"))]
--  "GET_MODE(operands[0]) == GET_MODE(operands[1])"
--  "#"
--  ""
-+(define_split
-+  [(set (match_operand 0 "spu_reg_operand")
-+      (match_operand 1 "memory_operand"))]
-+  "GET_MODE_SIZE (GET_MODE (operands[0])) < 16
-+   && GET_MODE(operands[0]) == GET_MODE(operands[1])
-+   && !reload_in_progress && !reload_completed"
-   [(set (match_dup 0)
-       (match_dup 1))]
--  { spu_split_load(operands); DONE; })
-+  { if (spu_split_load(operands))
-+      DONE;
-+  })
--(define_insn_and_split "store"
--  [(set (match_operand 0 "memory_operand" "=m")
--      (match_operand 1 "spu_reg_operand" "r"))
--   (clobber (match_operand:TI 2 "spu_reg_operand" "=&r"))
--   (clobber (match_operand:TI 3 "spu_reg_operand" "=&r"))]
--  "GET_MODE(operands[0]) == GET_MODE(operands[1])"
--  "#"
--  ""
-+(define_split
-+  [(set (match_operand 0 "memory_operand")
-+      (match_operand 1 "spu_reg_operand"))]
-+  "GET_MODE_SIZE (GET_MODE (operands[0])) < 16
-+   && GET_MODE(operands[0]) == GET_MODE(operands[1])
-+   && !reload_in_progress && !reload_completed"
-   [(set (match_dup 0)
-       (match_dup 1))]
--  { spu_split_store(operands); DONE; })
--
-+  { if (spu_split_store(operands))
-+      DONE;
-+  })
- ;; Operand 3 is the number of bytes. 1:b 2:h 4:w 8:d
+   gfc_start_block (&block);
  
- (define_expand "cpat"
-@@ -462,34 +466,21 @@
-   ""
-   "xswd\t%0,%1");
--(define_expand "extendqiti2"
-+;; By splitting this late we don't allow much opportunity for sharing of
-+;; constants.  That's ok because this should really be optimized away.
-+(define_insn_and_split "extend<mode>ti2"
-   [(set (match_operand:TI 0 "register_operand" "")
--      (sign_extend:TI (match_operand:QI 1 "register_operand" "")))]
-+      (sign_extend:TI (match_operand:QHSDI 1 "register_operand" "")))]
-   ""
--  "spu_expand_sign_extend(operands);
--   DONE;")
--
--(define_expand "extendhiti2"
--  [(set (match_operand:TI 0 "register_operand" "")
--      (sign_extend:TI (match_operand:HI 1 "register_operand" "")))]
-+  "#"
-   ""
--  "spu_expand_sign_extend(operands);
--   DONE;")
-+  [(set (match_dup:TI 0)
-+      (sign_extend:TI (match_dup:QHSDI 1)))]
-+  {
-+    spu_expand_sign_extend(operands);
-+    DONE;
-+  })
--(define_expand "extendsiti2"
--  [(set (match_operand:TI 0 "register_operand" "")
--      (sign_extend:TI (match_operand:SI 1 "register_operand" "")))]
--  ""
--  "spu_expand_sign_extend(operands);
--   DONE;")
--
--(define_expand "extendditi2"
--  [(set (match_operand:TI 0 "register_operand" "")
--      (sign_extend:TI (match_operand:DI 1 "register_operand" "")))]
--  ""
--  "spu_expand_sign_extend(operands);
--   DONE;")
+@@ -3569,91 +3747,8 @@
+       gfc_conv_descriptor_data_set (&block, dest, null_pointer_node);
+       else if (cm->attr.allocatable)
+       {
+-        tree tmp2;
 -
\f
- ;; zero_extend
-@@ -525,6 +516,22 @@
-   "rotqmbyi\t%0,%1,-4"
-   [(set_attr "type" "shuf")])
-+(define_insn "zero_extendqiti2"
-+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
-+      (zero_extend:TI (match_operand:QI 1 "spu_reg_operand" "r")))]
-+  ""
-+  "andi\t%0,%1,0x00ff\;rotqmbyi\t%0,%0,-12"
-+  [(set_attr "type" "multi0")
-+   (set_attr "length" "8")])
-+
-+(define_insn "zero_extendhiti2"
-+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
-+      (zero_extend:TI (match_operand:HI 1 "spu_reg_operand" "r")))]
-+  ""
-+  "shli\t%0,%1,16\;rotqmbyi\t%0,%0,-14"
-+  [(set_attr "type" "multi1")
-+   (set_attr "length" "8")])
-+
- (define_insn "zero_extendsiti2"
-   [(set (match_operand:TI 0 "spu_reg_operand" "=r")
-       (zero_extend:TI (match_operand:SI 1 "spu_reg_operand" "r")))]
-@@ -594,62 +601,83 @@
\f
- ;; float conversions
--(define_insn "floatsisf2"
--  [(set (match_operand:SF 0 "spu_reg_operand" "=r")
--      (float:SF (match_operand:SI 1 "spu_reg_operand" "r")))]
-+(define_insn "float<mode><i2f>2"
-+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
-+      (float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r")))]
-   ""
-   "csflt\t%0,%1,0"
-   [(set_attr "type" "fp7")])
--(define_insn "floatv4siv4sf2"
--  [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
--      (float:V4SF (match_operand:V4SI 1 "spu_reg_operand" "r")))]
-+(define_insn "fix_trunc<mode><f2i>2"
-+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
-+      (fix:<F2I> (match_operand:VSF 1 "spu_reg_operand" "r")))]
-   ""
--  "csflt\t%0,%1,0"
-+  "cflts\t%0,%1,0"
-   [(set_attr "type" "fp7")])
--(define_insn "fix_truncsfsi2"
--  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
--      (fix:SI (match_operand:SF 1 "spu_reg_operand" "r")))]
-+(define_insn "floatuns<mode><i2f>2"
-+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
-+      (unsigned_float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r")))]
-   ""
--  "cflts\t%0,%1,0"
-+  "cuflt\t%0,%1,0"
-   [(set_attr "type" "fp7")])
--(define_insn "fix_truncv4sfv4si2"
--  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
--      (fix:V4SI (match_operand:V4SF 1 "spu_reg_operand" "r")))]
-+(define_insn "fixuns_trunc<mode><f2i>2"
-+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
-+      (unsigned_fix:<F2I> (match_operand:VSF 1 "spu_reg_operand" "r")))]
-   ""
--  "cflts\t%0,%1,0"
-+  "cfltu\t%0,%1,0"
-   [(set_attr "type" "fp7")])
--(define_insn "floatunssisf2"
--  [(set (match_operand:SF 0 "spu_reg_operand" "=r")
--      (unsigned_float:SF (match_operand:SI 1 "spu_reg_operand" "r")))]
-+(define_insn "float<mode><i2f>2_mul"
-+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
-+      (mult:<I2F> (float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
-+                  (match_operand:<I2F> 2 "spu_inv_exp2_operand" "w")))]
-   ""
--  "cuflt\t%0,%1,0"
-+  "csflt\t%0,%1,%w2"
-   [(set_attr "type" "fp7")])
--(define_insn "floatunsv4siv4sf2"
--  [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
--      (unsigned_float:V4SF (match_operand:V4SI 1 "spu_reg_operand" "r")))]
-+(define_insn "float<mode><i2f>2_div"
-+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
-+      (div:<I2F> (float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
-+                 (match_operand:<I2F> 2 "spu_exp2_operand" "v")))]
-   ""
--  "cuflt\t%0,%1,0"
-+  "csflt\t%0,%1,%v2"
-   [(set_attr "type" "fp7")])
--(define_insn "fixuns_truncsfsi2"
--  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
--      (unsigned_fix:SI (match_operand:SF 1 "spu_reg_operand" "r")))]
-+
-+(define_insn "fix_trunc<mode><f2i>2_mul"
-+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
-+      (fix:<F2I> (mult:VSF (match_operand:VSF 1 "spu_reg_operand" "r")
-+                           (match_operand:VSF 2 "spu_exp2_operand" "v"))))]
-   ""
--  "cfltu\t%0,%1,0"
-+  "cflts\t%0,%1,%v2"
-   [(set_attr "type" "fp7")])
--(define_insn "fixuns_truncv4sfv4si2"
--  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
--      (unsigned_fix:V4SI (match_operand:V4SF 1 "spu_reg_operand" "r")))]
-+(define_insn "floatuns<mode><i2f>2_mul"
-+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
-+      (mult:<I2F> (unsigned_float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
-+                  (match_operand:<I2F> 2 "spu_inv_exp2_operand" "w")))]
-   ""
--  "cfltu\t%0,%1,0"
-+  "cuflt\t%0,%1,%w2"
-   [(set_attr "type" "fp7")])
-+(define_insn "floatuns<mode><i2f>2_div"
-+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
-+      (div:<I2F> (unsigned_float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
-+                 (match_operand:<I2F> 2 "spu_exp2_operand" "v")))]
-+  ""
-+  "cuflt\t%0,%1,%v2"
-+  [(set_attr "type" "fp7")])
-+
-+(define_insn "fixuns_trunc<mode><f2i>2_mul"
-+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
-+      (unsigned_fix:<F2I> (mult:VSF (match_operand:VSF 1 "spu_reg_operand" "r")
-+                                    (match_operand:VSF 2 "spu_exp2_operand" "v"))))]
-+  ""
-+  "cfltu\t%0,%1,%v2"
-+  [(set_attr "type" "fp7")])
-+
- (define_insn "extendsfdf2"
-   [(set (match_operand:DF 0 "spu_reg_operand" "=r")
-       (unspec:DF [(match_operand:SF 1 "spu_reg_operand" "r")]
-@@ -2327,6 +2355,13 @@
-   ""
-   [(set_attr "type" "*,fx3")])
-   
-+(define_insn "<v>lshr<mode>3_imm"
-+  [(set (match_operand:VHSI 0 "spu_reg_operand" "=r")
-+      (lshiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r")
-+                     (match_operand:VHSI 2 "immediate_operand" "W")))]
-+  ""
-+  "rot<bh>mi\t%0,%1,-%<umask>2"
-+  [(set_attr "type" "fx3")])
- (define_insn "rotm_<mode>"
-   [(set (match_operand:VHSI 0 "spu_reg_operand" "=r,r")
-@@ -2338,89 +2373,59 @@
-    rot<bh>mi\t%0,%1,-%<nmask>2"
-   [(set_attr "type" "fx3")])
-  
--(define_expand "lshr<mode>3"
--  [(parallel [(set (match_operand:DTI 0 "spu_reg_operand" "")
--                 (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "")
--                               (match_operand:SI 2 "spu_nonmem_operand" "")))
--            (clobber (match_dup:DTI 3))
--            (clobber (match_dup:SI 4))
--            (clobber (match_dup:SI 5))])]
-+(define_insn_and_split "lshr<mode>3"
-+  [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r,r")
-+      (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r,r")
-+                    (match_operand:SI 2 "spu_nonmem_operand" "r,O,P")))]
-   ""
--  "if (GET_CODE (operands[2]) == CONST_INT)
--    {
--      emit_insn (gen_lshr<mode>3_imm(operands[0], operands[1], operands[2]));
--      DONE;
--    }
--   operands[3] = gen_reg_rtx (<MODE>mode);
--   operands[4] = gen_reg_rtx (SImode);
--   operands[5] = gen_reg_rtx (SImode);")
+-          gfc_init_se (&se, NULL);
+- 
+-        rss = gfc_walk_expr (expr);
+-        se.want_pointer = 0;
+-        gfc_conv_expr_descriptor (&se, expr, rss);
+-        gfc_add_block_to_block (&block, &se.pre);
 -
--(define_insn_and_split "lshr<mode>3_imm"
--  [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
--      (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r")
--                    (match_operand:SI 2 "immediate_operand" "O,P")))]
--  ""
-   "@
-+   #
-    rotqmbyi\t%0,%1,-%h2
-    rotqmbii\t%0,%1,-%e2"
--  "!satisfies_constraint_O (operands[2]) && !satisfies_constraint_P (operands[2])"
--  [(set (match_dup:DTI 0)
-+  "REG_P (operands[2]) || (!satisfies_constraint_O (operands[2]) && !satisfies_constraint_P (operands[2]))"
-+  [(set (match_dup:DTI 3)
-       (lshiftrt:DTI (match_dup:DTI 1)
-                     (match_dup:SI 4)))
-    (set (match_dup:DTI 0)
--      (lshiftrt:DTI (match_dup:DTI 0)
-+      (lshiftrt:DTI (match_dup:DTI 3)
-                     (match_dup:SI 5)))]
-   {
--    HOST_WIDE_INT val = INTVAL(operands[2]);
--    operands[4] = GEN_INT (val&7);
--    operands[5] = GEN_INT (val&-8);
-+    operands[3] = gen_reg_rtx (<MODE>mode);
-+    if (GET_CODE (operands[2]) == CONST_INT)
-+      {
-+      HOST_WIDE_INT val = INTVAL(operands[2]);
-+      operands[4] = GEN_INT (val & 7);
-+      operands[5] = GEN_INT (val & -8);
-+      }
-+    else
-+      {
-+        rtx t0 = gen_reg_rtx (SImode);
-+        rtx t1 = gen_reg_rtx (SImode);
-+      emit_insn (gen_subsi3(t0, GEN_INT(0), operands[2]));
-+      emit_insn (gen_subsi3(t1, GEN_INT(7), operands[2]));
-+        operands[4] = gen_rtx_AND (SImode, gen_rtx_NEG (SImode, t0), GEN_INT (7));
-+        operands[5] = gen_rtx_AND (SImode, gen_rtx_NEG (SImode, gen_rtx_AND (SImode, t1, GEN_INT (-8))), GEN_INT (-8));
-+      }
-   }
--  [(set_attr "type" "shuf,shuf")])
-+  [(set_attr "type" "*,shuf,shuf")])
--(define_insn_and_split "lshr<mode>3_reg"
--  [(set (match_operand:DTI 0 "spu_reg_operand" "=r")
--      (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r")
--                    (match_operand:SI 2 "spu_reg_operand" "r")))
--   (clobber (match_operand:DTI 3 "spu_reg_operand" "=&r"))
--   (clobber (match_operand:SI 4 "spu_reg_operand" "=&r"))
--   (clobber (match_operand:SI 5 "spu_reg_operand" "=&r"))]
--  ""
--  "#"
--  ""
--  [(set (match_dup:DTI 3)
--      (lshiftrt:DTI (match_dup:DTI 1)
--                   (and:SI (neg:SI (match_dup:SI 4))
--                           (const_int 7))))
--   (set (match_dup:DTI 0)
--      (lshiftrt:DTI (match_dup:DTI 3)
--                   (and:SI (neg:SI (and:SI (match_dup:SI 5)
--                                           (const_int -8)))
--                           (const_int -8))))]
--  {
--    emit_insn (gen_subsi3(operands[4], GEN_INT(0), operands[2]));
--    emit_insn (gen_subsi3(operands[5], GEN_INT(7), operands[2]));
--  })
+-        tmp = fold_convert (TREE_TYPE (dest), se.expr);
+-        gfc_add_modify (&block, dest, tmp);
 -
--(define_insn_and_split "shrqbybi_<mode>"
-+(define_expand "shrqbybi_<mode>"
-   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
-       (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r")
--                    (and:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")
--                            (const_int -8))))
--   (clobber (match_scratch:SI 3 "=&r,X"))]
-+                    (and:SI (neg:SI (and:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")
-+                                            (const_int -8)))
-+                            (const_int -8))))]
-   ""
--  "#"
--  "reload_completed"
--  [(set (match_dup:DTI 0)
--      (lshiftrt:DTI (match_dup:DTI 1)
--                    (and:SI (neg:SI (and:SI (match_dup:SI 3) (const_int -8)))
--                            (const_int -8))))]
-   {
-     if (GET_CODE (operands[2]) == CONST_INT)
--      operands[3] = GEN_INT (7 - INTVAL (operands[2]));
-+      operands[2] = GEN_INT (7 - INTVAL (operands[2]));
-     else
--      emit_insn (gen_subsi3 (operands[3], GEN_INT (7), operands[2]));
--  }
--  [(set_attr "type" "shuf")])
-+      {
-+        rtx t0 = gen_reg_rtx (SImode);
-+      emit_insn (gen_subsi3 (t0, GEN_INT (7), operands[2]));
-+        operands[2] = t0;
-+      }
-+  })
- (define_insn "rotqmbybi_<mode>"
-   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
-@@ -2465,25 +2470,22 @@
-    rotqmbii\t%0,%1,-%E2"
-   [(set_attr "type" "shuf")])
--(define_insn_and_split "shrqby_<mode>"
-+(define_expand "shrqby_<mode>"
-   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
-       (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r")
--                    (mult:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")
--                             (const_int 8))))
--   (clobber (match_scratch:SI 3 "=&r,X"))]
-+                    (mult:SI (neg:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I"))
-+                             (const_int 8))))]
-   ""
--  "#"
--  "reload_completed"
--  [(set (match_dup:DTI 0)
--      (lshiftrt:DTI (match_dup:DTI 1)
--                    (mult:SI (neg:SI (match_dup:SI 3)) (const_int 8))))]
-   {
-     if (GET_CODE (operands[2]) == CONST_INT)
--      operands[3] = GEN_INT (-INTVAL (operands[2]));
-+      operands[2] = GEN_INT (-INTVAL (operands[2]));
-     else
--      emit_insn (gen_subsi3 (operands[3], GEN_INT (0), operands[2]));
--  }
--  [(set_attr "type" "shuf")])
-+      {
-+        rtx t0 = gen_reg_rtx (SImode);
-+      emit_insn (gen_subsi3 (t0, GEN_INT (0), operands[2]));
-+        operands[2] = t0;
-+      }
-+  })
- (define_insn "rotqmby_<mode>"
-   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
-@@ -2517,7 +2519,15 @@
-   ""
-   [(set_attr "type" "*,fx3")])
-   
-+(define_insn "<v>ashr<mode>3_imm"
-+  [(set (match_operand:VHSI 0 "spu_reg_operand" "=r")
-+      (ashiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r")
-+                     (match_operand:VHSI 2 "immediate_operand" "W")))]
-+  ""
-+  "rotma<bh>i\t%0,%1,-%<umask>2"
-+  [(set_attr "type" "fx3")])
-+
- (define_insn "rotma_<mode>"
-   [(set (match_operand:VHSI 0 "spu_reg_operand" "=r,r")
-       (ashiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r,r")
-@@ -2601,11 +2611,16 @@
-   })
--(define_expand "ashrti3"
--  [(set (match_operand:TI 0 "spu_reg_operand" "")
--      (ashiftrt:TI (match_operand:TI 1 "spu_reg_operand" "")
--                   (match_operand:SI 2 "spu_nonmem_operand" "")))]
-+(define_insn_and_split "ashrti3"
-+  [(set (match_operand:TI 0 "spu_reg_operand" "=r,r")
-+      (ashiftrt:TI (match_operand:TI 1 "spu_reg_operand" "r,r")
-+                   (match_operand:SI 2 "spu_nonmem_operand" "r,i")))]
-   ""
-+  "#"
-+  ""
-+  [(set (match_dup:TI 0)
-+      (ashiftrt:TI (match_dup:TI 1)
-+                   (match_dup:SI 2)))]
-   {
-     rtx sign_shift = gen_reg_rtx (SImode);
-     rtx sign_mask = gen_reg_rtx (TImode);
-@@ -2690,33 +2705,133 @@
\f
- ;; struct extract/insert
--;; We have to handle mem's because GCC will generate invalid SUBREG's
--;; if it handles them.  We generate better code anyway.
-+;; We handle mem's because GCC will generate invalid SUBREG's
-+;; and inefficient code.
- (define_expand "extv"
--  [(set (match_operand 0 "register_operand" "")
--      (sign_extract (match_operand 1 "register_operand" "")
--                    (match_operand:SI 2 "const_int_operand" "")
--                    (match_operand:SI 3 "const_int_operand" "")))]
-+  [(set (match_operand:TI 0 "register_operand" "")
-+      (sign_extract:TI (match_operand 1 "nonimmediate_operand" "")
-+                       (match_operand:SI 2 "const_int_operand" "")
-+                       (match_operand:SI 3 "const_int_operand" "")))]
-   ""
--  { spu_expand_extv(operands, 0); DONE; })
-+  {
-+    spu_expand_extv (operands, 0);
-+    DONE;
-+  })
- (define_expand "extzv"
--  [(set (match_operand 0 "register_operand" "")
--      (zero_extract (match_operand 1 "register_operand" "")
-+  [(set (match_operand:TI 0 "register_operand" "")
-+      (zero_extract:TI (match_operand 1 "nonimmediate_operand" "")
-                        (match_operand:SI 2 "const_int_operand" "")
-                        (match_operand:SI 3 "const_int_operand" "")))]
-   ""
--  { spu_expand_extv(operands, 1); DONE; })
-+  {
-+    spu_expand_extv (operands, 1);
-+    DONE;
-+  })
- (define_expand "insv"
--  [(set (zero_extract (match_operand 0 "register_operand" "")
-+  [(set (zero_extract (match_operand 0 "nonimmediate_operand" "")
-                     (match_operand:SI 1 "const_int_operand" "")
-                     (match_operand:SI 2 "const_int_operand" ""))
-       (match_operand 3 "nonmemory_operand" ""))]
-   ""
-   { spu_expand_insv(operands); DONE; })
-+;; Simplify a number of patterns that get generated by extv, extzv,
-+;; insv, and loads.
-+(define_insn_and_split "trunc_shr_ti<mode>"
-+  [(set (match_operand:QHSI 0 "spu_reg_operand" "=r")
-+        (truncate:QHSI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "0")
-+                                                              (const_int 96)])))]
-+  ""
-+  "#"
-+  "reload_completed"
-+  [(const_int 0)]
-+  {
-+    spu_split_convert (operands);
-+    DONE;
-+  }
-+  [(set_attr "type" "convert")
-+   (set_attr "length" "0")])
-+
-+(define_insn_and_split "trunc_shr_tidi"
-+  [(set (match_operand:DI 0 "spu_reg_operand" "=r")
-+        (truncate:DI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "0")
-+                                                            (const_int 64)])))]
-+  ""
-+  "#"
-+  "reload_completed"
-+  [(const_int 0)]
-+  {
-+    spu_split_convert (operands);
-+    DONE;
-+  }
-+  [(set_attr "type" "convert")
-+   (set_attr "length" "0")])
-+
-+(define_insn_and_split "shl_ext_<mode>ti"
-+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
-+        (ashift:TI (match_operator:TI 2 "extend_operator" [(match_operand:QHSI 1 "spu_reg_operand" "0")])
-+                 (const_int 96)))]
-+  ""
-+  "#"
-+  "reload_completed"
-+  [(const_int 0)]
-+  {
-+    spu_split_convert (operands);
-+    DONE;
-+  }
-+  [(set_attr "type" "convert")
-+   (set_attr "length" "0")])
-+
-+(define_insn_and_split "shl_ext_diti"
-+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
-+        (ashift:TI (match_operator:TI 2 "extend_operator" [(match_operand:DI 1 "spu_reg_operand" "0")])
-+                 (const_int 64)))]
-+  ""
-+  "#"
-+  "reload_completed"
-+  [(const_int 0)]
-+  {
-+    spu_split_convert (operands);
-+    DONE;
-+  }
-+  [(set_attr "type" "convert")
-+   (set_attr "length" "0")])
-+
-+(define_insn "sext_trunc_lshr_tiqisi"
-+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
-+        (sign_extend:SI (truncate:QI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
-+                                                                            (const_int 120)]))))]
-+  ""
-+  "rotmai\t%0,%1,-24"
-+  [(set_attr "type" "fx3")])
-+
-+(define_insn "zext_trunc_lshr_tiqisi"
-+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
-+        (zero_extend:SI (truncate:QI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
-+                                                                            (const_int 120)]))))]
-+  ""
-+  "rotmi\t%0,%1,-24"
-+  [(set_attr "type" "fx3")])
-+
-+(define_insn "sext_trunc_lshr_tihisi"
-+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
-+        (sign_extend:SI (truncate:HI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
-+                                                                            (const_int 112)]))))]
-+  ""
-+  "rotmai\t%0,%1,-16"
-+  [(set_attr "type" "fx3")])
-+
-+(define_insn "zext_trunc_lshr_tihisi"
-+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
-+        (zero_extend:SI (truncate:HI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
-+                                                                            (const_int 112)]))))]
-+  ""
-+  "rotmi\t%0,%1,-16"
-+  [(set_attr "type" "fx3")])
-+
\f
- ;; String/block move insn.
- ;; Argument 0 is the destination
-@@ -4369,21 +4484,20 @@
-     DONE;
-   })
--(define_insn "_spu_convert"
-+(define_insn_and_split "_spu_convert"
-   [(set (match_operand 0 "spu_reg_operand" "=r")
-       (unspec [(match_operand 1 "spu_reg_operand" "0")] UNSPEC_CONVERT))]
--  "operands"
-   ""
-+  "#"
-+  "reload_completed"
-+  [(const_int 0)]
-+  {
-+    spu_split_convert (operands);
-+    DONE;
-+  }
-   [(set_attr "type" "convert")
-    (set_attr "length" "0")])
--(define_peephole2
--  [(set (match_operand 0 "spu_reg_operand")
--      (unspec [(match_operand 1 "spu_reg_operand")] UNSPEC_CONVERT))]
--  ""
--  [(use (const_int 0))]
--  "")
+-        if (cm->ts.type == BT_DERIVED && cm->ts.derived->attr.alloc_comp)
+-          tmp = gfc_copy_alloc_comp (cm->ts.derived, se.expr, dest,
+-                                     cm->as->rank);
+-        else
+-          tmp = gfc_duplicate_allocatable (dest, se.expr,
+-                                           TREE_TYPE(cm->backend_decl),
+-                                           cm->as->rank);
 -
\f
- ;;
- (include "spu-builtins.md")
-@@ -5252,8 +5366,8 @@
- }")
- (define_insn "stack_protect_set"
--  [(set (match_operand:SI 0 "spu_mem_operand" "=m")
--        (unspec:SI [(match_operand:SI 1 "spu_mem_operand" "m")] UNSPEC_SP_SET))
-+  [(set (match_operand:SI 0 "memory_operand" "=m")
-+        (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET))
-    (set (match_scratch:SI 2 "=&r") (const_int 0))]
-   ""
-   "lq%p1\t%2,%1\;stq%p0\t%2,%0\;xor\t%2,%2,%2"
-@@ -5262,8 +5376,8 @@
- )
- (define_expand "stack_protect_test"
--  [(match_operand 0 "spu_mem_operand" "")
--   (match_operand 1 "spu_mem_operand" "")
-+  [(match_operand 0 "memory_operand" "")
-+   (match_operand 1 "memory_operand" "")
-    (match_operand 2 "" "")]
-   ""
- {
-@@ -5289,8 +5403,8 @@
- (define_insn "stack_protect_test_si"
-   [(set (match_operand:SI 0 "spu_reg_operand" "=&r")
--        (unspec:SI [(match_operand:SI 1 "spu_mem_operand" "m")
--                    (match_operand:SI 2 "spu_mem_operand" "m")]
-+        (unspec:SI [(match_operand:SI 1 "memory_operand" "m")
-+                    (match_operand:SI 2 "memory_operand" "m")]
-                    UNSPEC_SP_TEST))
-    (set (match_scratch:SI 3 "=&r") (const_int 0))]
-   ""
-Index: gcc/config/spu/spu-c.c
-===================================================================
---- gcc/config/spu/spu-c.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/spu/spu-c.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -161,8 +161,7 @@
-         if ((!SCALAR_TYPE_P (param_type)
-              || !SCALAR_TYPE_P (arg_type)
-              || (all_scalar && p == 0))
--            && !comptypes (TYPE_MAIN_VARIANT (param_type),
--                           TYPE_MAIN_VARIANT (arg_type)))
-+            && !lang_hooks.types_compatible_p (param_type, arg_type))
-           break;
-       }
-       if (param == void_list_node)
-Index: gcc/config/sparc/sparc-protos.h
-===================================================================
---- gcc/config/sparc/sparc-protos.h    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/sparc/sparc-protos.h    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -70,8 +70,6 @@
- extern bool constant_address_p (rtx);
- extern bool legitimate_pic_operand_p (rtx);
- extern int legitimate_address_p (enum machine_mode, rtx, int);
--extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
--extern rtx legitimize_tls_address (rtx);
- extern rtx legitimize_address (rtx, rtx, enum machine_mode);
- extern void sparc_emit_call_insn (rtx, rtx);
- extern void sparc_defer_case_vector (rtx, rtx, int);
-@@ -103,7 +101,6 @@
- extern int fp_sethi_p (rtx);
- extern int fp_mov_p (rtx);
- extern int fp_high_losum_p (rtx);
--extern bool sparc_tls_referenced_p (rtx);
- extern int mem_min_alignment (rtx, int);
- extern int pic_address_needs_scratch (rtx);
- extern int reg_unused_after (rtx, rtx);
-Index: gcc/config/sparc/sparc.c
-===================================================================
---- gcc/config/sparc/sparc.c   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/sparc/sparc.c   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Subroutines for insn-output.c for SPARC.
-    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
-    Free Software Foundation, Inc.
-    Contributed by Michael Tiemann (tiemann@cygnus.com)
-    64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
-@@ -371,8 +371,9 @@
- static void emit_save_or_restore_regs (int);
- static void sparc_asm_function_prologue (FILE *, HOST_WIDE_INT);
- static void sparc_asm_function_epilogue (FILE *, HOST_WIDE_INT);
--#ifdef OBJECT_FORMAT_ELF
--static void sparc_elf_asm_named_section (const char *, unsigned int, tree);
-+#if defined (OBJECT_FORMAT_ELF)
-+static void sparc_elf_asm_named_section (const char *, unsigned int, tree)
-+    ATTRIBUTE_UNUSED;
- #endif
- static int sparc_adjust_cost (rtx, rtx, rtx, int);
-@@ -412,6 +413,9 @@
- static void sparc_va_start (tree, rtx);
- static tree sparc_gimplify_va_arg (tree, tree, gimple_seq *, gimple_seq *);
- static bool sparc_vector_mode_supported_p (enum machine_mode);
-+static bool sparc_tls_referenced_p (rtx);
-+static rtx legitimize_tls_address (rtx);
-+static rtx legitimize_pic_address (rtx, rtx);
- static bool sparc_pass_by_reference (CUMULATIVE_ARGS *,
-                                    enum machine_mode, const_tree, bool);
- static int sparc_arg_partial_bytes (CUMULATIVE_ARGS *,
-@@ -986,34 +990,17 @@
-   /* Fixup TLS cases.  */
-   if (TARGET_HAVE_TLS
-       && CONSTANT_P (operands[1])
--      && GET_CODE (operands[1]) != HIGH
-       && sparc_tls_referenced_p (operands [1]))
-     {
--      rtx sym = operands[1];
--      rtx addend = NULL;
++        tmp = gfc_trans_alloc_subarray_assign (dest, cm, expr);
+         gfc_add_expr_to_block (&block, tmp);
+-        gfc_add_block_to_block (&block, &se.post);
 -
--      if (GET_CODE (sym) == CONST && GET_CODE (XEXP (sym, 0)) == PLUS)
--      {
--        addend = XEXP (XEXP (sym, 0), 1);
--        sym = XEXP (XEXP (sym, 0), 0);
--      }
+-        if (expr->expr_type != EXPR_VARIABLE)
+-          gfc_conv_descriptor_data_set (&block, se.expr, null_pointer_node);
 -
--      gcc_assert (SPARC_SYMBOL_REF_TLS_P (sym));
+-        /* Shift the lbound and ubound of temporaries to being unity, rather
+-           than zero, based.  Calculate the offset for all cases.  */
+-        offset = gfc_conv_descriptor_offset (dest);
+-        gfc_add_modify (&block, offset, gfc_index_zero_node);
+-        tmp2 =gfc_create_var (gfc_array_index_type, NULL);
+-        for (n = 0; n < expr->rank; n++)
+-          {
+-            if (expr->expr_type != EXPR_VARIABLE
+-                  && expr->expr_type != EXPR_CONSTANT)
+-              {
+-                tree span;
+-                tmp = gfc_conv_descriptor_ubound (dest, gfc_rank_cst[n]);
+-                span = fold_build2 (MINUS_EXPR, gfc_array_index_type, tmp,
+-                          gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]));
+-                gfc_add_modify (&block, tmp,
+-                                     fold_build2 (PLUS_EXPR,
+-                                                  gfc_array_index_type,
+-                                                  span, gfc_index_one_node));
+-                tmp = gfc_conv_descriptor_lbound (dest, gfc_rank_cst[n]);
+-                gfc_add_modify (&block, tmp, gfc_index_one_node);
+-              }
+-            tmp = fold_build2 (MULT_EXPR, gfc_array_index_type,
+-                               gfc_conv_descriptor_lbound (dest,
+-                                                           gfc_rank_cst[n]),
+-                               gfc_conv_descriptor_stride (dest,
+-                                                           gfc_rank_cst[n]));
+-            gfc_add_modify (&block, tmp2, tmp);
+-            tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type, offset, tmp2);
+-            gfc_add_modify (&block, offset, tmp);
+-          }
 -
--      sym = legitimize_tls_address (sym);
--      if (addend)
--      {
--        sym = gen_rtx_PLUS (mode, sym, addend);
--        sym = force_operand (sym, operands[0]);
--      }
--      operands[1] = sym;
-+      operands[1] = legitimize_tls_address (operands[1]);
-+      return false;
-     }
-- 
-+
-   /* Fixup PIC cases.  */
-   if (flag_pic && CONSTANT_P (operands[1]))
-     {
-       if (pic_address_needs_scratch (operands[1]))
--      operands[1] = legitimize_pic_address (operands[1], mode, 0);
-+      operands[1] = legitimize_pic_address (operands[1], NULL_RTX);
-       /* VxWorks does not impose a fixed gap between segments; the run-time
-        gap can be different from the object-file gap.  We therefore can't
-@@ -1041,10 +1028,8 @@
-       if (symbolic_operand (operands[1], mode))
-       {
-         operands[1] = legitimize_pic_address (operands[1],
--                                              mode,
--                                              (reload_in_progress ?
--                                               operands[0] :
--                                               NULL_RTX));
-+                                              reload_in_progress
-+                                              ? operands[0] : NULL_RTX);
-         return false;
+-        if (expr->expr_type == EXPR_FUNCTION
+-              && expr->value.function.isym
+-              && expr->value.function.isym->conversion
+-              && expr->value.function.actual->expr
+-              && expr->value.function.actual->expr->expr_type
+-                                              == EXPR_VARIABLE)
+-          {
+-            /* If a conversion expression has a null data pointer
+-               argument, nullify the allocatable component.  */
+-            gfc_symbol *s;
+-            tree non_null_expr;
+-            tree null_expr;
+-            s = expr->value.function.actual->expr->symtree->n.sym;
+-            if (s->attr.allocatable || s->attr.pointer)
+-              {
+-                non_null_expr = gfc_finish_block (&block);
+-                gfc_start_block (&block);
+-                gfc_conv_descriptor_data_set (&block, dest,
+-                                              null_pointer_node);
+-                null_expr = gfc_finish_block (&block);
+-                tmp = gfc_conv_descriptor_data_get (s->backend_decl);
+-                tmp = build2 (EQ_EXPR, boolean_type_node, tmp,
+-                              fold_convert (TREE_TYPE (tmp),
+-                                            null_pointer_node));
+-                return build3_v (COND_EXPR, tmp, null_expr,
+-                                 non_null_expr);
+-              }
+-          }
        }
-     }
-@@ -2865,26 +2850,14 @@
- bool
- legitimate_constant_p (rtx x)
- {
--  rtx inner;
--
-   switch (GET_CODE (x))
-     {
-+    case CONST:
-     case SYMBOL_REF:
--      /* TLS symbols are not constant.  */
--      if (SYMBOL_REF_TLS_MODEL (x))
-+      if (sparc_tls_referenced_p (x))
-       return false;
-       break;
+       else
+       {
+Index: gcc/fortran/symbol.c
+===================================================================
+--- gcc/fortran/symbol.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/symbol.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -4237,6 +4237,8 @@
+   new_symtree->n.sym->module = gfc_get_string (old_sym->module);
+   new_symtree->n.sym->from_intmod = old_sym->from_intmod;
+   new_symtree->n.sym->intmod_sym_id = old_sym->intmod_sym_id;
++  if (old_sym->attr.function)
++    new_symtree->n.sym->result = new_symtree->n.sym;
+   /* Build the formal arg list.  */
+   build_formal_args (new_symtree->n.sym, old_sym, add_optional_arg);
  
--    case CONST:
--      inner = XEXP (x, 0);
--
--      /* Offsets of TLS symbols are never valid.
--       Discourage CSE from creating them.  */
--      if (GET_CODE (inner) == PLUS
--        && SPARC_SYMBOL_REF_TLS_P (XEXP (inner, 0)))
--      return false;
--      break;
--
-     case CONST_DOUBLE:
-       if (GET_MODE (x) == VOIDmode)
-         return true;
-@@ -2948,10 +2921,7 @@
- {
-   if (pic_address_needs_scratch (x))
-     return false;
--  if (SPARC_SYMBOL_REF_TLS_P (x)
--      || (GET_CODE (x) == CONST
--        && GET_CODE (XEXP (x, 0)) == PLUS
--        && SPARC_SYMBOL_REF_TLS_P (XEXP (XEXP (x, 0), 0))))
-+  if (sparc_tls_referenced_p (x))
-     return false;
-   return true;
- }
-@@ -2989,7 +2959,7 @@
-          && GET_CODE (rs2) != SUBREG
-          && GET_CODE (rs2) != LO_SUM
-          && GET_CODE (rs2) != MEM
--         && ! SPARC_SYMBOL_REF_TLS_P (rs2)
-+         && !(GET_CODE (rs2) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs2))
-          && (! symbolic_operand (rs2, VOIDmode) || mode == Pmode)
-          && (GET_CODE (rs2) != CONST_INT || SMALL_INT (rs2)))
-         || ((REG_P (rs1)
-@@ -3029,7 +2999,8 @@
-         rs2 = NULL;
-         imm1 = XEXP (rs1, 1);
-         rs1 = XEXP (rs1, 0);
--        if (! CONSTANT_P (imm1) || SPARC_SYMBOL_REF_TLS_P (rs1))
-+        if (!CONSTANT_P (imm1)
-+            || (GET_CODE (rs1) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs1)))
-           return 0;
-       }
+Index: gcc/fortran/decl.c
+===================================================================
+--- gcc/fortran/decl.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/decl.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ /* Declaration statement matcher
+-   Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008
++   Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+    Contributed by Andy Vaught
+@@ -6597,10 +6597,9 @@
+   if (initializer == NULL || initializer->ts.type != BT_INTEGER)
+     {
+-      gfc_error("ENUMERATOR %L not initialized with integer expression",
+-              &var_locus);
++      gfc_error ("ENUMERATOR %L not initialized with integer expression",
++               &var_locus);
+       m = MATCH_ERROR;
+-      gfc_free_enum_history ();
+       goto cleanup;
      }
-@@ -3038,7 +3009,8 @@
-       rs1 = XEXP (addr, 0);
-       imm1 = XEXP (addr, 1);
--      if (! CONSTANT_P (imm1) || SPARC_SYMBOL_REF_TLS_P (rs1))
-+      if (!CONSTANT_P (imm1)
-+        || (GET_CODE (rs1) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs1)))
-       return 0;
-       /* We can't allow TFmode in 32-bit mode, because an offset greater
-@@ -3114,29 +3086,28 @@
-   return temp;
- }
  
--/* Return 1 if *X is a thread-local symbol.  */
-+/* Return true if X contains a thread-local symbol.  */
+@@ -6666,7 +6665,10 @@
+     {
+       m = enumerator_decl ();
+       if (m == MATCH_ERROR)
+-      goto cleanup;
++      {
++        gfc_free_enum_history ();
++        goto cleanup;
++      }
+       if (m == MATCH_NO)
+       break;
  
--static int
--sparc_tls_symbol_ref_1 (rtx *x, void *data ATTRIBUTE_UNUSED)
--{
--  return SPARC_SYMBOL_REF_TLS_P (*x);
--}
--
--/* Return 1 if X contains a thread-local symbol.  */
--
--bool
-+static bool
- sparc_tls_referenced_p (rtx x)
- {
-   if (!TARGET_HAVE_TLS)
-     return false;
+Index: gcc/fortran/gfortran.h
+===================================================================
+--- gcc/fortran/gfortran.h     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/gfortran.h     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -2450,6 +2450,8 @@
+ gfc_expr *gfc_default_initializer (gfc_typespec *);
+ gfc_expr *gfc_get_variable_expr (gfc_symtree *);
  
--  return for_each_rtx (&x, &sparc_tls_symbol_ref_1, 0);
-+  if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS)
-+    x = XEXP (XEXP (x, 0), 0);
++gfc_array_spec *gfc_get_full_arrayspec_from_expr (gfc_expr *expr);
 +
-+  if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (x))
-+    return true;
+ bool gfc_traverse_expr (gfc_expr *, gfc_symbol *,
+                       bool (*)(gfc_expr *, gfc_symbol *, int*),
+                       int);
+Index: gcc/fortran/ChangeLog
+===================================================================
+--- gcc/fortran/ChangeLog      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,79 @@
++2010-03-11  Tobias Burnus  <burnus@net-b.de
 +
-+  /* That's all we handle in legitimize_tls_address for now.  */
-+  return false;
- }
- /* ADDR contains a thread-local SYMBOL_REF.  Generate code to compute
-    this (thread-local) address.  */
--rtx
-+static rtx
- legitimize_tls_address (rtx addr)
- {
-   rtx temp1, temp2, temp3, ret, o0, got, insn;
-@@ -3260,21 +3231,34 @@
-       gcc_unreachable ();
-       }
-+  else if (GET_CODE (addr) == CONST)
-+    {
-+      rtx base, offset;
++      PR fortran/43303
++      * symbol.c (get_iso_c_sym): Set sym->result.
 +
-+      gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS);
++2010-02-16  Paul Thomas  <pault@gcc.gnu.org>
 +
-+      base = legitimize_tls_address (XEXP (XEXP (addr, 0), 0));
-+      offset = XEXP (XEXP (addr, 0), 1);
++      PR fortran/41869
++      * module.c (fix_mio_expr): Fix for private generic procedures.
 +
-+      base = force_operand (base, NULL_RTX);
-+      if (!(GET_CODE (offset) == CONST_INT && SMALL_INT (offset)))
-+      offset = force_reg (Pmode, offset);
-+      ret = gen_rtx_PLUS (Pmode, base, offset);
-+    }
++2010-02-11  Jakub Jelinek  <jakub@redhat.com>
 +
-   else
-     gcc_unreachable ();  /* for now ... */
-   return ret;
- }
--
- /* Legitimize PIC addresses.  If the address is already position-independent,
-    we return ORIG.  Newly generated position-independent addresses go into a
-    reg.  This is REG if nonzero, otherwise we allocate register(s) as
-    necessary.  */
--rtx
--legitimize_pic_address (rtx orig, enum machine_mode mode ATTRIBUTE_UNUSED,
--                      rtx reg)
-+static rtx
-+legitimize_pic_address (rtx orig, rtx reg)
- {
-   if (GET_CODE (orig) == SYMBOL_REF
-       /* See the comment in sparc_expand_move.  */
-@@ -3341,9 +3325,9 @@
-       }
-       gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS);
--      base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg);
--      offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode,
--                                     base == reg ? 0 : reg);
-+      base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), reg);
-+      offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1),
-+                                     base == reg ? NULL_RTX : reg);
-       if (GET_CODE (offset) == CONST_INT)
-       {
-@@ -3395,10 +3379,10 @@
-   if (x != orig_x && legitimate_address_p (mode, x, FALSE))
-     return x;
--  if (SPARC_SYMBOL_REF_TLS_P (x))
-+  if (sparc_tls_referenced_p (x))
-     x = legitimize_tls_address (x);
-   else if (flag_pic)
--    x = legitimize_pic_address (x, mode, 0);
-+    x = legitimize_pic_address (x, NULL_RTX);
-   else if (GET_CODE (x) == PLUS && CONSTANT_ADDRESS_P (XEXP (x, 1)))
-     x = gen_rtx_PLUS (Pmode, XEXP (x, 0),
-                     copy_to_mode_reg (Pmode, XEXP (x, 1)));
-@@ -3407,8 +3391,9 @@
-                     copy_to_mode_reg (Pmode, XEXP (x, 0)));
-   else if (GET_CODE (x) == SYMBOL_REF
-          || GET_CODE (x) == CONST
--           || GET_CODE (x) == LABEL_REF)
-+         || GET_CODE (x) == LABEL_REF)
-     x = copy_to_suggested_reg (x, NULL_RTX, Pmode);
-+
-   return x;
- }
-@@ -7863,19 +7848,11 @@
-     }
- }
\f
--#ifdef OBJECT_FORMAT_ELF
-+#if defined (OBJECT_FORMAT_ELF)
- static void
- sparc_elf_asm_named_section (const char *name, unsigned int flags,
-                            tree decl)
- {
--  if (flags & SECTION_MERGE)
--    {
--      /* entsize cannot be expressed in this section attributes
--       encoding style.  */
--      default_elf_asm_named_section (name, flags, decl);
--      return;
--    }
--
-   fprintf (asm_out_file, "\t.section\t\"%s\"", name);
-   if (!(flags & SECTION_DEBUG))
-@@ -8758,7 +8735,7 @@
-         /* Delay emitting the PIC helper function because it needs to
-            change the section and we are emitting assembly code.  */
-         load_pic_register (true);  /* clobbers %o7 */
--        scratch = legitimize_pic_address (funexp, Pmode, scratch);
-+        scratch = legitimize_pic_address (funexp, scratch);
-         seq = get_insns ();
-         end_sequence ();
-         emit_and_preserve (seq, spill_reg, spill_reg2);
-Index: gcc/config/sparc/sparc.h
-===================================================================
---- gcc/config/sparc/sparc.h   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/sparc/sparc.h   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2297,9 +2297,6 @@
-       }                                       \
-   } while (0)
--#define SPARC_SYMBOL_REF_TLS_P(RTX) \
--  (GET_CODE (RTX) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (RTX) != 0)
--
- #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \
-   ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '('            \
-    || (CHAR) == ')' || (CHAR) == '_' || (CHAR) == '&')
-Index: gcc/config/sparc/gas.h
-===================================================================
---- gcc/config/sparc/gas.h     (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/config/sparc/gas.h     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,6 @@
-+/* Definitions of target machine for GCC, for SPARC
-+   using the GNU assembler.  */
++      PR fortran/43030
++      * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
 +
-+/* Switch into a generic section.  */
-+#undef TARGET_ASM_NAMED_SECTION
-+#define TARGET_ASM_NAMED_SECTION  default_elf_asm_named_section
-Index: gcc/config/sparc/sysv4.h
-===================================================================
---- gcc/config/sparc/sysv4.h   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/sparc/sysv4.h   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,6 @@
- /* Target definitions for GNU compiler for SPARC running System V.4
--   Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009
-+   Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009,
-+   2010
-    Free Software Foundation, Inc.
-    Contributed by Ron Guilmette (rfg@monkeys.com).
++      PR fortran/43029
++      * decl.c (enumerator_decl): Don't call gfc_free_enum_history
++      here.
++      (gfc_match_enumerator_def): But here whenever enumerator_decl returns
++      MATCH_ERROR.
++
++2010-02-10  Jakub Jelinek  <jakub@redhat.com>
++
++      PR fortran/42309
++      * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
++      info->dimen after info has been freed.
++
++2010-02-06  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/42309
++      * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
++      'formal_ptr'. If this is true, give returned descriptor unity
++      lbounds, in all dimensions, and the appropriate offset.
++      (gfc_conv_procedure_call); If formal is a pointer, set the last
++      argument of gfc_conv_subref_array_arg to true.
++      * trans.h : Add last argument for gfc_conv_subref_array_arg.
++      * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
++      new arg of gfc_conv_subref_array_arg to false.
++      * trans-stmt.c (forall_make_variable_temp): The same.
++
++2010-02-02  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/42650
++      * parse.c (decode_specification_statement): Use sym->result not sym.
++
++2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/38324
++      * expr.c (gfc_get_full_arrayspec_from_expr): New function.
++      * gfortran.h : Add prototype for above.
++      * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
++      (gfc_trans_subcomponent_assign): Call new function to replace
++      the code to deal with allocatable components.
++      * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
++      gfc_get_full_arrayspec_from_expr to replace existing code.
++
++2010-01-30  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/41044
++      PR fortran/41167
++      * expr.c (remove_subobject_ref): If the constructor is NULL use
++      the expression as the source.
++      (simplify_const_ref): Change the type of expression if
++      there are component references.  Allow for substring to be at
++      the end of an arbitrarily long chain of references.  If an
++      element is found that is not in an EXPR_ARRAY, assume that this
++      is scalar initialization of array. Call remove_subobject_ref in
++      this case with NULL second argument.
++
++2010-01-27  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/42736
++      * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
++      is required, turn any trailing array elements after a range
++      into ranges so that offsets can be calculated.
++
+ 2010-01-21  Release Manager
  
-Index: gcc/config/t-slibgcc-libgcc
+       * GCC 4.4.3 released.
+Index: gcc/fortran/trans-stmt.c
 ===================================================================
---- gcc/config/t-slibgcc-libgcc        (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ gcc/config/t-slibgcc-libgcc        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,32 @@
-+# Copyright (C) 2009 Free Software Foundation, Inc.
-+#
-+# This file is part of GCC.
-+#
-+# GCC is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3, or (at your option)
-+# any later version.
-+#
-+# GCC is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with GCC; see the file COPYING3.  If not see
-+# <http://www.gnu.org/licenses/>.
-+
-+# Instead of creating $(SHLIB_SOLINK) symlink create a GNU ld
-+# linker script which sources in both $(SHLIB_SONAME) and libgcc.a.
-+# This is needed on targets where libgcc.a contains routines that aren't in
-+# $(SHLIB_SONAME) and are needed for shared libraries.
-+
-+SHLIB_MAKE_SOLINK = \
-+      (echo "/* GNU ld script"; \
-+       echo "   Use the shared library, but some functions are only in"; \
-+       echo "   the static library.  */"; \
-+       echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
-+      ) > $(SHLIB_DIR)/$(SHLIB_SOLINK)
-+SHLIB_INSTALL_SOLINK = \
-+      $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
-+        $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
-Index: gcc/config/i386/cygming.h
-===================================================================
---- gcc/config/i386/cygming.h  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/cygming.h  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -49,8 +49,9 @@
-    target, always use the svr4_dbx_register_map for DWARF .eh_frame
-    even if we don't use DWARF .debug_frame. */
- #undef DWARF_FRAME_REGNUM
--#define DWARF_FRAME_REGNUM(n) TARGET_64BIT \
--      ? dbx64_register_map[(n)] : svr4_dbx_register_map[(n)] 
-+#define DWARF_FRAME_REGNUM(n)                                 \
-+  (TARGET_64BIT ? dbx64_register_map[(n)]                     \
-+              : svr4_dbx_register_map[(n)])
- #ifdef HAVE_GAS_PE_SECREL32_RELOC
- /* Use section relative relocations for debugging offsets.  Unlike
-@@ -126,8 +127,6 @@
\f
- /* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
- #define HANDLE_PRAGMA_PACK_PUSH_POP 1
--/* Enable push_macro & pop_macro */
--#define HANDLE_PRAGMA_PUSH_POP_MACRO 1
- union tree_node;
- #define TREE union tree_node *
-Index: gcc/config/i386/cygwin.h
-===================================================================
---- gcc/config/i386/cygwin.h   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/cygwin.h   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -94,7 +94,7 @@
-   %{shared|mdll: -e \
-     %{mno-cygwin:_DllMainCRTStartup@12} \
-     %{!mno-cygwin:__cygwin_dll_entry@12}}\
--  %{!mno-cygwin:--dll-search-prefix=cyg}"
-+  %{!mno-cygwin:--dll-search-prefix=cyg -tsaware}"
- /* Allocate space for all of the machine-spec-specific stuff.
-    Allocate enough space for cygwin -> mingw32  munging plus
-Index: gcc/config/i386/i386.md
-===================================================================
---- gcc/config/i386/i386.md    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/i386.md    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -6487,7 +6487,7 @@
-   switch (get_attr_type (insn))
-     {
-     case TYPE_LEA:
--      operands[2] = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
-+      operands[2] = XEXP (SET_SRC (XVECEXP (PATTERN (insn), 0, 0)), 0);
-       return "lea{l}\t{%a2, %k0|%k0, %a2}";
-     case TYPE_INCDEC:
-@@ -9880,7 +9880,7 @@
-                          (const_int 8))))
-    (clobber (reg:CC FLAGS_REG))]
-   "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))"
--  "ior{b}\t{%h2, %h0|%h0, %h2}"
-+  "or{b}\t{%h2, %h0|%h0, %h2}"
-   [(set_attr "type" "alu")
-    (set_attr "length_immediate" "0")
-    (set_attr "mode" "QI")])
-@@ -14941,6 +14941,10 @@
- ;; checked for calls.  This is a bug in the generic code, but it isn't that
- ;; easy to fix.  Ignore it for now and be prepared to fix things up.
-+;; P6 processors will jump to the address after the decrement when %esp
-+;; is used as a call operand, so they will execute return address as a code.
-+;; See Pentium Pro errata 70, Pentium 2 errata A33 and Pentium 3 errata E17.
-+
- ;; Call subroutine returning no value.
- (define_expand "call_pop"
-@@ -14970,11 +14974,11 @@
-   [(set_attr "type" "call")])
- (define_insn "*call_pop_1"
--  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm"))
-+  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "lsm"))
-        (match_operand:SI 1 "" ""))
-    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
-                           (match_operand:SI 2 "immediate_operand" "i")))]
--  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
- {
-   if (constant_call_address_operand (operands[0], Pmode))
-     return "call\t%P0";
-@@ -14987,7 +14991,7 @@
-        (match_operand:SI 1 "" ""))
-    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
-                           (match_operand:SI 2 "immediate_operand" "i,i")))]
--  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
-   "@
-    jmp\t%P0
-    jmp\t%A0"
-@@ -15026,9 +15030,9 @@
-   [(set_attr "type" "call")])
- (define_insn "*call_1"
--  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm"))
-+  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "lsm"))
-        (match_operand 1 "" ""))]
--  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
- {
-   if (constant_call_address_operand (operands[0], Pmode))
-     return "call\t%P0";
-@@ -15039,7 +15043,7 @@
- (define_insn "*sibcall_1"
-   [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "s,U"))
-        (match_operand 1 "" ""))]
--  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
-   "@
-    jmp\t%P0
-    jmp\t%A0"
-@@ -15048,7 +15052,7 @@
- (define_insn "*call_1_rex64"
-   [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm"))
-        (match_operand 1 "" ""))]
--  "!SIBLING_CALL_P (insn) && TARGET_64BIT
-+  "TARGET_64BIT && !SIBLING_CALL_P (insn)
-    && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
- {
-   if (constant_call_address_operand (operands[0], Pmode))
-@@ -15073,7 +15077,7 @@
-    (clobber (reg:TI XMM15_REG))
-    (clobber (reg:DI SI_REG))
-    (clobber (reg:DI DI_REG))]
--  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
-+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
- {
-   if (constant_call_address_operand (operands[0], Pmode))
-     return "call\t%P0";
-@@ -15084,14 +15088,14 @@
- (define_insn "*call_1_rex64_large"
-   [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rm"))
-        (match_operand 1 "" ""))]
--  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
-+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
-   "call\t%A0"
-   [(set_attr "type" "call")])
- (define_insn "*sibcall_1_rex64"
-   [(call (mem:QI (match_operand:DI 0 "sibcall_insn_operand" "s,U"))
-        (match_operand 1 "" ""))]
--  "SIBLING_CALL_P (insn) && TARGET_64BIT"
-+  "TARGET_64BIT && SIBLING_CALL_P (insn)"
-   "@
-    jmp\t%P0
-    jmp\t%A0"
-@@ -21469,11 +21473,11 @@
- (define_insn "*call_value_pop_1"
-   [(set (match_operand 0 "" "")
--      (call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm"))
-+      (call (mem:QI (match_operand:SI 1 "call_insn_operand" "lsm"))
-             (match_operand:SI 2 "" "")))
-    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
-                           (match_operand:SI 3 "immediate_operand" "i")))]
--  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
- {
-   if (constant_call_address_operand (operands[1], Pmode))
-     return "call\t%P1";
-@@ -21487,7 +21491,7 @@
-             (match_operand:SI 2 "" "")))
-    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
-                           (match_operand:SI 3 "immediate_operand" "i,i")))]
--  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
-   "@
-    jmp\t%P1
-    jmp\t%A1"
-@@ -21536,7 +21540,7 @@
-    (clobber (reg:TI XMM15_REG))
-    (clobber (reg:DI SI_REG))
-    (clobber (reg:DI DI_REG))]
--  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
-+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
- {
-   if (SIBLING_CALL_P (insn))
-     return "jmp\t%P1";
-@@ -21547,9 +21551,9 @@
- (define_insn "*call_value_1"
-   [(set (match_operand 0 "" "")
--      (call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm"))
-+      (call (mem:QI (match_operand:SI 1 "call_insn_operand" "lsm"))
-             (match_operand:SI 2 "" "")))]
--  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
- {
-   if (constant_call_address_operand (operands[1], Pmode))
-     return "call\t%P1";
-@@ -21561,7 +21565,7 @@
-   [(set (match_operand 0 "" "")
-       (call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "s,U"))
-             (match_operand:SI 2 "" "")))]
--  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
-+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
-   "@
-    jmp\t%P1
-    jmp\t%A1"
-@@ -21571,7 +21575,7 @@
-   [(set (match_operand 0 "" "")
-       (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm"))
-             (match_operand:DI 2 "" "")))]
--  "!SIBLING_CALL_P (insn) && TARGET_64BIT
-+  "TARGET_64BIT && !SIBLING_CALL_P (insn)
-    && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
- {
-   if (constant_call_address_operand (operands[1], Pmode))
-@@ -21609,7 +21613,7 @@
-   [(set (match_operand 0 "" "")
-       (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rm"))
-             (match_operand:DI 2 "" "")))]
--  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
-+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
-   "call\t%A1"
-   [(set_attr "type" "callv")])
-@@ -21617,7 +21621,7 @@
-   [(set (match_operand 0 "" "")
-       (call (mem:QI (match_operand:DI 1 "sibcall_insn_operand" "s,U"))
-             (match_operand:DI 2 "" "")))]
--  "SIBLING_CALL_P (insn) && TARGET_64BIT"
-+  "TARGET_64BIT && SIBLING_CALL_P (insn)"
-   "@
-    jmp\t%P1
-    jmp\t%A1"
-@@ -21932,7 +21936,7 @@
-   [(set_attr "type" "multi")])
- (define_mode_iterator CRC32MODE [QI HI SI])
--(define_mode_attr crc32modesuffix [(QI "b") (HI "w") (SI "l")])
-+(define_mode_attr crc32modesuffix [(QI "{b}") (HI "{w}") (SI "{l}")])
- (define_mode_attr crc32modeconstraint [(QI "qm") (HI "rm") (SI "rm")])
- (define_insn "sse4_2_crc32<mode>"
-@@ -21955,7 +21959,7 @@
-          (match_operand:DI 2 "nonimmediate_operand" "rm")]
-         UNSPEC_CRC32))]
-   "TARGET_SSE4_2 && TARGET_64BIT"
--  "crc32q\t{%2, %0|%0, %2}"
-+  "crc32{q}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sselog1")
-    (set_attr "prefix_rep" "1")
-    (set_attr "prefix_extra" "1")
-Index: gcc/config/i386/mmx.md
-===================================================================
---- gcc/config/i386/mmx.md     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/mmx.md     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -336,7 +336,7 @@
-   "TARGET_3DNOW && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "@
-    pfsub\t{%2, %0|%0, %2}
--   pfsubr\t{%2, %0|%0, %2}"
-+   pfsubr\t{%1, %0|%0, %1}"
-   [(set_attr "type" "mmxadd")
-    (set_attr "mode" "V2SF")])
-@@ -1202,7 +1202,10 @@
-   "TARGET_SSE || TARGET_3DNOW_A"
- {
-   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
--  return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
-+  if (MEM_P (operands[2]))
-+    return "pinsrw\t{%3, %2, %0|%0, %2, %3}";
-+  else
-+    return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
- }
-   [(set_attr "type" "mmxcvt")
-    (set_attr "mode" "DI")])
-Index: gcc/config/i386/predicates.md
-===================================================================
---- gcc/config/i386/predicates.md      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/predicates.md      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -519,6 +519,22 @@
-                       FIRST_PSEUDO_REGISTER, LAST_VIRTUAL_REGISTER));
- })
-+;; P6 processors will jump to the address after the decrement when %esp
-+;; is used as a call operand, so they will execute return address as a code.
-+;; See Pentium Pro errata 70, Pentium 2 errata A33 and Pentium 3 errata E17.
+--- gcc/fortran/trans-stmt.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/trans-stmt.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -212,6 +212,7 @@
+   gfc_ss *ss;
+   gfc_ss_info *info;
+   gfc_symbol *fsym;
++  gfc_ref *ref;
+   int n;
+   tree data;
+   tree offset;
+@@ -267,6 +268,34 @@
+         /* Obtain the argument descriptor for unpacking.  */
+         gfc_init_se (&parmse, NULL);
+         parmse.want_pointer = 1;
++
++        /* The scalarizer introduces some specific peculiarities when
++           handling elemental subroutines; the stride can be needed up to
++           the dim_array - 1, rather than dim_loop - 1 to calculate
++           offsets outside the loop.  For this reason, we make sure that
++           the descriptor has the dimensionality of the array by converting
++           trailing elements into ranges with end = start.  */
++        for (ref = e->ref; ref; ref = ref->next)
++          if (ref->type == REF_ARRAY && ref->u.ar.type == AR_SECTION)
++            break;
 +
-+(define_predicate "call_register_no_elim_operand"
-+  (match_operand 0 "register_operand")
-+{
-+  if (GET_CODE (op) == SUBREG)
-+    op = SUBREG_REG (op);
++        if (ref)
++          {
++            bool seen_range = false;
++            for (n = 0; n < ref->u.ar.dimen; n++)
++              {
++                if (ref->u.ar.dimen_type[n] == DIMEN_RANGE)
++                  seen_range = true;
 +
-+  if (!TARGET_64BIT && op == stack_pointer_rtx)
-+    return 0;
++                if (!seen_range
++                      || ref->u.ar.dimen_type[n] != DIMEN_ELEMENT)
++                  continue;
 +
-+  return register_no_elim_operand (op, mode);
-+})
++                ref->u.ar.end[n] = gfc_copy_expr (ref->u.ar.start[n]);
++                ref->u.ar.dimen_type[n] = DIMEN_RANGE;
++              }
++          }
 +
- ;; Similarly, but include the stack pointer.  This is used to prevent esp
- ;; from being used as an index reg.
- (define_predicate "index_register_operand"
-@@ -547,7 +563,7 @@
- ;; Test for a valid operand for a call instruction.
- (define_predicate "call_insn_operand"
-   (ior (match_operand 0 "constant_call_address_operand")
--       (ior (match_operand 0 "register_no_elim_operand")
-+       (ior (match_operand 0 "call_register_no_elim_operand")
-           (match_operand 0 "memory_operand"))))
- ;; Similarly, but for tail calls, in which we cannot allow memory references.
-Index: gcc/config/i386/sse.md
-===================================================================
---- gcc/config/i386/sse.md     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/sse.md     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2307,7 +2307,7 @@
-            (parallel [(const_int 0)]))]
-         UNSPEC_FIX_NOTRUNC))]
-   "TARGET_SSE && TARGET_64BIT"
--  "%vcvtss2siq\t{%1, %0|%0, %1}"
-+  "%vcvtss2si{q}\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sseicvt")
-    (set_attr "athlon_decode" "double,vector")
-    (set_attr "prefix_rep" "1")
-@@ -2319,7 +2319,7 @@
-       (unspec:DI [(match_operand:SF 1 "nonimmediate_operand" "x,m")]
-                  UNSPEC_FIX_NOTRUNC))]
-   "TARGET_SSE && TARGET_64BIT"
--  "%vcvtss2siq\t{%1, %0|%0, %1}"
-+  "%vcvtss2si{q}\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sseicvt")
-    (set_attr "athlon_decode" "double,vector")
-    (set_attr "amdfam10_decode" "double,double")
-@@ -2349,7 +2349,7 @@
-           (match_operand:V4SF 1 "nonimmediate_operand" "x,m")
-           (parallel [(const_int 0)]))))]
-   "TARGET_SSE && TARGET_64BIT"
--  "%vcvttss2siq\t{%1, %0|%0, %1}"
-+  "%vcvttss2si{q}\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sseicvt")
-    (set_attr "athlon_decode" "double,vector")
-    (set_attr "amdfam10_decode" "double,double")
-@@ -6590,7 +6590,10 @@
-   "TARGET_AVX"
- {
-   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
--  return "vpinsr<avxmodesuffixs>\t{%3, %k2, %1, %0|%0, %1, %k2, %3}";
-+  if (MEM_P (operands[2]))
-+    return "vpinsr<avxmodesuffixs>\t{%3, %2, %1, %0|%0, %1, %2, %3}";
-+  else
-+    return "vpinsr<avxmodesuffixs>\t{%3, %k2, %1, %0|%0, %1, %k2, %3}";
- }
-   [(set_attr "type" "sselog")
-    (set_attr "prefix" "vex")
-@@ -6606,7 +6609,10 @@
-   "TARGET_SSE4_1"
- {
-   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
--  return "pinsrb\t{%3, %k2, %0|%0, %k2, %3}";
-+  if (MEM_P (operands[2]))
-+    return "pinsrb\t{%3, %2, %0|%0, %2, %3}";
-+  else
-+    return "pinsrb\t{%3, %k2, %0|%0, %k2, %3}";
- }
-   [(set_attr "type" "sselog")
-    (set_attr "prefix_extra" "1")
-@@ -6622,7 +6628,10 @@
-   "TARGET_SSE2"
+         gfc_conv_expr_descriptor (&parmse, e, gfc_walk_expr (e));
+         gfc_add_block_to_block (&se->pre, &parmse.pre);
+@@ -1691,7 +1720,7 @@
+   if (old_sym->attr.dimension)
+     {
+       gfc_init_se (&tse, NULL);
+-      gfc_conv_subref_array_arg (&tse, e, 0, INTENT_IN);
++      gfc_conv_subref_array_arg (&tse, e, 0, INTENT_IN, false);
+       gfc_add_block_to_block (pre, &tse.pre);
+       gfc_add_block_to_block (post, &tse.post);
+       tse.expr = build_fold_indirect_ref (tse.expr);
+Index: gcc/fortran/expr.c
+===================================================================
+--- gcc/fortran/expr.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/expr.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1123,8 +1123,13 @@
  {
-   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
--  return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
-+  if (MEM_P (operands[2]))
-+    return "pinsrw\t{%3, %2, %0|%0, %2, %3}";
+   gfc_expr *e;
+-  e = cons->expr;
+-  cons->expr = NULL;
++  if (cons)
++    {
++      e = cons->expr;
++      cons->expr = NULL;
++    }
 +  else
-+    return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
- }
-   [(set_attr "type" "sselog")
-    (set_attr "prefix_data16" "1")
-Index: gcc/config/i386/i386.c
-===================================================================
---- gcc/config/i386/i386.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/i386/i386.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -10379,7 +10379,7 @@
- static bool
- ix86_pic_register_p (rtx x)
++    e = gfc_copy_expr (p);
+   e->ref = p->ref->next;
+   p->ref->next =  NULL;
+   gfc_replace_expr (p, e);
+@@ -1428,6 +1433,7 @@
  {
--  if (GET_CODE (x) == VALUE)
-+  if (GET_CODE (x) == VALUE && CSELIB_VAL_PTR (x))
-     return (pic_offset_table_rtx
-           && rtx_equal_for_cselib_p (x, pic_offset_table_rtx));
-   else
-@@ -11313,13 +11313,14 @@
-           case 2: size = "WORD"; break;
-           case 4: size = "DWORD"; break;
-           case 8: size = "QWORD"; break;
--          case 12: size = "XWORD"; break;
-+          case 12: size = "TBYTE"; break;
-           case 16:
-             if (GET_MODE (x) == XFmode)
--              size = "XWORD";
-+              size = "TBYTE";
-               else
-               size = "XMMWORD";
-               break;
-+          case 32: size = "YMMWORD"; break;
-           default:
-             gcc_unreachable ();
-           }
-@@ -15674,8 +15675,9 @@
-           }
-       }
+   gfc_constructor *cons;
+   gfc_expr *newp;
++  gfc_ref *last_ref;
  
--      /* Unsigned parallel compare is not supported by the hardware.  Play some
--       tricks to turn this into a signed comparison against 0.  */
-+      /* Unsigned parallel compare is not supported by the hardware.
-+       Play some tricks to turn this into a signed comparison
-+       against 0.  */
-       if (code == GTU)
-       {
-         cop0 = force_reg (mode, cop0);
-@@ -15684,32 +15686,26 @@
+   while (p->ref)
+     {
+@@ -1437,6 +1443,13 @@
+         switch (p->ref->u.ar.type)
            {
-           case V4SImode:
-           case V2DImode:
--            {
--              rtx t1, t2, mask;
+           case AR_ELEMENT:
++            /* <type/kind spec>, parameter :: x(<int>) = scalar_expr
++               will generate this.  */
++            if (p->expr_type != EXPR_ARRAY)
 +              {
-+                rtx t1, t2, mask;
-+                rtx (*gen_sub3) (rtx, rtx, rtx);
--              /* Perform a parallel modulo subtraction.  */
--              t1 = gen_reg_rtx (mode);
--              emit_insn ((mode == V4SImode
--                          ? gen_subv4si3
--                          : gen_subv2di3) (t1, cop0, cop1));
-+                /* Subtract (-(INT MAX) - 1) from both operands to make
-+                   them signed.  */
-+                mask = ix86_build_signbit_mask (GET_MODE_INNER (mode),
-+                                                true, false);
-+                gen_sub3 = (mode == V4SImode
-+                            ? gen_subv4si3 : gen_subv2di3);
-+                t1 = gen_reg_rtx (mode);
-+                emit_insn (gen_sub3 (t1, cop0, mask));
--              /* Extract the original sign bit of op0.  */
--              mask = ix86_build_signbit_mask (GET_MODE_INNER (mode),
--                                              true, false);
--              t2 = gen_reg_rtx (mode);
--              emit_insn ((mode == V4SImode
--                          ? gen_andv4si3
--                          : gen_andv2di3) (t2, cop0, mask));
-+                t2 = gen_reg_rtx (mode);
-+                emit_insn (gen_sub3 (t2, cop1, mask));
--              /* XOR it back into the result of the subtraction.  This results
--                 in the sign bit set iff we saw unsigned underflow.  */
--              x = gen_reg_rtx (mode);
--              emit_insn ((mode == V4SImode
--                          ? gen_xorv4si3
--                          : gen_xorv2di3) (x, t1, t2));
--
--              code = GT;
--            }
-+                cop0 = t1;
-+                cop1 = t2;
-+                code = GT;
++                remove_subobject_ref (p, NULL);
++                break;
 +              }
-             break;
-           case V16QImode:
-@@ -15719,6 +15715,8 @@
-             emit_insn (gen_rtx_SET (VOIDmode, x,
-                                     gen_rtx_US_MINUS (mode, cop0, cop1)));
-+            cop0 = x;
-+            cop1 = CONST0_RTX (mode);
-             code = EQ;
-             negate = !negate;
-             break;
-@@ -15726,9 +15724,6 @@
-           default:
-             gcc_unreachable ();
-           }
--
--        cop0 = x;
--        cop1 = CONST0_RTX (mode);
-       }
-     }
-Index: gcc/config/sh/sh.c
-===================================================================
---- gcc/config/sh/sh.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/sh/sh.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -4061,6 +4061,13 @@
-              && ! TARGET_SMALLCODE)
-       new_align = 4;
-+      /* There is a possibility that a bf is transformed into a bf/s by the
-+       delay slot scheduler.  */
-+      if (JUMP_P (from) && !JUMP_TABLE_DATA_P (from) 
-+        && get_attr_type (from) == TYPE_CBRANCH
-+        && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (from)))) != SEQUENCE)
-+      inc += 2;
-+
-       if (found_si)
-       {
-         count_si += inc;
-@@ -8721,9 +8728,7 @@
-       && GET_CODE (PATTERN (insn)) != USE
-       && GET_CODE (PATTERN (insn)) != CLOBBER)
-        || GET_CODE (insn) == CALL_INSN
--       || (GET_CODE (insn) == JUMP_INSN
--         && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
--         && GET_CODE (PATTERN (insn)) != ADDR_VEC))
-+       || (JUMP_P (insn) && !JUMP_TABLE_DATA_P (insn)))
-       && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) != SEQUENCE
-       && get_attr_needs_delay_slot (insn) == NEEDS_DELAY_SLOT_YES)
-     return 2;
-@@ -8731,9 +8736,7 @@
-   /* SH2e has a bug that prevents the use of annulled branches, so if
-      the delay slot is not filled, we'll have to put a NOP in it.  */
-   if (sh_cpu == CPU_SH2E
--      && GET_CODE (insn) == JUMP_INSN
--      && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
--      && GET_CODE (PATTERN (insn)) != ADDR_VEC
-+      && JUMP_P (insn) && !JUMP_TABLE_DATA_P (insn)
-       && get_attr_type (insn) == TYPE_CBRANCH
-       && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) != SEQUENCE)
-     return 2;
-Index: gcc/config/t-slibgcc-elf-ver
-===================================================================
---- gcc/config/t-slibgcc-elf-ver       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/t-slibgcc-elf-ver       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -10,6 +10,9 @@
- SHLIB_DIR = @multilib_dir@
- SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
- SHLIB_LC = -lc
-+SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
-+SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
-+      $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
- SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-       -Wl,--soname=$(SHLIB_SONAME) \
-@@ -22,7 +25,7 @@
-               $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
-       else true; fi && \
-       mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
--      $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
-+      $(SHLIB_MAKE_SOLINK)
- # $(slibdir) double quoted to protect it from expansion while building
- # libgcc.mk.  We want this delayed until actual install time.
- SHLIB_INSTALL = \
-@@ -30,7 +33,6 @@
-       $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
-         $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
-       rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
--      $(LN_S) $(SHLIB_SONAME) \
--        $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
-+      $(SHLIB_INSTALL_SOLINK)
- SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
- SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
-Index: gcc/config/ia64/ia64.c
-===================================================================
---- gcc/config/ia64/ia64.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/ia64/ia64.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1628,25 +1628,18 @@
-         {
-           rtx t1, t2, mask;
--          /* Perform a parallel modulo subtraction.  */
--          t1 = gen_reg_rtx (V2SImode);
--          emit_insn (gen_subv2si3 (t1, op0, op1));
--
--          /* Extract the original sign bit of op0.  */
--          mask = GEN_INT (-0x80000000);
-+          /* Subtract (-(INT MAX) - 1) from both operands to make
-+             them signed.  */
-+          mask = GEN_INT (0x80000000);
-           mask = gen_rtx_CONST_VECTOR (V2SImode, gen_rtvec (2, mask, mask));
--          mask = force_reg (V2SImode, mask);
--          t2 = gen_reg_rtx (V2SImode);
--          emit_insn (gen_andv2si3 (t2, op0, mask));
--
--          /* XOR it back into the result of the subtraction.  This results
--             in the sign bit set iff we saw unsigned underflow.  */
--          x = gen_reg_rtx (V2SImode);
--          emit_insn (gen_xorv2si3 (x, t1, t2));
--
-+          mask = force_reg (mode, mask);
-+          t1 = gen_reg_rtx (mode);
-+          emit_insn (gen_subv2si3 (t1, op0, mask));
-+          t2 = gen_reg_rtx (mode);
-+          emit_insn (gen_subv2si3 (t2, op1, mask));
-+          op0 = t1;
-+          op1 = t2;
-           code = GT;
--          op0 = x;
--          op1 = CONST0_RTX (mode);
-         }
-         break;
-Index: gcc/config/rs6000/rs6000.c
-===================================================================
---- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Subroutines used for code generation on IBM RS/6000.
-    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
-@@ -15534,7 +15534,7 @@
-   do_compare_rtx_and_jump (opcode, tocompare, EQ, 1,
-                          SImode, NULL_RTX, NULL_RTX,
--                         no_toc_save_needed);
-+                         no_toc_save_needed, -1);
-   mem = gen_frame_mem (Pmode,
-                      gen_rtx_PLUS (Pmode, stack_top,
-Index: gcc/config/arm/linux-atomic.c
-===================================================================
---- gcc/config/arm/linux-atomic.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/linux-atomic.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -266,8 +266,10 @@
-   void HIDDEN                                                         \
-   __sync_lock_release_##WIDTH (TYPE *ptr)                             \
-   {                                                                   \
-+    /* All writes before this point must be seen before we release    \
-+       the lock itself.  */                                           \
-+    __kernel_dmb ();                                                  \
-     *ptr = 0;                                                         \
--    __kernel_dmb ();                                                  \
-   }
- SYNC_LOCK_RELEASE (int,   4)
-Index: gcc/config/arm/ieee754-df.S
-===================================================================
---- gcc/config/arm/ieee754-df.S        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/ieee754-df.S        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1117,7 +1117,7 @@
- ARM_FUNC_ALIAS eqdf2 cmpdf2
-       mov     ip, #1                  @ how should we specify unordered here?
--1:    str     ip, [sp, #-4]
-+1:    str     ip, [sp, #-4]!
-       @ Trap any INF/NAN first.
-       mov     ip, xh, lsl #1
-@@ -1129,7 +1129,8 @@
-       @ Test for equality.
-       @ Note that 0.0 is equal to -0.0.
--2:    orrs    ip, xl, xh, lsl #1      @ if x == 0.0 or -0.0
-+2:    add     sp, sp, #4
-+      orrs    ip, xl, xh, lsl #1      @ if x == 0.0 or -0.0
-       do_it   eq, e
-       COND(orr,s,eq)  ip, yl, yh, lsl #1      @ and y == 0.0 or -0.0
-       teqne   xh, yh                  @ or xh == yh
-@@ -1168,7 +1169,7 @@
-       bne     2b
-       orrs    ip, yl, yh, lsl #12
-       beq     2b                      @ y is not NAN
--5:    ldr     r0, [sp, #-4]           @ unordered return code
-+5:    ldr     r0, [sp], #4            @ unordered return code
-       RET
-       FUNC_END gedf2
-Index: gcc/config/arm/arm.c
-===================================================================
---- gcc/config/arm/arm.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/arm.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -53,6 +53,7 @@
- #include "debug.h"
- #include "langhooks.h"
- #include "df.h"
-+#include "libfuncs.h"
- /* Forward definitions of types.  */
- typedef struct minipool_node    Mnode;
-@@ -922,6 +923,9 @@
-   set_optab_libfunc (umod_optab, DImode, NULL);
-   set_optab_libfunc (smod_optab, SImode, NULL);
-   set_optab_libfunc (umod_optab, SImode, NULL);
-+
-+  if (TARGET_AAPCS_BASED)
-+    synchronize_libfunc = init_one_libfunc ("__sync_synchronize");
- }
- /* On AAPCS systems, this is the "struct __va_list".  */
-@@ -10269,11 +10273,14 @@
-   return "";
- }
--/* Output a 'call' insn that is a reference in memory.  */
-+/* Output a 'call' insn that is a reference in memory. This is
-+   disabled for ARMv5 and we prefer a blx instead because otherwise
-+   there's a significant performance overhead.  */
- const char *
- output_call_mem (rtx *operands)
- {
--  if (TARGET_INTERWORK && !arm_arch5)
-+  gcc_assert (!arm_arch5);
-+  if (TARGET_INTERWORK)
-     {
-       output_asm_insn ("ldr%?\t%|ip, %0", operands);
-       output_asm_insn ("mov%?\t%|lr, %|pc", operands);
-@@ -10285,16 +10292,11 @@
-        first instruction.  It's safe to use IP as the target of the
-        load since the call will kill it anyway.  */
-       output_asm_insn ("ldr%?\t%|ip, %0", operands);
--      if (arm_arch5)
--      output_asm_insn ("blx%?\t%|ip", operands);
-+      output_asm_insn ("mov%?\t%|lr, %|pc", operands);
-+      if (arm_arch4t)
-+      output_asm_insn ("bx%?\t%|ip", operands);
-       else
--      {
--        output_asm_insn ("mov%?\t%|lr, %|pc", operands);
--        if (arm_arch4t)
--          output_asm_insn ("bx%?\t%|ip", operands);
--        else
--          output_asm_insn ("mov%?\t%|pc, %|ip", operands);
--      }
-+      output_asm_insn ("mov%?\t%|pc, %|ip", operands);
-     }
-   else
-     {
-@@ -10975,7 +10977,7 @@
-         {
-           /* We're only using DImode here because it's a convenient size.  */
-           ops[0] = gen_rtx_REG (DImode, REGNO (reg) + 2 * i);
--          ops[1] = adjust_address (mem, SImode, 8 * i);
-+          ops[1] = adjust_address (mem, DImode, 8 * i);
-           if (reg_overlap_mentioned_p (ops[0], mem))
-             {
-               gcc_assert (overlap == -1);
-Index: gcc/config/arm/thumb2.md
-===================================================================
---- gcc/config/arm/thumb2.md   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/thumb2.md   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -57,7 +57,7 @@
-                        [(match_operand:SI 2 "s_register_operand" "r")
-                         (match_operand:SI 3 "const_int_operand" "M")]))
-               (match_operand:SI 1 "s_register_operand" "r")))]
--  "TARGET_ARM"
-+  "TARGET_THUMB2"
-   "bic%?\\t%0, %1, %2%S4"
-   [(set_attr "predicable" "yes")
-    (set_attr "shift" "2")
-@@ -1108,9 +1108,9 @@
- )
- (define_insn "*thumb2_addsi_short"
--  [(set (match_operand:SI 0 "low_register_operand" "=l")
--      (plus:SI (match_operand:SI 1 "low_register_operand" "l")
--               (match_operand:SI 2 "low_reg_or_int_operand" "lIL")))
-+  [(set (match_operand:SI 0 "low_register_operand" "=l,l")
-+      (plus:SI (match_operand:SI 1 "low_register_operand" "l,0")
-+               (match_operand:SI 2 "low_reg_or_int_operand" "lPt,Ps")))
-    (clobber (reg:CC CC_REGNUM))]
-   "TARGET_THUMB2 && reload_completed"
-   "*
-@@ -1171,7 +1171,7 @@
-    (clobber (reg:CC CC_REGNUM))]
-   "TARGET_THUMB2"
-   "*
--  if (get_attr_length (insn) == 2 && which_alternative == 0)
-+  if (get_attr_length (insn) == 2)
-     return \"cbz\\t%0, %l1\";
-   else
-     return \"cmp\\t%0, #0\;beq\\t%l1\";
-@@ -1179,7 +1179,8 @@
-   [(set (attr "length") 
-         (if_then_else
-           (and (ge (minus (match_dup 1) (pc)) (const_int 2))
--               (le (minus (match_dup 1) (pc)) (const_int 128)))
-+               (le (minus (match_dup 1) (pc)) (const_int 128))
-+               (eq (symbol_ref ("which_alternative")) (const_int 0)))
-           (const_int 2)
-           (const_int 8)))]
- )
-@@ -1193,7 +1194,7 @@
-    (clobber (reg:CC CC_REGNUM))]
-   "TARGET_THUMB2"
-   "*
--  if (get_attr_length (insn) == 2 && which_alternative == 0)
-+  if (get_attr_length (insn) == 2)
-     return \"cbnz\\t%0, %l1\";
-   else
-     return \"cmp\\t%0, #0\;bne\\t%l1\";
-@@ -1201,7 +1202,8 @@
-   [(set (attr "length") 
-         (if_then_else
-           (and (ge (minus (match_dup 1) (pc)) (const_int 2))
--               (le (minus (match_dup 1) (pc)) (const_int 128)))
-+               (le (minus (match_dup 1) (pc)) (const_int 128))
-+               (eq (symbol_ref ("which_alternative")) (const_int 0)))
-           (const_int 2)
-           (const_int 8)))]
- )
-Index: gcc/config/arm/lib1funcs.asm
-===================================================================
---- gcc/config/arm/lib1funcs.asm       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/lib1funcs.asm       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -95,7 +95,8 @@
- #endif
+             if (find_array_element (p->value.constructor, &p->ref->u.ar,
+                                     &cons) == FAILURE)
+               return FAILURE;
+@@ -1466,18 +1479,25 @@
+                       return FAILURE;
+                   }
  
- #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
--      || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
-+      || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
-+      || defined(__ARM_ARCH_7EM__)
- # define __ARM_ARCH__ 7
- #endif
+-                /* If this is a CHARACTER array and we possibly took a
+-                   substring out of it, update the type-spec's character
+-                   length according to the first element (as all should have
+-                   the same length).  */
+-                if (p->ts.type == BT_CHARACTER)
++                if (p->ts.type == BT_DERIVED
++                      && p->ref->next
++                      && p->value.constructor)
+                   {
+-                    int string_len;
++                    /* There may have been component references.  */
++                    p->ts = p->value.constructor->expr->ts;
++                  }
  
-Index: gcc/config/arm/neon-schedgen.ml
-===================================================================
---- gcc/config/arm/neon-schedgen.ml    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/neon-schedgen.ml    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -48,7 +48,14 @@
-      and at present we do not emit specific guards.)
- *)
--open Utils
-+let find_with_result fn lst =
-+  let rec scan = function
-+      [] -> raise Not_found
-+    | l::ls -> 
-+      match fn l with
-+          Some result -> result
-+       | _ -> scan ls in
-+    scan lst
- let n1 = 1 and n2 = 2 and n3 = 3 and n4 = 4 and n5 = 5 and n6 = 6
-     and n7 = 7 and n8 = 8 and n9 = 9
-Index: gcc/config/arm/neon.md
-===================================================================
---- gcc/config/arm/neon.md     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/neon.md     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3611,7 +3611,8 @@
-                         UNSPEC_VSHLL_N))]
-   "TARGET_NEON"
- {
--  neon_const_bounds (operands[2], 0, neon_element_bits (<MODE>mode));
-+  /* The boundaries are: 0 < imm <= size.  */
-+  neon_const_bounds (operands[2], 0, neon_element_bits (<MODE>mode) + 1);
-   return "vshll.%T3%#<V_sz_elem>\t%q0, %P1, %2";
- }
-   [(set_attr "neon_type" "neon_shift_1")]
-Index: gcc/config/arm/constraints.md
-===================================================================
---- gcc/config/arm/constraints.md      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/constraints.md      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -30,6 +30,7 @@
+-                    gcc_assert (p->ref->next);
+-                    gcc_assert (!p->ref->next->next);
+-                    gcc_assert (p->ref->next->type == REF_SUBSTRING);
++                last_ref = p->ref;
++                for (; last_ref->next; last_ref = last_ref->next) {};
  
- ;; The following multi-letter normal constraints have been used:
- ;; in ARM/Thumb-2 state: Da, Db, Dc, Dn, Dl, DL, Dv
-+;; in Thumb-2 state: Ps, Pt
++                if (p->ts.type == BT_CHARACTER
++                      && last_ref->type == REF_SUBSTRING)
++                  {
++                    /* If this is a CHARACTER array and we possibly took
++                       a substring out of it, update the type-spec's
++                       character length according to the first element
++                       (as all should have the same length).  */
++                    int string_len;
+                     if (p->value.constructor)
+                       {
+                         const gfc_expr* first = p->value.constructor->expr;
+@@ -3327,6 +3347,58 @@
+ }
  
- ;; The following memory constraints have been used:
- ;; in ARM/Thumb-2 state: Q, Ut, Uv, Uy, Un, Us
-@@ -129,6 +130,16 @@
-       (match_test "TARGET_THUMB1 && ival >= -508 && ival <= 508
-                  && ((ival & 3) == 0)")))
  
-+(define_constraint "Ps"
-+  "@internal In Thumb-2 state a constant in the range -255 to +255"
-+  (and (match_code "const_int")
-+       (match_test "TARGET_THUMB2 && ival >= -255 && ival <= 255")))
++/* Returns the array_spec of a full array expression.  A NULL is
++   returned otherwise.  */
++gfc_array_spec *
++gfc_get_full_arrayspec_from_expr (gfc_expr *expr)
++{
++  gfc_array_spec *as;
++  gfc_ref *ref;
 +
-+(define_constraint "Pt"
-+  "@internal In Thumb-2 state a constant in the range -7 to +7"
-+  (and (match_code "const_int")
-+       (match_test "TARGET_THUMB2 && ival >= -7 && ival <= 7")))
++  if (expr->rank == 0)
++    return NULL;
 +
- (define_constraint "G"
-  "In ARM/Thumb-2 state a valid FPA immediate constant."
-  (and (match_code "const_double")
-Index: gcc/config/arm/neon.ml
-===================================================================
---- gcc/config/arm/neon.ml     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/neon.ml     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,7 +1,7 @@
- (* Common code for ARM NEON header file, documentation and test case
-    generators.
++  /* Follow any component references.  */
++  if (expr->expr_type == EXPR_VARIABLE
++      || expr->expr_type == EXPR_CONSTANT)
++    {
++      as = expr->symtree->n.sym->as;
++      for (ref = expr->ref; ref; ref = ref->next)
++      {
++        switch (ref->type)
++          {
++          case REF_COMPONENT:
++            as = ref->u.c.component->as;
++            continue;
++
++          case REF_SUBSTRING:
++            continue;
++
++          case REF_ARRAY:
++            {
++              switch (ref->u.ar.type)
++                {
++                case AR_ELEMENT:
++                case AR_SECTION:
++                case AR_UNKNOWN:
++                  as = NULL;
++                  continue;
++
++                case AR_FULL:
++                  break;
++                }
++              break;
++            }
++          }
++      }
++    }
++  else
++    as = NULL;
++
++  return as;
++}
++
++
+ /* General expression traversal function.  */
  
--   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-+   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-    Contributed by CodeSourcery.
+ bool
+Index: gcc/fortran/module.c
+===================================================================
+--- gcc/fortran/module.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/module.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -2846,13 +2846,29 @@
+     }
+   else if (e->expr_type == EXPR_FUNCTION && e->value.function.name)
+     {
++      gfc_symbol *sym;
++
+       /* In some circumstances, a function used in an initialization
+        expression, in one use associated module, can fail to be
+        coupled to its symtree when used in a specification
+        expression in another module.  */
++
+       fname = e->value.function.esym ? e->value.function.esym->name
+                                    : e->value.function.isym->name;
+       e->symtree = gfc_find_symtree (gfc_current_ns->sym_root, fname);
++
++      if (e->symtree)
++      return;
++
++      /* This is probably a reference to a private procedure from another
++       module.  To prevent a segfault, make a generic with no specific
++       instances.  If this module is used, without the required
++       specific coming from somewhere, the appropriate error message
++       is issued.  */
++      gfc_get_symbol (fname, gfc_current_ns, &sym);
++      sym->attr.flavor = FL_PROCEDURE;
++      sym->attr.generic = 1;
++      e->symtree = gfc_find_symtree (gfc_current_ns->sym_root, fname);
+     }
+ }
  
-    This file is part of GCC.
-@@ -233,6 +233,7 @@
-        cases.  The function supplied must return the integer to be written
-        into the testcase for the argument number (0-based) supplied to it.  *)
-   | Const_valuator of (int -> int)
-+  | Fixed_return_reg
+Index: gcc/fortran/trans.h
+===================================================================
+--- gcc/fortran/trans.h        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/trans.h        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -314,7 +314,7 @@
+ int gfc_conv_function_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *,
+                           tree);
  
- exception MixedMode of elts * elts
+-void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent);
++void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent, bool);
  
-@@ -1076,9 +1077,13 @@
-       Use_operands [| Dreg; Qreg |], "vget_high",
-       notype_1, pf_su_8_64;
-     Vget_low, [Instruction_name ["vmov"];
--               Disassembles_as [Use_operands [| Dreg; Dreg |]]],
-+               Disassembles_as [Use_operands [| Dreg; Dreg |]];
-+             Fixed_return_reg],
-       Use_operands [| Dreg; Qreg |], "vget_low",
--      notype_1, pf_su_8_64;
-+      notype_1, pf_su_8_32;
-+     Vget_low, [No_op],
-+      Use_operands [| Dreg; Qreg |], "vget_low",
-+      notype_1, [S64; U64];
+ /* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */
  
-     (* Conversions.  *)
-     Vcvt, [InfoWord], All (2, Dreg), "vcvt", conv_1,
-Index: gcc/config/arm/ieee754-sf.S
-===================================================================
---- gcc/config/arm/ieee754-sf.S        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/ieee754-sf.S        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -822,7 +822,7 @@
- ARM_FUNC_ALIAS eqsf2 cmpsf2
-       mov     ip, #1                  @ how should we specify unordered here?
--1:    str     ip, [sp, #-4]
-+1:    str     ip, [sp, #-4]!
-       @ Trap any INF/NAN first.
-       mov     r2, r0, lsl #1
-@@ -834,7 +834,8 @@
-       @ Compare values.
-       @ Note that 0.0 is equal to -0.0.
--2:    orrs    ip, r2, r3, lsr #1      @ test if both are 0, clear C flag
-+2:    add     sp, sp, #4
-+      orrs    ip, r2, r3, lsr #1      @ test if both are 0, clear C flag
-       do_it   ne
-       teqne   r0, r1                  @ if not 0 compare sign
-       do_it   pl
-@@ -858,7 +859,7 @@
-       bne     2b
-       movs    ip, r1, lsl #9
-       beq     2b                      @ r1 is not NAN
--5:    ldr     r0, [sp, #-4]           @ return unordered code.
-+5:    ldr     r0, [sp], #4            @ return unordered code.
-       RET
-       FUNC_END gesf2
-Index: gcc/config/arm/neon-testgen.ml
+Index: gcc/fortran/resolve.c
 ===================================================================
---- gcc/config/arm/neon-testgen.ml     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/neon-testgen.ml     (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/fortran/resolve.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/resolve.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1,5 +1,5 @@
- (* Auto-generate ARM Neon intrinsics tests.
--   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-+   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-    Contributed by CodeSourcery.
+ /* Perform type resolution on the various structures.
+-   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.
+    Contributed by Andy Vaught
  
-    This file is part of GCC.
-@@ -58,7 +58,7 @@
+@@ -3722,6 +3722,7 @@
+     {
+       gfc_typespec ts;
  
- (* Emit declarations of local variables that are going to be passed
-    to an intrinsic, together with one to take a returned value if needed.  *)
--let emit_automatics chan c_types =
-+let emit_automatics chan c_types features =
-   let emit () =
-     ignore (
-       List.fold_left (fun arg_number -> fun (flags, ty) ->
-@@ -75,11 +75,17 @@
-   in
-     match c_types with
-       (_, return_ty) :: tys ->
--        if return_ty <> "void" then
--          (* The intrinsic returns a value.  *)
--          (Printf.fprintf chan "  %s out_%s;\n" return_ty return_ty;
--           emit ())
--        else
-+        if return_ty <> "void" then begin
-+          (* The intrinsic returns a value.  We need to do explict register
-+             allocation for vget_low tests or they fail because of copy
-+             elimination.  *)
-+          ((if List.mem Fixed_return_reg features then
-+              Printf.fprintf chan "  register %s out_%s asm (\"d18\");\n"
-+                             return_ty return_ty
-+            else
-+              Printf.fprintf chan "  %s out_%s;\n" return_ty return_ty);
-+         emit ())
-+        end else
-           (* The intrinsic does not return a value.  *)
-           emit ()
-     | _ -> assert false
-@@ -256,7 +262,7 @@
-     (* Emit file and function prologues.  *)
-     emit_prologue chan test_name;
-     (* Emit local variable declarations.  *)
--    emit_automatics chan c_types;
-+    emit_automatics chan c_types features;
-     Printf.fprintf chan "\n";
-     (* Emit the call to the intrinsic.  *)
-     emit_call chan const_valuator c_types name elt_ty;
-Index: gcc/config/arm/arm.md
++      gfc_clear_ts (&ts);
+       ts.type = BT_INTEGER;
+       ts.kind = gfc_index_integer_kind;
+Index: gcc/fortran/trans-io.c
+===================================================================
+--- gcc/fortran/trans-io.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/trans-io.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -746,7 +746,7 @@
+         /* Use a temporary for components of arrays of derived types
+            or substring array references.  */
+         gfc_conv_subref_array_arg (&se, e, 0,
+-              last_dt == READ ? INTENT_IN : INTENT_OUT);
++              last_dt == READ ? INTENT_IN : INTENT_OUT, false);
+         tmp = build_fold_indirect_ref (se.expr);
+         se.expr = gfc_build_addr_expr (pchar_type_node, tmp);
+         tmp = gfc_conv_descriptor_data_get (tmp);
+@@ -2191,7 +2191,7 @@
+         if (seen_vector && last_dt == READ)
+           {
+             /* Create a temp, read to that and copy it back.  */
+-            gfc_conv_subref_array_arg (&se, expr, 0, INTENT_OUT);
++            gfc_conv_subref_array_arg (&se, expr, 0, INTENT_OUT, false);
+             tmp =  se.expr;
+           }
+         else
+Index: gcc/fortran/parse.c
 ===================================================================
---- gcc/config/arm/arm.md      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/arm/arm.md      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -8441,12 +8441,17 @@
-    (set_attr "type" "call")]
- )
+--- gcc/fortran/parse.c        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/parse.c        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -110,7 +110,7 @@
+   match ("import", gfc_match_import, ST_IMPORT);
+   match ("use", gfc_match_use, ST_USE);
  
-+
-+;; Note: not used for armv5+ because the sequence used (ldr pc, ...) is not
-+;; considered a function call by the branch predictor of some cores (PR40887).
-+;; Falls back to blx rN (*call_reg_armv5).
-+
- (define_insn "*call_mem"
-   [(call (mem:SI (match_operand:SI 0 "call_memory_operand" "m"))
-        (match_operand 1 "" ""))
-    (use (match_operand 2 "" ""))
-    (clobber (reg:SI LR_REGNUM))]
--  "TARGET_ARM"
-+  "TARGET_ARM && !arm_arch5"
-   "*
-   return output_call_mem (operands);
-   "
-@@ -8548,13 +8553,15 @@
-    (set_attr "type" "call")]
- )
+-  if (gfc_current_block ()->ts.type != BT_DERIVED)
++  if (gfc_current_block ()->result->ts.type != BT_DERIVED)
+     goto end_of_block;
  
-+;; Note: see *call_mem
-+
- (define_insn "*call_value_mem"
-   [(set (match_operand 0 "" "")
-       (call (mem:SI (match_operand:SI 1 "call_memory_operand" "m"))
-             (match_operand 2 "" "")))
-    (use (match_operand 3 "" ""))
-    (clobber (reg:SI LR_REGNUM))]
--  "TARGET_ARM && (!CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))"
-+  "TARGET_ARM && !arm_arch5 && (!CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))"
-   "*
-   return output_call_mem (&operands[1]);
-   "
-Index: gcc/config/pa/t-hpux-shlib
-===================================================================
---- gcc/config/pa/t-hpux-shlib (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/pa/t-hpux-shlib (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -8,6 +8,7 @@
- SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
- SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared  -nodefaultlibs \
-+      -Wl,+h -Wl,$(SHLIB_SONAME) \
-       -o $(SHLIB_DIR)/$(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) && \
-         rm -f $(SHLIB_DIR)/$(SHLIB_SONAME) && \
-       if [ -f $(SHLIB_DIR)/$(SHLIB_NAME) ]; then \
-Index: gcc/config/pa/linux-atomic.c
-===================================================================
---- gcc/config/pa/linux-atomic.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/pa/linux-atomic.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -24,14 +24,9 @@
- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- <http://www.gnu.org/licenses/>.  */
--/* FIXME: work around build failure for hppa64-linux-gnu target. */
--#ifndef _LP64
--#include <errno.h>
--#else 
- #define EFAULT  14 
- #define EBUSY   16
- #define ENOSYS 251 
--#endif 
- /* All PA-RISC implementations supported by linux have strongly
-    ordered loads and stores.  Only cache flushes and purges can be
-Index: gcc/config/pa/pa.md
+   match (NULL, gfc_match_st_function, ST_STATEMENT_FUNCTION);
+Index: gcc/fortran/trans-intrinsic.c
 ===================================================================
---- gcc/config/pa/pa.md        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/pa/pa.md        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3191,6 +3191,40 @@
-     DONE;
- }")
-+;; Handle HImode input reloads requiring a general register as a
-+;; scratch register.
-+(define_expand "reload_inhi"
-+  [(set (match_operand:HI 0 "register_operand" "=Z")
-+      (match_operand:HI 1 "non_hard_reg_operand" ""))
-+   (clobber (match_operand:HI 2 "register_operand" "=&r"))]
-+  ""
-+  "
-+{
-+  if (emit_move_sequence (operands, HImode, operands[2]))
-+    DONE;
-+
-+  /* We don't want the clobber emitted, so handle this ourselves.  */
-+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
-+  DONE;
-+}")
-+
-+;; Handle HImode output reloads requiring a general register as a
-+;; scratch register.
-+(define_expand "reload_outhi"
-+  [(set (match_operand:HI 0 "non_hard_reg_operand" "")
-+      (match_operand:HI 1  "register_operand" "Z"))
-+   (clobber (match_operand:HI 2 "register_operand" "=&r"))]
-+  ""
-+  "
-+{
-+  if (emit_move_sequence (operands, HImode, operands[2]))
-+    DONE;
-+
-+  /* We don't want the clobber emitted, so handle this ourselves.  */
-+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
-+  DONE;
-+}")
-+
- (define_insn ""
-   [(set (match_operand:HI 0 "move_dest_operand"
-                         "=r,r,r,r,r,Q,!*q,!r")
-@@ -3315,6 +3349,40 @@
-     DONE;
- }")
-+;; Handle QImode input reloads requiring a general register as a
-+;; scratch register.
-+(define_expand "reload_inqi"
-+  [(set (match_operand:QI 0 "register_operand" "=Z")
-+      (match_operand:QI 1 "non_hard_reg_operand" ""))
-+   (clobber (match_operand:QI 2 "register_operand" "=&r"))]
-+  ""
-+  "
-+{
-+  if (emit_move_sequence (operands, QImode, operands[2]))
-+    DONE;
-+
-+  /* We don't want the clobber emitted, so handle this ourselves.  */
-+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
-+  DONE;
-+}")
-+
-+;; Handle QImode output reloads requiring a general register as a
-+;; scratch register.
-+(define_expand "reload_outqi"
-+  [(set (match_operand:QI 0 "non_hard_reg_operand" "")
-+      (match_operand:QI 1  "register_operand" "Z"))
-+   (clobber (match_operand:QI 2 "register_operand" "=&r"))]
-+  ""
-+  "
-+{
-+  if (emit_move_sequence (operands, QImode, operands[2]))
-+    DONE;
-+
-+  /* We don't want the clobber emitted, so handle this ourselves.  */
-+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
-+  DONE;
-+}")
-+
- (define_insn ""
-   [(set (match_operand:QI 0 "move_dest_operand"
-                         "=r,r,r,r,r,Q,!*q,!r")
-@@ -7503,17 +7571,6 @@
-       operands[0] = index;
-     }
+--- gcc/fortran/trans-intrinsic.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/fortran/trans-intrinsic.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -832,7 +832,6 @@
+   gfc_se argse;
+   gfc_ss *ss;
+   gfc_array_spec * as;
+-  gfc_ref *ref;
  
--  /* In 64bit mode we must make sure to wipe the upper bits of the register
--     just in case the addition overflowed or we had random bits in the
--     high part of the register.  */
--  if (TARGET_64BIT)
+   arg = expr->value.function.actual;
+   arg2 = arg->next;
+@@ -901,43 +900,8 @@
+   ubound = gfc_conv_descriptor_ubound (desc, bound);
+   lbound = gfc_conv_descriptor_lbound (desc, bound);
+   
+-  /* Follow any component references.  */
+-  if (arg->expr->expr_type == EXPR_VARIABLE
+-      || arg->expr->expr_type == EXPR_CONSTANT)
 -    {
--      rtx index = gen_reg_rtx (DImode);
+-      as = arg->expr->symtree->n.sym->as;
+-      for (ref = arg->expr->ref; ref; ref = ref->next)
+-      {
+-        switch (ref->type)
+-          {
+-          case REF_COMPONENT:
+-            as = ref->u.c.component->as;
+-            continue;
++  as = gfc_get_full_arrayspec_from_expr (arg->expr);
+-          case REF_SUBSTRING:
+-            continue;
+-
+-          case REF_ARRAY:
+-            {
+-              switch (ref->u.ar.type)
+-                {
+-                case AR_ELEMENT:
+-                case AR_SECTION:
+-                case AR_UNKNOWN:
+-                  as = NULL;
+-                  continue;
 -
--      emit_insn (gen_extendsidi2 (index, operands[0]));
--      operands[0] = gen_rtx_SUBREG (SImode, index, 4);
+-                case AR_FULL:
+-                  break;
+-                }
+-              break;
+-            }
+-          }
+-      }
 -    }
+-  else
+-    as = NULL;
 -
-   if (!INT_5_BITS (operands[2]))
-     operands[2] = force_reg (SImode, operands[2]);
+   /* 13.14.53: Result value for LBOUND
+      Case (i): For an array section or for an array expression other than a
+Index: gcc/BASE-VER
+===================================================================
+--- gcc/BASE-VER       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/BASE-VER       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1 +1 @@
+-4.4.3
++4.4.4
+Index: gcc/tree-vect-analyze.c
+===================================================================
+--- gcc/tree-vect-analyze.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/tree-vect-analyze.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -3508,7 +3508,9 @@
+       FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, gimple_op (stmt, 0))
+       if (vinfo_for_stmt (use_stmt)
+           && !STMT_SLP_TYPE (vinfo_for_stmt (use_stmt))
+-            && STMT_VINFO_RELEVANT (vinfo_for_stmt (use_stmt)))
++            && (STMT_VINFO_RELEVANT (vinfo_for_stmt (use_stmt))
++                || STMT_VINFO_DEF_TYPE (vinfo_for_stmt (use_stmt)) 
++                    == vect_reduction_def))
+         vect_mark_slp_stmts (node, hybrid, i);
  
-@@ -7530,6 +7587,17 @@
-   emit_insn (gen_cmpsi (operands[0], operands[2]));
-   emit_jump_insn (gen_bgtu (operands[4]));
+   vect_detect_hybrid_slp_stmts (SLP_TREE_LEFT (node));
+Index: gcc/gimplify.c
+===================================================================
+--- gcc/gimplify.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/gimplify.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Tree lowering pass.  This pass converts the GENERIC functions-as-trees
+    tree representation into the GIMPLE form.
+-   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+    Major work done by Sebastian Pop <s.pop@laposte.net>,
+    Diego Novillo <dnovillo@redhat.com> and Jason Merrill <jason@redhat.com>.
+@@ -2762,6 +2762,36 @@
+ {
+   tree type = TREE_TYPE (expr);
  
-+  /* In 64bit mode we must make sure to wipe the upper bits of the register
-+     just in case the addition overflowed or we had random bits in the
-+     high part of the register.  */
-+  if (TARGET_64BIT)
++  if (TREE_CODE (expr) == NE_EXPR
++      && TREE_CODE (TREE_OPERAND (expr, 0)) == CALL_EXPR
++      && integer_zerop (TREE_OPERAND (expr, 1)))
 +    {
-+      rtx index = gen_reg_rtx (DImode);
++      tree call = TREE_OPERAND (expr, 0);
++      tree fn = get_callee_fndecl (call);
 +
-+      emit_insn (gen_extendsidi2 (index, operands[0]));
-+      operands[0] = index;
++      /* For __builtin_expect ((long) (x), y) recurse into x as well
++       if x is truth_value_p.  */
++      if (fn
++        && DECL_BUILT_IN_CLASS (fn) == BUILT_IN_NORMAL
++        && DECL_FUNCTION_CODE (fn) == BUILT_IN_EXPECT
++        && call_expr_nargs (call) == 2)
++      {
++        tree arg = CALL_EXPR_ARG (call, 0);
++        if (arg)
++          {
++            if (TREE_CODE (arg) == NOP_EXPR
++                && TREE_TYPE (arg) == TREE_TYPE (call))
++              arg = TREE_OPERAND (arg, 0);
++            if (truth_value_p (TREE_CODE (arg)))
++              {
++                arg = gimple_boolify (arg);
++                CALL_EXPR_ARG (call, 0)
++                  = fold_convert (TREE_TYPE (call), arg);
++              }
++          }
++      }
 +    }
 +
-   if (TARGET_BIG_SWITCH)
-     {
-       if (TARGET_64BIT)
-@@ -7590,8 +7658,7 @@
- ;;; 64-bit code, 32-bit relative branch table.
- (define_insn "casesi64p"
-   [(set (pc) (mem:DI (plus:DI
--                     (mult:DI (sign_extend:DI
--                                (match_operand:SI 0 "register_operand" "r"))
-+                     (mult:DI (match_operand:DI 0 "register_operand" "r")
-                               (const_int 8))
-                      (label_ref (match_operand 1 "" "")))))
-    (clobber (match_scratch:DI 2 "=&r"))
-Index: gcc/config/pa/pa.c
-===================================================================
---- gcc/config/pa/pa.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/pa/pa.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1620,7 +1620,7 @@
-       /* D might not fit in 14 bits either; for such cases load D into
-        scratch reg.  */
-       if (GET_CODE (operand1) == MEM
--        && !memory_address_p (Pmode, XEXP (operand1, 0)))
-+        && !memory_address_p (GET_MODE (operand0), XEXP (operand1, 0)))
-       {
-         /* We are reloading the address into the scratch register, so we
-            want to make sure the scratch register is a full register.  */
-@@ -7437,7 +7437,7 @@
-     {
-       length += 20;
--      if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS && flag_pic)
-+      if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS && (!local_call || flag_pic))
-       length += 8;
-     }
-@@ -7457,7 +7457,7 @@
-         if (!sibcall)
-           length += 8;
--        if (!TARGET_NO_SPACE_REGS && flag_pic)
-+        if (!TARGET_NO_SPACE_REGS && (!local_call || flag_pic))
-           length += 8;
-       }
-     }
-@@ -7654,7 +7654,7 @@
-                 if (!sibcall && !TARGET_PA_20)
-                   {
-                     output_asm_insn ("{bl|b,l} .+8,%%r2", xoperands);
--                    if (TARGET_NO_SPACE_REGS)
-+                    if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic))
-                       output_asm_insn ("addi 8,%%r2,%%r2", xoperands);
-                     else
-                       output_asm_insn ("addi 16,%%r2,%%r2", xoperands);
-@@ -7679,20 +7679,20 @@
-               }
-             else
-               {
--                if (!TARGET_NO_SPACE_REGS && flag_pic)
-+                if (!TARGET_NO_SPACE_REGS && (!local_call || flag_pic))
-                   output_asm_insn ("ldsid (%%r1),%%r31\n\tmtsp %%r31,%%sr0",
-                                    xoperands);
-                 if (sibcall)
-                   {
--                    if (TARGET_NO_SPACE_REGS || !flag_pic)
-+                    if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic))
-                       output_asm_insn ("be 0(%%sr4,%%r1)", xoperands);
-                     else
-                       output_asm_insn ("be 0(%%sr0,%%r1)", xoperands);
-                   }
-                 else
-                   {
--                    if (TARGET_NO_SPACE_REGS || !flag_pic)
-+                    if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic))
-                       output_asm_insn ("ble 0(%%sr4,%%r1)", xoperands);
-                     else
-                       output_asm_insn ("ble 0(%%sr0,%%r1)", xoperands);
-Index: gcc/config/mips/mips-dsp.md
-===================================================================
---- gcc/config/mips/mips-dsp.md        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/mips/mips-dsp.md        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1048,7 +1048,7 @@
- (define_insn "mips_lhx_<mode>"
-   [(set (match_operand:SI 0 "register_operand" "=d")
--      (zero_extend:SI
-+      (sign_extend:SI
-         (mem:HI (plus:P (match_operand:P 1 "register_operand" "d")
-                         (match_operand:P 2 "register_operand" "d")))))]
-   "ISA_HAS_DSP"
-Index: gcc/config/mips/mips.c
-===================================================================
---- gcc/config/mips/mips.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/config/mips/mips.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2328,6 +2328,28 @@
-         : emit_move_insn_1 (dest, src));
- }
-+/* Emit an instruction of the form (set TARGET (CODE OP0)).  */
-+
-+static void
-+mips_emit_unary (enum rtx_code code, rtx target, rtx op0)
-+{
-+  emit_insn (gen_rtx_SET (VOIDmode, target,
-+                        gen_rtx_fmt_e (code, GET_MODE (op0), op0)));
-+}
-+
-+/* Compute (CODE OP0) and store the result in a new register of mode MODE.
-+   Return that new register.  */
-+
-+static rtx
-+mips_force_unary (enum machine_mode mode, enum rtx_code code, rtx op0)
-+{
-+  rtx reg;
-+
-+  reg = gen_reg_rtx (mode);
-+  mips_emit_unary (code, reg, op0);
-+  return reg;
-+}
-+
- /* Emit an instruction of the form (set TARGET (CODE OP0 OP1)).  */
- static void
-@@ -6399,26 +6421,51 @@
- void
- mips_expand_synci_loop (rtx begin, rtx end)
- {
--  rtx inc, label, cmp, cmp_result;
-+  rtx inc, label, end_label, cmp_result, mask, length;
+   if (TREE_CODE (type) == BOOLEAN_TYPE)
+     return expr;
  
-+  /* Create end_label.  */
-+  end_label = gen_label_rtx ();
-+
-+  /* Check if begin equals end.  */
-+  cmp_result = gen_rtx_EQ (VOIDmode, begin, end);
-+  emit_jump_insn (gen_condjump (cmp_result, end_label));
-+
-   /* Load INC with the cache line size (rdhwr INC,$1).  */
-   inc = gen_reg_rtx (Pmode);
-   emit_insn (Pmode == SImode
-            ? gen_rdhwr_synci_step_si (inc)
-            : gen_rdhwr_synci_step_di (inc));
+@@ -3684,6 +3714,21 @@
+             }
+         }
  
-+  /* Check if inc is 0.  */
-+  cmp_result = gen_rtx_EQ (VOIDmode, inc, const0_rtx);
-+  emit_jump_insn (gen_condjump (cmp_result, end_label));
-+
-+  /* Calculate mask.  */
-+  mask = mips_force_unary (Pmode, NEG, inc);
-+
-+  /* Mask out begin by mask.  */
-+  begin = mips_force_binary (Pmode, AND, begin, mask);
-+
-+  /* Calculate length.  */
-+  length = mips_force_binary (Pmode, MINUS, end, begin);
++      /* If the target is volatile and we have non-zero elements
++         initialize the target from a temporary.  */
++      if (TREE_THIS_VOLATILE (object)
++          && !TREE_ADDRESSABLE (type)
++          && num_nonzero_elements > 0)
++        {
++          tree temp = create_tmp_var (TYPE_MAIN_VARIANT (type), NULL);
++          TREE_OPERAND (*expr_p, 0) = temp;
++          *expr_p = build2 (COMPOUND_EXPR, TREE_TYPE (*expr_p),
++                            *expr_p,
++                            build2 (MODIFY_EXPR, void_type_node,
++                                    object, temp));
++          return GS_OK;
++        }
 +
-   /* Loop back to here.  */
-   label = gen_label_rtx ();
-   emit_label (label);
-   emit_insn (gen_synci (begin));
--  cmp = mips_force_binary (Pmode, GTU, begin, end);
-+  /* Update length.  */
-+  mips_emit_binary (MINUS, length, length, inc);
-+  /* Update begin.  */
-   mips_emit_binary (PLUS, begin, begin, inc);
+       if (notify_temp_creation)
+         return GS_OK;
  
--  cmp_result = gen_rtx_EQ (VOIDmode, cmp, const0_rtx);
-+  /* Check if length is greater than 0.  */
-+  cmp_result = gen_rtx_GT (VOIDmode, length, const0_rtx);
-   emit_jump_insn (gen_condjump (cmp_result, label));
-+
-+  emit_label (end_label);
- }
\f
- /* Expand a QI or HI mode atomic memory operation.
-Index: gcc/cfgrtl.c
+@@ -3931,11 +3976,14 @@
+     switch (TREE_CODE (*from_p))
+       {
+       case VAR_DECL:
+-      /* If we're assigning from a constant constructor, move the
+-         constructor expression to the RHS of the MODIFY_EXPR.  */
++      /* If we're assigning from a read-only variable initialized with
++         a constructor, do the direct assignment from the constructor,
++         but only if neither source nor target are volatile since this
++         latter assignment might end up being done on a per-field basis.  */
+       if (DECL_INITIAL (*from_p)
+           && TREE_READONLY (*from_p)
+           && !TREE_THIS_VOLATILE (*from_p)
++          && !TREE_THIS_VOLATILE (*to_p)
+           && TREE_CODE (DECL_INITIAL (*from_p)) == CONSTRUCTOR)
+         {
+           tree old_from = *from_p;
+Index: gcc/loop-doloop.c
 ===================================================================
---- gcc/cfgrtl.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/cfgrtl.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Control flow graph manipulation code for GNU compiler.
-    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
-    Free Software Foundation, Inc.
+--- gcc/loop-doloop.c  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/loop-doloop.c  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ /* Perform doloop optimizations
+-   Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
++   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation,
+    Inc.
+    Based on code by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
  
- This file is part of GCC.
-@@ -2951,7 +2951,7 @@
+@@ -291,7 +291,8 @@
    op0 = force_operand (op0, NULL_RTX);
-   op1 = force_operand (op1, NULL_RTX);
-   do_compare_rtx_and_jump (op0, op1, comp, 0,
--                         mode, NULL_RTX, NULL_RTX, label);
-+                         mode, NULL_RTX, NULL_RTX, label, -1);
+   op1 = force_operand (op1, NULL_RTX);
+   label = block_label (dest);
+-  do_compare_rtx_and_jump (op0, op1, code, 0, mode, NULL_RTX, NULL_RTX, label);
++  do_compare_rtx_and_jump (op0, op1, code, 0, mode, NULL_RTX,
++                         NULL_RTX, label, -1);
    jump = get_last_insn ();
-   JUMP_LABEL (jump) = label;
-   LABEL_NUSES (label)++;
-Index: gcc/stmt.c
+   if (!jump || !JUMP_P (jump))
+Index: gcc/expmed.c
 ===================================================================
---- gcc/stmt.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/stmt.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* Expands front end tree to back end RTL for GCC
--   Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
--   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+--- gcc/expmed.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/expmed.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,7 +1,7 @@
+ /* Medium-level subroutines: convert bit-field store and extract
+    and shifts, multiplies and divides to rtl instructions.
+    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 +   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
     Free Software Foundation, Inc.
  
  This file is part of GCC.
-@@ -2472,7 +2472,7 @@
-                 int unsignedp)
+@@ -5608,7 +5608,7 @@
+   emit_move_insn (target, const1_rtx);
+   label = gen_label_rtx ();
+   do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode, NULL_RTX,
+-                         NULL_RTX, label);
++                         NULL_RTX, label, -1);
+   emit_move_insn (target, const0_rtx);
+   emit_label (label);
+@@ -5626,5 +5626,5 @@
  {
-   do_compare_rtx_and_jump (op0, op1, EQ, unsignedp, mode,
+   int unsignedp = (op == LTU || op == LEU || op == GTU || op == GEU);
+   do_compare_rtx_and_jump (arg1, arg2, op, unsignedp, mode,
 -                         NULL_RTX, NULL_RTX, label);
 +                         NULL_RTX, NULL_RTX, label, -1);
  }
\f
- /* Not all case values are encountered equally.  This function
-Index: gcc/gcov-dump.c
+Index: gcc/except.c
 ===================================================================
---- gcc/gcov-dump.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gcc/gcov-dump.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Dump a gcov file, for debugging use.
--   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+--- gcc/except.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/except.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Implements exception handling.
+    Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
     Free Software Foundation, Inc.
-    Contributed by Nathan Sidwell <nathan@codesourcery.com>
-@@ -121,7 +121,7 @@
- print_version (void)
- {
-   printf ("gcov-dump %s%s\n", pkgversion_string, version_string);
--  printf ("Copyright (C) 2009 Free Software Foundation, Inc.\n");
-+  printf ("Copyright (C) 2010 Free Software Foundation, Inc.\n");
-   printf ("This is free software; see the source for copying conditions.\n"
-         "There is NO warranty; not even for MERCHANTABILITY or \n"
-         "FITNESS FOR A PARTICULAR PURPOSE.\n\n");
-Index: config.sub
-===================================================================
---- config.sub (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ config.sub (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,10 +1,10 @@
- #! /bin/sh
- # Configuration validation subroutine script.
- #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
- #   Free Software Foundation, Inc.
--timestamp='2008-12-11'
-+timestamp='2009-11-07'
- # This file is (in principle) common to ALL GNU software.
- # The presence of a machine in this file suggests that SOME GNU software
-@@ -32,13 +32,16 @@
- # Please send patches to <config-patches@gnu.org>.  Submit a context
--# diff and a properly formatted ChangeLog entry.
-+# diff and a properly formatted GNU ChangeLog entry.
- #
- # Configuration subroutine to validate and canonicalize a configuration type.
- # Supply the specified configuration type as an argument.
- # If it is invalid, we print an error message on stderr and exit with code 1.
- # Otherwise, we print the canonical config type on stdout and succeed.
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-+
- # This file is supposed to be the same for all GNU packages
- # and recognize all the CPU types, system types and aliases
- # that are meaningful with *any* GNU software.
-@@ -122,6 +125,7 @@
- case $maybe_os in
-   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
-+  kopensolaris*-gnu* | \
-   storm-chaos* | os2-emx* | rtmk-nova*)
-     os=-$maybe_os
-     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-@@ -148,10 +152,13 @@
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
--      -apple | -axis | -knuth | -cray)
-+      -apple | -axis | -knuth | -cray | -microblaze)
-               os=
-               basic_machine=$1
-               ;;
-+        -bluegene*)
-+              os=-cnk
-+              ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-               basic_machine=$1
-@@ -271,6 +278,7 @@
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-+      | moxie \
-       | mt \
-       | msp430 \
-       | nios | nios2 \
-@@ -279,6 +287,7 @@
-       | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-       | pyramid \
-+      | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \
-@@ -286,13 +295,14 @@
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic80 | tron \
-+      | ubicom32 \
-       | v850 | v850e \
-       | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-       | z8k | z80)
-               basic_machine=$basic_machine-unknown
-               ;;
--      m6811 | m68hc11 | m6812 | m68hc12)
-+      m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-               # Motorola 68HC11/12.
-               basic_machine=$basic_machine-unknown
-               os=-none
-@@ -335,7 +345,7 @@
-       | lm32-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
--      | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-+      | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-@@ -363,7 +373,7 @@
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-       | pyramid-* \
--      | romp-* | rs6000-* \
-+      | romp-* | rs6000-* | rx-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-@@ -372,6 +382,7 @@
-       | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
-       | tron-* \
-+      | ubicom32-* \
-       | v850-* | v850e-* | vax-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-@@ -445,6 +456,10 @@
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-+      aros)
-+              basic_machine=i386-pc
-+              os=-aros
-+              ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-@@ -461,6 +476,10 @@
-               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-+      bluegene*)
-+              basic_machine=powerpc-ibm
-+              os=-cnk
-+              ;;
-       c90)
-               basic_machine=c90-cray
-               os=-unicos
-@@ -713,6 +732,9 @@
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-+        microblaze)
-+              basic_machine=microblaze-xilinx
-+              ;;
-       mingw32)
-               basic_machine=i386-pc
-               os=-mingw32
-@@ -1254,10 +1276,11 @@
-       # Each alternative MUST END IN A *, to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
--            | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-+            | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-+            | -kopensolaris* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
--            | -aos* \
-+            | -aos* | -aros* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-@@ -1276,7 +1299,7 @@
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
--            | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
-+            | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -qnx*)
-@@ -1606,7 +1629,7 @@
-                       -sunos*)
-                               vendor=sun
-                               ;;
--                      -aix*)
-+                      -cnk*|-aix*)
-                               vendor=ibm
-                               ;;
-                       -beos*)
-Index: zlib/ChangeLog
-===================================================================
---- zlib/ChangeLog     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ zlib/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+    Contributed by Mike Stump <mrs@cygnus.com>.
  
-       * GCC 4.4.2 released.
-Index: libstdc++-v3/include/bits/atomic_0.h
-===================================================================
---- libstdc++-v3/include/bits/atomic_0.h       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/include/bits/atomic_0.h       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -82,14 +82,15 @@
-     __r; })
+@@ -1834,7 +1834,7 @@
  
-   /// atomic_flag
--  struct atomic_flag : private __atomic_flag_base
-+  struct atomic_flag : public __atomic_flag_base
-   {
-     atomic_flag() = default;
-     ~atomic_flag() = default;
-     atomic_flag(const atomic_flag&) = delete;
-     atomic_flag& operator=(const atomic_flag&) = delete;
--    atomic_flag(bool __i) { _M_i = __i; } // XXX deleted copy ctor != agg
-+    // Conversion to ATOMIC_FLAG_INIT.
-+    atomic_flag(bool __i): __atomic_flag_base({ __i }) { }
-     bool
-     test_and_set(memory_order __m = memory_order_seq_cst) volatile;
-Index: libstdc++-v3/include/bits/atomic_2.h
-===================================================================
---- libstdc++-v3/include/bits/atomic_2.h       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/include/bits/atomic_2.h       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -44,14 +44,15 @@
- namespace __atomic2
- {
-   /// atomic_flag
--  struct atomic_flag : private __atomic_flag_base
-+  struct atomic_flag : public __atomic_flag_base
+ #ifdef DONT_USE_BUILTIN_SETJMP
    {
-     atomic_flag() = default;
-     ~atomic_flag() = default;
-     atomic_flag(const atomic_flag&) = delete;
-     atomic_flag& operator=(const atomic_flag&) = delete;
--    atomic_flag(bool __i) { _M_i = __i; } // XXX deleted copy ctor != agg
-+    // Conversion to ATOMIC_FLAG_INIT.
-+    atomic_flag(bool __i): __atomic_flag_base({ __i }) { }
-     bool
-     test_and_set(memory_order __m = memory_order_seq_cst) volatile
-@@ -107,7 +108,7 @@
-       {
-         // write_mem_barrier();
-         _M_i = __v;
--        if (__m = memory_order_seq_cst)
-+        if (__m == memory_order_seq_cst)
-           __sync_synchronize();
-       }
-     }
-@@ -298,7 +299,7 @@
-         {
-           // write_mem_barrier();
-           _M_i = __i;
--          if (__m = memory_order_seq_cst)
-+          if (__m == memory_order_seq_cst)
-             __sync_synchronize();
-         }
-       }
-Index: libstdc++-v3/include/c_compatibility/stdatomic.h
-===================================================================
---- libstdc++-v3/include/c_compatibility/stdatomic.h   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/include/c_compatibility/stdatomic.h   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -186,8 +186,11 @@
- _GLIBCXX_END_EXTERN_C
- _GLIBCXX_END_NAMESPACE
+-    rtx x;
++    rtx x, last;
+     x = emit_library_call_value (setjmp_libfunc, NULL_RTX, LCT_RETURNS_TWICE,
+                                TYPE_MODE (integer_type_node), 1,
+                                plus_constant (XEXP (fc, 0),
+@@ -1842,7 +1842,12 @@
  
--// Inject into global namespace. XXX
--#if defined(__cplusplus) && !defined(_GLIBCXX_STDATOMIC)
-+// Inject into global namespace.
-+#ifdef __cplusplus
-+
-+#include <cstdatomic>
-+
- using std::memory_order;
- using std::memory_order_relaxed;
- using std::memory_order_consume;
-Index: libstdc++-v3/include/parallel/multiseq_selection.h
+     emit_cmp_and_jump_insns (x, const0_rtx, NE, 0,
+                            TYPE_MODE (integer_type_node), 0, dispatch_label);
+-    add_reg_br_prob_note (get_insns (), REG_BR_PROB_BASE/100);
++    last = get_last_insn ();
++    if (JUMP_P (last) && any_condjump_p (last))
++      {
++        gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
++        add_reg_note (last, REG_BR_PROB, GEN_INT (REG_BR_PROB_BASE / 100));
++      }
+   }
+ #else
+   expand_builtin_setjmp_setup (plus_constant (XEXP (fc, 0), sjlj_fc_jbuf_ofs),
+Index: gcc/cfgexpand.c
 ===================================================================
---- libstdc++-v3/include/parallel/multiseq_selection.h (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/include/parallel/multiseq_selection.h (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -183,9 +183,6 @@
-       // equality iff nmax = 2^k - 1.
-       l = (1ULL << r) - 1;
--      // From now on, including padding.
--      N = l * m;
--
-       for (int i = 0; i < m; i++)
-       {
-         a[i] = 0;
-@@ -210,7 +207,7 @@
-       if (n >= ns[i]) //sequence too short, conceptual infinity
-         sample.push_back(std::make_pair(S(i)[0] /*dummy element*/, i));
--      difference_type localrank = rank * m / N ;
-+      difference_type localrank = rank / l;
-       int j;
-       for (j = 0; j < localrank && ((n + 1) <= ns[sample[j].second]); ++j)
-@@ -258,15 +255,11 @@
-               b[i] -= n + 1;
-           }
--        difference_type leftsize = 0, total = 0;
-+        difference_type leftsize = 0;
-         for (int i = 0; i < m; i++)
--          {
-             leftsize += a[i] / (n + 1);
--            total += l / (n + 1);
--          }
-         
--        difference_type skew = static_cast<difference_type>
--          (static_cast<uint64>(total) * rank / N - leftsize);
-+        difference_type skew = rank / (n + 1) - leftsize;
+--- gcc/cfgexpand.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/cfgexpand.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -379,46 +379,6 @@
+ }
  
-         if (skew > 0)
-           {
-@@ -429,9 +422,6 @@
-       // equality iff nmax = 2^k - 1
-       l = pow2(r) - 1;
  
--      // From now on, including padding.
--      N = l * m;
+-/* Verify that there is exactly single jump instruction since last and attach
+-   REG_BR_PROB note specifying probability.
+-   ??? We really ought to pass the probability down to RTL expanders and let it
+-   re-distribute it when the conditional expands into multiple conditionals.
+-   This is however difficult to do.  */
+-void
+-add_reg_br_prob_note (rtx last, int probability)
+-{
+-  if (profile_status == PROFILE_ABSENT)
+-    return;
+-  for (last = NEXT_INSN (last); last && NEXT_INSN (last); last = NEXT_INSN (last))
+-    if (JUMP_P (last))
+-      {
+-      /* It is common to emit condjump-around-jump sequence when we don't know
+-         how to reverse the conditional.  Special case this.  */
+-      if (!any_condjump_p (last)
+-          || !JUMP_P (NEXT_INSN (last))
+-          || !simplejump_p (NEXT_INSN (last))
+-          || !NEXT_INSN (NEXT_INSN (last))
+-          || !BARRIER_P (NEXT_INSN (NEXT_INSN (last)))
+-          || !NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))
+-          || !LABEL_P (NEXT_INSN (NEXT_INSN (NEXT_INSN (last))))
+-          || NEXT_INSN (NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))))
+-        goto failed;
+-      gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
+-      add_reg_note (last, REG_BR_PROB,
+-                    GEN_INT (REG_BR_PROB_BASE - probability));
+-      return;
+-      }
+-  if (!last || !JUMP_P (last) || !any_condjump_p (last))
+-    goto failed;
+-  gcc_assert (!find_reg_note (last, REG_BR_PROB, 0));
+-  add_reg_note (last, REG_BR_PROB, GEN_INT (probability));
+-  return;
+-failed:
+-  if (dump_file)
+-    fprintf (dump_file, "Failed to add probability note\n");
+-}
+-
 -
-       for (int i = 0; i < m; ++i)
+ #ifndef STACK_ALIGNMENT_NEEDED
+ #define STACK_ALIGNMENT_NEEDED 1
+ #endif
+@@ -1669,8 +1629,8 @@
+      two-way jump that needs to be decomposed into two basic blocks.  */
+   if (false_edge->dest == bb->next_bb)
+     {
+-      jumpif (pred, label_rtx_for_bb (true_edge->dest));
+-      add_reg_br_prob_note (last, true_edge->probability);
++      jumpif (pred, label_rtx_for_bb (true_edge->dest),
++            true_edge->probability);
+       maybe_dump_rtl_for_gimple_stmt (stmt, last);
+       if (true_edge->goto_locus)
        {
-         a[i] = 0;
-@@ -458,7 +448,7 @@
-       if (n >= ns[i])
-         sample.push_back(std::make_pair(S(i)[0] /*dummy element*/, i));
--      difference_type localrank = rank * m / N ;
-+      difference_type localrank = rank / l;
-       int j;
-       for (j = 0; j < localrank && ((n + 1) <= ns[sample[j].second]); ++j)
-@@ -496,15 +486,11 @@
-               b[i] -= n + 1;
-           }
--        difference_type leftsize = 0, total = 0;
-+        difference_type leftsize = 0;
-         for (int i = 0; i < m; ++i)
--          {
-             leftsize += a[i] / (n + 1);
--            total += l / (n + 1);
--          }
--        difference_type skew = ((unsigned long long)total * rank / N
--                                - leftsize);
-+        difference_type skew = rank / (n + 1) - leftsize;
+@@ -1685,8 +1645,8 @@
+     }
+   if (true_edge->dest == bb->next_bb)
+     {
+-      jumpifnot (pred, label_rtx_for_bb (false_edge->dest));
+-      add_reg_br_prob_note (last, false_edge->probability);
++      jumpifnot (pred, label_rtx_for_bb (false_edge->dest),
++               false_edge->probability);
+       maybe_dump_rtl_for_gimple_stmt (stmt, last);
+       if (false_edge->goto_locus)
+       {
+@@ -1700,8 +1660,7 @@
+       return NULL;
+     }
  
-         if (skew > 0)
-           {
-Index: libstdc++-v3/include/parallel/partition.h
+-  jumpif (pred, label_rtx_for_bb (true_edge->dest));
+-  add_reg_br_prob_note (last, true_edge->probability);
++  jumpif (pred, label_rtx_for_bb (true_edge->dest), true_edge->probability);
+   last = get_last_insn ();
+   if (false_edge->goto_locus)
+     {
+Index: gcc/tree-ssa-pre.c
 ===================================================================
---- libstdc++-v3/include/parallel/partition.h  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/include/parallel/partition.h  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -72,7 +72,7 @@
+--- gcc/tree-ssa-pre.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/tree-ssa-pre.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1395,34 +1395,20 @@
  
-     bool* reserved_left = NULL, * reserved_right = NULL;
  
--    difference_type chunk_size;
-+    difference_type chunk_size = __s.partition_chunk_size;
  
-     omp_lock_t result_lock;
-     omp_init_lock(&result_lock);
-@@ -339,15 +339,16 @@
-     RandomAccessIterator split;
-     random_number rng;
++static pre_expr
++phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
++             basic_block pred, basic_block phiblock);
  
--    difference_type minimum_length =
--      std::max<difference_type>(2, _Settings::get().partition_minimal_n);
-+    const _Settings& __s = _Settings::get();
-+    difference_type minimum_length = std::max<difference_type>(2,
-+        std::max(__s.nth_element_minimal_n, __s.partition_minimal_n));
+ /* Translate EXPR using phis in PHIBLOCK, so that it has the values of
+    the phis in PRED.  Return NULL if we can't find a leader for each part
+    of the translated expression.  */
  
-     // Break if input range to small.
-     while (static_cast<sequence_index_t>(end - begin) >= minimum_length)
+ static pre_expr
+-phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
+-             basic_block pred, basic_block phiblock)
++phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
++               basic_block pred, basic_block phiblock)
+ {
+-  pre_expr oldexpr = expr;
+-  pre_expr phitrans;
+-
+-  if (!expr)
+-    return NULL;
+-
+-  if (value_id_constant_p (get_expr_value_id (expr)))
+-    return expr;
+-
+-  phitrans = phi_trans_lookup (expr, pred);
+-  if (phitrans)
+-    return phitrans;
+-
+   switch (expr->kind)
+     {
+-      /* Constants contain no values that need translation.  */
+-    case CONSTANT:
+-      return expr;
+-
+     case NARY:
        {
-         difference_type n = end - begin;
--        RandomAccessIterator pivot_pos = begin +  rng(n);
-+        RandomAccessIterator pivot_pos = begin + rng(n);
-         // Swap pivot_pos value to end.
-         if (pivot_pos != (end - 1))
-@@ -404,7 +405,7 @@
+       unsigned int i;
+@@ -1510,7 +1496,6 @@
+             }
+           add_to_value (new_val_id, expr);
+         }
+-      phi_trans_add (oldexpr, expr, pred);
+       return expr;
        }
-     // Only at most _Settings::partition_minimal_n elements left.
--    __gnu_sequential::sort(begin, end, comp);
-+    __gnu_sequential::nth_element(begin, nth, end, comp);
-   }
- /** @brief Parallel implementation of std::partial_sort().
-Index: libstdc++-v3/src/atomic.cc
-===================================================================
---- libstdc++-v3/src/atomic.cc (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/src/atomic.cc (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -80,16 +80,16 @@
-     atomic_flag_test_and_set_explicit(volatile __atomic_flag_base* __a,
-                                     memory_order __m)
-     {
--      volatile atomic_flag d(__a->_M_i);
--      return d.test_and_set(__m);
-+      volatile atomic_flag* d = static_cast<volatile atomic_flag*>(__a);
-+      return d->test_and_set(__m);
+       break;
+@@ -1660,7 +1645,6 @@
+           add_to_value (new_val_id, expr);
+         }
+       VEC_free (vn_reference_op_s, heap, newoperands);
+-      phi_trans_add (oldexpr, expr, pred);
+       return expr;
+       }
+       break;
+@@ -1706,6 +1690,44 @@
      }
+ }
  
-     void
-     atomic_flag_clear_explicit(volatile __atomic_flag_base* __a,
-                              memory_order __m)
++/* Wrapper around phi_translate_1 providing caching functionality.  */
++
++static pre_expr
++phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
++             basic_block pred, basic_block phiblock)
++{
++  pre_expr phitrans;
++
++  if (!expr)
++    return NULL;
++
++  /* Constants contain no values that need translation.  */
++  if (expr->kind == CONSTANT)
++    return expr;
++
++  if (value_id_constant_p (get_expr_value_id (expr)))
++    return expr;
++
++  if (expr->kind != NAME)
++    {
++      phitrans = phi_trans_lookup (expr, pred);
++      if (phitrans)
++      return phitrans;
++    }
++
++  /* Translate.  */
++  phitrans = phi_translate_1 (expr, set1, set2, pred, phiblock);
++
++  /* Don't add empty translations to the cache.  Neither add
++     translations of NAMEs as those are cheap to translate.  */
++  if (phitrans
++      && expr->kind != NAME)
++    phi_trans_add (expr, phitrans, pred);
++
++  return phitrans;
++}
++
++
+ /* For each expression in SET, translate the values through phi nodes
+    in PHIBLOCK using edge PHIBLOCK->PRED, and store the resulting
+    expressions in DEST.  */
+@@ -1729,12 +1751,16 @@
      {
--      volatile atomic_flag d(__a->_M_i);
--      return d.clear(__m);
-+      volatile atomic_flag* d = static_cast<volatile atomic_flag*>(__a);
-+      return d->clear(__m);
+       pre_expr translated;
+       translated = phi_translate (expr, set, NULL, pred, phiblock);
++      if (!translated)
++      continue;
+-      /* Don't add empty translations to the cache  */
+-      if (translated)
+-      phi_trans_add (expr, translated, pred);
+-
+-      if (translated != NULL)
++      /* We might end up with multiple expressions from SET being
++       translated to the same value.  In this case we do not want
++       to retain the NARY or REFERENCE expression but prefer a NAME
++       which would be the leader.  */
++      if (translated->kind == NAME)
++      bitmap_value_replace_in_set (dest, translated);
++      else
+       bitmap_value_insert_into_set (dest, translated);
      }
+   VEC_free (pre_expr, heap, exprs);
+Index: gcc/loop-invariant.c
+===================================================================
+--- gcc/loop-invariant.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/loop-invariant.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1207,14 +1207,16 @@
+       emit_insn_after (gen_move_insn (dest, reg), inv->insn);
+       reorder_insns (inv->insn, inv->insn, BB_END (preheader));
+-      /* If there is a REG_EQUAL note on the insn we just moved, and
+-       insn is in a basic block that is not always executed, the note
+-       may no longer be valid after we move the insn.
+-       Note that uses in REG_EQUAL notes are taken into account in
+-       the computation of invariants.  Hence it is safe to retain the
+-       note even if the note contains register references.  */
+-      if (! inv->always_executed
+-        && (note = find_reg_note (inv->insn, REG_EQUAL, NULL_RTX)))
++      /* If there is a REG_EQUAL note on the insn we just moved, and the
++       insn is in a basic block that is not always executed or the note
++       contains something for which we don't know the invariant status,
++       the note may no longer be valid after we move the insn.  Note that
++       uses in REG_EQUAL notes are taken into account in the computation
++       of invariants, so it is safe to retain the note even if it contains
++       register references for which we know the invariant status.  */
++      if ((note = find_reg_note (inv->insn, REG_EQUAL, NULL_RTX))
++        && (!inv->always_executed
++            || !check_maybe_invariant (XEXP (note, 0))))
+       remove_note (inv->insn, note);
+     }
+   else
+Index: gcc/rtl.h
+===================================================================
+--- gcc/rtl.h  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/rtl.h  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Register Transfer Language (RTL) definitions for GCC
+    Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+ This file is part of GCC.
+@@ -2305,8 +2305,6 @@
+ /* In predict.c */
+ extern void invert_br_probabilities (rtx);
+ extern bool expensive_function_p (int);
+-/* In cfgexpand.c */
+-extern void add_reg_br_prob_note (rtx last, int probability);
  
-     void
-Index: libstdc++-v3/ChangeLog
+ /* In var-tracking.c */
+ extern unsigned int variable_tracking_main (void);
+Index: gcc/tree-inline.c
 ===================================================================
---- libstdc++-v3/ChangeLog     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,82 @@
-+2010-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-+
-+      Backport:
-+      2010-01-20  Janis Johnson  <janis187@us.ibm.com>
-+                  Paolo Carlini  <paolo.carlini@oracle.com>
-+
-+      PR libstdc++/21769
-+      * testsuite/lib/dg-options.exp (add_options_for_no_pch): Add.
-+      * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
-+      Use it.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-12-10  Paolo Carlini  <paolo.carlini@oracle.com>
-+
-+      Revert:
-+        2009-12-04  Paolo Carlini  <paolo.carlini@oracle.com>
-+
-+      PR libstdc++/42261
-+      * include/bits/basic_string.h (_S_construct_aux(_Integer, _Integer,
-+      const _Alloc&, __true_type)): Cast the second argument to value_type.
-+      * include/ext/sso_string_base.h (_M_construct_aux(_Integer, _Integer,
-+      std::__true_type)): Likewise.
-+      * include/ext/rc_string_base.h (_S_construct_aux(_Integer, _Integer,
-+      const _Alloc&, std::__true_type)): Likewise.
-+      * testsuite/21_strings/basic_string/cons/char/42261.cc: New.
-+      * testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.
-+
-+2009-12-09  Roman Odaisky  <to.roma.from.bugcc@qwertty.com>
-+
-+      PR libstdc++/42273
-+      * include/bits/atomic_2.h: Fix typo.
-+
-+2009-12-04  Paolo Carlini  <paolo.carlini@oracle.com>
+--- gcc/tree-inline.c  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/tree-inline.c  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -2729,6 +2729,8 @@
+ {
+   HOST_WIDE_INT size;
++  gcc_assert (!VOID_TYPE_P (type));
 +
-+      PR libstdc++/42261
-+      * include/bits/basic_string.h (_S_construct_aux(_Integer, _Integer,
-+      const _Alloc&, __true_type)): Cast the second argument to value_type.
-+      * include/ext/sso_string_base.h (_M_construct_aux(_Integer, _Integer,
-+      std::__true_type)): Likewise.
-+      * include/ext/rc_string_base.h (_S_construct_aux(_Integer, _Integer,
-+      const _Alloc&, std::__true_type)): Likewise.
-+      * testsuite/21_strings/basic_string/cons/char/42261.cc: New.
-+      * testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.
+   size = int_size_in_bytes (type);
+   if (size < 0 || size > MOVE_MAX_PIECES * MOVE_RATIO (!optimize_size))
+@@ -2980,7 +2982,8 @@
+         {
+           tree t;
+           for (t = TYPE_ARG_TYPES (funtype); t; t = TREE_CHAIN (t))
+-            cost += estimate_move_cost (TREE_VALUE (t));
++            if (!VOID_TYPE_P (TREE_VALUE (t)))
++              cost += estimate_move_cost (TREE_VALUE (t));
+         }
+       else
+         {
+@@ -4268,6 +4271,46 @@
+   return true;
+ }
++/* Delete all unreachable basic blocks and update callgraph.
++   Doing so is somewhat nontrivial because we need to update all clones and
++   remove inline function that become unreachable.  */
 +
-+2009-11-19  Johannes Singler  <singler@kit.edu>
++static bool
++delete_unreachable_blocks_update_callgraph (copy_body_data *id)
++{
++  bool changed = false;
++  basic_block b, next_bb;
 +
-+        * include/parallel/partition.h (__parallel_partition): Correctly
-+        initialize chunk size.
-+        (__parallel_nth_element): Respect nth_element_minimal_n.  Use
-+        sequential nth_element as base case, instead of sequential sort.
++  find_unreachable_blocks ();
 +
-+2009-10-28  Johannes Singler  <singler@kit.edu>
++  /* Delete all unreachable basic blocks.  */
 +
-+        PR libstdc++/40852
-+        * include/parallel/multiseq_selection.h
-+        (multiseq_partition, multiseq_selection):  Avoid intermediate
-+      values exceeding the integer type range for very large inputs.
++  for (b = ENTRY_BLOCK_PTR->next_bb; b != EXIT_BLOCK_PTR; b = next_bb)
++    {
++      next_bb = b->next_bb;
 +
-+2009-10-16  Benjamin Kosnik  <bkoz@redhat.com>
++      if (!(b->flags & BB_REACHABLE))
++      {
++          gimple_stmt_iterator bsi;
 +
-+        * include/c_compatibility/stdatomic.h: Include cstdatomic if
-+        __cplusplus.
++          for (bsi = gsi_start_bb (b); !gsi_end_p (bsi); gsi_next (&bsi))
++          if (gimple_code (gsi_stmt (bsi)) == GIMPLE_CALL)
++            {
++              struct cgraph_edge *e;
 +
-+2009-10-15  Benjamin Kosnik  <bkoz@redhat.com>
++              if ((e = cgraph_edge (id->dst_node, gsi_stmt (bsi))) != NULL)
++                cgraph_remove_edge (e);
++            }
++        delete_basic_block (b);
++        changed = true;
++      }
++    }
 +
-+        PR libstdc++/40654
-+        PR libstdc++/40826
-+        * src/atomic.cc (atomic_flag_test_and_set_explicit): Add
-+        static_cast from base to derived.
-+        (atomic_flag_clear_explicit): Same.
-+        * include/bits/atomic_2.h (__atomic2::atomic_flag): Public derivation.
-+        Remove value type constructor.
-+        * include/bits/atomic_0.h (__atomic0::atomic_flag): Same.
-+        * include/std/future (_Future_state): Use ATOMIC_FLAG_INIT to
-+        initialized the atomic_flag member.
++  if (changed)
++    tidy_fallthru_edges ();
++  return changed;
++}
 +
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
+ /* Create a copy of a function's tree.
+    OLD_DECL and NEW_DECL are FUNCTION_DECL tree nodes
+    of the original function and the new copied function
+@@ -4442,7 +4485,7 @@
+       free_dominance_info (CDI_DOMINATORS);
+       free_dominance_info (CDI_POST_DOMINATORS);
+       if (!update_clones)
+-        delete_unreachable_blocks ();
++        delete_unreachable_blocks_update_callgraph (&id);
+       update_ssa (TODO_update_ssa);
+       if (!update_clones)
+       {
+Index: gcc/combine.c
 ===================================================================
---- libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc    (.../branches/gcc-4_4-branch)   (wersja 157390)
+--- gcc/combine.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/combine.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
 @@ -1,6 +1,6 @@
- // 2001-04-06 gdr
+ /* Optimize by combining instructions for GNU compiler.
+    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
  
--// Copyright (C) 2001, 2005, 2009 Free Software Foundation, Inc.
-+// Copyright (C) 2001, 2005, 2009, 2010 Free Software Foundation, Inc.
- //
- // This file is part of the GNU ISO C++ Library.  This library is free
- // software; you can redistribute it and/or modify it under the
-@@ -17,8 +17,9 @@
- // with this library; see the file COPYING3.  If not see
- // <http://www.gnu.org/licenses/>.
+ This file is part of GCC.
+@@ -6531,8 +6531,10 @@
+       if (mode == tmode)
+       return new_rtx;
+-      if (GET_CODE (new_rtx) == CONST_INT)
+-      return gen_int_mode (INTVAL (new_rtx), mode);
++      if (CONST_INT_P (new_rtx)
++        || GET_CODE (new_rtx) == CONST_DOUBLE)
++      return simplify_unary_operation (unsignedp ? ZERO_EXTEND : SIGN_EXTEND,
++                                       mode, new_rtx, tmode);
+       /* If we know that no extraneous bits are set, and that the high
+        bit is not set, convert the extraction to the cheaper of
+Index: gcc/config.gcc
+===================================================================
+--- gcc/config.gcc     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config.gcc     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1088,7 +1088,7 @@
+                       tmake_file="${tmake_file} i386/t-linux64"
+                       need_64bit_hwint=yes
+                       case X"${with_cpu}" in
+-                      Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
++                      Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
+                               ;;
+                       X)
+                               if test x$with_cpu_64 = x; then
+@@ -1097,7 +1097,7 @@
+                               ;;
+                       *)
+                               echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
+-                              echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
++                              echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
+                               exit 1
+                               ;;
+                       esac
+@@ -1202,7 +1202,7 @@
+               # libgcc/configure.ac instead.
+               need_64bit_hwint=yes
+               case X"${with_cpu}" in
+-              Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
++              Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
+                       ;;
+               X)
+                       if test x$with_cpu_64 = x; then
+@@ -1211,7 +1211,7 @@
+                       ;;
+               *)
+                       echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
+-                      echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
++                      echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
+                       exit 1
+                       ;;
+               esac
+@@ -2191,7 +2191,7 @@
+       extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+       ;;
+ sparc-*-linux*)               # SPARC's running GNU/Linux, libc6
+-      tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h"
++      tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-linux"
+       if test x$enable_targets = xall; then
+@@ -2303,7 +2303,7 @@
+       esac
+       ;;
+ sparc64-*-linux*)             # 64-bit SPARC's running GNU/Linux
+-      tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h sparc/linux64.h"
++      tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h sparc/linux64.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
+       ;;
+@@ -2472,7 +2472,10 @@
+         amdfam10-*|barcelona-*)
+           with_cpu=amdfam10
+           ;;
+-        k8-*|opteron-*|athlon_64-*)
++        k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
++          with_cpu=k8-sse3
++          ;;
++        k8-*|opteron-*|athlon64-*|athlon_fx-*)
+           with_cpu=k8
+           ;;
+         athlon_xp-*|athlon_mp-*|athlon_4-*)
+@@ -2518,7 +2521,10 @@
+         amdfam10-*|barcelona-*)
+           with_cpu=amdfam10
+           ;;
+-        k8-*|opteron-*|athlon_64-*)
++        k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
++          with_cpu=k8-sse3
++          ;;
++        k8-*|opteron-*|athlon64-*|athlon_fx-*)
+           with_cpu=k8
+           ;;
+         nocona-*)
+@@ -2812,7 +2818,7 @@
+                               esac
+                               # OK
+                               ;;
+-                      "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic)
++                      "" | amdfam10 | barcelona | k8-sse3 | opteron-sse3 | athlon64-sse3 | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic)
+                               # OK
+                               ;;
+                       *)
+Index: gcc/Makefile.in
+===================================================================
+--- gcc/Makefile.in    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -3,7 +3,7 @@
  
-+// { dg-do compile }
-+// { dg-add-options no_pch }
+ # Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+ # 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+-# 2008, 2009 Free Software Foundation, Inc.
++# 2008, 2009, 2010 Free Software Foundation, Inc.
  
--// { dg-do compile }
- // { dg-xfail-if "" { { *-*-linux* *-*-darwin[3-7]* } || { uclibc || newlib } } { "*" } { "" } }
- // { dg-excess-errors "" { target { { *-*-linux* *-*-darwin[3-7]* } || { uclibc || newlib } } } }
+ #This file is part of GCC.
  
-Index: libstdc++-v3/testsuite/lib/dg-options.exp
+@@ -2514,7 +2514,7 @@
+    tree-pass.h $(DF_H) $(DIAGNOSTIC_H) vecprim.h
+ dojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
+    $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \
+-   langhooks.h $(GGC_H) gt-dojump.h vecprim.h $(BASIC_BLOCK_H)
++   langhooks.h $(GGC_H) gt-dojump.h vecprim.h $(BASIC_BLOCK_H) output.h
+ builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
+    $(TREE_H) $(GIMPLE_H) $(FLAGS_H) $(TARGET_H) $(FUNCTION_H) $(REGS_H) \
+    $(EXPR_H) $(OPTABS_H) insn-config.h $(RECOG_H) output.h typeclass.h \
+Index: gcc/tree-ssa-reassoc.c
+===================================================================
+--- gcc/tree-ssa-reassoc.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/tree-ssa-reassoc.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ /* Reassociation for trees.
+-   Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
++   Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+    Contributed by Daniel Berlin <dan@dberlin.org>
+ This file is part of GCC.
+@@ -844,7 +844,7 @@
+   if ((!op1def || gimple_nop_p (op1def))
+       && (!op2def || gimple_nop_p (op2def)))
+     {
+-      gsi = gsi_start_bb (single_succ (ENTRY_BLOCK_PTR));
++      gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR));
+       gsi_insert_before (&gsi, sum, GSI_NEW_STMT);
+     }
+   else if ((!op1def || gimple_nop_p (op1def))
+@@ -853,7 +853,7 @@
+     {
+       if (gimple_code (op2def) == GIMPLE_PHI)
+       {
+-        gsi = gsi_start_bb (gimple_bb (op2def));
++        gsi = gsi_after_labels (gimple_bb (op2def));
+         gsi_insert_before (&gsi, sum, GSI_NEW_STMT);
+       }
+       else
+@@ -878,7 +878,7 @@
+     {
+       if (gimple_code (op1def) == GIMPLE_PHI)
+       {
+-        gsi = gsi_start_bb (gimple_bb (op1def));
++        gsi = gsi_after_labels (gimple_bb (op1def));
+         gsi_insert_before (&gsi, sum, GSI_NEW_STMT);
+       }
+       else
+Index: gcc/config/alpha/alpha.c
 ===================================================================
---- libstdc++-v3/testsuite/lib/dg-options.exp  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libstdc++-v3/testsuite/lib/dg-options.exp  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- # Handlers for additional dg-xxx keywords in tests.
--# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
-+# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
- # Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or modify
-@@ -142,3 +142,8 @@
+--- gcc/config/alpha/alpha.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/alpha/alpha.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -391,7 +391,7 @@
+           break;
+         }
+       if (! cpu_table [i].name)
+-      error ("bad value %qs for -mcpu switch", alpha_tune_string);
++      error ("bad value %qs for -mtune switch", alpha_tune_string);
      }
-     return
- }
-+
-+proc add_options_for_no_pch { flags } {
-+    # This forces any generated and possibly included PCH to be invalid.
-+    return "-D__GLIBCXX__=99999999"
-+}
-Index: libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
+   /* Do some sanity checks on the above options.  */
+Index: gcc/config/alpha/alpha.md
 ===================================================================
---- libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,27 @@
-+// { dg-options "-std=gnu++0x" }
-+// { dg-do compile }
-+
-+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
+--- gcc/config/alpha/alpha.md  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/alpha/alpha.md  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -4339,20 +4339,22 @@
+                  (match_operand:SI 3 "const48_operand" "I")
+                  (const_int 0))
+                (match_operand:SI 4 "sext_add_operand" "rIO")))
+-   (clobber (match_scratch:SI 5 "=r"))]
++   (clobber (match_scratch:DI 5 "=r"))]
+   ""
+   "#"
+   ""
+   [(set (match_dup 5)
+-      (match_op_dup:SI 1 [(match_dup 2) (const_int 0)]))
++      (match_op_dup:DI 1 [(match_dup 2) (const_int 0)]))
+    (set (match_dup 0)
+-      (plus:SI (mult:SI (match_dup 5) (match_dup 3))
++      (plus:SI (mult:SI (match_dup 6) (match_dup 3))
+                (match_dup 4)))]
+ {
+   if (can_create_pseudo_p ())
+-    operands[5] = gen_reg_rtx (SImode);
++    operands[5] = gen_reg_rtx (DImode);
+   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
+-    operands[5] = operands[0];
++    operands[5] = gen_lowpart (DImode, operands[0]);
 +
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
++  operands[6] = gen_lowpart (SImode, operands[5]);
+ })
+ (define_insn_and_split "*cmp_sadd_sidi"
+@@ -4365,20 +4367,22 @@
+                    (match_operand:SI 3 "const48_operand" "I")
+                    (const_int 0))
+                  (match_operand:SI 4 "sext_add_operand" "rIO"))))
+-   (clobber (match_scratch:SI 5 "=r"))]
++   (clobber (match_scratch:DI 5 "=r"))]
+   ""
+   "#"
+   ""
+   [(set (match_dup 5)
+-      (match_op_dup:SI 1 [(match_dup 2) (const_int 0)]))
++      (match_op_dup:DI 1 [(match_dup 2) (const_int 0)]))
+    (set (match_dup 0)
+-      (sign_extend:DI (plus:SI (mult:SI (match_dup 5) (match_dup 3))
++      (sign_extend:DI (plus:SI (mult:SI (match_dup 6) (match_dup 3))
+                                (match_dup 4))))]
+ {
+   if (can_create_pseudo_p ())
+-    operands[5] = gen_reg_rtx (SImode);
++    operands[5] = gen_reg_rtx (DImode);
+   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
+-    operands[5] = gen_lowpart (SImode, operands[0]);
++    operands[5] = operands[0];
 +
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING3.  If not see
-+// <http://www.gnu.org/licenses/>.
++  operands[6] = gen_lowpart (SImode, operands[5]);
+ })
+ (define_insn_and_split "*cmp_ssub_di"
+@@ -4415,20 +4419,22 @@
+                   (match_operand:SI 3 "const48_operand" "I")
+                   (const_int 0))
+                 (match_operand:SI 4 "reg_or_8bit_operand" "rI")))
+-   (clobber (match_scratch:SI 5 "=r"))]
++   (clobber (match_scratch:DI 5 "=r"))]
+   ""
+   "#"
+   ""
+   [(set (match_dup 5)
+-      (match_op_dup:SI 1 [(match_dup 2) (const_int 0)]))
++      (match_op_dup:DI 1 [(match_dup 2) (const_int 0)]))
+    (set (match_dup 0)
+-      (minus:SI (mult:SI (match_dup 5) (match_dup 3))
++      (minus:SI (mult:SI (match_dup 6) (match_dup 3))
+                (match_dup 4)))]
+ {
+   if (can_create_pseudo_p ())
+-    operands[5] = gen_reg_rtx (SImode);
++    operands[5] = gen_reg_rtx (DImode);
+   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
+-    operands[5] = operands[0];
++    operands[5] = gen_lowpart (DImode, operands[0]);
 +
-+#include <stdatomic.h>
++  operands[6] = gen_lowpart (SImode, operands[5]);
+ })
+ (define_insn_and_split "*cmp_ssub_sidi"
+@@ -4441,20 +4447,22 @@
+                     (match_operand:SI 3 "const48_operand" "I")
+                     (const_int 0))
+                   (match_operand:SI 4 "reg_or_8bit_operand" "rI"))))
+-   (clobber (match_scratch:SI 5 "=r"))]
++   (clobber (match_scratch:DI 5 "=r"))]
+   ""
+   "#"
+   ""
+   [(set (match_dup 5)
+-      (match_op_dup:SI 1 [(match_dup 2) (const_int 0)]))
++      (match_op_dup:DI 1 [(match_dup 2) (const_int 0)]))
+    (set (match_dup 0)
+-      (sign_extend:DI (minus:SI (mult:SI (match_dup 5) (match_dup 3))
++      (sign_extend:DI (minus:SI (mult:SI (match_dup 6) (match_dup 3))
+                                 (match_dup 4))))]
+ {
+   if (can_create_pseudo_p ())
+-    operands[5] = gen_reg_rtx (SImode);
++    operands[5] = gen_reg_rtx (DImode);
+   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
+-    operands[5] = gen_lowpart (SImode, operands[0]);
++    operands[5] = operands[0];
 +
-+void test01()
++  operands[6] = gen_lowpart (SImode, operands[5]);
+ })
\f
+ ;; Here are the CALL and unconditional branch insns.  Calls on NT and OSF
+Index: gcc/config/s390/s390.c
+===================================================================
+--- gcc/config/s390/s390.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/s390/s390.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -10090,6 +10090,14 @@
+     return more;
+ }
++static void
++s390_sched_init (FILE *file ATTRIBUTE_UNUSED,
++               int verbose ATTRIBUTE_UNUSED,
++               int max_ready ATTRIBUTE_UNUSED)
 +{
-+  using namespace std;
-+  atomic_flag af = ATOMIC_FLAG_INIT;
++  last_scheduled_insn = NULL_RTX;
 +}
-Index: libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.c
-===================================================================
---- libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.c    (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,34 @@
-+// { dg-options "-x c -shared-libgcc -lstdc++" }
-+
-+// Copyright (C) 2009 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING3.  If not see
-+// <http://www.gnu.org/licenses/>.
-+
-+#include <cassert>
-+#include <stdatomic.h>
-+
-+// libstdc++/40826
-+// libstdc++/40654
-+int main()
-+{
-+  atomic_flag f = ATOMIC_FLAG_INIT;
-+
-+  atomic_flag_clear(&f); // set to false
-+  assert( false == atomic_flag_test_and_set(&f) ); // return previous false, set to true
-+  assert( true == atomic_flag_test_and_set(&f) ); // return true
 +
-+  return 0;
-+}
-Index: libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
+ /* Initialize GCC target structure.  */
+ #undef  TARGET_ASM_ALIGNED_HI_OP
+@@ -10147,6 +10155,8 @@
+ #define TARGET_SCHED_VARIABLE_ISSUE s390_sched_variable_issue
+ #undef TARGET_SCHED_REORDER
+ #define TARGET_SCHED_REORDER s390_sched_reorder
++#undef TARGET_SCHED_INIT
++#define TARGET_SCHED_INIT s390_sched_init
+ #undef TARGET_CANNOT_COPY_INSN_P
+ #define TARGET_CANNOT_COPY_INSN_P s390_cannot_copy_insn_p
+Index: gcc/config/s390/s390.md
 ===================================================================
---- libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc   (.../tags/gcc_4_4_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -0,0 +1,33 @@
-+// { dg-options "-std=gnu++0x" }
-+
-+// Copyright (C) 2009 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 3, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING3.  If not see
-+// <http://www.gnu.org/licenses/>.
-+
-+#include <cstdatomic>
-+#include <testsuite_hooks.h>
+--- gcc/config/s390/s390.md    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/s390/s390.md    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1864,8 +1864,8 @@
+ })
+ (define_insn "*movqi"
+-  [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,T,Q,S")
+-        (match_operand:QI 1 "general_operand" "d,n,R,T,d,d,n,n"))]
++  [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,T,Q,S,?Q")
++        (match_operand:QI 1 "general_operand"      " d,n,R,T,d,d,n,n,?Q"))]
+   ""
+   "@
+    lr\t%0,%1
+@@ -1875,9 +1875,10 @@
+    stc\t%1,%0
+    stcy\t%1,%0
+    mvi\t%S0,%b1
+-   mviy\t%S0,%b1"
+-  [(set_attr "op_type" "RR,RI,RX,RXY,RX,RXY,SI,SIY")
+-   (set_attr "type" "lr,*,*,*,store,store,store,store")
++   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,
+                         z10_fwd_A1,
+                         z10_super_E1,
+@@ -1885,7 +1886,8 @@
+                         z10_rec,
+                         z10_rec,
+                         z10_super,
+-                        z10_super")])
++                        z10_super,
++                        *")])
+ (define_peephole2
+   [(set (match_operand:QI 0 "nonimmediate_operand" "")
+@@ -2262,6 +2264,22 @@
+   "mvc\t%O0(%2,%R0),%S1"
+   [(set_attr "op_type" "SS")])
++; This splitter converts a QI to QI mode copy into a BLK mode copy in
++; order to have it implemented with mvc.
 +
-+int main()
++(define_split
++  [(set (match_operand:QI 0 "memory_operand" "")
++        (match_operand:QI 1 "memory_operand" ""))]
++  "reload_completed"
++  [(parallel
++    [(set (match_dup 0) (match_dup 1))
++     (use (const_int 1))])]
 +{
-+  bool test __attribute__((unused)) = true;
-+  std::atomic_flag f = ATOMIC_FLAG_INIT;
++  operands[0] = adjust_address (operands[0], BLKmode, 0);
++  operands[1] = adjust_address (operands[1], BLKmode, 0);
++})
 +
-+  f.clear(); // set to false
-+  VERIFY( false == f.test_and_set() ); // return previous false, set to true
-+  VERIFY( true == f.test_and_set() ); // return true
 +
-+  return 0;
-+}
-Index: libobjc/ChangeLog
+ (define_peephole2
+   [(parallel
+     [(set (match_operand:BLK 0 "memory_operand" "")
+Index: gcc/config/spu/spu-c.c
 ===================================================================
---- libobjc/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libobjc/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+--- gcc/config/spu/spu-c.c     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/spu/spu-c.c     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -161,8 +161,7 @@
+         if ((!SCALAR_TYPE_P (param_type)
+              || !SCALAR_TYPE_P (arg_type)
+              || (all_scalar && p == 0))
+-            && !comptypes (TYPE_MAIN_VARIANT (param_type),
+-                           TYPE_MAIN_VARIANT (arg_type)))
++            && !lang_hooks.types_compatible_p (param_type, arg_type))
+           break;
+       }
+       if (param == void_list_node)
+Index: gcc/config/sparc/sparc.c
+===================================================================
+--- gcc/config/sparc/sparc.c   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/sparc/sparc.c   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Subroutines for insn-output.c for SPARC.
+    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
+    Free Software Foundation, Inc.
+    Contributed by Michael Tiemann (tiemann@cygnus.com)
+    64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
+@@ -371,8 +371,9 @@
+ static void emit_save_or_restore_regs (int);
+ static void sparc_asm_function_prologue (FILE *, HOST_WIDE_INT);
+ static void sparc_asm_function_epilogue (FILE *, HOST_WIDE_INT);
+-#ifdef OBJECT_FORMAT_ELF
+-static void sparc_elf_asm_named_section (const char *, unsigned int, tree);
++#if defined (OBJECT_FORMAT_ELF)
++static void sparc_elf_asm_named_section (const char *, unsigned int, tree)
++    ATTRIBUTE_UNUSED;
+ #endif
+ static int sparc_adjust_cost (rtx, rtx, rtx, int);
+@@ -7847,19 +7848,11 @@
+     }
+ }
\f
+-#ifdef OBJECT_FORMAT_ELF
++#if defined (OBJECT_FORMAT_ELF)
+ static void
+ sparc_elf_asm_named_section (const char *name, unsigned int flags,
+                            tree decl)
+ {
+-  if (flags & SECTION_MERGE)
+-    {
+-      /* entsize cannot be expressed in this section attributes
+-       encoding style.  */
+-      default_elf_asm_named_section (name, flags, decl);
+-      return;
+-    }
+-
+   fprintf (asm_out_file, "\t.section\t\"%s\"", name);
  
-       * GCC 4.4.2 released.
-Index: intl/ChangeLog
+   if (!(flags & SECTION_DEBUG))
+Index: gcc/config/sparc/gas.h
 ===================================================================
---- intl/ChangeLog     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ intl/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
+--- gcc/config/sparc/gas.h     (.../tags/gcc_4_4_3_release)    (wersja 0)
++++ gcc/config/sparc/gas.h     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -0,0 +1,6 @@
++/* Definitions of target machine for GCC, for SPARC
++   using the GNU assembler.  */
 +
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: libgfortran/intrinsics/pack_generic.c
++/* Switch into a generic section.  */
++#undef TARGET_ASM_NAMED_SECTION
++#define TARGET_ASM_NAMED_SECTION  default_elf_asm_named_section
+Index: gcc/config/sparc/sysv4.h
 ===================================================================
---- libgfortran/intrinsics/pack_generic.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgfortran/intrinsics/pack_generic.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -403,7 +403,7 @@
+--- gcc/config/sparc/sysv4.h   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/sparc/sysv4.h   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,6 @@
+ /* Target definitions for GNU compiler for SPARC running System V.4
+-   Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009
++   Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009,
++   2010
+    Free Software Foundation, Inc.
+    Contributed by Ron Guilmette (rfg@monkeys.com).
  
-     case GFC_DTYPE_DERIVED_2:
-       if (GFC_UNALIGNED_2(ret->data) || GFC_UNALIGNED_2(array->data)
--        || GFC_UNALIGNED_2(vector->data))
-+        || (vector && GFC_UNALIGNED_2(vector->data)))
-       break;
-       else
-       {
-@@ -414,7 +414,7 @@
+Index: gcc/config/sh/sh.c
+===================================================================
+--- gcc/config/sh/sh.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/sh/sh.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Output routines for GCC for Renesas / SuperH SH.
+    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-   2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++   2003, 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
+    Contributed by Steve Chamberlain (sac@cygnus.com).
+    Improved by Jim Wilson (wilson@cygnus.com).
  
-     case GFC_DTYPE_DERIVED_4:
-       if (GFC_UNALIGNED_4(ret->data) || GFC_UNALIGNED_4(array->data)
--        || GFC_UNALIGNED_4(vector->data))
-+        || (vector && GFC_UNALIGNED_4(vector->data)))
-       break;
-       else
-       {
-@@ -425,7 +425,7 @@
+@@ -4061,6 +4061,13 @@
+              && ! TARGET_SMALLCODE)
+       new_align = 4;
  
-     case GFC_DTYPE_DERIVED_8:
-       if (GFC_UNALIGNED_8(ret->data) || GFC_UNALIGNED_8(array->data)
--        || GFC_UNALIGNED_8(vector->data))
-+        || (vector && GFC_UNALIGNED_8(vector->data)))
-       break;
-       else
-       {
-@@ -436,7 +436,7 @@
- #ifdef HAVE_GFC_INTEGER_16
-     case GFC_DTYPE_DERIVED_16:
-       if (GFC_UNALIGNED_16(ret->data) || GFC_UNALIGNED_16(array->data)
--        || GFC_UNALIGNED_16(vector->data))
-+        || (vector && GFC_UNALIGNED_16(vector->data)))
-       break;
-       else
-       {
-Index: libgfortran/ChangeLog
-===================================================================
---- libgfortran/ChangeLog      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgfortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,29 @@
-+2010-02-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libfortran/42901
-+      * io/list_read.c (nml_get_obj_data): Add new qualifier flag, clean up
-+      code, and adjust logic to set namelist info pointer correctly for array
-+      qualifiers of derived type components.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-12-10  Janus Weil  <janus@gcc.gnu.org>
-+
-+      PR fortran/42268
-+      * intrinsics/pack_generic.c (pack): Add safety checks for the case that
-+      'vector' is NULL.
-+
-+2009-11-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-+
-+      PR libgfortran/42090
-+      Backport from trunk.
-+      * io/transfer.c (skip_record): Set bytes_left_subrecord to zero after
-+      skipping the remaining bytes in the record.
-+      (next_record_r): Call skip_record with the number of bytes_left to be
-+      skipped.
++      /* There is a possibility that a bf is transformed into a bf/s by the
++       delay slot scheduler.  */
++      if (JUMP_P (from) && !JUMP_TABLE_DATA_P (from) 
++        && get_attr_type (from) == TYPE_CBRANCH
++        && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (from)))) != SEQUENCE)
++      inc += 2;
 +
- 2009-10-15  Release Manager
+       if (found_si)
+       {
+         count_si += inc;
+@@ -6764,13 +6771,13 @@
+         pop (PR_REG);
+       }
  
-       * GCC 4.4.2 released.
-Index: libgfortran/io/list_read.c
+-      /* Banked registers are poped first to avoid being scheduled in the
++      /* Banked registers are popped first to avoid being scheduled in the
+        delay slot. RTE switches banks before the ds instruction.  */
+       if (current_function_interrupt)
+       {
+-        for (i = FIRST_BANKED_REG; i <= LAST_BANKED_REG; i++)
+-          if (TEST_HARD_REG_BIT (live_regs_mask, i)) 
+-            pop (LAST_BANKED_REG - i);
++        for (i = LAST_BANKED_REG; i >= FIRST_BANKED_REG; i--)
++          if (TEST_HARD_REG_BIT (live_regs_mask, i))
++            pop (i);
+         last_reg = FIRST_PSEUDO_REGISTER - LAST_BANKED_REG - 1;
+       }
+@@ -8721,9 +8728,7 @@
+       && GET_CODE (PATTERN (insn)) != USE
+       && GET_CODE (PATTERN (insn)) != CLOBBER)
+        || GET_CODE (insn) == CALL_INSN
+-       || (GET_CODE (insn) == JUMP_INSN
+-         && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
+-         && GET_CODE (PATTERN (insn)) != ADDR_VEC))
++       || (JUMP_P (insn) && !JUMP_TABLE_DATA_P (insn)))
+       && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) != SEQUENCE
+       && get_attr_needs_delay_slot (insn) == NEEDS_DELAY_SLOT_YES)
+     return 2;
+@@ -8731,9 +8736,7 @@
+   /* SH2e has a bug that prevents the use of annulled branches, so if
+      the delay slot is not filled, we'll have to put a NOP in it.  */
+   if (sh_cpu == CPU_SH2E
+-      && GET_CODE (insn) == JUMP_INSN
+-      && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
+-      && GET_CODE (PATTERN (insn)) != ADDR_VEC
++      && JUMP_P (insn) && !JUMP_TABLE_DATA_P (insn)
+       && get_attr_type (insn) == TYPE_CBRANCH
+       && GET_CODE (PATTERN (NEXT_INSN (PREV_INSN (insn)))) != SEQUENCE)
+     return 2;
+Index: gcc/config/sh/sh.md
 ===================================================================
---- libgfortran/io/list_read.c (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgfortran/io/list_read.c (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -287,10 +287,10 @@
- eat_line (st_parameter_dt *dtp)
- {
-   char c;
--  if (!is_internal_unit (dtp))
--    do
--      c = next_char (dtp);
--    while (c != '\n');
-+
-+  do
-+    c = next_char (dtp);
-+  while (c != '\n');
- }
+--- gcc/config/sh/sh.md        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/sh/sh.md        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ ;;- Machine description for Renesas / SuperH SH.
+ ;;  Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-;;  2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++;;  2003, 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
+ ;;  Contributed by Steve Chamberlain (sac@cygnus.com).
+ ;;  Improved by Jim Wilson (wilson@cygnus.com).
+@@ -734,7 +734,7 @@
+   [(set (pc)
+       (if_then_else (match_operator 0 "comparison_operator"
+                       [(match_operand:DI 1 "arith_operand" "r,r")
+-                       (match_operand:DI 2 "arith_operand" "rN,i")])
++                       (match_operand:DI 2 "arith_operand" "rN,I08")])
+                     (label_ref (match_operand 3 "" ""))
+                     (pc)))
+    (clobber (match_scratch:SI 4 "=X,&r"))
+Index: gcc/config/ia64/ia64.md
+===================================================================
+--- gcc/config/ia64/ia64.md    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/ia64/ia64.md    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -5818,7 +5818,7 @@
+ })
  
-@@ -2563,7 +2563,7 @@
-   namelist_info * first_nl = NULL;
-   namelist_info * root_nl = NULL;
-   int dim, parsed_rank;
--  int component_flag;
-+  int component_flag, qualifier_flag;
-   index_type clow, chigh;
-   int non_zero_rank_count;
+ (define_insn "call_nogp"
+-  [(call (mem:DI (match_operand:DI 0 "call_operand" "?b,i"))
++  [(call (mem:DI (match_operand:DI 0 "call_operand" "?b,s"))
+        (const_int 0))
+    (clobber (match_operand:DI 1 "register_operand" "=b,b"))]
+   ""
+@@ -5827,7 +5827,7 @@
+ (define_insn "call_value_nogp"
+   [(set (match_operand 0 "" "=X,X")
+-      (call (mem:DI (match_operand:DI 1 "call_operand" "?b,i"))
++      (call (mem:DI (match_operand:DI 1 "call_operand" "?b,s"))
+             (const_int 0)))
+    (clobber (match_operand:DI 2 "register_operand" "=b,b"))]
+   ""
+@@ -5835,14 +5835,14 @@
+   [(set_attr "itanium_class" "br,scall")])
  
-@@ -2612,11 +2612,12 @@
-       break;
-     }
+ (define_insn "sibcall_nogp"
+-  [(call (mem:DI (match_operand:DI 0 "call_operand" "?b,i"))
++  [(call (mem:DI (match_operand:DI 0 "call_operand" "?b,s"))
+        (const_int 0))]
+   ""
+   "br%+.many %0"
+   [(set_attr "itanium_class" "br,scall")])
+ (define_insn "call_gp"
+-  [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,i"))
++  [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,s"))
+        (const_int 1))
+    (clobber (match_operand:DI 1 "register_operand" "=b,b"))
+    (clobber (match_scratch:DI 2 "=&r,X"))
+@@ -5883,7 +5883,7 @@
+ (define_insn "call_value_gp"
+   [(set (match_operand 0 "" "=X,X")
+-      (call (mem:DI (match_operand:DI 1 "call_operand" "?r,i"))
++      (call (mem:DI (match_operand:DI 1 "call_operand" "?r,s"))
+             (const_int 1)))
+    (clobber (match_operand:DI 2 "register_operand" "=b,b"))
+    (clobber (match_scratch:DI 3 "=&r,X"))
+@@ -5923,7 +5923,7 @@
+ })
  
--  /* Untouch all nodes of the namelist and reset the flag that is set for
-+  /* Untouch all nodes of the namelist and reset the flags that are set for
-      derived type components.  */
+ (define_insn_and_split "sibcall_gp"
+-  [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,i"))
++  [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,s"))
+        (const_int 1))
+    (clobber (match_scratch:DI 1 "=&r,X"))
+    (clobber (match_scratch:DI 2 "=b,X"))]
+Index: gcc/config/rs6000/rs6000.c
+===================================================================
+--- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Subroutines used for code generation on IBM RS/6000.
+    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
  
-   nml_untouch_nodes (dtp);
-   component_flag = 0;
-+  qualifier_flag = 0;
-   non_zero_rank_count = 0;
+@@ -5232,14 +5232,6 @@
+              && ! legitimate_constant_pool_address_p (operands[1])
+              && ! toc_relative_expr_p (operands[1]))
+       {
+-        /* Emit a USE operation so that the constant isn't deleted if
+-           expensive optimizations are turned on because nobody
+-           references it.  This should only be done for operands that
+-           contain SYMBOL_REFs with CONSTANT_POOL_ADDRESS_P set.
+-           This should not be done for operands that contain LABEL_REFs.
+-           For now, we just handle the obvious case.  */
+-        if (GET_CODE (operands[1]) != LABEL_REF)
+-          emit_use (operands[1]);
+ #if TARGET_MACHO
+         /* Darwin uses a special PIC legitimizer.  */
+@@ -15534,7 +15526,7 @@
  
-   /* Get the object name - should '!' and '\n' be permitted separators?  */
-@@ -2698,10 +2699,11 @@
-                   " for namelist variable %s", nl->var_name);
-         goto nml_err_ret;
-       }
--
-       if (parsed_rank > 0)
-       non_zero_rank_count++;
+   do_compare_rtx_and_jump (opcode, tocompare, EQ, 1,
+                          SImode, NULL_RTX, NULL_RTX,
+-                         no_toc_save_needed);
++                         no_toc_save_needed, -1);
  
-+      qualifier_flag = 1;
-+
-       c = next_char (dtp);
-       unget_char (dtp, c);
-     }
-@@ -2726,6 +2728,7 @@
+   mem = gen_frame_mem (Pmode,
+                      gen_rtx_PLUS (Pmode, stack_top,
+Index: gcc/config/arm/arm.c
+===================================================================
+--- gcc/config/arm/arm.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/arm.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -10273,11 +10273,14 @@
+   return "";
+ }
  
-       root_nl = nl;
-       component_flag = 1;
-+
-       c = next_char (dtp);
-       goto get_name;
-     }
-@@ -2766,15 +2769,6 @@
-       unget_char (dtp, c);
+-/* Output a 'call' insn that is a reference in memory.  */
++/* Output a 'call' insn that is a reference in memory. This is
++   disabled for ARMv5 and we prefer a blx instead because otherwise
++   there's a significant performance overhead.  */
+ const char *
+ output_call_mem (rtx *operands)
+ {
+-  if (TARGET_INTERWORK && !arm_arch5)
++  gcc_assert (!arm_arch5);
++  if (TARGET_INTERWORK)
+     {
+       output_asm_insn ("ldr%?\t%|ip, %0", operands);
+       output_asm_insn ("mov%?\t%|lr, %|pc", operands);
+@@ -10289,16 +10292,11 @@
+        first instruction.  It's safe to use IP as the target of the
+        load since the call will kill it anyway.  */
+       output_asm_insn ("ldr%?\t%|ip, %0", operands);
+-      if (arm_arch5)
+-      output_asm_insn ("blx%?\t%|ip", operands);
++      output_asm_insn ("mov%?\t%|lr, %|pc", operands);
++      if (arm_arch4t)
++      output_asm_insn ("bx%?\t%|ip", operands);
+       else
+-      {
+-        output_asm_insn ("mov%?\t%|lr, %|pc", operands);
+-        if (arm_arch4t)
+-          output_asm_insn ("bx%?\t%|ip", operands);
+-        else
+-          output_asm_insn ("mov%?\t%|pc, %|ip", operands);
+-      }
++      output_asm_insn ("mov%?\t%|pc, %|ip", operands);
      }
+   else
+     {
+Index: gcc/config/arm/thumb2.md
+===================================================================
+--- gcc/config/arm/thumb2.md   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/thumb2.md   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1108,9 +1108,9 @@
+ )
  
--  /* If a derived type touch its components and restore the root
--     namelist_info if we have parsed a qualified derived type
--     component.  */
--
--  if (nl->type == GFC_DTYPE_DERIVED)
--    nml_touch_nodes (nl);
--  if (component_flag && nl->var_rank > 0 && nl->next)
--    nl = first_nl;
--
-   /* Make sure no extraneous qualifiers are there.  */
+ (define_insn "*thumb2_addsi_short"
+-  [(set (match_operand:SI 0 "low_register_operand" "=l")
+-      (plus:SI (match_operand:SI 1 "low_register_operand" "l")
+-               (match_operand:SI 2 "low_reg_or_int_operand" "lIL")))
++  [(set (match_operand:SI 0 "low_register_operand" "=l,l")
++      (plus:SI (match_operand:SI 1 "low_register_operand" "l,0")
++               (match_operand:SI 2 "low_reg_or_int_operand" "lPt,Ps")))
+    (clobber (reg:CC CC_REGNUM))]
+   "TARGET_THUMB2 && reload_completed"
+   "*
+@@ -1171,7 +1171,7 @@
+    (clobber (reg:CC CC_REGNUM))]
+   "TARGET_THUMB2"
+   "*
+-  if (get_attr_length (insn) == 2 && which_alternative == 0)
++  if (get_attr_length (insn) == 2)
+     return \"cbz\\t%0, %l1\";
+   else
+     return \"cmp\\t%0, #0\;beq\\t%l1\";
+@@ -1179,7 +1179,8 @@
+   [(set (attr "length") 
+         (if_then_else
+           (and (ge (minus (match_dup 1) (pc)) (const_int 2))
+-               (le (minus (match_dup 1) (pc)) (const_int 128)))
++               (le (minus (match_dup 1) (pc)) (const_int 128))
++               (eq (symbol_ref ("which_alternative")) (const_int 0)))
+           (const_int 2)
+           (const_int 8)))]
+ )
+@@ -1193,7 +1194,7 @@
+    (clobber (reg:CC CC_REGNUM))]
+   "TARGET_THUMB2"
+   "*
+-  if (get_attr_length (insn) == 2 && which_alternative == 0)
++  if (get_attr_length (insn) == 2)
+     return \"cbnz\\t%0, %l1\";
+   else
+     return \"cmp\\t%0, #0\;bne\\t%l1\";
+@@ -1201,7 +1202,8 @@
+   [(set (attr "length") 
+         (if_then_else
+           (and (ge (minus (match_dup 1) (pc)) (const_int 2))
+-               (le (minus (match_dup 1) (pc)) (const_int 128)))
++               (le (minus (match_dup 1) (pc)) (const_int 128))
++               (eq (symbol_ref ("which_alternative")) (const_int 0)))
+           (const_int 2)
+           (const_int 8)))]
+ )
+Index: gcc/config/arm/lib1funcs.asm
+===================================================================
+--- gcc/config/arm/lib1funcs.asm       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/lib1funcs.asm       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -95,7 +95,8 @@
+ #endif
  
-   if (c == '(')
-@@ -2819,10 +2813,24 @@
-               nl->var_name);
-       goto nml_err_ret;
-     }
-+  /* If a derived type, touch its components and restore the root
-+     namelist_info if we have parsed a qualified derived type
-+     component.  */
+ #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
+-      || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
++      || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
++      || defined(__ARM_ARCH_7EM__)
+ # define __ARM_ARCH__ 7
+ #endif
  
--  if (first_nl != NULL && first_nl->var_rank > 0)
--    nl = first_nl;
--  
-+  if (nl->type == GFC_DTYPE_DERIVED)
-+    nml_touch_nodes (nl);
-+
-+  if (first_nl)
-+    {
-+      if (first_nl->var_rank == 0)
-+      {
-+        if (component_flag && qualifier_flag)
-+          nl = first_nl;
-+      }
-+      else
-+      nl = first_nl;
-+    }
-+
-   if (nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
-                   clow, chigh) == FAILURE)
-     goto nml_err_ret;
-Index: libgfortran/io/transfer.c
+Index: gcc/config/arm/constraints.md
 ===================================================================
---- libgfortran/io/transfer.c  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libgfortran/io/transfer.c  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2579,6 +2579,8 @@
-       if (sseek (dtp->u.p.current_unit->s, 
-                dtp->u.p.current_unit->bytes_left_subrecord, SEEK_CUR) < 0)
-       generate_error (&dtp->common, LIBERROR_OS, NULL);
-+
-+      dtp->u.p.current_unit->bytes_left_subrecord = 0;
-     }
-   else
-     {                 /* Seek by reading data.  */
-@@ -2659,7 +2661,7 @@
+--- gcc/config/arm/constraints.md      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/constraints.md      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -30,6 +30,7 @@
  
-     case FORMATTED_DIRECT:
-     case UNFORMATTED_DIRECT:
--      skip_record (dtp, 0);
-+      skip_record (dtp, dtp->u.p.current_unit->bytes_left);
-       break;
+ ;; The following multi-letter normal constraints have been used:
+ ;; in ARM/Thumb-2 state: Da, Db, Dc, Dn, Dl, DL, Dv
++;; in Thumb-2 state: Ps, Pt
  
-     case FORMATTED_STREAM:
-Index: libada/configure
-===================================================================
---- libada/configure   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libada/configure   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -272,7 +272,7 @@
- PACKAGE_BUGREPORT=
- ac_unique_file="Makefile.in"
--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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir MAINT multi_basedir toolexecdir toolexeclibdir CC ac_ct_CC EXEEXT OBJEXT CFLAGS enable_shared LN_S default_gnatlib_target LDFLAGS CPPFLAGS warn_cflags 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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir MAINT multi_basedir toolexecdir toolexeclibdir CC ac_ct_CC EXEEXT OBJEXT CFLAGS enable_shared LN_S default_gnatlib_target have_getipinfo LDFLAGS CPPFLAGS warn_cflags LIBOBJS LTLIBOBJS'
- ac_subst_files=''
- ac_pwd=`pwd`
-@@ -815,6 +815,7 @@
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-   --with-build-libsubdir=DIR  Directory where to find libraries for build system
-+  --with-system-libunwind use installed libunwind
- Some influential environment variables:
-   CC          C compiler command
-@@ -2527,6 +2528,51 @@
- fi
-+# Check for _Unwind_GetIPInfo
-+
-+
-+# Check whether --with-system-libunwind or --without-system-libunwind was given.
-+if test "${with_system_libunwind+set}" = set; then
-+  withval="$with_system_libunwind"
-+
-+fi;
-+  # If system-libunwind was not specifically set, pick a default setting.
-+  if test x$with_system_libunwind = x; then
-+    case ${target} in
-+      ia64-*-hpux*) with_system_libunwind=yes ;;
-+      *) with_system_libunwind=no ;;
-+    esac
-+  fi
-+  # Based on system-libunwind and target, do we have ipinfo?
-+  if  test x$with_system_libunwind = xyes; then
-+    case ${target} in
-+      ia64-*-*) have_unwind_getipinfo=no ;;
-+      *) have_unwind_getipinfo=yes ;;
-+    esac
-+  else
-+    # Darwin before version 9 does not have _Unwind_GetIPInfo.
-+
-+    case ${target} in
-+      *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
-+      *) have_unwind_getipinfo=yes ;;
-+    esac
-+
-+  fi
-+
-+  if test x$have_unwind_getipinfo = xyes; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_GETIPINFO 1
-+_ACEOF
-+
-+  fi
-+
-+have_getipinfo=
-+if test x$have_unwind_getipinfo = xyes; then
-+  have_getipinfo=-DHAVE_GETIPINFO
-+fi
-+
-+
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -3953,6 +3999,7 @@
- s,@enable_shared@,$enable_shared,;t t
- s,@LN_S@,$LN_S,;t t
- s,@default_gnatlib_target@,$default_gnatlib_target,;t t
-+s,@have_getipinfo@,$have_getipinfo,;t t
- s,@LDFLAGS@,$LDFLAGS,;t t
- s,@CPPFLAGS@,$CPPFLAGS,;t t
- s,@warn_cflags@,$warn_cflags,;t t
-Index: libada/Makefile.in
-===================================================================
---- libada/Makefile.in (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libada/Makefile.in (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -56,6 +56,8 @@
- TARGET_LIBGCC2_CFLAGS=
- GNATLIBCFLAGS= -g -O2
-+GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
-+      -DIN_RTS @have_getipinfo@
- # Get target-specific overrides for TARGET_LIBGCC2_CFLAGS.
- host_subdir = @host_subdir@
-@@ -78,6 +80,7 @@
-         "SHELL=$(SHELL)" \
-         "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
-         "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
-+        "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
-         "TARGET_LIBGCC2_CFLAGS=$(TARGET_LIBGCC2_CFLAGS)" \
-         "THREAD_KIND=$(THREAD_KIND)" \
-         "TRACE=$(TRACE)" \
-Index: libada/configure.ac
-===================================================================
---- libada/configure.ac        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libada/configure.ac        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -18,6 +18,7 @@
- sinclude(../config/acx.m4)
- sinclude(../config/multi.m4)
- sinclude(../config/override.m4)
-+sinclude(../config/unwind_ipinfo.m4)
- AC_INIT
- AC_PREREQ([2.59])
-@@ -130,6 +131,14 @@
- fi
- AC_SUBST([default_gnatlib_target])
-+# Check for _Unwind_GetIPInfo
-+GCC_CHECK_UNWIND_GETIPINFO
-+have_getipinfo=
-+if test x$have_unwind_getipinfo = xyes; then
-+  have_getipinfo=-DHAVE_GETIPINFO
-+fi
-+AC_SUBST(have_getipinfo)
-+
- AC_PROG_CC
- warn_cflags=
- if test "x$GCC" = "xyes"; then
-Index: libada/ChangeLog
-===================================================================
---- libada/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libada/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,15 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>
-+
-+      * Makefile.in (GNATLIBCFLAGS_FOR_C): New variable.
-+      (LIBADA_FLAGS_TO_PASS): Add GNATLIBCFLAGS_FOR_C.
-+      * configure.ac: Include config/unwind_ipinfo.m4.
-+      Check for _Unwind_GetIPInfo.
-+      * configure: Regenerate.
-+
- 2009-10-15  Release Manager
+ ;; The following memory constraints have been used:
+ ;; in ARM/Thumb-2 state: Q, Ut, Uv, Uy, Un, Us
+@@ -129,6 +130,16 @@
+       (match_test "TARGET_THUMB1 && ival >= -508 && ival <= 508
+                  && ((ival & 3) == 0)")))
  
-       * GCC 4.4.2 released.
-Index: libmudflap/ChangeLog
-===================================================================
---- libmudflap/ChangeLog       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libmudflap/ChangeLog       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,11 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
++(define_constraint "Ps"
++  "@internal In Thumb-2 state a constant in the range -255 to +255"
++  (and (match_code "const_int")
++       (match_test "TARGET_THUMB2 && ival >= -255 && ival <= 255")))
 +
-+      * mf-runtime.c (__mf_usage): Update copyright notice dates.
++(define_constraint "Pt"
++  "@internal In Thumb-2 state a constant in the range -7 to +7"
++  (and (match_code "const_int")
++       (match_test "TARGET_THUMB2 && ival >= -7 && ival <= 7")))
 +
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: libmudflap/mf-runtime.c
+ (define_constraint "G"
+  "In ARM/Thumb-2 state a valid FPA immediate constant."
+  (and (match_code "const_double")
+Index: gcc/config/arm/neon.ml
 ===================================================================
---- libmudflap/mf-runtime.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libmudflap/mf-runtime.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Mudflap: narrow-pointer bounds-checking by tree rewriting.
--   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009
-+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by Frank Ch. Eigler <fche@redhat.com>
-    and Graydon Hoare <graydon@redhat.com>
-@@ -440,7 +440,7 @@
+--- gcc/config/arm/neon.ml     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/neon.ml     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,7 +1,7 @@
+ (* Common code for ARM NEON header file, documentation and test case
+    generators.
  
-   fprintf (stderr,
-            "This is a %s%sGCC \"mudflap\" memory-checked binary.\n"
--           "Mudflap is Copyright (C) 2002-2009 Free Software Foundation, Inc.\n"
-+           "Mudflap is Copyright (C) 2002-2010 Free Software Foundation, Inc.\n"
-            "\n"
-            "The mudflap code can be controlled by an environment variable:\n"
-            "\n"
-Index: boehm-gc/ChangeLog
-===================================================================
---- boehm-gc/ChangeLog (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ boehm-gc/ChangeLog (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
++   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+    Contributed by CodeSourcery.
  
-       * GCC 4.4.2 released.
-Index: include/ChangeLog
-===================================================================
---- include/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ include/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+    This file is part of GCC.
+@@ -233,6 +233,7 @@
+        cases.  The function supplied must return the integer to be written
+        into the testcase for the argument number (0-based) supplied to it.  *)
+   | Const_valuator of (int -> int)
++  | Fixed_return_reg
  
-       * GCC 4.4.2 released.
-Index: libiberty/ChangeLog
-===================================================================
---- libiberty/ChangeLog        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libiberty/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,13 @@
-+2010-01-25  Ian Lance Taylor  <iant@google.com>
-+
-+      * cp-demangle.c (cplus_demangle_type): Check for invalid type
-+      after "DF".
-+      * testsuite/demangle-expected: Add test.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+ exception MixedMode of elts * elts
  
-       * GCC 4.4.2 released.
-Index: libiberty/testsuite/demangle-expected
-===================================================================
---- libiberty/testsuite/demangle-expected      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libiberty/testsuite/demangle-expected      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -3910,3 +3910,8 @@
- --format=gnu-v3
- _Z1gIIidEEDTclL_Z1fEspplfp_Li1EEEDpT_
- decltype (f((parm#1+(1))...)) g<int, double>(int, double)
-+#
-+# Used to crash the demangler.
-+--format=gnu-v3
-+DFA
-+DFA
-Index: libiberty/cp-demangle.c
-===================================================================
---- libiberty/cp-demangle.c    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libiberty/cp-demangle.c    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* Demangler for g++ V3 ABI.
--   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
-+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation, Inc.
-    Written by Ian Lance Taylor <ian@wasabisystems.com>.
+@@ -1076,9 +1077,13 @@
+       Use_operands [| Dreg; Qreg |], "vget_high",
+       notype_1, pf_su_8_64;
+     Vget_low, [Instruction_name ["vmov"];
+-               Disassembles_as [Use_operands [| Dreg; Dreg |]]],
++               Disassembles_as [Use_operands [| Dreg; Dreg |]];
++             Fixed_return_reg],
+       Use_operands [| Dreg; Qreg |], "vget_low",
+-      notype_1, pf_su_8_64;
++      notype_1, pf_su_8_32;
++     Vget_low, [No_op],
++      Use_operands [| Dreg; Qreg |], "vget_low",
++      notype_1, [S64; U64];
  
-@@ -2149,6 +2149,8 @@
-           /* For demangling we don't care about the bits.  */
-           d_number (di);
-         ret->u.s_fixed.length = cplus_demangle_type (di);
-+        if (ret->u.s_fixed.length == NULL)
-+          return NULL;
-         d_number (di);
-         peek = d_next_char (di);
-         ret->u.s_fixed.sat = (peek == 's');
-Index: ChangeLog
+     (* Conversions.  *)
+     Vcvt, [InfoWord], All (2, Dreg), "vcvt", conv_1,
+Index: gcc/config/arm/neon-testgen.ml
 ===================================================================
---- ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,11 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-11-23  Ben Elliston  <bje@au.ibm.com>
-+
-+      * config.sub, config.guess: Update from upstream sources.
-+
- 2009-10-15  Release Manager
+--- gcc/config/arm/neon-testgen.ml     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/neon-testgen.ml     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ (* Auto-generate ARM Neon intrinsics tests.
+-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
++   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+    Contributed by CodeSourcery.
  
-       * GCC 4.4.2 released.
-Index: libffi/ChangeLog
-===================================================================
---- libffi/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libffi/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,12 @@
-+2010-02-15  Matthias Klose  <doko@ubuntu.com>
-+
-+      * src/arm/sysv.S (__ARM_ARCH__): Define for processor
-+      __ARM_ARCH_7EM__.
-+
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+    This file is part of GCC.
+@@ -58,7 +58,7 @@
  
-       * GCC 4.4.2 released.
-Index: libffi/src/arm/sysv.S
+ (* Emit declarations of local variables that are going to be passed
+    to an intrinsic, together with one to take a returned value if needed.  *)
+-let emit_automatics chan c_types =
++let emit_automatics chan c_types features =
+   let emit () =
+     ignore (
+       List.fold_left (fun arg_number -> fun (flags, ty) ->
+@@ -75,11 +75,17 @@
+   in
+     match c_types with
+       (_, return_ty) :: tys ->
+-        if return_ty <> "void" then
+-          (* The intrinsic returns a value.  *)
+-          (Printf.fprintf chan "  %s out_%s;\n" return_ty return_ty;
+-           emit ())
+-        else
++        if return_ty <> "void" then begin
++          (* The intrinsic returns a value.  We need to do explict register
++             allocation for vget_low tests or they fail because of copy
++             elimination.  *)
++          ((if List.mem Fixed_return_reg features then
++              Printf.fprintf chan "  register %s out_%s asm (\"d18\");\n"
++                             return_ty return_ty
++            else
++              Printf.fprintf chan "  %s out_%s;\n" return_ty return_ty);
++         emit ())
++        end else
+           (* The intrinsic does not return a value.  *)
+           emit ()
+     | _ -> assert false
+@@ -256,7 +262,7 @@
+     (* Emit file and function prologues.  *)
+     emit_prologue chan test_name;
+     (* Emit local variable declarations.  *)
+-    emit_automatics chan c_types;
++    emit_automatics chan c_types features;
+     Printf.fprintf chan "\n";
+     (* Emit the call to the intrinsic.  *)
+     emit_call chan const_valuator c_types name elt_ty;
+Index: gcc/config/arm/arm.md
 ===================================================================
---- libffi/src/arm/sysv.S      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libffi/src/arm/sysv.S      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -73,7 +73,8 @@
- #endif
+--- gcc/config/arm/arm.md      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/arm/arm.md      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -8441,12 +8441,17 @@
+    (set_attr "type" "call")]
+ )
  
- #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
--        || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
-+        || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
-+      || defined(__ARM_ARCH_7EM__)
- # undef __ARM_ARCH__
- # define __ARM_ARCH__ 7
- #endif
-Index: libssp/ChangeLog
-===================================================================
---- libssp/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libssp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
 +
-+      * GCC 4.4.3 released.
++;; Note: not used for armv5+ because the sequence used (ldr pc, ...) is not
++;; considered a function call by the branch predictor of some cores (PR40887).
++;; Falls back to blx rN (*call_reg_armv5).
 +
- 2009-10-15  Release Manager
+ (define_insn "*call_mem"
+   [(call (mem:SI (match_operand:SI 0 "call_memory_operand" "m"))
+        (match_operand 1 "" ""))
+    (use (match_operand 2 "" ""))
+    (clobber (reg:SI LR_REGNUM))]
+-  "TARGET_ARM"
++  "TARGET_ARM && !arm_arch5"
+   "*
+   return output_call_mem (operands);
+   "
+@@ -8548,13 +8553,15 @@
+    (set_attr "type" "call")]
+ )
  
-       * GCC 4.4.2 released.
-Index: contrib/regression/ChangeLog
-===================================================================
---- contrib/regression/ChangeLog       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ contrib/regression/ChangeLog       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
++;; Note: see *call_mem
 +
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: contrib/reghunt/ChangeLog
+ (define_insn "*call_value_mem"
+   [(set (match_operand 0 "" "")
+       (call (mem:SI (match_operand:SI 1 "call_memory_operand" "m"))
+             (match_operand 2 "" "")))
+    (use (match_operand 3 "" ""))
+    (clobber (reg:SI LR_REGNUM))]
+-  "TARGET_ARM && (!CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))"
++  "TARGET_ARM && !arm_arch5 && (!CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))"
+   "*
+   return output_call_mem (&operands[1]);
+   "
+Index: gcc/config/pa/pa.md
 ===================================================================
---- contrib/reghunt/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ contrib/reghunt/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+--- gcc/config/pa/pa.md        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/config/pa/pa.md        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -3548,7 +3548,7 @@
  
-       * GCC 4.4.2 released.
-Index: contrib/ChangeLog
-===================================================================
---- contrib/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ contrib/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+   size = INTVAL (operands[2]);
+   align = INTVAL (operands[3]);
+-  align = align > 4 ? 4 : align;
++  align = align > 4 ? 4 : (align ? align : 1);
  
-       * GCC 4.4.2 released.
-Index: config/ChangeLog
-===================================================================
---- config/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ config/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
- 2009-10-15  Release Manager
+   /* If size/alignment is large, then use the library routines.  */
+   if (size / align > 16)
+@@ -3736,7 +3736,7 @@
+   size = INTVAL (operands[2]);
+   align = INTVAL (operands[3]);
+-  align = align > 8 ? 8 : align;
++  align = align > 8 ? 8 : (align ? align : 1);
  
-       * GCC 4.4.2 released.
-Index: libjava/Makefile.in
+   /* If size/alignment is large, then use the library routines.  */
+   if (size / align > 16)
+Index: gcc/cfgrtl.c
 ===================================================================
---- libjava/Makefile.in        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -838,7 +838,6 @@
- datadir = @datadir@
- dbexecdir = @dbexecdir@
- exec_prefix = @exec_prefix@
--extra_gij_ldflags = @extra_gij_ldflags@
- extra_ldflags = @extra_ldflags@
- extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_8)
- gcc_suffix = @gcc_suffix@
-@@ -8354,8 +8353,7 @@
- gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec
- gij_SOURCES = 
- gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
--      -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \
--      $(extra_gij_ldflags) 
-+      -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
+--- gcc/cfgrtl.c       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/cfgrtl.c       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Control flow graph manipulation code for GNU compiler.
+    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
+    Free Software Foundation, Inc.
  
- gij_LINK = $(GCJLINK)
- gij_LDADD = -L$(here)/.libs libgij.la
-Index: libjava/libltdl/ltdl.c
+ This file is part of GCC.
+@@ -2951,7 +2951,7 @@
+   op0 = force_operand (op0, NULL_RTX);
+   op1 = force_operand (op1, NULL_RTX);
+   do_compare_rtx_and_jump (op0, op1, comp, 0,
+-                         mode, NULL_RTX, NULL_RTX, label);
++                         mode, NULL_RTX, NULL_RTX, label, -1);
+   jump = get_last_insn ();
+   JUMP_LABEL (jump) = label;
+   LABEL_NUSES (label)++;
+Index: gcc/stmt.c
 ===================================================================
---- libjava/libltdl/ltdl.c     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/libltdl/ltdl.c     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -2175,7 +2175,8 @@
- static        int     try_dlopen            LT_PARAMS((lt_dlhandle *handle,
-                                                const char *filename));
- static        int     tryall_dlopen         LT_PARAMS((lt_dlhandle *handle,
--                                               const char *filename));
-+                                               const char *filename,
-+                                               const char * useloader));
- static        int     unload_deplibs        LT_PARAMS((lt_dlhandle handle));
- static        int     lt_argz_insert        LT_PARAMS((char **pargz,
-                                                size_t *pargz_len,
-@@ -2361,9 +2362,10 @@
- }
+--- gcc/stmt.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ gcc/stmt.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* Expands front end tree to back end RTL for GCC
+-   Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
+-   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++   Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
  
- static int
--tryall_dlopen (handle, filename)
-+tryall_dlopen (handle, filename, useloader)
-      lt_dlhandle *handle;
-      const char *filename;
-+     const char *useloader;
+ This file is part of GCC.
+@@ -2472,7 +2472,7 @@
+                 int unsignedp)
  {
-   lt_dlhandle  cur;
-   lt_dlloader   *loader;
-@@ -2430,6 +2432,11 @@
+   do_compare_rtx_and_jump (op0, op1, EQ, unsignedp, mode,
+-                         NULL_RTX, NULL_RTX, label);
++                         NULL_RTX, NULL_RTX, label, -1);
+ }
\f
+ /* Not all case values are encountered equally.  This function
+Index: libstdc++-v3/include/parallel/numeric
+===================================================================
+--- libstdc++-v3/include/parallel/numeric      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/parallel/numeric      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -280,7 +280,7 @@
+       typedef typename
+       __gnu_parallel::multiplies<value_type1, value_type2>::result
+         multiplies_result_type;
+-      return inner_product(first1, last1, first2, init,
++      return _GLIBCXX_STD_P::inner_product(first1, last1, first2, init,
+                            __gnu_parallel::plus<T, multiplies_result_type>(),
+                            __gnu_parallel::
+                          multiplies<value_type1, value_type2>(),
+@@ -300,7 +300,7 @@
+       typedef typename
+       __gnu_parallel::multiplies<value_type1, value_type2>::result
+         multiplies_result_type;
+-      return inner_product(first1, last1, first2, init,
++      return _GLIBCXX_STD_P::inner_product(first1, last1, first2, init,
+                            __gnu_parallel::plus<T, multiplies_result_type>(),
+                            __gnu_parallel::
+                          multiplies<value_type1, value_type2>());
+@@ -355,7 +355,8 @@
+     partial_sum(InputIterator begin, InputIterator end, OutputIterator result)
+     {
+       typedef typename iterator_traits<InputIterator>::value_type value_type;
+-      return partial_sum(begin, end, result, std::plus<value_type>());
++      return _GLIBCXX_STD_P::partial_sum(begin, end, result,
++                                         std::plus<value_type>());
+     }
+   // Public interface
+Index: libstdc++-v3/include/parallel/algobase.h
+===================================================================
+--- libstdc++-v3/include/parallel/algobase.h   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/parallel/algobase.h   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -146,7 +146,7 @@
+   template<typename InputIterator1, typename InputIterator2>
+     inline bool
+     equal(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2)
+-    { return mismatch(begin1, end1, begin2).first == end1; }
++    { return _GLIBCXX_STD_P::mismatch(begin1, end1, begin2).first == end1; }
+   // Public interface
+   template<typename InputIterator1, typename InputIterator2,
+@@ -154,7 +154,10 @@
+     inline bool
+     equal(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, 
+         Predicate pred)
+-    { return mismatch(begin1, end1, begin2, pred).first == end1; }
++    {
++      return _GLIBCXX_STD_P::mismatch(begin1, end1, begin2, pred).first
++                  == end1;
++    }
+   // Sequential fallback
+   template<typename InputIterator1, typename InputIterator2>
+Index: libstdc++-v3/include/parallel/partial_sum.h
+===================================================================
+--- libstdc++-v3/include/parallel/partial_sum.h        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/parallel/partial_sum.h        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -155,7 +155,7 @@
+         else
+           {
+             ::new(&(sums[iam]))
+-            value_type(std::accumulate(begin + borders[iam] + 1,
++            value_type(__gnu_parallel::accumulate(begin + borders[iam] + 1,
+                                        begin + borders[iam + 1],
+                                        *(begin + borders[iam]),
+                                        bin_op,
+Index: libstdc++-v3/include/parallel/algo.h
+===================================================================
+--- libstdc++-v3/include/parallel/algo.h       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/parallel/algo.h       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -289,8 +289,8 @@
+       typedef typename iteratori_traits::value_type valuei_type;
+       typedef typename iteratorf_traits::value_type valuef_type;
+-      return find_first_of(begin1, end1, begin2, end2, __gnu_parallel::
+-                           equal_to<valuei_type, valuef_type>());
++      return _GLIBCXX_STD_P::find_first_of(begin1, end1, begin2, end2,
++                __gnu_parallel::equal_to<valuei_type, valuef_type>());
+     }
  
-   while (loader)
+   // Sequential fallback
+@@ -1152,7 +1152,7 @@
+              const T& val)
      {
-+      if (useloader && strcmp(loader->loader_name, useloader))
-+      {
-+        loader = loader->next;
-+        continue;
-+      }
-       lt_user_data data = loader->dlloader_data;
+       typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+-      return search_n(begin, end, count, val,
++      return _GLIBCXX_STD_P::search_n(begin, end, count, val,
+                       __gnu_parallel::equal_to<value_type, T>());
+     }
+@@ -2093,7 +2093,7 @@
+       typedef typename iterator1_traits::value_type value1_type;
+       typedef typename iterator2_traits::value_type value2_type;
  
-       cur->module = loader->module_open (data, filename);
-@@ -2499,7 +2506,7 @@
-       error += tryall_dlopen_module (handle,
-                                    (const char *) 0, prefix, filename);
+-      return merge(begin1, end1, begin2, end2, result, 
++      return _GLIBCXX_STD_P::merge(begin1, end1, begin2, end2, result, 
+                    __gnu_parallel::less<value1_type, value2_type>());
      }
--  else if (tryall_dlopen (handle, filename) != 0)
-+  else if (tryall_dlopen (handle, filename, NULL) != 0)
+@@ -2134,7 +2134,7 @@
      {
-       ++error;
+       typedef iterator_traits<RandomAccessIterator> traits_type;
+       typedef typename traits_type::value_type value_type;
+-      nth_element(begin, nth, end, std::less<value_type>());
++      _GLIBCXX_STD_P::nth_element(begin, nth, end, std::less<value_type>());
      }
-@@ -2520,7 +2527,7 @@
-   /* Try to open the old library first; if it was dlpreopened,
-      we want the preopened version of it, even if a dlopenable
-      module is available.  */
--  if (old_name && tryall_dlopen (handle, old_name) == 0)
-+  if (old_name && tryall_dlopen (handle, old_name, "dlpreload") == 0)
+   // Sequential fallback
+@@ -2175,7 +2175,8 @@
      {
-       return 0;
+       typedef iterator_traits<RandomAccessIterator> traits_type;
+       typedef typename traits_type::value_type value_type;
+-      partial_sort(begin, middle, end, std::less<value_type>());
++      _GLIBCXX_STD_P::partial_sort(begin, middle, end,
++                                   std::less<value_type>());
      }
-@@ -2784,7 +2791,7 @@
  
-   /* Try to dlopen the file, but do not continue searching in any
-      case.  */
--  if (tryall_dlopen (handle, filename) != 0)
-+  if (tryall_dlopen (handle, filename,NULL) != 0)
-     *handle = 0;
+   // Sequential fallback
+@@ -2244,7 +2245,7 @@
+     max_element(ForwardIterator begin, ForwardIterator end)
+     {
+       typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+-      return max_element(begin, end, std::less<value_type>());
++      return _GLIBCXX_STD_P::max_element(begin, end, std::less<value_type>());
+     }
  
-   return 1;
-@@ -3072,7 +3079,7 @@
-       /* lt_dlclose()ing yourself is very bad!  Disallow it.  */
-       LT_DLSET_FLAG (*phandle, LT_DLRESIDENT_FLAG);
+   // Public interface
+@@ -2335,7 +2336,7 @@
+     min_element(ForwardIterator begin, ForwardIterator end)
+     {
+       typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+-      return min_element(begin, end, std::less<value_type>());
++      return _GLIBCXX_STD_P::min_element(begin, end, std::less<value_type>());
+     }
  
--      if (tryall_dlopen (&newhandle, 0) != 0)
-+      if (tryall_dlopen (&newhandle, 0, NULL) != 0)
-       {
-         LT_DLFREE (*phandle);
-         return 1;
-@@ -3194,7 +3201,7 @@
-           }
- #endif
-       }
--      if (!file)
-+      else
-       {
-         file = fopen (filename, LT_READTEXT_MODE);
-       }
-@@ -3378,7 +3385,7 @@
- #endif
-                  )))
-       {
--          if (tryall_dlopen (&newhandle, filename) != 0)
-+          if (tryall_dlopen (&newhandle, filename, NULL) != 0)
-             {
-               newhandle = NULL;
-             }
-Index: libjava/libltdl/configure
+   // Public interface
+Index: libstdc++-v3/include/backward/hash_map
 ===================================================================
---- libjava/libltdl/configure  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/libltdl/configure  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -8628,7 +8628,7 @@
-   # Append ld.so.conf contents to the search path
-   if test -f /etc/ld.so.conf; then
--    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[     ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-   fi
+--- libstdc++-v3/include/backward/hash_map     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/hash_map     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,7 @@
+ // Hashing map implementation -*- C++ -*-
  
-@@ -12426,7 +12426,7 @@
+-// Copyright (C) 2001, 2002, 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2004, 2005, 2006, 2009, 2010
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -53,8 +54,8 @@
+  *  containing extensions from the HP/SGI STL subset).
+  */
  
-   # Append ld.so.conf contents to the search path
-   if test -f /etc/ld.so.conf; then
--    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[     ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-   fi
+-#ifndef _HASH_MAP
+-#define _HASH_MAP 1
++#ifndef _BACKWARD_HASH_MAP
++#define _BACKWARD_HASH_MAP 1
  
-@@ -15707,7 +15707,7 @@
+ #include "backward_warning.h"
+ #include <bits/c++config.h>
+Index: libstdc++-v3/include/backward/hash_fun.h
+===================================================================
+--- libstdc++-v3/include/backward/hash_fun.h   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/hash_fun.h   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,7 @@
+ // 'struct hash' from SGI -*- C++ -*-
  
-   # Append ld.so.conf contents to the search path
-   if test -f /etc/ld.so.conf; then
--    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[     ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-   fi
+-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -53,8 +54,8 @@
+  *  containing extensions from the HP/SGI STL subset).
+  */
  
-@@ -18193,7 +18193,7 @@
+-#ifndef _HASH_FUN_H
+-#define _HASH_FUN_H 1
++#ifndef _BACKWARD_HASH_FUN_H
++#define _BACKWARD_HASH_FUN_H 1
  
-   # Append ld.so.conf contents to the search path
-   if test -f /etc/ld.so.conf; then
--    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[     ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-   fi
+ #include <cstddef>
  
-Index: libjava/libltdl/ChangeLog
+Index: libstdc++-v3/include/backward/hashtable.h
 ===================================================================
---- libjava/libltdl/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/libltdl/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,22 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-12-03  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * acinclude.m4: Regenerated to pick:
-+      2007-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-+
-+      * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [linux]:
-+      Ignore lines in ld.so.conf starting with 'hwcap '.
-+
-+      * configure: Regenerated.
-+
-+      2009-11-24  Peter O'Gorman  <peter@pogma.com>
-+
-+      Backport of libltdl changes from the 2.26b release.
-+      * ltdl.c: Backport changes.
-+
- 2009-10-15  Release Manager
+--- libstdc++-v3/include/backward/hashtable.h  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/hashtable.h  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ // Hashtable implementation used by containers -*- C++ -*-
  
-       * GCC 4.4.2 released.
-Index: libjava/libltdl/acinclude.m4
-===================================================================
---- libjava/libltdl/acinclude.m4       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/libltdl/acinclude.m4       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1527,7 +1527,7 @@
+-// 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 the GNU ISO C++ Library.  This library is free
+@@ -54,8 +54,8 @@
+  *  containing extensions from the HP/SGI STL subset).
+  */
+-#ifndef _HASHTABLE_H
+-#define _HASHTABLE_H 1
++#ifndef _BACKWARD_HASHTABLE_H
++#define _BACKWARD_HASHTABLE_H 1
+ // Hashtable class, used to implement the hashed associative containers
+ // hash_set, hash_map, hash_multiset, and hash_multimap.
+Index: libstdc++-v3/include/backward/auto_ptr.h
+===================================================================
+--- libstdc++-v3/include/backward/auto_ptr.h   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/auto_ptr.h   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -27,8 +27,8 @@
+  *  You should not attempt to use it directly.
+  */
+-#ifndef _STL_AUTO_PTR_H
+-#define _STL_AUTO_PTR_H 1
++#ifndef _BACKWARD_AUTO_PTR_H
++#define _BACKWARD_AUTO_PTR_H 1
+ #include <bits/c++config.h>
+ #include <debug/debug.h>
+@@ -289,4 +289,4 @@
  
-   # Append ld.so.conf contents to the search path
-   if test -f /etc/ld.so.conf; then
--    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[         ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
-   fi
+ _GLIBCXX_END_NAMESPACE
  
-Index: libjava/configure.host
+-#endif /* _STL_AUTO_PTR_H */
++#endif /* _BACKWARD_AUTO_PTR_H */
+Index: libstdc++-v3/include/backward/strstream
 ===================================================================
---- libjava/configure.host     (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/configure.host     (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -87,6 +87,7 @@
-       libgcj_interpreter=yes
-       sysdeps_dir=arm
-       fallback_backtrace_h=sysdep/arm/backtrace.h
-+      libgcj_cxxflags=-Wno-abi
-       ;;
-   mips-tx39-*|mipstx39-unknown-*)
-       libgcj_flags="${libgcj_flags} -G 0"
-Index: libjava/configure.ac
-===================================================================
---- libjava/configure.ac       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/configure.ac       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -846,6 +846,9 @@
-         SYSTEMSPEC="-lunicows $SYSTEMSPEC"
-       fi
-     ;;
-+    *-*-darwin[[912]]*)
-+      SYSTEMSPEC="-allow_stack_execute"
-+    ;;
-     *)
-       SYSTEMSPEC=
-     ;;
-@@ -876,9 +879,6 @@
-     # on Darwin -single_module speeds up loading of the dynamic libraries.
-     extra_ldflags_libjava=-Wl,-single_module
-     ;;
--*-*-darwin[[912]]*)
--    extra_gij_ldflags=-Wl,-allow_stack_execute
--    ;;
- arm*linux*eabi)
-     # Some of the ARM unwinder code is actually in libstdc++.  We
-     # could in principle replicate it in libgcj, but it's better to
-@@ -889,7 +889,6 @@
-     ;;
- esac
- AC_SUBST(extra_ldflags_libjava)
--AC_SUBST(extra_gij_ldflags)
- AC_SUBST(extra_ldflags)
- AC_SUBST(LIBSTDCXXSPEC)
-Index: libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java
-===================================================================
---- libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* NamingServicePersistent.java -- The persistent naming service.
--   Copyright (C) 2006, 2008, 2009 Free Software Foundation, Inc.
-+   Copyright (C) 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
- This file is part of GNU Classpath.
-@@ -179,7 +179,7 @@
-         System.out.println("GNU Classpath persistent naming service "
-                            + "started at " + iorr.Internet.host + ":"
-                            + iorr.Internet.port + " key 'NameService'.\n\n"
--                           + "Copyright (C) 2009 Free Software Foundation\n"
-+                           + "Copyright (C) 2010 Free Software Foundation\n"
-                            + "This tool comes with ABSOLUTELY NO WARRANTY. "
-                            + "This is free software, and you are\nwelcome to "
-                            + "redistribute it under conditions, defined in "
-Index: libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
-===================================================================
---- libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -216,11 +216,14 @@
-     manifest = createManifest(parameters);
-     /* If no version is specified, provide the same manifest version default
-      * as Sun's jar tool */
--    Attributes attr = manifest.getMainAttributes();
--    if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
--      attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
--    attr.putValue("Created-By", System.getProperty("java.version") +
-+    if (parameters.wantManifest)
-+      {
-+        Attributes attr = manifest.getMainAttributes();
-+        if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
-+            attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
-+        attr.putValue("Created-By", System.getProperty("java.version") +
-                 " (" + System.getProperty("java.vendor") + ")");
-+      }
-     outputStream = new JarOutputStream(os, manifest);
-     // FIXME: this sets the method too late for the manifest file.
-     outputStream.setMethod(parameters.storageMode);
-Index: libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
+--- libstdc++-v3/include/backward/strstream    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/strstream    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,7 @@
+ // Backward-compat support -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2004, 2005, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2004, 2005, 2009, 2010
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -40,8 +41,8 @@
+ // MAY BE REMOVED in a future standard revision.  One should use the
+ // header <sstream> instead.
+-#ifndef _GLIBCXX_STRSTREAM
+-#define _GLIBCXX_STRSTREAM
++#ifndef _BACKWARD_STRSTREAM
++#define _BACKWARD_STRSTREAM
+ #include "backward_warning.h"
+ #include <iosfwd>
+Index: libstdc++-v3/include/backward/binders.h
 ===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
+--- libstdc++-v3/include/backward/binders.h    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/binders.h    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -54,8 +54,8 @@
+  *  You should not attempt to use it directly.
+  */
+-#ifndef _GLIBCXX_BINDERS_H
+-#define _GLIBCXX_BINDERS_H 1
++#ifndef _BACKWARD_BINDERS_H
++#define _BACKWARD_BINDERS_H 1
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+@@ -165,4 +165,4 @@
+ _GLIBCXX_END_NAMESPACE
+-#endif /* _GLIBCXX_BINDERS_H */
++#endif /* _BACKWARD_BINDERS_H */
+Index: libstdc++-v3/include/backward/hash_set
 ===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/ChangeLog
+--- libstdc++-v3/include/backward/hash_set     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/include/backward/hash_set     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,7 @@
+ // Hashing set implementation -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2004, 2005, 2006, 2009, 2010
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -53,8 +54,8 @@
+  *  containing extensions from the HP/SGI STL subset).
+  */
+-#ifndef _HASH_SET
+-#define _HASH_SET 1
++#ifndef _BACKWARD_HASH_SET
++#define _BACKWARD_HASH_SET 1
+ #include "backward_warning.h"
+ #include <bits/c++config.h>
+Index: libstdc++-v3/ChangeLog
 ===================================================================
---- libjava/classpath/ChangeLog        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/classpath/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,14 @@
-+2010-01-21  Release Manager
+--- libstdc++-v3/ChangeLog     (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,36 @@
++2010-03-22  Johannes Singler  <singler@kit.edu>
++
++        * include/parallel/numeric (inner_product, partial_sum):
++        Precede subsequent call with _GLIBCXX_STD_P:: to avoid ambiguity 
++        between __gnu_parallel:: and std::
++        * include/parallel/algobase.h (equal): Likewise.
++        * include/parallel/algo.h (find_first_of, search_n, merge, nth_element,
++        partial_sort, max_element, min_element): Likewise.
++        * include/parallel/partial_sum.h (parallel_partial_sum_linear):
++        Qualify accumulate call with __gnu_parallel::.
++
++2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
++
++      * include/backward/hash_map: Use consistently the _BACKWARD_*
++      prefix for the include guard.
++      * include/backward/hash_fun.h: Likewise.
++      * include/backward/hashtable.h: Likewise.
++      * include/backward/auto_ptr.h: Likewise.
++      * include/backward/strstream: Likewise.
++      * include/backward/binders.h: Likewise.
++      * include/backward/hash_set: Likewise.
 +
-+      * GCC 4.4.3 released.
++2010-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
-+2009-10-22  Richard Guenther  <rguenther@suse.de>
++      Backport:
++      2010-01-20  Janis Johnson  <janis187@us.ibm.com>
++                  Paolo Carlini  <paolo.carlini@oracle.com>
 +
-+      PR cp-tools/39177
-+      * tools/gnu/classpath/tools/jar/Creator.java (writeCommandLineEntries):
-+      Do not use uninitialized manifest.
-+      * tools/classes/gnu/classpath/tools/jar/Creator.class: Re-generated.
++      PR libstdc++/21769
++      * testsuite/lib/dg-options.exp (add_options_for_no_pch): Add.
++      * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
++      Use it.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
  
-       * GCC 4.4.2 released.
-Index: libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java
+       * GCC 4.4.3 released.
+Index: libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
 ===================================================================
---- libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,5 +1,5 @@
- /* RegistryImpl.java --
--   Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005, 2008, 2009
-+   Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005, 2008, 2009, 2010
-    Free Software Foundation, Inc.
+--- libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ // 2001-04-06 gdr
  
- This file is part of GNU Classpath.
-@@ -111,7 +111,7 @@
-                          + System.getProperty("java.vm.name")
-                          + ") "
-                          + System.getProperty("java.vm.version"));
--      System.out.println("Copyright 2009 Free Software Foundation, Inc.");
-+      System.out.println("Copyright 2010 Free Software Foundation, Inc.");
-       System.out.println("This is free software; see the source for copying conditions.  There is NO");
-       System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
-       System.exit(0);
-Index: libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class
-===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/lib/gnu/gcj/convert/Convert.class
-===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class
-===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class
-===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class
-===================================================================
-Nie można wyświetlić: plik binarny.
-svn:mime-type = application/octet-stream
-Index: libjava/classpath/ChangeLog.gcj
-===================================================================
---- libjava/classpath/ChangeLog.gcj    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/classpath/ChangeLog.gcj    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,9 @@
-+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * gnu/java/rmi/registry/RegistryImpl.java (version): Update
-+      copyright notice dates.
-+      * tools/gnu/classpath/tools/orbd/Main.java (run): Likewise.
-+
- 2009-06-16  Matthias Klose  <doko@ubuntu.com>
-       * tools/gnu/classpath/tools/gjdoc/Main.java (getGjdocVersion): Use
-Index: libjava/include/Makefile.in
-===================================================================
---- libjava/include/Makefile.in        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/include/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -333,7 +333,6 @@
- datadir = @datadir@
- dbexecdir = @dbexecdir@
- exec_prefix = @exec_prefix@
--extra_gij_ldflags = @extra_gij_ldflags@
- extra_ldflags = @extra_ldflags@
- extra_ldflags_libjava = @extra_ldflags_libjava@
- gcc_suffix = @gcc_suffix@
-Index: libjava/include/posix-threads.h
-===================================================================
---- libjava/include/posix-threads.h    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/include/posix-threads.h    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -375,13 +375,6 @@
- };
- inline void
--ParkHelper::init ()
--{
--  pthread_mutex_init (&mutex, NULL);
--  pthread_cond_init (&cond, NULL);
--}
--
--inline void
- ParkHelper::destroy ()
- {
-   pthread_mutex_destroy (&mutex);
-Index: libjava/ChangeLog
+-// Copyright (C) 2001, 2005, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2005, 2009, 2010 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -17,8 +17,9 @@
+ // with this library; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
++// { dg-do compile }
++// { dg-add-options no_pch }
+-// { dg-do compile }
+ // { dg-xfail-if "" { { *-*-linux* *-*-darwin[3-7]* } || { uclibc || newlib } } { "*" } { "" } }
+ // { dg-excess-errors "" { target { { *-*-linux* *-*-darwin[3-7]* } || { uclibc || newlib } } } }
+Index: libstdc++-v3/testsuite/lib/dg-options.exp
 ===================================================================
---- libjava/ChangeLog  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,46 @@
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2010-01-19  Matthias Klose  <doko@ubuntu.com>
-+
-+      * Regenerate .class files.
-+
-+2010-01-12  Matthias Klose  <doko@ubuntu.com>
-+
-+      PR libjava/40859, backported from:
-+
-+      2009-08-12  Andrew Haley  <aph@redhat.com>
-+      * configure.host (arm*-linux*): Add -Wno-abi to cxxflags.
-+      (testsuite/libjava.jvmti/jvmti-interp.exp): Likewise.
-+      (testsuite/libjava.jvmti/jvmti.exp): Likewise.
-+      (testsuite/libjava.jni/jni.exp): Likewise.
-+
-+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * gnu/gcj/convert/Convert.java (version): Update copyright notice
-+      dates.
-+      * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.
+--- libstdc++-v3/testsuite/lib/dg-options.exp  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libstdc++-v3/testsuite/lib/dg-options.exp  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ # Handlers for additional dg-xxx keywords in tests.
+-# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
++# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ # Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -142,3 +142,8 @@
+     }
+     return
+ }
 +
-+2009-12-09  Bryce McKinlay  <bmckinlay@gmail.com>
++proc add_options_for_no_pch { flags } {
++    # This forces any generated and possibly included PCH to be invalid.
++    return "-D__GLIBCXX__=99999999"
++}
+Index: libgfortran/ChangeLog
+===================================================================
+--- libgfortran/ChangeLog      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgfortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,50 @@
++2010-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++
++      PR libfortran/43517
++      * io/read.c (read_x): Return if seen EOR condition.
++
++2010-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++
++      PR libfortran/43265
++      * io/io.h: Delete prototype for read_sf, making it static.
++      * io/read.c (read_x): Modify to call hit_eof if PAD="no".
++      * io/transfer.c (read_sf_internal): New static function extracted from
++      read_sf for use on internal units only. Handle empty string case.
++      (read_sf): New factoring of this function, make it static.  Add special
++      conditions for EOF based on ADVANCE="no", PAD="no", and whether any
++      bytes have been previously read from the record.
++      (read_block_form): Modify to call read_sf or read_sf_internal.
++      (next_record_r): Add a done flag similar to next_record_w. Call hit_eof
++      if internal array unit next record returns finished, meaning an EOF was
++      found and not done, ie not the last record expected.  For external
++      units call hit_eof if item_count is 1 or there are no pending spaces.
++      (next_record): Update call to next_record_r.
++
++2010-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++
++      PR libfortran/43265
++      Backport from trunk.
++      * io/read.c (read_x): Replace the use of read_sf with equivalent lower
++      level I/O, eliminating unneeded code and handling EOF and EOR
++      conditions.
++      * io/io.h: Revise prototype for read_sf.
++      * io/transfer.c (read_sf): Delete no_error parameter and all uses of it.
++      Set eof and eor condition flags. (read_block_form): Likewise.
++      (next_record_r): Add condition to call to hit_eof.
++      
++2010-03-11  Tobias Burnus  <burnus@net-b.de>
 +
-+      PR java/41991
-+      * configure.ac (SYSTEMSPEC): Pass -allow_stack_execute to Darwin
-+      linker.
-+      * Makefile.am (gij_LDFLAGS): Remove extra_gij_ldflags.
-+      * configure: Regenerate.
-+      * Makefile.in: Regenerate.
++      PR fortran/43228
++      * io/list_read.c (nml_parse_qualifier): Disable expanded_read
++      for array sections.
 +
-+2009-11-17  Andrew Haley  <aph@redhat.com>
++2010-02-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
-+      * posix-threads.cc (park): Rewrite code to handle time.
-+      Move mutex lock before the call to compare_and_swap to avoid a
-+      race condition.
-+      Add some assertions.
-+      (unpark): Add an assertion.
-+      (init): Move here from posix-threads.h.
-+      * include/posix-threads.h (destroy): removed.
++      PR libfortran/42901
++      * io/list_read.c (nml_get_obj_data): Add new qualifier flag, clean up
++      code, and adjust logic to set namelist info pointer correctly for array
++      qualifiers of derived type components.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
  
-       * GCC 4.4.2 released.
-Index: libjava/testsuite/libjava.jvmti/jvmti-interp.exp
+       * GCC 4.4.3 released.
+Index: libgfortran/io/list_read.c
 ===================================================================
---- libjava/testsuite/libjava.jvmti/jvmti-interp.exp   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/testsuite/libjava.jvmti/jvmti-interp.exp   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -29,7 +29,12 @@
-       set so_extension "so"
-       set so_flag "-shared"
-   }
--    
-+
-+  # ARM C++ emits an ABI warning for varargs.
-+  if { [istarget "arm*"] } {
-+      lappend options "additional_flags=-Wno-abi"
-+  }
+--- libgfortran/io/list_read.c (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgfortran/io/list_read.c (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -287,10 +287,10 @@
+ eat_line (st_parameter_dt *dtp)
+ {
+   char c;
+-  if (!is_internal_unit (dtp))
+-    do
+-      c = next_char (dtp);
+-    while (c != '\n');
 +
-   set filename [file tail $file]
-   set name [file rootname $filename]
-   set soname lib${name}.${so_extension}
-Index: libjava/testsuite/libjava.jvmti/jvmti.exp
-===================================================================
---- libjava/testsuite/libjava.jvmti/jvmti.exp  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/testsuite/libjava.jvmti/jvmti.exp  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -16,6 +16,10 @@
-   lappend options "additional_flags=-I$srcdir/.."
-   # Find jvmti.h, jvmti_md.h, jvmti-int.h, jvm.h requirements
-   lappend options "additional_flags=-I$srcdir/../include -I$srcdir/../classpath/include -I$objdir/../include -I$objdir/../../boehm-gc/include "
-+  # ARM C++ emits an ABI warning for varargs.
-+  if { [istarget "arm*"] } {
-+      lappend options "additional_flags=-Wno-abi"
-+  }
++  do
++    c = next_char (dtp);
++  while (c != '\n');
+ }
  
-   set x [libjava_prune_warnings \
-          [target_compile $file $oname object $options]]
-Index: libjava/testsuite/Makefile.in
-===================================================================
---- libjava/testsuite/Makefile.in      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/testsuite/Makefile.in      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -322,7 +322,6 @@
- datadir = @datadir@
- dbexecdir = @dbexecdir@
- exec_prefix = @exec_prefix@
--extra_gij_ldflags = @extra_gij_ldflags@
- extra_ldflags = @extra_ldflags@
- extra_ldflags_libjava = @extra_ldflags_libjava@
- gcc_suffix = @gcc_suffix@
-Index: libjava/testsuite/libjava.jni/jni.exp
-===================================================================
---- libjava/testsuite/libjava.jni/jni.exp      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/testsuite/libjava.jni/jni.exp      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -160,6 +160,11 @@
-       lappend cxxflaglist "-lstdc++"
-     }
  
-+    # ARM C++ emits an ABI warning for varargs.
-+    if { [istarget "arm*"] } {
-+      lappend cxxflaglist "-Wno-abi"
-+    }
-+    
-     set cxxflags [join $cxxflaglist]
-   }
+@@ -2092,6 +2092,14 @@
+           }
+       }
  
-Index: libjava/posix-threads.cc
-===================================================================
---- libjava/posix-threads.cc   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/posix-threads.cc   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -359,15 +359,16 @@
-   if (compare_and_swap 
-       (ptr, Thread::THREAD_PARK_RUNNING, Thread::THREAD_PARK_PERMIT))
-     return;
--  
-+
-   /* If this thread is parked, put it into state RUNNING and send it a
-      signal.  */
--  if (compare_and_swap 
-+  if (compare_and_swap
-       (ptr, Thread::THREAD_PARK_PARKED, Thread::THREAD_PARK_RUNNING))
-     {
-       pthread_mutex_lock (&mutex);
--      pthread_cond_signal (&cond);
-+      int result = pthread_cond_signal (&cond);
-       pthread_mutex_unlock (&mutex);
-+      JvAssert (result == 0);
-     }
- }
++      if (is_array_section == 1 && dtp->u.p.expanded_read == 1)
++      {
++        int i;
++        dtp->u.p.expanded_read = 0;
++        for (i = 0; i < dim; i++)
++          ls[i].end = ls[i].start;
++              }
++
+       /* Check the values of the triplet indices.  */
+       if ((ls[dim].start > (ssize_t)ad[dim].ubound)
+         || (ls[dim].start < (ssize_t)ad[dim].lbound)
+@@ -2563,7 +2571,7 @@
+   namelist_info * first_nl = NULL;
+   namelist_info * root_nl = NULL;
+   int dim, parsed_rank;
+-  int component_flag;
++  int component_flag, qualifier_flag;
+   index_type clow, chigh;
+   int non_zero_rank_count;
  
-@@ -380,6 +381,14 @@
-   permit = ::java::lang::Thread::THREAD_PARK_DEAD;
- }
+@@ -2612,11 +2620,12 @@
+       break;
    }
  
-+void
-+ParkHelper::init ()
-+{
-+  pthread_mutex_init (&mutex, NULL);
-+  pthread_cond_init (&cond, NULL);
-+  permit = ::java::lang::Thread::THREAD_PARK_RUNNING;
-+}
-+
- /**
-  * Blocks the thread until a matching _Jv_ThreadUnpark() occurs, the
-  * thread is interrupted or the optional timeout expires.  If an
-@@ -407,32 +416,44 @@
-     return;
+-  /* Untouch all nodes of the namelist and reset the flag that is set for
++  /* Untouch all nodes of the namelist and reset the flags that are set for
+      derived type components.  */
  
-   struct timespec ts;
--  jlong millis = 0, nanos = 0;
+   nml_untouch_nodes (dtp);
+   component_flag = 0;
++  qualifier_flag = 0;
+   non_zero_rank_count = 0;
  
-   if (time)
-     {
-+      unsigned long long seconds;
-+      unsigned long usec;
-+
-       if (isAbsolute)
-       {
--        millis = time;
--        nanos = 0;
-+        ts.tv_sec = time / 1000;
-+        ts.tv_nsec = (time % 1000) * 1000 * 1000;
+   /* Get the object name - should '!' and '\n' be permitted separators?  */
+@@ -2698,10 +2707,11 @@
+                   " for namelist variable %s", nl->var_name);
+         goto nml_err_ret;
        }
-       else
-       {
--        millis = java::lang::System::currentTimeMillis();
--        nanos = time;
--      }
 -
--      if (millis > 0 || nanos > 0)
--      {
-         // Calculate the abstime corresponding to the timeout.
--        // Everything is in milliseconds.
--        //
--        // We use `unsigned long long' rather than jlong because our
--        // caller may pass up to Long.MAX_VALUE millis.  This would
--        // overflow the range of a timespec.
-+        jlong nanos = time;
-+        jlong millis = 0;
--        unsigned long long m = (unsigned long long)millis;
--        unsigned long long seconds = m / 1000; 
-+        // For better accuracy, should use pthread_condattr_setclock
-+        // and clock_gettime.
-+#ifdef HAVE_GETTIMEOFDAY
-+        timeval tv;
-+        gettimeofday (&tv, NULL);
-+        usec = tv.tv_usec;
-+        seconds = tv.tv_sec;
-+#else
-+        unsigned long long startTime
-+          = java::lang::System::currentTimeMillis();
-+        seconds = startTime / 1000;
-+        /* Assume we're about half-way through this millisecond.  */
-+        usec = (startTime % 1000) * 1000 + 500;
-+#endif
-+        /* These next two statements cannot overflow.  */
-+        usec += nanos / 1000;
-+        usec += (millis % 1000) * 1000;
-+        /* These two statements could overflow only if tv.tv_sec was
-+           insanely large.  */
-+        seconds += millis / 1000;
-+        seconds += usec / 1000000;
-         ts.tv_sec = seconds;
-         if (ts.tv_sec < 0 || (unsigned long long)ts.tv_sec != seconds)
-@@ -442,29 +463,30 @@
-             millis = nanos = 0;
-           }
-         else
--          {
--            m %= 1000;
--            ts.tv_nsec = m * 1000000 + (unsigned long long)nanos;
--          }
-+          /* This next statement also cannot overflow.  */
-+          ts.tv_nsec = (usec % 1000000) * 1000 + (nanos % 1000);
-       }
-     }
--      
+       if (parsed_rank > 0)
+       non_zero_rank_count++;
++      qualifier_flag = 1;
 +
-+  pthread_mutex_lock (&mutex);
-   if (compare_and_swap 
-       (ptr, Thread::THREAD_PARK_RUNNING, Thread::THREAD_PARK_PARKED))
-     {
--      pthread_mutex_lock (&mutex);
--      if (millis == 0 && nanos == 0)
--      pthread_cond_wait (&cond, &mutex);
-+      int result = 0;
+       c = next_char (dtp);
+       unget_char (dtp, c);
+     }
+@@ -2726,6 +2736,7 @@
+       root_nl = nl;
+       component_flag = 1;
 +
-+      if (! time)
-+      result = pthread_cond_wait (&cond, &mutex);
-       else
--      pthread_cond_timedwait (&cond, &mutex, &ts);
--      pthread_mutex_unlock (&mutex);
--      
-+      result = pthread_cond_timedwait (&cond, &mutex, &ts);
-+
-+      JvAssert (result == 0 || result == ETIMEDOUT);
-+
-       /* If we were unparked by some other thread, this will already
--       be in state THREAD_PARK_RUNNING.  If we timed out, we have to
--       do it ourself.  */
--      compare_and_swap 
--      (ptr, Thread::THREAD_PARK_PARKED, Thread::THREAD_PARK_RUNNING);
-+       be in state THREAD_PARK_RUNNING.  If we timed out or were
-+       interrupted, we have to do it ourself.  */
-+      permit = Thread::THREAD_PARK_RUNNING;
+       c = next_char (dtp);
+       goto get_name;
+     }
+@@ -2766,15 +2777,6 @@
+       unget_char (dtp, c);
      }
-+  pthread_mutex_unlock (&mutex);
- }
  
- static void
-Index: libjava/configure
-===================================================================
---- libjava/configure  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/configure  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -459,7 +459,7 @@
- #endif"
- ac_subdirs_all="$ac_subdirs_all classpath libltdl"
--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 build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs ANTLR_JAR CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS 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 DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE INSTALL_BINARIES_TRUE INSTALL_BINARIES_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR 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 build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs ANTLR_JAR CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS 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 DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE INSTALL_BINARIES_TRUE INSTALL_BINARIES_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR LIBOBJS LTLIBOBJS'
- ac_subst_files=''
- ac_pwd=`pwd`
-@@ -19154,6 +19154,9 @@
-         SYSTEMSPEC="-lunicows $SYSTEMSPEC"
-       fi
-     ;;
-+    *-*-darwin[912]*)
-+      SYSTEMSPEC="-allow_stack_execute"
-+    ;;
-     *)
-       SYSTEMSPEC=
-     ;;
-@@ -20654,9 +20657,6 @@
-     # on Darwin -single_module speeds up loading of the dynamic libraries.
-     extra_ldflags_libjava=-Wl,-single_module
-     ;;
--*-*-darwin[912]*)
--    extra_gij_ldflags=-Wl,-allow_stack_execute
--    ;;
- arm*linux*eabi)
-     # Some of the ARM unwinder code is actually in libstdc++.  We
-     # could in principle replicate it in libgcj, but it's better to
-@@ -20672,7 +20672,6 @@
+-  /* If a derived type touch its components and restore the root
+-     namelist_info if we have parsed a qualified derived type
+-     component.  */
+-
+-  if (nl->type == GFC_DTYPE_DERIVED)
+-    nml_touch_nodes (nl);
+-  if (component_flag && nl->var_rank > 0 && nl->next)
+-    nl = first_nl;
+-
+   /* Make sure no extraneous qualifiers are there.  */
  
+   if (c == '(')
+@@ -2819,10 +2821,24 @@
+               nl->var_name);
+       goto nml_err_ret;
+     }
++  /* If a derived type, touch its components and restore the root
++     namelist_info if we have parsed a qualified derived type
++     component.  */
  
+-  if (first_nl != NULL && first_nl->var_rank > 0)
+-    nl = first_nl;
+-  
++  if (nl->type == GFC_DTYPE_DERIVED)
++    nml_touch_nodes (nl);
++
++  if (first_nl)
++    {
++      if (first_nl->var_rank == 0)
++      {
++        if (component_flag && qualifier_flag)
++          nl = first_nl;
++      }
++      else
++      nl = first_nl;
++    }
++
+   if (nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
+                   clow, chigh) == FAILURE)
+     goto nml_err_ret;
+Index: libgfortran/io/read.c
+===================================================================
+--- libgfortran/io/read.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgfortran/io/read.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1019,16 +1019,84 @@
+  * and never look at it. */
  
--
- # Allow the GC to be disabled.  Can be useful when debugging.
- echo "$as_me:$LINENO: checking for garbage collector to use" >&5
- echo $ECHO_N "checking for garbage collector to use... $ECHO_C" >&6
-@@ -29838,7 +29837,6 @@
- s,@X_LIBS@,$X_LIBS,;t t
- s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
- s,@extra_ldflags_libjava@,$extra_ldflags_libjava,;t t
--s,@extra_gij_ldflags@,$extra_gij_ldflags,;t t
- s,@extra_ldflags@,$extra_ldflags,;t t
- s,@LIBSTDCXXSPEC@,$LIBSTDCXXSPEC,;t t
- s,@LIBGCJTESTSPEC@,$LIBGCJTESTSPEC,;t t
-Index: libjava/gnu/gcj/convert/Convert.java
-===================================================================
---- libjava/gnu/gcj/convert/Convert.java       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/gnu/gcj/convert/Convert.java       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1999, 2002, 2005, 2006, 2007, 2008, 2009
-+/* Copyright (C) 1999, 2002, 2005, 2006, 2007, 2008, 2009, 2010
-    Free Software Foundation
-    This file is part of libgcj.
-@@ -46,7 +46,7 @@
-                      + ") "
-                      + System.getProperty("java.vm.version"));
-     System.out.println();
--    System.out.println("Copyright (C) 2009 Free Software Foundation, Inc.");
-+    System.out.println("Copyright (C) 2010 Free Software Foundation, Inc.");
-     System.out.println("This is free software; see the source for copying conditions.  There is NO");
-     System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
-     System.exit(0);
-Index: libjava/gnu/gcj/tools/gcj_dbtool/Main.java
-===================================================================
---- libjava/gnu/gcj/tools/gcj_dbtool/Main.java (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/gnu/gcj/tools/gcj_dbtool/Main.java (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,4 +1,5 @@
--/* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation
-+/* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
-+   Free Software Foundation
-    This file is part of libgcj.
-@@ -46,7 +47,7 @@
-                          + ") "
-                          + System.getProperty("java.vm.version"));
-       System.out.println();
--      System.out.println("Copyright 2009 Free Software Foundation, Inc.");
-+      System.out.println("Copyright 2010 Free Software Foundation, Inc.");
-       System.out.println("This is free software; see the source for copying conditions.  There is NO");
-       System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
-       return;
-Index: libjava/gcj/Makefile.in
-===================================================================
---- libjava/gcj/Makefile.in    (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/gcj/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -334,7 +334,6 @@
- datadir = @datadir@
- dbexecdir = @dbexecdir@
- exec_prefix = @exec_prefix@
--extra_gij_ldflags = @extra_gij_ldflags@
- extra_ldflags = @extra_ldflags@
- extra_ldflags_libjava = @extra_ldflags_libjava@
- gcc_suffix = @gcc_suffix@
-Index: libjava/Makefile.am
-===================================================================
---- libjava/Makefile.am        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libjava/Makefile.am        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -865,8 +865,7 @@
- ## need this because we are explicitly using libtool to link using the
- ## `.la' file.
- gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
--      -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \
--      $(extra_gij_ldflags) 
-+      -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
- gij_LINK = $(GCJLINK)
- ## See jv_convert_LDADD.
- gij_LDADD = -L$(here)/.libs libgij.la
-Index: libcpp/directives.c
-===================================================================
---- libcpp/directives.c        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/directives.c        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -125,6 +125,8 @@
- static cpp_hashnode *parse_assertion (cpp_reader *, struct answer **, int);
- static struct answer ** find_answer (cpp_hashnode *, const struct answer *);
- static void handle_assertion (cpp_reader *, const char *, int);
-+static void do_pragma_push_macro (cpp_reader *);
-+static void do_pragma_pop_macro (cpp_reader *);
- /* This is the table of directive handlers.  It is ordered by
-    frequency of occurrence; the numbers at the end are directive
-@@ -1226,6 +1228,8 @@
+ void
+-read_x (st_parameter_dt * dtp, int n)
++read_x (st_parameter_dt *dtp, int n)
  {
-   /* Pragmas in the global namespace.  */
-   register_pragma_internal (pfile, 0, "once", do_pragma_once);
-+  register_pragma_internal (pfile, 0, "push_macro", do_pragma_push_macro);
-+  register_pragma_internal (pfile, 0, "pop_macro", do_pragma_pop_macro);
-   /* New GCC-specific pragmas should be put in the GCC namespace.  */
-   register_pragma_internal (pfile, "GCC", "poison", do_pragma_poison);
-@@ -1405,6 +1409,96 @@
-   _cpp_mark_file_once_only (pfile, pfile->buffer->file);
- }
++  int length;
++  char *p, q;
++
+   if ((dtp->u.p.current_unit->pad_status == PAD_NO || is_internal_unit (dtp))
+        && dtp->u.p.current_unit->bytes_left < n)
+     n = dtp->u.p.current_unit->bytes_left;
++    
++  if (n == 0)
++    return;
  
-+/* Handle #pragma push_macro(STRING).  */
-+static void
-+do_pragma_push_macro (cpp_reader *pfile)
-+{
-+  char *macroname, *dest;
-+  const char *limit, *src;
-+  const cpp_token *txt;
-+  struct def_pragma_macro *c;
+-  dtp->u.p.sf_read_comma = 0;
+-  if (n > 0)
+-    read_sf (dtp, &n, 1);
+-  dtp->u.p.sf_read_comma = 1;
++  length = n;
 +
-+  txt = get__Pragma_string (pfile);
-+  if (!txt)
-+    {
-+      source_location src_loc = pfile->cur_token[-1].src_loc;
-+      cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
-+               "invalid #pragma push_macro directive");
-+      check_eol (pfile);
-+      skip_rest_of_line (pfile);
-+      return;
-+    }
-+  dest = macroname = (char *) alloca (txt->val.str.len + 2);
-+  src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L'));
-+  limit = (const char *) (txt->val.str.text + txt->val.str.len - 1);
-+  while (src < limit)
++  if (is_internal_unit (dtp))
 +    {
-+      /* We know there is a character following the backslash.  */
-+      if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
-+      src++;
-+      *dest++ = *src++;
++      p = mem_alloc_r (dtp->u.p.current_unit->s, &length);
++      if (unlikely (length < n))
++      n = length;
++      goto done;
 +    }
-+  *dest = 0;
-+  check_eol (pfile);
-+  skip_rest_of_line (pfile);
-+  c = XNEW (struct def_pragma_macro);
-+  c->name = XNEWVAR (char, strlen (macroname) + 1);
-+  strcpy (c->name, macroname);
-+  c->next = pfile->pushed_macros;
-+  c->value = cpp_push_definition (pfile, c->name);
-+  pfile->pushed_macros = c;
-+}
 +
-+/* Handle #pragma pop_macro(STRING).  */
-+static void
-+do_pragma_pop_macro (cpp_reader *pfile)
-+{
-+  char *macroname, *dest;
-+  const char *limit, *src;
-+  const cpp_token *txt;
-+  struct def_pragma_macro *l = NULL, *c = pfile->pushed_macros;
-+  txt = get__Pragma_string (pfile);
-+  if (!txt)
++  if (dtp->u.p.sf_seen_eor)
++    return;
++
++  p = fbuf_read (dtp->u.p.current_unit, &length);
++  if (p == NULL)
 +    {
-+      source_location src_loc = pfile->cur_token[-1].src_loc;
-+      cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
-+               "invalid #pragma pop_macro directive");
-+      check_eol (pfile);
-+      skip_rest_of_line (pfile);
++      hit_eof (dtp);
 +      return;
 +    }
-+  dest = macroname = (char *) alloca (txt->val.str.len + 2);
-+  src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L'));
-+  limit = (const char *) (txt->val.str.text + txt->val.str.len - 1);
-+  while (src < limit)
++  
++  if (length == 0 && dtp->u.p.item_count == 1)
 +    {
-+      /* We know there is a character following the backslash.  */
-+      if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
-+      src++;
-+      *dest++ = *src++;
++      if (dtp->u.p.current_unit->pad_status == PAD_NO)
++      {
++        hit_eof (dtp);
++        return;
++      }
++      else
++      return;
 +    }
-+  *dest = 0;
-+  check_eol (pfile);
-+  skip_rest_of_line (pfile);
 +
-+  while (c != NULL)
++  n = 0;
++  while (n < length)
 +    {
-+      if (!strcmp (c->name, macroname))
++      q = *p;
++      if (q == '\n' || q == '\r')
 +      {
-+        if (!l)
-+          pfile->pushed_macros = c->next;
-+        else
-+          l->next = c->next;
-+        cpp_pop_definition (pfile, c->name, c->value);
-+        free (c->name);
-+        free (c);
-+        break;
++        /* Unexpected end of line. Set the position.  */
++        fbuf_seek (dtp->u.p.current_unit, n + 1 ,SEEK_CUR);
++        dtp->u.p.sf_seen_eor = 1;
++
++        /* If we encounter a CR, it might be a CRLF.  */
++        if (q == '\r') /* Probably a CRLF */
++          {
++            /* See if there is an LF. Use fbuf_read rather then fbuf_getc so
++               the position is not advanced unless it really is an LF.  */
++            int readlen = 1;
++            p = fbuf_read (dtp->u.p.current_unit, &readlen);
++            if (*p == '\n' && readlen == 1)
++              {
++                dtp->u.p.sf_seen_eor = 2;
++                fbuf_seek (dtp->u.p.current_unit, 1 ,SEEK_CUR);
++              }
++          }
++        goto done;
 +      }
-+      l = c;
-+      c = c->next;
-+    }
-+}
++      n++;
++      p++;
++    } 
 +
- /* Handle #pragma GCC poison, to poison one or more identifiers so
-    that the lexer produces a hard error for each subsequent usage.  */
- static void
-@@ -2200,28 +2294,11 @@
-   run_directive (pfile, T_UNDEF, buf, len);
++  fbuf_seek (dtp->u.p.current_unit, n, SEEK_CUR);
++  
++ done:
++  if ((dtp->common.flags & IOPARM_DT_HAS_SIZE) != 0)
++    dtp->u.p.size_used += (GFC_IO_INT) n;
++  dtp->u.p.current_unit->bytes_left -= n;
+   dtp->u.p.current_unit->strm_pos += (gfc_offset) n;
  }
  
--/* Like lex_macro_node, but read the input from STR.  */
--static cpp_hashnode *
--lex_macro_node_from_str (cpp_reader *pfile, const char *str)
--{
--  size_t len = strlen (str);
--  uchar *buf = (uchar *) alloca (len + 1);
--  cpp_hashnode *node;
--
--  memcpy (buf, str, len);
--  buf[len] = '\n';
--  cpp_push_buffer (pfile, buf, len, true);
--  node = lex_macro_node (pfile, true);
--  _cpp_pop_buffer (pfile);
--
--  return node;
--}
+Index: libgfortran/io/io.h
+===================================================================
+--- libgfortran/io/io.h        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgfortran/io/io.h        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -848,9 +848,6 @@
+ extern void * read_block_form (st_parameter_dt *, int *);
+ internal_proto(read_block_form);
+-extern char *read_sf (st_parameter_dt *, int *, int);
+-internal_proto(read_sf);
 -
- /* If STR is a defined macro, return its definition node, else return NULL.  */
- cpp_macro *
- cpp_push_definition (cpp_reader *pfile, const char *str)
- {
--  cpp_hashnode *node = lex_macro_node_from_str (pfile, str);
-+  cpp_hashnode *node = _cpp_lex_identifier (pfile, str);
-   if (node && node->type == NT_MACRO)
-     return node->value.macro;
-   else
-@@ -2233,7 +2310,7 @@
- void
- cpp_pop_definition (cpp_reader *pfile, const char *str, cpp_macro *dfn)
- {
--  cpp_hashnode *node = lex_macro_node_from_str (pfile, str);
-+  cpp_hashnode *node = _cpp_lex_identifier (pfile, str);
-   if (node == NULL)
-     return;
+ extern void *write_block (st_parameter_dt *, int);
+ internal_proto(write_block);
  
-Index: libcpp/init.c
+Index: libgfortran/io/transfer.c
 ===================================================================
---- libcpp/init.c      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/init.c      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,6 +1,6 @@
- /* CPP Library.
-    Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
--   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009
-+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010
-    Free Software Foundation, Inc.
-    Contributed by Per Bothner, 1994-95.
-    Based on CCCP program by Paul Rubin, June 1986
-@@ -216,6 +216,9 @@
-   pfile->a_buff = _cpp_get_buff (pfile, 0);
-   pfile->u_buff = _cpp_get_buff (pfile, 0);
+--- libgfortran/io/transfer.c  (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libgfortran/io/transfer.c  (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -162,9 +162,7 @@
+ }
  
-+  /* Initialize table for push_macro/pop_macro.  */
-+  pfile->pushed_macros = 0;
-+
-   /* The expression parser stack.  */
-   _cpp_expand_op_stack (pfile);
  
-@@ -245,6 +248,7 @@
- cpp_destroy (cpp_reader *pfile)
+-/* Mid level data transfer statements.  These subroutines do reading
+-   and writing in the style of salloc_r()/salloc_w() within the
+-   current record.  */
++/* Mid level data transfer statements.  */
+ /* When reading sequential formatted records we have a problem.  We
+    don't know how long the line is until we read the trailing newline,
+@@ -177,24 +175,56 @@
+    we hit the newline.  For small allocations, we use a static buffer.
+    For larger allocations, we are forced to allocate memory on the
+    heap.  Hopefully this won't happen very often.  */
++   
++/* Read sequential file - internal unit  */
+-char *
+-read_sf (st_parameter_dt *dtp, int * length, int no_error)
++static char *
++read_sf_internal (st_parameter_dt *dtp, int * length)
  {
-   cpp_context *context, *contextn;
-+  struct def_pragma_macro *pmacro;
-   tokenrun *run, *runn;
-   int i;
-@@ -296,6 +300,17 @@
-       free (pfile->comments.entries);
-     }
-+  if (pfile->pushed_macros)
-+    {
-+      do
-+      {
-+        pmacro = pfile->pushed_macros;
-+        pfile->pushed_macros = pmacro->next;
-+        free (pmacro->name);
-+        free (pmacro);
-+      }
-+      while (pfile->pushed_macros);
+   static char *empty_string[0];
+-  char *base, *p, q;
+-  int n, lorig, memread, seen_comma;
++  char *base;
++  int lorig;
+-  /* If we hit EOF previously with the no_error flag set (i.e. X, T,
+-     TR edit descriptors), and we now try to read again, this time
+-     without setting no_error.  */
+-  if (!no_error && dtp->u.p.at_eof)
++  if (dtp->internal_unit_len == 0
++      && dtp->u.p.current_unit->pad_status == PAD_NO)
++    hit_eof (dtp);
++
++  /* If we have seen an eor previously, return a length of 0.  The
++     caller is responsible for correctly padding the input field.  */
++  if (dtp->u.p.sf_seen_eor)
+     {
+       *length = 0;
++      /* Just return something that isn't a NULL pointer, otherwise the
++         caller thinks an error occured.  */
++      return (char*) empty_string;
 +    }
-   free (pfile);
- }
-@@ -555,9 +570,9 @@
-       pfile->state.in_directive = 0;
-       /* If it's a #line directive, handle it.  */
--      if (token1->type == CPP_NUMBER)
-+      if (token1->type == CPP_NUMBER
-+        && _cpp_handle_directive (pfile, token->flags & PREV_WHITE))
-       {
--        _cpp_handle_directive (pfile, token->flags & PREV_WHITE);
-         read_original_directory (pfile);
-         return;
-       }
-Index: libcpp/ChangeLog
-===================================================================
---- libcpp/ChangeLog   (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,36 @@
-+2010-02-11  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * init.c (read_original_filename): Don't call read_original_directory
-+      if _cpp_handle_directive returns 0.
 +
-+2010-01-21  Release Manager
-+
-+      * GCC 4.4.3 released.
-+
-+2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
-+
-+      Backported from trunk
-+      * directives.c (do_pragma_push_macro): New pragma handler.
-+      (do_pragma_pop_macro): Likewise.
-+      (_cpp_init_internal_pragmas): Add push_macro and
-+      pop_macro handler to internal pragmas.
-+      (lex_macro_node_from_str): Removed.
-+      (cpp_push_definition): Replace lex_macro_node_from_str
-+      by _cpp_lex_identifier.
-+      (cpp_pop_definition): Likewise.
-+      * internal.h (_cpp_lex_identifier): New prototype.
-+      (def_pragma_macro): New structure.
-+      (cpp_reader): New member pushed_macros.
-+      * lex.c (_cpp_lex_identifier): New function.
-+      (lex_identifier_intern): New function.
-+      * init.c (cpp_create_reader): Initialize pushed_macros
-+      member.
-+      (cpp_destroy): Free elements in pushed_macros member.
-+      * pch.c (_cpp_save_pushed_macros): New function.
-+      (_cpp_restore_pushed_macros): Likewise.
-+      (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
-+      (cpp_read_state): Use _cpp_restore_pushed_macros.
-+
- 2009-10-15  Release Manager
-       * GCC 4.4.2 released.
-Index: libcpp/pch.c
-===================================================================
---- libcpp/pch.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/pch.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -33,6 +33,8 @@
- static int collect_ht_nodes (cpp_reader *, cpp_hashnode *, void *);
- static int write_defs (cpp_reader *, cpp_hashnode *, void *);
- static int save_macros (cpp_reader *, cpp_hashnode *, void *);
-+static int _cpp_save_pushed_macros (cpp_reader *, FILE *);
-+static int _cpp_restore_pushed_macros (cpp_reader *, FILE *);
- /* This structure represents a macro definition on disk.  */
- struct macrodef_struct
-@@ -378,10 +380,141 @@
-       return -1;
-     }
-+  /* Write saved macros.  */
-+  if (! _cpp_save_pushed_macros (r, f))
++  lorig = *length;
++  base = mem_alloc_r (dtp->u.p.current_unit->s, length);
++  if (unlikely (lorig > *length))
 +    {
-+      cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
-+      return -1;
-+    }
-+
-   return 0;
- }
+       hit_eof (dtp);
+       return NULL;
+     }
  
-+static int
-+_cpp_restore_pushed_macros (cpp_reader *r, FILE *f)
-+{
-+  size_t count_saved = 0;
-+  size_t i;
-+  struct def_pragma_macro *p;
-+  size_t nlen;
-+  cpp_hashnode *h = NULL;
-+  cpp_macro *m;
-+  uchar *defn;
-+  size_t defnlen;
-+  if (fread (&count_saved, sizeof (count_saved), 1, f) != 1)
-+    return 0;
-+  if (! count_saved)
-+    return 1;
-+  for (i = 0; i < count_saved; i++)
-+    {
-+      if (fread (&nlen, sizeof (nlen), 1, f) != 1)
-+      return 0;
-+      p = XNEW (struct def_pragma_macro);
-+      p->name = XNEWVAR (char, nlen + 1);
-+      p->name[nlen] = 0;
-+      if (fread (p->name, nlen, 1, f) != 1)
-+      return 0;
-+      /* Save old state.  */
-+      m = cpp_push_definition (r, p->name);
-+      if (fread (&defnlen, sizeof (defnlen), 1, f) != 1)
-+      return 0;
-+      defn = XNEWVAR (uchar, defnlen + 2);
-+      defn[defnlen] = '\n';
-+      defn[defnlen + 1] = 0;
-+
-+      if (fread (defn, defnlen, 1, f) != 1)
-+      return 0;
-+      cpp_pop_definition (r, p->name, NULL);
-+      {
-+      size_t namelen;
-+      uchar *dn;
++  dtp->u.p.current_unit->bytes_left -= *length;
 +
-+      namelen = ustrcspn (defn, "( \n");
-+      h = cpp_lookup (r, defn, namelen);
-+      dn = defn + namelen;
++  if ((dtp->common.flags & IOPARM_DT_HAS_SIZE) != 0)
++    dtp->u.p.size_used += (GFC_IO_INT) *length;
 +
-+      h->type = NT_VOID;
-+      h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED);
-+      if (cpp_push_buffer (r, dn, ustrchr (dn, '\n') - dn, true)
-+          != NULL)
-+        {
-+          _cpp_clean_line (r);
-+          if (!_cpp_create_definition (r, h))
-+            abort ();
-+          _cpp_pop_buffer (r);
-+        }
-+      else
-+        abort ();
-+      }
-+      p->value = cpp_push_definition (r, p->name);
++  return base;
 +
-+      free (defn);
-+      p->next = r->pushed_macros;
-+      r->pushed_macros = p;
-+      /* Restore current state.  */
-+      cpp_pop_definition (r, p->name, m);
-+    }
-+  return 1;
 +}
 +
-+static int
-+_cpp_save_pushed_macros (cpp_reader *r, FILE *f)
-+{
-+  size_t count_saved = 0;
-+  size_t i;
-+  struct def_pragma_macro *p,**pp;
-+  cpp_hashnode *node;
-+  cpp_macro *m;
-+  size_t defnlen;
-+  const uchar *defn;
-+
-+  /* Get count. */
-+  p = r->pushed_macros;
-+  while (p != NULL)
-+    {
-+      count_saved++;
-+      p = p->next;
-+    }
-+  if (fwrite (&count_saved, sizeof (count_saved), 1, f) != 1)
-+    return 0;
-+  if (!count_saved)
-+    return 1;
-+
-+  pp = (struct def_pragma_macro **) alloca (sizeof (struct def_pragma_macro *)
-+                                          * count_saved);
-+  /* Store them in reverse order.  */
-+  p = r->pushed_macros;
-+  i = count_saved;
-+  while (p != NULL)
-+    {
-+      --i;
-+      pp[i] = p;
-+      p = p->next;
-+    }
-+  for (i = 0; i < count_saved; i++)
-+    {
-+      /* Save old state.  */
-+      m = cpp_push_definition (r, pp[i]->name);
-+      /* Set temporary macro name to saved state.  */
-+      cpp_pop_definition (r, pp[i]->name, pp[i]->value);
-+      node = _cpp_lex_identifier (r, pp[i]->name);
-+      defnlen = strlen (pp[i]->name);
-+      if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
-+        || fwrite (pp[i]->name, defnlen, 1, f) != 1)
-+      return 0;
-+      defn = cpp_macro_definition (r, node);
-+      defnlen = ustrlen (defn);
-+      if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
-+        || fwrite (defn, defnlen, 1, f) != 1)
-+      return 0;
-+      /* Restore current state.  */
-+      cpp_pop_definition (r, pp[i]->name, m);
-+    }
-+  return 1;
-+}
++/* Read sequential file - external unit */
 +
++static char *
++read_sf (st_parameter_dt *dtp, int * length)
++{
++  static char *empty_string[0];
++  char *base, *p, q;
++  int n, lorig, seen_comma;
 +
- /* Data structure to transform hash table nodes into a sorted list */
+   /* If we have seen an eor previously, return a length of 0.  The
+      caller is responsible for correctly padding the input field.  */
+   if (dtp->u.p.sf_seen_eor)
+@@ -205,19 +235,6 @@
+       return (char*) empty_string;
+     }
+-  if (is_internal_unit (dtp))
+-    {
+-      memread = *length;
+-      base = mem_alloc_r (dtp->u.p.current_unit->s, length);
+-      if (unlikely (memread > *length))
+-      {
+-          hit_eof (dtp);
+-        return NULL;
+-      }
+-      n = *length;
+-      goto done;
+-    }
+-
+   n = seen_comma = 0;
  
- struct ht_node_list
-@@ -752,6 +885,9 @@
-   if (!r->counter)
-     r->counter = counter;
+   /* Read data into format buffer and scan through it.  */
+@@ -260,8 +277,6 @@
+            so we can just continue with a short read.  */
+         if (dtp->u.p.current_unit->pad_status == PAD_NO)
+           {
+-            if (likely (no_error))
+-              break;
+             generate_error (&dtp->common, LIBERROR_EOR, NULL);
+             return NULL;
+           }
+@@ -291,13 +306,29 @@
+      some other stuff. Set the relevant flags.  */
+   if (lorig > *length && !dtp->u.p.sf_seen_eor && !seen_comma)
+     {
+-      if (n > 0 || no_error)
+-        dtp->u.p.at_eof = 1;
+-      else
++      if (n > 0)
+         {
+-          hit_eof (dtp);
+-          return NULL;
+-        }
++        if (dtp->u.p.advance_status == ADVANCE_NO)
++          {
++            if (dtp->u.p.current_unit->pad_status == PAD_NO)
++              {
++                hit_eof (dtp);
++                return NULL;
++              }
++            else
++              dtp->u.p.eor_condition = 1;
++          }
++        else
++          dtp->u.p.at_eof = 1;
++      }
++      else if (dtp->u.p.advance_status == ADVANCE_NO
++             || dtp->u.p.current_unit->pad_status == PAD_NO
++             || dtp->u.p.current_unit->bytes_left
++                  == dtp->u.p.current_unit->recl)
++      {
++        hit_eof (dtp);
++        return NULL;
++      }
+     }
  
-+  /* Read pushed macros. */
-+  if (! _cpp_restore_pushed_macros (r, f))
-+    goto error;
-   return 0;
+  done:
+@@ -338,7 +369,8 @@
+             dtp->u.p.current_unit->bytes_left = dtp->u.p.current_unit->recl;
+         else
+           {
+-            if (unlikely (dtp->u.p.current_unit->pad_status == PAD_NO))
++            if (unlikely (dtp->u.p.current_unit->pad_status == PAD_NO)
++                && !is_internal_unit (dtp))
+               {
+                 /* Not enough data left.  */
+                 generate_error (&dtp->common, LIBERROR_EOR, NULL);
+@@ -346,9 +378,10 @@
+               }
+           }
  
-  error:
-Index: libcpp/internal.h
-===================================================================
---- libcpp/internal.h  (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/internal.h  (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -305,6 +305,16 @@
-   struct cset_converter input_cset_desc;
- };
+-        if (unlikely (dtp->u.p.current_unit->bytes_left == 0))
++        if (unlikely (dtp->u.p.current_unit->bytes_left == 0
++            && !is_internal_unit(dtp)))
+           {
+-              hit_eof (dtp);
++            hit_eof (dtp);
+             return NULL;
+           }
  
-+/* The list of saved macros by push_macro pragma.  */
-+struct def_pragma_macro {
-+  /* Chain element to previous saved macro.  */
-+  struct def_pragma_macro *next;
-+  /* Name of the macro.  */
-+  char *name;
-+  /* The stored macro content.  */
-+  cpp_macro *value;
-+};
+@@ -360,7 +393,11 @@
+       (dtp->u.p.current_unit->flags.access == ACCESS_SEQUENTIAL ||
+        dtp->u.p.current_unit->flags.access == ACCESS_STREAM))
+     {
+-      source = read_sf (dtp, nbytes, 0);
++      if (is_internal_unit (dtp))
++      source = read_sf_internal (dtp, nbytes);
++      else
++      source = read_sf (dtp, nbytes);
 +
- /* A cpp_reader encapsulates the "state" of a pre-processor run.
-    Applying cpp_get_token repeatedly yields a stream of pre-processor
-    tokens.  Usually, there is only one cpp_reader object active.  */
-@@ -474,6 +484,9 @@
-   /* Table of comments, when state.save_comments is true.  */
-   cpp_comment_table comments;
-+
-+  /* List of saved macros by push_macro.  */
-+  struct def_pragma_macro *pushed_macros;
- };
- /* Character classes.  Based on the more primitive macros in safe-ctype.h.
-@@ -574,6 +587,7 @@
- extern cpp_token *_cpp_lex_direct (cpp_reader *);
- extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *);
- extern void _cpp_init_tokenrun (tokenrun *, unsigned int);
-+extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
- /* In init.c.  */
- extern void _cpp_maybe_push_include_file (cpp_reader *);
-Index: libcpp/lex.c
-===================================================================
---- libcpp/lex.c       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/lex.c       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -504,6 +504,57 @@
-   return false;
- }
+       dtp->u.p.current_unit->strm_pos +=
+       (gfc_offset) (*nbytes + dtp->u.p.sf_seen_eor);
+       return source;
+@@ -2641,7 +2678,7 @@
+ /* Space to the next record for read mode.  */
  
-+/* Helper function to get the cpp_hashnode of the identifier BASE.  */
-+static cpp_hashnode *
-+lex_identifier_intern (cpp_reader *pfile, const uchar *base)
-+{
-+  cpp_hashnode *result;
-+  const uchar *cur;
-+  unsigned int len;
-+  unsigned int hash = HT_HASHSTEP (0, *base);
-+
-+  cur = base + 1;
-+  while (ISIDNUM (*cur))
-+    {
-+      hash = HT_HASHSTEP (hash, *cur);
-+      cur++;
-+    }
-+  len = cur - base;
-+  hash = HT_HASHFINISH (hash, len);
-+  result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table,
-+                                            base, len, hash, HT_ALLOC));
-+
-+  /* Rarely, identifiers require diagnostics when lexed.  */
-+  if (__builtin_expect ((result->flags & NODE_DIAGNOSTIC)
-+                      && !pfile->state.skipping, 0))
-+    {
-+      /* It is allowed to poison the same identifier twice.  */
-+      if ((result->flags & NODE_POISONED) && !pfile->state.poisoned_ok)
-+      cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"",
-+                 NODE_NAME (result));
-+
-+      /* Constraint 6.10.3.5: __VA_ARGS__ should only appear in the
-+       replacement list of a variadic macro.  */
-+      if (result == pfile->spec_nodes.n__VA_ARGS__
-+        && !pfile->state.va_args_ok)
-+      cpp_error (pfile, CPP_DL_PEDWARN,
-+                 "__VA_ARGS__ can only appear in the expansion"
-+                 " of a C99 variadic macro");
-+    }
-+
-+  return result;
-+}
-+
-+/* Get the cpp_hashnode of an identifier specified by NAME in
-+   the current cpp_reader object.  If none is found, NULL is returned.  */
-+cpp_hashnode *
-+_cpp_lex_identifier (cpp_reader *pfile, const char *name)
-+{
-+  cpp_hashnode *result;
-+  result = lex_identifier_intern (pfile, (uchar *) name);
-+  return result;
-+}
-+
- /* Lex an identifier starting at BUFFER->CUR - 1.  */
- static cpp_hashnode *
- lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
-Index: libcpp/po/ChangeLog
+ static void
+-next_record_r (st_parameter_dt *dtp)
++next_record_r (st_parameter_dt *dtp, int done)
+ {
+   gfc_offset record;
+   int bytes_left;
+@@ -2668,10 +2705,9 @@
+     case FORMATTED_SEQUENTIAL:
+       /* read_sf has already terminated input because of an '\n', or
+          we have hit EOF.  */
+-      if (dtp->u.p.sf_seen_eor || dtp->u.p.at_eof)
++      if (dtp->u.p.sf_seen_eor)
+       {
+         dtp->u.p.sf_seen_eor = 0;
+-          dtp->u.p.at_eof = 0;
+         break;
+       }
+@@ -2683,6 +2719,8 @@
+             record = next_array_record (dtp, dtp->u.p.current_unit->ls,
+                                         &finished);
++            if (!done && finished)
++              hit_eof (dtp);
+             /* Now seek to this record.  */
+             record = record * dtp->u.p.current_unit->recl;
+@@ -2720,8 +2758,9 @@
+               {
+                   if (errno != 0)
+                     generate_error (&dtp->common, LIBERROR_OS, NULL);
+-                  else
+-                    hit_eof (dtp);
++                else if (dtp->u.p.item_count == 1
++                         || dtp->u.p.pending_spaces == 0)
++                  hit_eof (dtp);
+                 break;
+                 }
+             
+@@ -3061,7 +3100,7 @@
+   dtp->u.p.current_unit->read_bad = 0;
+   if (dtp->u.p.mode == READING)
+-    next_record_r (dtp);
++    next_record_r (dtp, done);
+   else
+     next_record_w (dtp, done);
+Index: libmudflap/ChangeLog
 ===================================================================
---- libcpp/po/ChangeLog        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ libcpp/po/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
+--- libmudflap/ChangeLog       (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libmudflap/ChangeLog       (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,8 @@
++2010-03-15  David S. Miller  <davem@davemloft.net>
 +
-+      * GCC 4.4.3 released.
++      * testsuite/libmudflap.c/pass54-frag.c: Add explicit return from
++      main.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
  
-       * GCC 4.4.2 released.
-Index: gnattools/ChangeLog
+       * GCC 4.4.3 released.
+Index: libmudflap/testsuite/libmudflap.c/pass54-frag.c
+===================================================================
+--- libmudflap/testsuite/libmudflap.c/pass54-frag.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libmudflap/testsuite/libmudflap.c/pass54-frag.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -30,4 +30,5 @@
+   foo ();
+   bar ();
+   __mf_set_options ("-mode-check");
++  return 0;
+ }
+Index: libiberty/ChangeLog
 ===================================================================
---- gnattools/ChangeLog        (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ gnattools/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
+--- libiberty/ChangeLog        (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libiberty/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,9 @@
++2010-01-25  Ian Lance Taylor  <iant@google.com>
 +
-+      * GCC 4.4.3 released.
++      * cp-demangle.c (cplus_demangle_type): Check for invalid type
++      after "DF".
++      * testsuite/demangle-expected: Add test.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
+       * GCC 4.4.3 released.
+Index: libiberty/testsuite/demangle-expected
+===================================================================
+--- libiberty/testsuite/demangle-expected      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libiberty/testsuite/demangle-expected      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -3910,3 +3910,8 @@
+ --format=gnu-v3
+ _Z1gIIidEEDTclL_Z1fEspplfp_Li1EEEDpT_
+ decltype (f((parm#1+(1))...)) g<int, double>(int, double)
++#
++# Used to crash the demangler.
++--format=gnu-v3
++DFA
++DFA
+Index: libiberty/cp-demangle.c
+===================================================================
+--- libiberty/cp-demangle.c    (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libiberty/cp-demangle.c    (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,5 +1,5 @@
+ /* Demangler for g++ V3 ABI.
+-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
++   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+    Free Software Foundation, Inc.
+    Written by Ian Lance Taylor <ian@wasabisystems.com>.
  
-       * GCC 4.4.2 released.
-Index: maintainer-scripts/ChangeLog
+@@ -2149,6 +2149,8 @@
+           /* For demangling we don't care about the bits.  */
+           d_number (di);
+         ret->u.s_fixed.length = cplus_demangle_type (di);
++        if (ret->u.s_fixed.length == NULL)
++          return NULL;
+         d_number (di);
+         peek = d_next_char (di);
+         ret->u.s_fixed.sat = (peek == 's');
+Index: libffi/ChangeLog
 ===================================================================
---- maintainer-scripts/ChangeLog       (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ maintainer-scripts/ChangeLog       (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
+--- libffi/ChangeLog   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libffi/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,8 @@
++2010-02-15  Matthias Klose  <doko@ubuntu.com>
 +
-+      * GCC 4.4.3 released.
++      * src/arm/sysv.S (__ARM_ARCH__): Define for processor
++      __ARM_ARCH_7EM__.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
+       * GCC 4.4.3 released.
+Index: libffi/src/arm/sysv.S
+===================================================================
+--- libffi/src/arm/sysv.S      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libffi/src/arm/sysv.S      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -73,7 +73,8 @@
+ #endif
  
-       * GCC 4.4.2 released.
-Index: fixincludes/ChangeLog
+ #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
+-        || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
++        || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
++      || defined(__ARM_ARCH_7EM__)
+ # undef __ARM_ARCH__
+ # define __ARM_ARCH__ 7
+ #endif
+Index: libcpp/init.c
+===================================================================
+--- libcpp/init.c      (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libcpp/init.c      (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,6 +1,6 @@
+ /* CPP Library.
+    Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010
+    Free Software Foundation, Inc.
+    Contributed by Per Bothner, 1994-95.
+    Based on CCCP program by Paul Rubin, June 1986
+@@ -570,9 +570,9 @@
+       pfile->state.in_directive = 0;
+       /* If it's a #line directive, handle it.  */
+-      if (token1->type == CPP_NUMBER)
++      if (token1->type == CPP_NUMBER
++        && _cpp_handle_directive (pfile, token->flags & PREV_WHITE))
+       {
+-        _cpp_handle_directive (pfile, token->flags & PREV_WHITE);
+         read_original_directory (pfile);
+         return;
+       }
+Index: libcpp/ChangeLog
 ===================================================================
---- fixincludes/ChangeLog      (.../tags/gcc_4_4_2_release)    (wersja 157390)
-+++ fixincludes/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 157390)
-@@ -1,3 +1,7 @@
-+2010-01-21  Release Manager
+--- libcpp/ChangeLog   (.../tags/gcc_4_4_3_release)    (wersja 157785)
++++ libcpp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 157785)
+@@ -1,3 +1,8 @@
++2010-02-11  Jakub Jelinek  <jakub@redhat.com>
 +
-+      * GCC 4.4.3 released.
++      * init.c (read_original_filename): Don't call read_original_directory
++      if _cpp_handle_directive returns 0.
 +
- 2009-10-15  Release Manager
+ 2010-01-21  Release Manager
  
-       * GCC 4.4.2 released.
+       * GCC 4.4.3 released.
 
 Zmiany atrybutów dla: .
 ___________________________________________________________________
index 0d229de199b1da60a871124d9ce5b28fa4d16890..c508f6200cfd9eca6157721d67ff503a7e0f96d6 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -66,7 +66,7 @@ Summary(pl.UTF-8):    Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):  Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:          gcc
 Version:       %{major_ver}.%{minor_ver}
-Release:       3
+Release:       4
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
@@ -76,7 +76,7 @@ Source1:      %{name}-optimize-la.pl
 #Source2:      ftp://sourceware.org/pub/java/ecj-%{major_ver}.jar
 Source2:       ftp://sourceware.org/pub/java/ecj-latest.jar
 # Source2-md5: fd299f26c02268878b5d6c0e86f57c43
-# svn diff svn://gcc.gnu.org/svn/gcc//tags/gcc_4_4_2_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch > gcc-branch.diff
+# svn diff svn://gcc.gnu.org/svn/gcc//tags/gcc_4_4_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch > gcc-branch.diff
 Patch100:      %{name}-branch.diff
 Patch0:                %{name}-info.patch
 Patch1:                %{name}-nolocalefiles.patch
This page took 1.775543 seconds and 4 git commands to generate.