]> git.pld-linux.org Git - packages/gcc.git/commitdiff
- rel 6; branch diff updated; libpng rebuild auto/th/gcc-4_6_2-6
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 11 Feb 2012 08:32:35 +0000 (08:32 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gcc-branch.diff -> 1.58
    gcc.spec -> 1.679

gcc-branch.diff
gcc.spec

index 416648869cbc043c55ac91fd421572644ab9ec99..ca7adcc9dd5ccb1198ef59e2f2ff96983eb330f8 100644 (file)
@@ -1,7 +1,7 @@
 Index: configure
 ===================================================================
---- configure  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ configure  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- configure  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ configure  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -5117,7 +5117,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
  $as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
@@ -24,8 +24,8 @@ Index: configure
      ;;
 Index: Makefile.in
 ===================================================================
---- Makefile.in        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ Makefile.in        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- Makefile.in        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ Makefile.in        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -60017,6 +60017,7 @@
  install-gcc: maybe-install-fixincludes
  install-gcc: maybe-install-lto-plugin
@@ -36,8 +36,8 @@ Index: Makefile.in
  configure-stage1-libcpp: configure-stage1-libiberty
 Index: libgcc/config.host
 ===================================================================
---- libgcc/config.host (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgcc/config.host (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgcc/config.host (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgcc/config.host (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -145,15 +145,6 @@
    asm_hidden_op=.private_extern
    tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin"
@@ -56,8 +56,8 @@ Index: libgcc/config.host
    # machine-specific sections may refine and add to this
 Index: libgcc/generic-morestack.c
 ===================================================================
---- libgcc/generic-morestack.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgcc/generic-morestack.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgcc/generic-morestack.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgcc/generic-morestack.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -459,8 +459,8 @@
    sigemptyset (&__morestack_initial_sp.mask);
  
@@ -71,8 +71,8 @@ Index: libgcc/generic-morestack.c
       importantly, pthread_sigmask uses less stack space on x86_64.  */
 Index: libgcc/ChangeLog
 ===================================================================
---- libgcc/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgcc/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgcc/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgcc/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,16 @@
 +2011-12-15  H.J. Lu  <hongjiu.lu@intel.com>
 +
@@ -92,8 +92,8 @@ Index: libgcc/ChangeLog
        * GCC 4.6.2 released.
 Index: libtool.m4
 ===================================================================
---- libtool.m4 (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libtool.m4 (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libtool.m4 (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libtool.m4 (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2273,7 +2273,7 @@
      objformat=`/usr/bin/objformat`
    else
@@ -132,8 +132,8 @@ Index: libtool.m4
          _LT_TAGVAR(ld_shlibs, $1)=no
 Index: libgomp/configure
 ===================================================================
---- libgomp/configure  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgomp/configure  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgomp/configure  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgomp/configure  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -9317,7 +9317,7 @@
        ;;
  
@@ -190,8 +190,8 @@ Index: libgomp/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libgomp/ChangeLog
 ===================================================================
---- libgomp/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgomp/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgomp/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgomp/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -202,8 +202,8 @@ Index: libgomp/ChangeLog
        * GCC 4.6.2 released.
 Index: libquadmath/configure
 ===================================================================
---- libquadmath/configure      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libquadmath/configure      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libquadmath/configure      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libquadmath/configure      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -8727,7 +8727,7 @@
        ;;
  
@@ -233,8 +233,8 @@ Index: libquadmath/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libquadmath/ChangeLog
 ===================================================================
---- libquadmath/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libquadmath/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libquadmath/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libquadmath/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -245,8 +245,8 @@ Index: libquadmath/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/doc/invoke.texi
 ===================================================================
---- gcc/doc/invoke.texi        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/doc/invoke.texi        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/doc/invoke.texi        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/doc/invoke.texi        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -7527,8 +7527,8 @@
  bodies are read from these ELF sections and instantiated as if they
  had been part of the same translation unit.
@@ -522,8 +522,8 @@ Index: gcc/doc/invoke.texi
  @opindex fcompare-elim
 Index: gcc/c-family/ChangeLog
 ===================================================================
---- gcc/c-family/ChangeLog     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/c-family/ChangeLog     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/c-family/ChangeLog     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/c-family/ChangeLog     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,15 @@
 +2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -542,8 +542,8 @@ Index: gcc/c-family/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/c-family/c-common.c
 ===================================================================
---- gcc/c-family/c-common.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/c-family/c-common.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/c-family/c-common.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/c-family/c-common.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1236,13 +1236,7 @@
          && (op1 = get_base_address (op0)) != NULL_TREE
          && TREE_CODE (op1) == INDIRECT_REF
@@ -666,8 +666,8 @@ Index: gcc/c-family/c-common.c
  /* Warn for A ?: C expressions (with B omitted) where A is a boolean 
 Index: gcc/c-family/c-common.h
 ===================================================================
---- gcc/c-family/c-common.h    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/c-family/c-common.h    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/c-family/c-common.h    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/c-family/c-common.h    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -916,7 +916,8 @@
  
  extern void verify_sequence_points (tree);
@@ -680,8 +680,8 @@ Index: gcc/c-family/c-common.h
     Used to select diagnostic messages in lvalue_error and
 Index: gcc/tree-loop-distribution.c
 ===================================================================
---- gcc/tree-loop-distribution.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-loop-distribution.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-loop-distribution.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-loop-distribution.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -63,6 +63,51 @@
     predecessor a node that writes to memory.  */
  static bitmap upstream_mem_writes;
@@ -808,8 +808,8 @@ Index: gcc/tree-loop-distribution.c
     builtin.  */
 Index: gcc/java/ChangeLog
 ===================================================================
---- gcc/java/ChangeLog (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/java/ChangeLog (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/java/ChangeLog (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/java/ChangeLog (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,8 @@
 +2012-01-23  Andreas Schwab  <schwab@linux-m68k.org>
 +
@@ -821,8 +821,8 @@ Index: gcc/java/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/java/lang.c
 ===================================================================
---- gcc/java/lang.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/java/lang.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/java/lang.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/java/lang.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,6 +1,6 @@
  /* Java(TM) language-specific utility routines.
     Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -841,15 +841,15 @@ Index: gcc/java/lang.c
    opts->x_flag_wrapv = 1;
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/DATESTAMP      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/DATESTAMP      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/DATESTAMP      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1 +1 @@
 -20111026
-+20120201
++20120211
 Index: gcc/configure
 ===================================================================
---- gcc/configure      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/configure      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/configure      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/configure      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -7442,17 +7442,7 @@
    RANLIB="$ac_cv_prog_RANLIB"
  fi
@@ -941,10 +941,43 @@ Index: gcc/configure
      shlibpath_overrides_runpath=yes
      ;;
    freebsd3.[01]* | freebsdelf3.[01]*)
+Index: gcc/diagnostic.c
+===================================================================
+--- gcc/diagnostic.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/diagnostic.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -133,12 +133,12 @@
+       /* -Werror was given.  */
+       if (context->warning_as_error_requested)
+       pp_verbatim (context->printer,
+-                   _("%s: all warnings being treated as errors\n"),
++                   _("%s: all warnings being treated as errors"),
+                    progname);
+       /* At least one -Werror= was given.  */
+       else
+       pp_verbatim (context->printer,
+-                   _("%s: some warnings being treated as errors\n"),
++                   _("%s: some warnings being treated as errors"),
+                    progname);
+       pp_flush (context->printer);
+     }
+Index: gcc/fold-const.c
+===================================================================
+--- gcc/fold-const.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fold-const.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -13784,7 +13784,8 @@
+       }
+     }
+   md5_process_bytes (expr, tree_size (expr), ctx);
+-  fold_checksum_tree (TREE_TYPE (expr), ctx, ht);
++  if (CODE_CONTAINS_STRUCT (code, TS_TYPED))
++    fold_checksum_tree (TREE_TYPE (expr), ctx, ht);
+   if (TREE_CODE_CLASS (code) != tcc_type
+       && TREE_CODE_CLASS (code) != tcc_declaration
+       && code != TREE_LIST
 Index: gcc/objc/objc-next-runtime-abi-01.c
 ===================================================================
---- gcc/objc/objc-next-runtime-abi-01.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/objc/objc-next-runtime-abi-01.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/objc/objc-next-runtime-abi-01.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/objc/objc-next-runtime-abi-01.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2871,12 +2871,15 @@
    return eh_id;
  }
@@ -964,8 +997,8 @@ Index: gcc/objc/objc-next-runtime-abi-01.c
  #endif
 Index: gcc/objc/objc-act.c
 ===================================================================
---- gcc/objc/objc-act.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/objc/objc-act.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/objc/objc-act.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/objc/objc-act.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3136,9 +3136,8 @@
    struct string_descriptor *desc, key;
    void **loc;
@@ -980,8 +1013,8 @@ Index: gcc/objc/objc-act.c
    /* The target may have different ideas on how to construct an ObjC string 
 Index: gcc/objc/ChangeLog
 ===================================================================
---- gcc/objc/ChangeLog (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/objc/ChangeLog (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/objc/ChangeLog (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/objc/ChangeLog (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,18 @@
 +2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
 +
@@ -1003,8 +1036,8 @@ Index: gcc/objc/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/reorg.c
 ===================================================================
---- gcc/reorg.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/reorg.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/reorg.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/reorg.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3554,9 +3554,11 @@
            }
        }
@@ -1020,14 +1053,14 @@ Index: gcc/reorg.c
             various code assumes that it is in a delay slot.  We could
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/DEV-PHASE      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/DEV-PHASE      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/DEV-PHASE      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/tree-ssa-sccvn.c
 ===================================================================
---- gcc/tree-ssa-sccvn.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-ssa-sccvn.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-ssa-sccvn.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-ssa-sccvn.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -546,6 +546,7 @@
          tem1.type = TREE_TYPE (tem1.op0);
          tem1.opcode = TREE_CODE (tem1.op0);
@@ -1049,9 +1082,153 @@ Index: gcc/tree-ssa-sccvn.c
        ++j;
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,653 @@
+--- gcc/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,797 @@
++2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
++
++      * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
++      having the same mode as previous compare.
++
++2012-02-09  Jack Howarth  <howarth@bromo.med.uc.edu>
++
++      Backported from mainline
++      2011-06-27  Richard Guenther  <rguenther@suse.de>
++
++      PR tree-optimization/49536
++      * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
++      For non-scalar inner types use a scalar type according to
++      the scalar inner mode.
++
++2012-02-09  Jakub Jelinek  <jakub@redhat.com>
++
++      Backported from mainline
++      2012-02-08  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/52139
++      * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
++      is a BARRIER after emit_insn_after_noloc, move BB_END
++      to the last non-BARRIER insn before it.
++
++      2012-02-07  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/52060
++      * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
++      copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
++      before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
++      and/or i0src_copy2 when needed.
++
++      PR middle-end/52074
++      * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
++      if modifier < EXPAND_SUM call force_operand on the result.
++
++      2012-02-06  Jakub Jelinek  <jakub@redhat.com>
++
++      PR target/52129
++      * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
++      CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
++
++      2012-02-02  Jakub Jelinek  <jakub@redhat.com>
++
++      PR middle-end/48071
++      * diagnostic.c (diagnostic_finish): Remove trailing newlines.
++
++      2012-01-28  Jakub Jelinek  <jakub@redhat.com>
++
++      PR target/52006
++      * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
++      arm_general_register_operand predicate for operand 2 instead of
++      register_operand.
++
++      2012-01-19  Jakub Jelinek  <jakub@redhat.com>
++
++      PR libmudflap/40778
++      * tree-mudflap.c (mf_artificial): New function.
++      (execute_mudflap_function_ops, execute_mudflap_function_decls,
++      mx_register_decls, mudflap_enqueue_decl): Use it.
++
++      2012-01-05  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/51767
++      * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
++      of jump_block and add an extra edge for degenerated asm gotos.
++
++      PR middle-end/51768
++      * stmt.c (check_unique_operand_names): Don't ICE during error
++      reporting if i is from labels chain.
++
++      PR middle-end/44777
++      * profile.c (branch_prob): Split bbs that have exit edge
++      and need a fake entry edge too.
++
++      2012-01-04  Jakub Jelinek  <jakub@redhat.com>
++
++      PR debug/51695
++      * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
++      in .debug_loc on the floor.
++
++      2011-12-15  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c/51360
++      * c-parser.c (c_parser_omp_clause_num_threads,
++      c_parser_omp_clause_schedule): Call mark_exp_read.
++
++      PR debug/51517
++      * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
++      !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
++
++2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
++
++      Backport from mainline
++      2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
++
++      PR middle-end/52140
++      * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
++
++2012-02-09  Andrey Belevantsev  <abel@ispras.ru>
++
++      Backport from mainline
++      2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
++
++      PR target/51106
++      * function.c (instantiate_virtual_regs_in_insn): Use
++      delete_insn_and_edges when removing a wrong asm insn.
++
++2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
++
++      PR middle-end/51994
++      * expr.c (get_inner_reference): If there is an offset, add a negative
++      bit position to it (if any).
++
++2012-02-07  Kai Tietz  <ktietz@redhat.com>
++          Dave Korn  <dave.korn.cygwin@gmail.com>
++
++      PR target/40068
++      * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
++      Take care that typinfo gets dllexport-attribute.
++
++2012-02-07  Alan Modra  <amodra@gmail.com>
++
++      PR target/52107
++      * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
++      subregs of TFmode.
++
++2012-02-02  Uros Bizjak  <ubizjak@gmail.com>
++
++      Backport from mainline:
++      2011-11-18  Uros Bizjak  <ubizjak@gmail.com>
++
++      PR tree-optimization/51118
++      * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
++      before using TREE_TYPE accessor on expr.
++
++2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
++
++      Backport from mainline r183796
++      PR rtl-optimization/51374
++      * combine.c (can_combine_p): Don't allow volatile_refs_p insns
++      to cross other volatile_refs_p insns.
++
 +2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
 +
 +      Backport from mainline.
@@ -1077,7 +1254,7 @@ Index: gcc/ChangeLog
 +2012-01-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 +
 +      Backport from mainline.
-+        2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
++      2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 +
 +      PR target/50313
 +      * config/arm/arm.c (arm_load_pic_register): Use
@@ -1705,7 +1882,7 @@ Index: gcc/ChangeLog
  2011-10-26  Release Manager
  
        * GCC 4.6.2 released.
-@@ -144,8 +794,8 @@
+@@ -144,8 +938,8 @@
  
  2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
  
@@ -1716,7 +1893,7 @@ Index: gcc/ChangeLog
  
  2011-10-06  Jakub Jelinek  <jakub@redhat.com>
  
-@@ -252,7 +902,7 @@
+@@ -252,7 +1046,7 @@
        * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
        * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
  
@@ -1727,8 +1904,8 @@ Index: gcc/ChangeLog
        local variable ORIG_SCALAR_STMT.
 Index: gcc/testsuite/gcc.target/arm/headmerge-2.c
 ===================================================================
---- gcc/testsuite/gcc.target/arm/headmerge-2.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gcc.target/arm/headmerge-2.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gcc.target/arm/headmerge-2.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gcc.target/arm/headmerge-2.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,6 +1,6 @@
  /* { dg-do compile }  */
  /* { dg-options "-O2" }  */
@@ -1740,7 +1917,7 @@ Index: gcc/testsuite/gcc.target/arm/headmerge-2.c
 Index: gcc/testsuite/gcc.target/arm/pr49641.c
 ===================================================================
 --- gcc/testsuite/gcc.target/arm/pr49641.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/pr49641.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/arm/pr49641.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,18 @@
 +/* { dg-do compile } */
 +/* { dg-options "-mthumb -O2" } */
@@ -1760,10 +1937,34 @@ Index: gcc/testsuite/gcc.target/arm/pr49641.c
 +   y = 0;
 +   foo(&v);
 +}
+Index: gcc/testsuite/gcc.target/arm/pr52006.c
+===================================================================
+--- gcc/testsuite/gcc.target/arm/pr52006.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/arm/pr52006.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,19 @@
++/* PR target/52006 */
++/* { dg-do compile } */
++/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2 -fPIC" } */
++
++unsigned long a;
++static int b;
++
++void
++foo (void)
++{
++  asm volatile ("" : "=r" (b));
++}
++
++void
++bar (float f)
++{
++  if (f < b / 100.0)
++    a = 1;
++}
 Index: gcc/testsuite/gcc.target/arm/stack-red-zone.c
 ===================================================================
 --- gcc/testsuite/gcc.target/arm/stack-red-zone.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/stack-red-zone.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/arm/stack-red-zone.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,12 @@
 +/* No stack red zone.  PR38644.  */
 +/* { dg-options "-mthumb -O2" } */
@@ -1780,7 +1981,7 @@ Index: gcc/testsuite/gcc.target/arm/stack-red-zone.c
 Index: gcc/testsuite/gcc.target/arm/sibcall-2.c
 ===================================================================
 --- gcc/testsuite/gcc.target/arm/sibcall-2.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/sibcall-2.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/arm/sibcall-2.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,12 @@
 +/* { dg-require-effective-target arm_eabi } */
 +/* { dg-do compile } */
@@ -1797,7 +1998,7 @@ Index: gcc/testsuite/gcc.target/arm/sibcall-2.c
 Index: gcc/testsuite/gcc.target/arm/pr51835.c
 ===================================================================
 --- gcc/testsuite/gcc.target/arm/pr51835.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/arm/pr51835.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/arm/pr51835.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,14 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O2 -mfloat-abi=hard -mfpu=fpv4-sp-d16" }  */
@@ -1816,7 +2017,7 @@ Index: gcc/testsuite/gcc.target/arm/pr51835.c
 Index: gcc/testsuite/gcc.target/powerpc/pr51623.c
 ===================================================================
 --- gcc/testsuite/gcc.target/powerpc/pr51623.c (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/powerpc/pr51623.c (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/powerpc/pr51623.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,123 @@
 +/* PR target/51623 */
 +/* { dg-do compile { target { { powerpc*-*-linux* && ilp32 } || { powerpc-*-eabi* } } } } */
@@ -1941,10 +2142,30 @@ Index: gcc/testsuite/gcc.target/powerpc/pr51623.c
 +}
 +
 +void *ptr = do_nand;
+Index: gcc/testsuite/gcc.target/avr/torture/pr51374-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/avr/torture/pr51374-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.target/avr/torture/pr51374-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,15 @@
++/* PR rtl-optimization/51374 */
++/* { dg-do compile } */
++
++void vector_18 (void)
++{
++    extern char slot;
++    unsigned char status = (*(volatile unsigned char*) 0x2B);
++    unsigned char data   = (*(volatile unsigned char*) 0x2C);
++
++    if (status & 0x10)
++        slot = 0;
++}
++
++/* { dg-final { scan-assembler-not "\tsbic " } } */
++/* { dg-final { scan-assembler-not "\tsbis " } } */
 Index: gcc/testsuite/gcc.target/i386/pr51393.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr51393.c    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr51393.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/i386/pr51393.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,22 @@
 +/* { dg-do run } */
 +/* { dg-require-effective-target avx } */
@@ -1971,7 +2192,7 @@ Index: gcc/testsuite/gcc.target/i386/pr51393.c
 Index: gcc/testsuite/gcc.target/i386/pr48721.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr48721.c    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr48721.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/i386/pr48721.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,51 @@
 +/* PR rtl-optimization/48721 */
 +/* { dg-do compile } */
@@ -2027,7 +2248,7 @@ Index: gcc/testsuite/gcc.target/i386/pr48721.c
 Index: gcc/testsuite/gcc.target/i386/movdi-rex64.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/movdi-rex64.c        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/movdi-rex64.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.target/i386/movdi-rex64.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,11 @@
 +/* { dg-do compile { target *-*-linux* } } */
 +/* { dg-options "-fPIE" } */
@@ -2042,8 +2263,8 @@ Index: gcc/testsuite/gcc.target/i386/movdi-rex64.c
 +}
 Index: gcc/testsuite/lib/gcc-dg.exp
 ===================================================================
---- gcc/testsuite/lib/gcc-dg.exp       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/lib/gcc-dg.exp       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/lib/gcc-dg.exp       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/lib/gcc-dg.exp       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -565,6 +565,24 @@
      }
  }
@@ -2072,7 +2293,7 @@ Index: gcc/testsuite/lib/gcc-dg.exp
 Index: gcc/testsuite/gfortran.dg/whole_file_35.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/whole_file_35.f90        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/whole_file_35.f90        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/whole_file_35.f90        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,28 @@
 +! { dg-do compile }
 +!
@@ -2105,7 +2326,7 @@ Index: gcc/testsuite/gfortran.dg/whole_file_35.f90
 Index: gcc/testsuite/gfortran.dg/dummy_procedure_7.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/dummy_procedure_7.f90    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/dummy_procedure_7.f90    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/dummy_procedure_7.f90    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,65 @@
 +! { dg-do run }
 +!
@@ -2175,7 +2396,7 @@ Index: gcc/testsuite/gfortran.dg/dummy_procedure_7.f90
 Index: gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,30 @@
 +! { dg-do compile }
 +!
@@ -2210,7 +2431,7 @@ Index: gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
 Index: gcc/testsuite/gfortran.dg/move_alloc_8.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/move_alloc_8.f90 (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/move_alloc_8.f90 (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/move_alloc_8.f90 (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,106 @@
 +! { dg-do compile }
 +!
@@ -2321,7 +2542,7 @@ Index: gcc/testsuite/gfortran.dg/move_alloc_8.f90
 Index: gcc/testsuite/gfortran.dg/realloc_on_assign_8.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/realloc_on_assign_8.f90  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/realloc_on_assign_8.f90  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/realloc_on_assign_8.f90  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,17 @@
 +! { dg-do compile }
 +!
@@ -2343,7 +2564,7 @@ Index: gcc/testsuite/gfortran.dg/realloc_on_assign_8.f90
 Index: gcc/testsuite/gfortran.dg/implicit_pure_2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/implicit_pure_2.f90      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/implicit_pure_2.f90      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/implicit_pure_2.f90      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,17 @@
 +! { dg-do compile }
 +! PR 51502 - this was wrongly detected to be implicit pure.
@@ -2365,7 +2586,7 @@ Index: gcc/testsuite/gfortran.dg/implicit_pure_2.f90
 Index: gcc/testsuite/gfortran.dg/intrinsic_size_2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/intrinsic_size_2.f90     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/intrinsic_size_2.f90     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/intrinsic_size_2.f90     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,17 @@
 +! { dg-do compile }
 +!
@@ -2384,10 +2605,33 @@ Index: gcc/testsuite/gfortran.dg/intrinsic_size_2.f90
 +  print *, size(f*x)
 +end subroutine
 +end
+Index: gcc/testsuite/gfortran.dg/realloc_on_assign_10.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/realloc_on_assign_10.f90 (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/realloc_on_assign_10.f90 (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,18 @@
++! { dg-do run }
++! PR52012 - with realloc_lhs active(ie. default condition) the
++! offset was wrongly calculated for a, after assignment.
++!
++! Reported by Reinhold Bader and Tobias Burnus  <burnus@gcc.gnu.org>
++! 
++program gf
++  implicit none
++  real, allocatable :: a(:,:,:)
++  real, parameter :: zero = 0.0, one = 1.0
++  real :: b(3,4,5) = zero
++  b(1,2,3) = one
++  allocate (a(size (b, 3), size (b, 2), size (b, 1)))
++  a = reshape (b, shape (a), order = [3, 2, 1])
++  if (any (a(:, 2, 1) .ne. [zero, zero, one, zero, zero])) call abort
++  if (a(3, 2, 1) /= one) call abort()
++  if (sum (abs (a)) /= one) call abort()
++end program
 Index: gcc/testsuite/gfortran.dg/default_initialization_5.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/default_initialization_5.f90     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/default_initialization_5.f90     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/default_initialization_5.f90     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,66 @@
 +! { dg-do  run }
 +! { dg-options "-fdump-tree-original" }
@@ -2458,7 +2702,7 @@ Index: gcc/testsuite/gfortran.dg/default_initialization_5.f90
 Index: gcc/testsuite/gfortran.dg/move_alloc_12.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/move_alloc_12.f90        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/move_alloc_12.f90        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/move_alloc_12.f90        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,33 @@
 +! { dg-do compile }
 +!
@@ -2493,10 +2737,111 @@ Index: gcc/testsuite/gfortran.dg/move_alloc_12.f90
 +    end block
 +  end function
 +end
+Index: gcc/testsuite/gfortran.dg/realloc_on_assign_12.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/realloc_on_assign_12.f90 (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/realloc_on_assign_12.f90 (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,96 @@
++! { dg-do run }
++!
++! PR fortran/52151
++!
++! Check that the bounds/shape/strides are correctly set
++! for (re)alloc on assignment, if the LHS is either not
++! allocated or has the wrong shape. This test is for
++! code which is only invoked for libgfortran intrinsic
++! such as RESHAPE.
++!
++! Based on the example of PR 52117 by Steven Hirshman
++!
++    PROGRAM RESHAPEIT
++      call unalloc ()
++      call wrong_shape ()
++    contains
++    subroutine unalloc ()
++      INTEGER, PARAMETER :: n1=2, n2=2, n3=2
++      INTEGER            :: m1, m2, m3, lc
++      REAL, ALLOCATABLE  :: A(:,:), B(:,:,:)
++      REAL               :: val
++
++      ALLOCATE (A(n1,n2*n3))
++! << B is not allocated
++
++      val = 0
++      lc = 0
++      DO m3=1,n3
++         DO m2=1,n2
++            lc = lc+1
++            DO m1=1,n1
++               val = val+1
++               A(m1, lc) = val
++            END DO
++         END DO
++      END DO
++
++      B = RESHAPE(A, [n1,n2,n3])
++
++      if (any (shape (B)  /= [n1,n2,n3])) call abort ()
++      if (any (ubound (B) /= [n1,n2,n3])) call abort ()
++      if (any (lbound (B) /= [1,1,1])) call abort ()
++
++      lc = 0
++      DO m3=1,n3
++         DO m2=1,n2
++            lc = lc+1
++            DO m1=1,n1
++!               PRINT *,'A(',m1,',',lc,') = ',A(m1,lc),' B = ',B(m1,m2,m3)
++               if (A(m1,lc) /= B(m1,m2,m3)) call abort ()
++            END DO
++         END DO
++      END DO
++      DEALLOCATE(A, B)
++    end subroutine unalloc
++
++    subroutine wrong_shape ()
++      INTEGER, PARAMETER :: n1=2, n2=2, n3=2
++      INTEGER            :: m1, m2, m3, lc
++      REAL, ALLOCATABLE  :: A(:,:), B(:,:,:)
++      REAL               :: val
++
++      ALLOCATE (A(n1,n2*n3))
++      ALLOCATE (B(1,1,1))     ! << shape differs from RHS
++
++      val = 0
++      lc = 0
++      DO m3=1,n3
++         DO m2=1,n2
++            lc = lc+1
++            DO m1=1,n1
++               val = val+1
++               A(m1, lc) = val
++            END DO
++         END DO
++      END DO
++
++      B = RESHAPE(A, [n1,n2,n3])
++
++      if (any (shape (B)  /= [n1,n2,n3])) call abort ()
++      if (any (ubound (B) /= [n1,n2,n3])) call abort ()
++      if (any (lbound (B) /= [1,1,1])) call abort ()
++
++      lc = 0
++      DO m3=1,n3
++         DO m2=1,n2
++            lc = lc+1
++            DO m1=1,n1
++!               PRINT *,'A(',m1,',',lc,') = ',A(m1,lc),' B = ',B(m1,m2,m3)
++               if (A(m1,lc) /= B(m1,m2,m3)) call abort ()
++            END DO
++         END DO
++      END DO
++      DEALLOCATE(A, B)
++    end subroutine wrong_shape
++    END PROGRAM RESHAPEIT
 Index: gcc/testsuite/gfortran.dg/init_flag_9.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/init_flag_9.f90  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/init_flag_9.f90  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/init_flag_9.f90  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,15 @@
 +! { dg-do run }
 +! { dg-options "-finit-character=89" }
@@ -2516,7 +2861,7 @@ Index: gcc/testsuite/gfortran.dg/init_flag_9.f90
 Index: gcc/testsuite/gfortran.dg/pr50875.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/pr50875.f90      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr50875.f90      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/pr50875.f90      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,39 @@
 +! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
 +! { dg-options "-O3 -mavx" }
@@ -2557,10 +2902,47 @@ Index: gcc/testsuite/gfortran.dg/pr50875.f90
 +end module test
 +
 +! { dg-final { cleanup-modules "test" } }
+Index: gcc/testsuite/gfortran.dg/shape_7.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/shape_7.f90      (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/shape_7.f90      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,32 @@
++! { dg-do compile }
++! { dg-options "-fdump-tree-original" }
++!
++! PR fortran/52093
++!
++! Contributed by Mohammad Rahmani
++!
++
++Program Main
++ Implicit None
++ Integer:: X(2,2)
++ Integer:: X2(7:11,8:9)
++
++ if (size((X)) /= 4) call abort ()
++ if (any (Shape((X))  /= [2,2])) call abort ()
++ if (any (lbound((X)) /= [1,1])) call abort ()
++ if (any (ubound((X)) /= [2,2])) call abort ()
++
++ if (size(X2) /= 10) call abort ()
++ if (any (Shape(X2)  /= [5,2])) call abort ()
++ if (any (lbound(X2) /= [7,8]))  call abort ()
++ if (any (ubound(X2) /= [11,9])) call abort ()
++
++ if (size((X2)) /= 10) call abort ()
++ if (any (Shape((X2))  /= [5,2])) call abort ()
++ if (any (lbound((X2)) /= [1,1])) call abort ()
++ if (any (ubound((X2)) /= [5,2])) call abort ()
++End Program Main
++
++! { dg-final { scan-tree-dump-times "abort" 0 "original" } }
++! { dg-final { cleanup-tree-dump "original" } }
++
 Index: gcc/testsuite/gfortran.dg/class_47.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/class_47.f90     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/class_47.f90     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/class_47.f90     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,40 @@
 +! { dg-do compile }
 +!
@@ -2605,7 +2987,7 @@ Index: gcc/testsuite/gfortran.dg/class_47.f90
 Index: gcc/testsuite/gfortran.dg/warn_function_without_result_2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/warn_function_without_result_2.f90       (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/warn_function_without_result_2.f90       (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/warn_function_without_result_2.f90       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,19 @@
 +! { dg-do compile }
 +! { dg-options "-Wall" }
@@ -2629,7 +3011,7 @@ Index: gcc/testsuite/gfortran.dg/warn_function_without_result_2.f90
 Index: gcc/testsuite/gfortran.dg/implicit_pure_1.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/implicit_pure_1.f90      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/implicit_pure_1.f90      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/implicit_pure_1.f90      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,53 @@
 +! { dg-do run }
 +!
@@ -2684,10 +3066,51 @@ Index: gcc/testsuite/gfortran.dg/implicit_pure_1.f90
 +
 +! { dg-final { scan-module "b" "IMPLICIT_PURE" } }
 +! { dg-final { cleanup-modules "b" } }
+Index: gcc/testsuite/gfortran.dg/realloc_on_assign_11.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/realloc_on_assign_11.f90 (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/realloc_on_assign_11.f90 (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,36 @@
++! { dg-do run }
++! PR52012 - tests of automatic reallocation on assignment for variable = array_intrinsic
++!
++! Contributed by Tobias Burnus and Dominique Dhumieres
++!
++  integer, allocatable :: a(:), b(:), e(:,:)
++  integer :: c(1:5,1:5), d(1:5,1:5)
++  allocate(b(3))
++  b = [1,2,3]
++
++! Shape conforms so bounds follow allocation.
++  allocate (a(7:9))
++  a = reshape( b, shape=[size(b)])
++  if (any ([lbound(a), ubound(a), size(a), shape (a)] .ne. [7,9,3,3])) call abort
++
++  deallocate (a)
++! 'a' not allocated so lbound defaults to 1.
++  a = reshape( b, shape=[size(b)])
++  if (any ([lbound(a), ubound(a), size(a), shape (a)] .ne. [1,3,3,3])) call abort
++
++  deallocate (a)
++! Shape conforms so bounds follow allocation.
++  allocate (a(0:0))
++  a(0) = 1
++  if (any ([lbound(a), ubound(a), size(a), shape (a)] .ne. [0,0,1,1])) call abort
++
++! 'a' not allocated so lbound defaults to 1.
++  e = matmul (c(2:5,:), d(:, 3:4))
++  if (any ([lbound(e), ubound(e), size(e), shape (e)] .ne. [1,1,4,2,8,4,2])) call abort
++  deallocate (e)
++
++! Shape conforms so bounds follow allocation.
++  allocate (e(4:7, 11:12))
++  e = matmul (c(2:5,:), d(:, 3:4))
++  if (any ([lbound(e), ubound(e), size(e), shape (e)] .ne. [4,11,7,12,8,4,2])) call abort
++end
 Index: gcc/testsuite/gfortran.dg/init_flag_8.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/init_flag_8.f90  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/init_flag_8.f90  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gfortran.dg/init_flag_8.f90  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,18 @@
 +! { dg-do compile }
 +! { dg-options "-fno-automatic -finit-local-zero" }
@@ -2707,10 +3130,42 @@ Index: gcc/testsuite/gfortran.dg/init_flag_8.f90
 +         A(J) = DUMMY(J)
 +      END DO 
 +      END SUBROUTINE FOO
+Index: gcc/testsuite/gcc.c-torture/execute/20120207-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/20120207-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/20120207-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,27 @@
++/* PR middle-end/51994 */
++/* Testcase by Uros Bizjak <ubizjak@gmail.com> */
++
++extern char *strcpy (char *, const char *);
++extern void abort (void);
++
++char __attribute__((noinline))
++test (int a)
++{
++  char buf[16];
++  char *output = buf;
++
++  strcpy (&buf[0], "0123456789");
++
++  output += a;
++  output -= 1;
++
++  return output[0];
++}
++
++int main ()
++{
++  if (test (2) != '1')
++    abort ();
++
++  return 0;
++}
 Index: gcc/testsuite/gcc.c-torture/execute/doloop-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/doloop-1.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/doloop-1.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/doloop-1.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,18 @@
 +#include <limits.h>
 +
@@ -2733,7 +3188,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/doloop-1.c
 Index: gcc/testsuite/gcc.c-torture/execute/20120111-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/20120111-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20120111-1.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/20120111-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,18 @@
 +#include <stdlib.h>
 +#include <stdint.h>
@@ -2756,7 +3211,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/20120111-1.c
 Index: gcc/testsuite/gcc.c-torture/execute/pr51466.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr51466.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr51466.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/pr51466.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,43 @@
 +/* PR tree-optimization/51466 */
 +
@@ -2804,7 +3259,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr51466.c
 Index: gcc/testsuite/gcc.c-torture/execute/20111212-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/20111212-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20111212-1.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/20111212-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,34 @@
 +/* PR tree-optimization/50569 */
 +/* Reported by Paul Koning <pkoning@gcc.gnu.org> */
@@ -2843,7 +3298,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/20111212-1.c
 Index: gcc/testsuite/gcc.c-torture/execute/20120105-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/20120105-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20120105-1.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/20120105-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,24 @@
 +struct __attribute__((packed)) S
 +{
@@ -2872,7 +3327,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/20120105-1.c
 Index: gcc/testsuite/gcc.c-torture/execute/pr51323.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr51323.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr51323.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/pr51323.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,35 @@
 +/* PR middle-end/51323 */
 +
@@ -2909,10 +3364,43 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr51323.c
 +  bar (9, s);
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.c-torture/execute/pr52129.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr52129.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr52129.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,28 @@
++/* PR target/52129 */
++
++extern void abort (void);
++struct S { void *p; unsigned int q; };
++struct T { char a[64]; char b[64]; } t;
++
++__attribute__((noinline, noclone)) int
++foo (void *x, struct S s, void *y, void *z)
++{
++  if (x != &t.a[2] || s.p != &t.b[5] || s.q != 27 || y != &t.a[17] || z != &t.b[17])
++    abort ();
++  return 29;
++}
++
++__attribute__((noinline, noclone)) int
++bar (void *x, void *y, void *z, struct S s, int t, struct T *u)
++{
++  return foo (x, s, &u->a[t], &u->b[t]);
++}
++
++int
++main ()
++{
++  struct S s = { &t.b[5], 27 };
++  if (bar (&t.a[2], (void *) 0, (void *) 0, s, 17, &t) != 29)
++    abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.c-torture/execute/20111208-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/20111208-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/20111208-1.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/20111208-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,94 @@
 +/* PR tree-optimization/51315 */
 +/* Reported by Jurij Smakov <jurij@wooyd.org> */
@@ -3011,7 +3499,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/20111208-1.c
 Index: gcc/testsuite/gcc.c-torture/execute/doloop-2.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/doloop-2.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/doloop-2.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/execute/doloop-2.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,18 @@
 +#include <limits.h>
 +
@@ -3034,7 +3522,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/doloop-2.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr51077.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr51077.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr51077.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/compile/pr51077.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,15 @@
 +/* PR middle-end/51077 */
 +
@@ -3051,10 +3539,25 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr51077.c
 +      y = (struct S *) &y->t[z];
 +    }
 +}
+Index: gcc/testsuite/gcc.c-torture/compile/pr52074.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr52074.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr52074.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,10 @@
++/* PR middle-end/52074 */
++
++struct S { const char *d, *e; } __attribute__((packed));
++
++void
++foo (const char **p, struct S *q)
++{
++  *p = "abcdef";
++  q->d = "ghijk";
++}
 Index: gcc/testsuite/gcc.c-torture/compile/20110913-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/20110913-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/20110913-1.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.c-torture/compile/20110913-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,26 @@
 +struct ieee754_double {
 +  double d;
@@ -3082,10 +3585,38 @@ Index: gcc/testsuite/gcc.c-torture/compile/20110913-1.c
 +    }
 +  return x;
 +}
+Index: gcc/testsuite/gcc.c-torture/compile/pr51767.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr51767.c      (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr51767.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,23 @@
++/* PR rtl-optimization/51767 */
++
++extern void fn1 (void), fn2 (void);
++
++static inline __attribute__((always_inline)) int
++foo (int *x, long y)
++{
++  asm goto ("" : : "r" (x), "r" (y) : "memory" : lab);
++  return 0;
++lab:
++  return 1;
++}
++
++void
++bar (int *x)
++{
++  if (foo (x, 23))
++    fn1 ();
++  else
++    fn2 ();
++
++  foo (x, 2);
++}
 Index: gcc/testsuite/gnat.dg/frame_overflow.adb
 ===================================================================
---- gcc/testsuite/gnat.dg/frame_overflow.adb   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gnat.dg/frame_overflow.adb   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gnat.dg/frame_overflow.adb   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gnat.dg/frame_overflow.adb   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,27 +1,20 @@
  -- { dg-do compile }
  
@@ -3132,7 +3663,7 @@ Index: gcc/testsuite/gnat.dg/frame_overflow.adb
 Index: gcc/testsuite/gnat.dg/frame_overflow.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/frame_overflow.ads   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/frame_overflow.ads   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gnat.dg/frame_overflow.ads   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,17 @@
 +with System;
 +
@@ -3154,7 +3685,7 @@ Index: gcc/testsuite/gnat.dg/frame_overflow.ads
 Index: gcc/testsuite/gnat.dg/renaming5.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/renaming5.adb        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/renaming5.adb        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gnat.dg/renaming5.adb        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,30 @@
 +-- PR ada/46192
 +-- Testcase by Rolf Ebert <rolf.ebert.gcc@gmx.de>
@@ -3189,7 +3720,7 @@ Index: gcc/testsuite/gnat.dg/renaming5.adb
 Index: gcc/testsuite/gnat.dg/renaming5.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/renaming5.ads        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/renaming5.ads        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gnat.dg/renaming5.ads        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,5 @@
 +package Renaming5 is
 +
@@ -3198,8 +3729,8 @@ Index: gcc/testsuite/gnat.dg/renaming5.ads
 +end Renaming5;
 Index: gcc/testsuite/gnat.dg/specs/addr1.ads
 ===================================================================
---- gcc/testsuite/gnat.dg/specs/addr1.ads      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gnat.dg/specs/addr1.ads      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gnat.dg/specs/addr1.ads      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gnat.dg/specs/addr1.ads      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -15,7 +15,7 @@
    end record;
    for Rec2'Size use 64;
@@ -3211,8 +3742,8 @@ Index: gcc/testsuite/gnat.dg/specs/addr1.ads
    for Obj1'Address use A'Address; -- { dg-bogus "alignment" }
 Index: gcc/testsuite/gcc.dg/pr45819.c
 ===================================================================
---- gcc/testsuite/gcc.dg/pr45819.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gcc.dg/pr45819.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gcc.dg/pr45819.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gcc.dg/pr45819.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,5 +1,5 @@
  /* { dg-do compile } */
 -/* { dg-options "-O2 -fdump-tree-optimized" } */
@@ -3220,10 +3751,90 @@ Index: gcc/testsuite/gcc.dg/pr45819.c
  
  struct ehci_regs {
      char x;
+Index: gcc/testsuite/gcc.dg/pr52139.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr52139.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr52139.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,49 @@
++/* PR rtl-optimization/52139 */
++/* { dg-do compile } */
++/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre" } */
++/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre -fpic" { target fpic } } */
++
++void *p;
++
++void
++foo (int a)
++{
++  switch (a)
++    {
++    case 0:
++    a0:
++    case 1:
++    a1:
++      p = &&a1;
++    case 2:
++    a2:
++      p = &&a2;
++    case 3:
++    a3:
++      p = &&a3;
++    case 4:
++    a4:
++      p = &&a4;
++    case 5:
++    a5:
++      p = &&a5;
++    case 6:
++    a6:
++      p = &&a6;
++    case 7:
++    a7:
++      p = &&a7;
++    case 8:
++    a8:
++      p = &&a8;
++    case 9:
++    a9:
++      p = &&a9;
++    case 10:
++    a10:
++      p = &&a10;
++    default:
++      p = &&a0;
++    }
++  goto *p;
++}
+Index: gcc/testsuite/gcc.dg/gomp/pr51360.c
+===================================================================
+--- gcc/testsuite/gcc.dg/gomp/pr51360.c        (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/gomp/pr51360.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,21 @@
++/* PR c/51360 */
++/* { dg-do compile } */
++/* { dg-options "-Wunused -W -fopenmp" } */
++
++void
++foo (int a, int b, int c)
++{
++  int m, n, o, i;
++  m = 6;
++  n = 1;
++  o = 5;
++  a = 6;
++  b = 1;
++  c = 5;
++  #pragma omp parallel for num_threads (m) if (n) schedule (static, o)
++  for (i = 0; i < 10; i++)
++    ;
++  #pragma omp parallel for num_threads (a) if (b) schedule (static, c)
++  for (i = 0; i < 10; i++)
++    ;
++}
 Index: gcc/testsuite/gcc.dg/gomp/pr51339.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/gomp/pr51339.c        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/gomp/pr51339.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/gomp/pr51339.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,15 @@
 +/* PR c/51339 */
 +/* { dg-do compile } */
@@ -3242,8 +3853,8 @@ Index: gcc/testsuite/gcc.dg/gomp/pr51339.c
 +}
 Index: gcc/testsuite/gcc.dg/cpp/assert4.c
 ===================================================================
---- gcc/testsuite/gcc.dg/cpp/assert4.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gcc.dg/cpp/assert4.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gcc.dg/cpp/assert4.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gcc.dg/cpp/assert4.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,4 +1,4 @@
 -/* Copyright (C) 2003, 2006, 2008 Free Software Foundation, Inc.
 +/* Copyright (C) 2003, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
@@ -3262,7 +3873,7 @@ Index: gcc/testsuite/gcc.dg/cpp/assert4.c
 Index: gcc/testsuite/gcc.dg/pr50078.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr50078.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr50078.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/pr50078.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,14 @@
 +/* PR tree-optimization/50078 */
 +/* { dg-do compile } */
@@ -3281,7 +3892,7 @@ Index: gcc/testsuite/gcc.dg/pr50078.c
 Index: gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,13 @@
 +/* PR debug/51410 */
 +/* { dg-do compile } */
@@ -3299,7 +3910,7 @@ Index: gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
 Index: gcc/testsuite/gcc.dg/pr51821.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr51821.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr51821.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/pr51821.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,25 @@
 +/* { dg-do run } */
 +/* { dg-options "-std=c99 -O2" } */
@@ -3326,10 +3937,25 @@ Index: gcc/testsuite/gcc.dg/pr51821.c
 +
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.dg/dfp/pr52140.c
+===================================================================
+--- gcc/testsuite/gcc.dg/dfp/pr52140.c (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/dfp/pr52140.c (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,10 @@
++/* { dg-do compile } */
++/* { dg-options "-O1" } */
++
++/* This used to result in an ICE.  */
++
++int
++foo (_Decimal64 x, _Decimal64 y)
++{
++  return (x < y) || (x > y);
++}
 Index: gcc/testsuite/gcc.dg/volatile-bitfields-1.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/volatile-bitfields-1.c        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/volatile-bitfields-1.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/volatile-bitfields-1.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,23 @@
 +/* { dg-options "-fstrict-volatile-bitfields" } */
 +/* { dg-do run } */
@@ -3357,7 +3983,7 @@ Index: gcc/testsuite/gcc.dg/volatile-bitfields-1.c
 Index: gcc/testsuite/gcc.dg/pr51408.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr51408.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr51408.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/pr51408.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,22 @@
 +/* This testcase used to fail because of a bug in 
 +   arm.md:*minmax_arithsi.  */
@@ -3384,7 +4010,7 @@ Index: gcc/testsuite/gcc.dg/pr51408.c
 Index: gcc/testsuite/gcc.dg/torture/pr50396.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr50396.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr50396.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/torture/pr50396.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,22 @@
 +/* { dg-do run } */
 +/* { dg-add-options ieee } */
@@ -3411,7 +4037,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr50396.c
 Index: gcc/testsuite/gcc.dg/torture/pr51042.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr51042.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr51042.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/torture/pr51042.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,22 @@
 +/* { dg-do compile } */
 +
@@ -3438,7 +4064,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr51042.c
 Index: gcc/testsuite/gcc.dg/torture/pr51070-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr51070-2.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr51070-2.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/torture/pr51070-2.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,35 @@
 +/* { dg-do compile } */
 +/* { dg-options "-fno-inline" } */
@@ -3478,7 +4104,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr51070-2.c
 Index: gcc/testsuite/gcc.dg/torture/pr51070.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr51070.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr51070.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/torture/pr51070.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,34 @@
 +/* { dg-do compile } */
 +
@@ -3514,10 +4140,110 @@ Index: gcc/testsuite/gcc.dg/torture/pr51070.c
 +    }
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.dg/torture/pr52060.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr52060.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr52060.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,57 @@
++/* PR rtl-optimization/52060 */
++/* { dg-do run { target int32plus } } */
++
++extern void abort (void);
++union U { float f; unsigned int i; };
++
++static inline __attribute__((always_inline)) unsigned int
++foo (float x)
++{
++  union U u;
++  unsigned int a, b, c;
++  int d;
++  int e;
++  u.f = x;
++  d = ((unsigned) u.i >> 23) & 0xFF;
++  c = d < 126 ? 0 : ~0;
++  e = 127 + 30 - d;
++  a = (u.i << 8) | 0x80000000U;
++  b = a & ((1 << e) - 1);
++  a = a >> e;
++  c &= (b | (a & 2)) ? ~0 : ~1;
++  a = ((a + 1U) >> 1) & c;
++  return a;
++}
++
++__attribute__((noinline)) unsigned int
++bar (float x)
++{
++  unsigned int a, b, c;
++  static const unsigned int d[128] =
++  {
++    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++    3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7
++  };
++  a = foo (1048575.0f * x);
++  c = d[a >> 13];
++  b = (c << 13) | ((a >> (7 - c)) & 0x1fff);
++  return b;
++}
++
++int
++main ()
++{
++  union U u;
++  u.f = 1048575.0f;
++  if (sizeof (u.i) == sizeof (u.f)
++      && u.i == 0x497ffff0U
++      && bar (1.0f) != 65535)
++    abort ();
++  return 0;
++}
+Index: gcc/testsuite/gcc.dg/torture/pr51106-1.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr51106-1.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr51106-1.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,14 @@
++/* PR target/51106 */
++/* { dg-do "compile" } */
++/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
++
++int
++foo (int x)
++{
++  asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
++  return 1;
++lab:
++  return 0;
++}
++
++/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
+Index: gcc/testsuite/gcc.dg/torture/pr51106-2.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr51106-2.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr51106-2.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,14 @@
++/* PR target/51106 */
++/* { dg-do "compile" } */
++/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
++
++int
++bar (int x)
++{
++  asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
++  __builtin_unreachable ();
++lab:
++  return 0;
++}
++
++/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
 Index: gcc/testsuite/gcc.dg/tree-ssa/pr49642.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/pr49642.c    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr49642.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/tree-ssa/pr49642.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,49 @@
 +/* Verify that ipa-split is disabled following __builtin_constant_p.  */
 +
@@ -3570,8 +4296,8 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pr49642.c
 +/* { dg-final { cleanup-tree-dump "optimized" } } */
 Index: gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,5 +1,5 @@
  /* { dg-do compile } */
 -/* { dg-options "-O2 -fno-tree-ccp -fdump-tree-ealias" } */
@@ -3581,8 +4307,8 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
  struct X {
 Index: gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,5 +1,5 @@
  /* { dg-do compile } */
 -/* { dg-options "-O2 -fno-tree-ccp -fdump-tree-ealias" } */
@@ -3593,7 +4319,7 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
 Index: gcc/testsuite/gcc.dg/tree-ssa/pr51583.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/pr51583.c    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr51583.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/tree-ssa/pr51583.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,34 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O1" } */
@@ -3629,10 +4355,115 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pr51583.c
 +
 +  return s.u.v;
 +}
+Index: gcc/testsuite/gcc.dg/pr51695.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr51695.c     (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr51695.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,52 @@
++/* PR debug/51695 */
++/* { dg-do compile { target { int32plus } } } */
++/* { dg-options "-O2 -g" } */
++
++typedef struct
++{
++  struct { unsigned int t1, t2, t3, t4, t5, t6; } t;
++  int p;
++  struct { double X, Y, Z; } r;
++} T;
++typedef struct { T *h; } S;
++
++static unsigned int v = 0x12345678;
++
++int
++foo (void)
++{
++  v = (v & 0x80000000) ? ((v << 1) ^ 0xa398655d) : (v << 1);
++  return 0;
++}
++
++double
++bar (void)
++{
++  unsigned int o;
++  v = (v & 0x80000000) ? ((v << 1) ^ 0xa398655d) : (v << 1);
++  o = v & 0xffff;
++  return (double) o / 32768.0;
++}
++
++int
++baz (void)
++{
++  foo ();
++  return 0;
++}
++
++void
++test (S *x)
++{
++  T *t = x->h;
++  t->t.t1 = foo ();
++  t->t.t2 = foo ();
++  t->t.t3 = foo ();
++  t->t.t4 = foo ();
++  t->t.t5 = foo ();
++  t->t.t6 = foo ();
++  t->p = baz ();
++  t->r.X = bar ();
++  t->r.Y = bar ();
++  t->r.Z = bar ();
++}
+Index: gcc/testsuite/gcc.dg/tree-prof/pr44777.c
+===================================================================
+--- gcc/testsuite/gcc.dg/tree-prof/pr44777.c   (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/tree-prof/pr44777.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,43 @@
++/* PR middle-end/44777 */
++/* { dg-options "-O0" } */
++/* A variant of gcc.c-torture/execute/comp-goto-2.c.  */
++
++extern void abort (void);
++extern void exit (int);
++
++#ifdef STACK_SIZE
++#define DEPTH ((STACK_SIZE) / 512 + 1)
++#else
++#define DEPTH 1000
++#endif
++
++#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
++int
++x (int a)
++{
++  __label__ xlab;
++  void y (int a)
++    {
++      void *x = &&llab;
++      if (a==-1)
++      goto *x;
++      if (a==0)
++      goto xlab;
++    llab:
++      y (a-1);
++    }
++  y (a);
++ xlab:;
++  return a;
++}
++#endif
++
++int
++main ()
++{
++#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
++  if (x (DEPTH) != DEPTH)
++    abort ();
++#endif
++  exit (0);
++}
 Index: gcc/testsuite/gcc.dg/delay-slot-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/delay-slot-2.c        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/delay-slot-2.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/gcc.dg/delay-slot-2.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,116 @@
 +/* PR rtl-optimization/51187 */
 +/* Reported by Jurij Smakov <jurij@wooyd.org> */
@@ -3752,8 +4583,8 @@ Index: gcc/testsuite/gcc.dg/delay-slot-2.c
 +/* { dg-final { scan-assembler "printf" } } */
 Index: gcc/testsuite/ada/acats/overflow.lst
 ===================================================================
---- gcc/testsuite/ada/acats/overflow.lst       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/ada/acats/overflow.lst       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/ada/acats/overflow.lst       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/ada/acats/overflow.lst       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -14,3 +14,4 @@
  c460008
  c460011
@@ -3761,9 +4592,106 @@ Index: gcc/testsuite/ada/acats/overflow.lst
 +cb20004
 Index: gcc/testsuite/ChangeLog
 ===================================================================
---- gcc/testsuite/ChangeLog    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,411 @@
+--- gcc/testsuite/ChangeLog    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,508 @@
++2012-02-09  Jakub Jelinek  <jakub@redhat.com>
++
++      Backported from mainline
++      2012-02-08  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/52139
++      * gcc.dg/pr52139.c: New test.
++
++      2012-02-07  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/52060
++      * gcc.dg/torture/pr52060.c: New test.
++
++      PR middle-end/52074
++      * gcc.c-torture/compile/pr52074.c: New test.
++
++      2012-02-06  Jakub Jelinek  <jakub@redhat.com>
++
++      PR target/52129
++      * gcc.c-torture/execute/pr52129.c: New test.
++
++      2012-01-28  Jakub Jelinek  <jakub@redhat.com>
++
++      PR target/52006
++      * gcc.target/arm/pr52006.c: New test.
++
++      2012-01-05  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/51767
++      * gcc.c-torture/compile/pr51767.c: New test.
++
++      PR middle-end/51768
++      * c-c++-common/pr51768.c: New test.
++
++      PR middle-end/44777
++      * gcc.dg/tree-prof/pr44777.c: New test.
++
++      2012-01-04  Jakub Jelinek  <jakub@redhat.com>
++
++      PR debug/51695
++      * gcc.dg/pr51695.c: New test.
++
++      2012-01-03  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c++/51669
++      * g++.dg/gomp/pr51669.C: New test.
++
++      2011-12-15  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c/51360
++      * gcc.dg/gomp/pr51360.c: New test.
++      * g++.dg/gomp/pr51360.C: New test.
++      * g++.dg/gomp/pr51360-2.C: New test.
++
++2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
++
++      Backport from mainline
++      2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
++
++      PR middle-end/52140
++      * gcc.dg/dfp/pr52140.c: New test.
++
++2012-02-09  Andrey Belevantsev  <abel@ispras.ru>
++
++      Backport from mainline
++      2012-01-20  Jakub Jelinek  <jakub@redhat.com>
++
++      PR target/51106
++      * gcc.dg/torture/pr51106-1.c: New test.
++      * gcc.dg/torture/pr51106-2.c: New test.
++
++2012-02-08  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/52151
++      * gfortran.dg/realloc_on_assign_12.f90: New.
++
++2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
++
++      * gcc.c-torture/execute/20120207-1.c: New test.
++
++2012-02-03  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/52093
++      * gfortran.dg/shape_7.f90: New.
++
++2012-02-03  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/52012
++      * gfortran.dg/realloc_on_assign_10.f90: New test.
++      * gfortran.dg/realloc_on_assign_11.f90: New test.
++
++2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
++
++      Backport from mainline r183796
++      PR rtl-optimization/51374
++      * gcc.target/avr/torture/pr51374-1.c: New.
++
 +2012-01-30  Bin Cheng  <bin.cheng@arm.com>
 +
 +      Backport from mainline.
@@ -4175,7 +5103,7 @@ Index: gcc/testsuite/ChangeLog
  2011-10-26  Release Manager
  
        * GCC 4.6.2 released.
-@@ -9,9 +417,9 @@
+@@ -9,9 +514,9 @@
  
  2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
  
@@ -4191,7 +5119,7 @@ Index: gcc/testsuite/ChangeLog
 Index: gcc/testsuite/g++.dg/vect/pr51485.cc
 ===================================================================
 --- gcc/testsuite/g++.dg/vect/pr51485.cc       (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/vect/pr51485.cc       (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/vect/pr51485.cc       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,14 @@
 +/* { dg-do compile } */
 +
@@ -4210,7 +5138,7 @@ Index: gcc/testsuite/g++.dg/vect/pr51485.cc
 Index: gcc/testsuite/g++.dg/pr48660.C
 ===================================================================
 --- gcc/testsuite/g++.dg/pr48660.C     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/pr48660.C     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/pr48660.C     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,22 @@
 +template<int N> struct val { char a[N]; };
 +
@@ -4237,7 +5165,7 @@ Index: gcc/testsuite/g++.dg/pr48660.C
 Index: gcc/testsuite/g++.dg/abi/mangle60.C
 ===================================================================
 --- gcc/testsuite/g++.dg/abi/mangle60.C        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/abi/mangle60.C        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/abi/mangle60.C        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,21 @@
 +// PR c++/51854
 +// { dg-options "" }
@@ -4248,11 +5176,11 @@ Index: gcc/testsuite/g++.dg/abi/mangle60.C
 +template <typename U, typename V>
 +char foo(U, V);
 +
-+// { dg-final { scan-assembler "_Z3barIiEvP1AIXszcl3foocvT__ELCi0_42EEEE" } }
++// { not-dg-final { scan-assembler "_Z3barIiEvP1AIXszcl3foocvT__ELCi0_42EEEE" } }
 +template <typename U>
 +void bar(A<sizeof(foo(U(), 42i))> *);
 +
-+// { dg-final { scan-assembler "_Z3bazIiEvP1AIXszcl3foocvT__ELCf00000000_00000000EEEE" } }
++// { not-dg-final { scan-assembler "_Z3bazIiEvP1AIXszcl3foocvT__ELCf00000000_00000000EEEE" } }
 +template <typename U>
 +void baz(A<sizeof(foo(U(), 0.0fj))> *);
 +
@@ -4260,10 +5188,106 @@ Index: gcc/testsuite/g++.dg/abi/mangle60.C
 +   bar<int>(0);
 +   baz<int>(0);
 +}
+Index: gcc/testsuite/g++.dg/gomp/pr51669.C
+===================================================================
+--- gcc/testsuite/g++.dg/gomp/pr51669.C        (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/gomp/pr51669.C        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,32 @@
++// PR c++/51669
++// { dg-do compile }
++// { dg-options "-fopenmp" }
++
++template <typename T> const T & min (const T &, const T &);
++
++void
++f1 ()
++{
++#pragma omp parallel num_threads (min (4, 5))
++  ;
++}
++
++struct A { A (); ~A (); };
++int foo (const A &);
++
++void
++f2 ()
++{
++  int i;
++#pragma omp parallel if (foo (A ())) num_threads (foo (A ()))
++  ;
++#pragma omp task if (foo (A ()))
++  ;
++#pragma omp for schedule (static, foo (A ()))
++  for (i = 0; i < 10; i++)
++    ;
++#pragma omp parallel for schedule (static, foo (A ())) \
++  if (foo (A ())) num_threads (foo (A ()))
++  for (i = 0; i < 10; i++)
++    ;
++}
+Index: gcc/testsuite/g++.dg/gomp/pr51360-2.C
+===================================================================
+--- gcc/testsuite/g++.dg/gomp/pr51360-2.C      (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/gomp/pr51360-2.C      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,21 @@
++/* PR c/51360 */
++/* { dg-do compile } */
++/* { dg-options "-Wunused -W -fopenmp" } */
++
++void
++foo (int a, int b, int c)
++{
++  int m, n, o, i;
++  m = 6;
++  n = 1;
++  o = 5;
++  a = 6;
++  b = 1;
++  c = 5;
++  #pragma omp parallel for num_threads (m) if (n) schedule (static, o)
++  for (i = 0; i < 10; i++)
++    ;
++  #pragma omp parallel for num_threads (a) if (b) schedule (static, c)
++  for (i = 0; i < 10; i++)
++    ;
++}
+Index: gcc/testsuite/g++.dg/gomp/pr51360.C
+===================================================================
+--- gcc/testsuite/g++.dg/gomp/pr51360.C        (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/gomp/pr51360.C        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,28 @@
++// PR c/51360
++// { dg-do compile }
++// { dg-options "-Wunused -W -fopenmp" }
++
++template <typename T>
++void
++foo (T a, T b, T c)
++{
++  T m, n, o, i;
++  m = 6;
++  n = 1;
++  o = 5;
++  a = 6;
++  b = 1;
++  c = 5;
++  #pragma omp parallel for num_threads (m) if (n) schedule (static, o)
++  for (i = 0; i < 10; i++)
++    ;
++  #pragma omp parallel for num_threads (a) if (b) schedule (static, c)
++  for (i = 0; i < 10; i++)
++    ;
++}
++
++void
++bar ()
++{
++  foo (0, 0, 0);
++}
 Index: gcc/testsuite/g++.dg/init/value10.C
 ===================================================================
 --- gcc/testsuite/g++.dg/init/value10.C        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/init/value10.C        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/init/value10.C        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,27 @@
 +// PR c++/51331
 +// { dg-do run }
@@ -4295,7 +5319,7 @@ Index: gcc/testsuite/g++.dg/init/value10.C
 Index: gcc/testsuite/g++.dg/other/enum2.C
 ===================================================================
 --- gcc/testsuite/g++.dg/other/enum2.C (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/enum2.C (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/other/enum2.C (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,3 @@
 +// PR c++/51248
 +
@@ -4303,7 +5327,7 @@ Index: gcc/testsuite/g++.dg/other/enum2.C
 Index: gcc/testsuite/g++.dg/other/offsetof7.C
 ===================================================================
 --- gcc/testsuite/g++.dg/other/offsetof7.C     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/offsetof7.C     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/other/offsetof7.C     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,17 @@
 +// PR c++/50608
 +// Testcase by <dberger@oubliette.org>
@@ -4325,7 +5349,7 @@ Index: gcc/testsuite/g++.dg/other/offsetof7.C
 Index: gcc/testsuite/g++.dg/tree-ssa/pr50622.C
 ===================================================================
 --- gcc/testsuite/g++.dg/tree-ssa/pr50622.C    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/tree-ssa/pr50622.C    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/tree-ssa/pr50622.C    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,30 @@
 +// { dg-do compile }
 +// { dg-options "-O2" }
@@ -4360,7 +5384,7 @@ Index: gcc/testsuite/g++.dg/tree-ssa/pr50622.C
 Index: gcc/testsuite/g++.dg/cpp0x/auto31.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/auto31.C        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/auto31.C        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/auto31.C        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,12 @@
 +// PR c++/51416
 +// { dg-options "-std=c++0x" }
@@ -4377,7 +5401,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/auto31.C
 Index: gcc/testsuite/g++.dg/cpp0x/pr50901.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/pr50901.C       (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/pr50901.C       (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/pr50901.C       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,9 @@
 +// { dg-options "-std=c++0x" }
 +
@@ -4390,8 +5414,8 @@ Index: gcc/testsuite/g++.dg/cpp0x/pr50901.C
 +int i = foo<float>(1);
 Index: gcc/testsuite/g++.dg/cpp0x/variadic103.C
 ===================================================================
---- gcc/testsuite/g++.dg/cpp0x/variadic103.C   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/g++.dg/cpp0x/variadic103.C   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/g++.dg/cpp0x/variadic103.C   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/g++.dg/cpp0x/variadic103.C   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -5,7 +5,7 @@
  
  template<class T, class... Args>
@@ -4404,7 +5428,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/variadic103.C
 Index: gcc/testsuite/g++.dg/cpp0x/decltype35.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/decltype35.C    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/decltype35.C    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/decltype35.C    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,15 @@
 +// PR c++/50870
 +// { dg-options -std=c++0x }
@@ -4424,7 +5448,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/decltype35.C
 Index: gcc/testsuite/g++.dg/cpp0x/decltype36.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/decltype36.C    (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/decltype36.C    (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/decltype36.C    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,21 @@
 +// PR c++/51265
 +// { dg-options -std=c++0x }
@@ -4450,7 +5474,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/decltype36.C
 Index: gcc/testsuite/g++.dg/cpp0x/pr51150.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/pr51150.C       (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/pr51150.C       (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/pr51150.C       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,20 @@
 +// PR c++/51150
 +// { dg-options "-std=c++0x" }
@@ -4475,7 +5499,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/pr51150.C
 Index: gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,17 @@
 +// PR c++/51868
 +// { dg-options -std=c++0x }
@@ -4497,7 +5521,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C
 Index: gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C   (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C   (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,12 @@
 +// { dg-options -std=c++0x }
 +
@@ -4514,7 +5538,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C
 Index: gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/rv-cast3.C      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/rv-cast3.C      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/rv-cast3.C      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,18 @@
 +// PR c++/51406
 +// { dg-do run }
@@ -4537,7 +5561,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
 Index: gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/rv-cast4.C      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/rv-cast4.C      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/cpp0x/rv-cast4.C      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,13 @@
 +// PR c++/51161
 +// { dg-options "-std=c++0x" }
@@ -4554,8 +5578,8 @@ Index: gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
 +}
 Index: gcc/testsuite/g++.dg/gcov/gcov-2.C
 ===================================================================
---- gcc/testsuite/g++.dg/gcov/gcov-2.C (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/testsuite/g++.dg/gcov/gcov-2.C (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/testsuite/g++.dg/gcov/gcov-2.C (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/testsuite/g++.dg/gcov/gcov-2.C (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -20,7 +20,7 @@
  
  void foo()
@@ -4568,7 +5592,7 @@ Index: gcc/testsuite/g++.dg/gcov/gcov-2.C
 Index: gcc/testsuite/g++.dg/torture/pr51344.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr51344.C     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr51344.C     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/torture/pr51344.C     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,11 @@
 +/* { dg-do compile { target { i?86-*-* && ilp32 } } } */
 +class A;
@@ -4584,7 +5608,7 @@ Index: gcc/testsuite/g++.dg/torture/pr51344.C
 Index: gcc/testsuite/g++.dg/torture/pr49720.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr49720.C     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr49720.C     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/torture/pr49720.C     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,8 @@
 +/* { dg-do compile } */
 +
@@ -4597,7 +5621,7 @@ Index: gcc/testsuite/g++.dg/torture/pr49720.C
 Index: gcc/testsuite/g++.dg/ipa/pr51759.C
 ===================================================================
 --- gcc/testsuite/g++.dg/ipa/pr51759.C (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ipa/pr51759.C (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ gcc/testsuite/g++.dg/ipa/pr51759.C (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,26 @@
 +/* { dg-do run } */
 +/* { dg-options "-O2"  } */
@@ -4625,10 +5649,40 @@ Index: gcc/testsuite/g++.dg/ipa/pr51759.C
 +    abort ();
 +}
 +
+Index: gcc/testsuite/c-c++-common/pr51768.c
+===================================================================
+--- gcc/testsuite/c-c++-common/pr51768.c       (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ gcc/testsuite/c-c++-common/pr51768.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,25 @@
++/* PR middle-end/51768 */
++/* { dg-do compile } */
++/* { dg-options "" } */
++
++void
++foo (void)
++{
++  asm goto ("" : : : : lab, lab, lab2, lab);  /* { dg-error "duplicate asm operand name" } */
++lab:;
++lab2:;
++}
++
++void
++bar (void)
++{
++  asm goto ("" : : [lab] "i" (0) : : lab);    /* { dg-error "duplicate asm operand name" } */
++lab:;
++}
++
++void
++baz (void)
++{
++  int x;
++  asm ("" : [lab] "=r" (x) : [lab] "r" (x));  /* { dg-error "duplicate asm operand name" } */
++}
 Index: gcc/cp/typeck.c
 ===================================================================
---- gcc/cp/typeck.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/typeck.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/typeck.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/typeck.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -4835,9 +4835,7 @@
        && TREE_CONSTANT (TREE_OPERAND (val, 0)))
      {
@@ -4689,8 +5743,8 @@ Index: gcc/cp/typeck.c
    /* Resolve overloaded address here rather than once in
 Index: gcc/cp/init.c
 ===================================================================
---- gcc/cp/init.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/init.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/init.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/init.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -141,7 +141,9 @@
     zero-initialization does not simply mean filling the storage with
     zero bytes.  FIELD_SIZE, if non-NULL, is the bit size of the field,
@@ -4717,8 +5771,8 @@ Index: gcc/cp/init.c
        gcc_assert (!TYPE_NEEDS_CONSTRUCTING (type));
 Index: gcc/cp/class.c
 ===================================================================
---- gcc/cp/class.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/class.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/class.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/class.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -464,7 +464,14 @@
      /* Is this the base field created by build_base_field?  */
      if (TREE_CODE (field) == FIELD_DECL
@@ -4748,8 +5802,8 @@ Index: gcc/cp/class.c
        /* We use fold_build2 and fold_convert below to simplify the trees
 Index: gcc/cp/decl.c
 ===================================================================
---- gcc/cp/decl.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/decl.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/decl.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/decl.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -11540,15 +11540,19 @@
  static void
  copy_type_enum (tree dst, tree src)
@@ -4814,9 +5868,24 @@ Index: gcc/cp/decl.c
  
 Index: gcc/cp/ChangeLog
 ===================================================================
---- gcc/cp/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,79 @@
+--- gcc/cp/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,94 @@
++2012-02-09  Jakub Jelinek  <jakub@redhat.com>
++
++      Backported from mainline
++      2012-01-03  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c++/51669
++      * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
++      on OMP_CLAUSE_{IF,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
++
++      2011-12-15  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c/51360
++      * semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
++      and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.
++
 +2012-01-19  Kai Tietz  <ktietz@redhat.com>
 +
 +      PR c++/51344
@@ -4898,8 +5967,8 @@ Index: gcc/cp/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/cp/pt.c
 ===================================================================
---- gcc/cp/pt.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/pt.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/pt.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/pt.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -11439,6 +11439,9 @@
        mark_used (t);
        return t;
@@ -4934,8 +6003,8 @@ Index: gcc/cp/pt.c
              {
 Index: gcc/cp/semantics.c
 ===================================================================
---- gcc/cp/semantics.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/semantics.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/semantics.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/semantics.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3348,7 +3348,7 @@
      }
    if (TREE_CODE (expr) == INDIRECT_REF && REFERENCE_REF_P (expr))
@@ -4944,8 +6013,45 @@ Index: gcc/cp/semantics.c
 +  return fold_offsetof (expr);
  }
  
- /* Replace the AGGR_INIT_EXPR at *TP with an equivalent CALL_EXPR.  This
-@@ -4927,8 +4927,9 @@
+ /* Replace the AGGR_INIT_EXPR at *TP with an equivalent CALL_EXPR.  This
+@@ -3804,6 +3804,8 @@
+         t = maybe_convert_cond (t);
+         if (t == error_mark_node)
+           remove = true;
++        else if (!processing_template_decl)
++          t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
+         OMP_CLAUSE_IF_EXPR (c) = t;
+         break;
+@@ -3817,6 +3819,13 @@
+             error ("num_threads expression must be integral");
+             remove = true;
+           }
++        else
++          {
++            t = mark_rvalue_use (t);
++            if (!processing_template_decl)
++              t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
++            OMP_CLAUSE_NUM_THREADS_EXPR (c) = t;
++          }
+         break;
+       case OMP_CLAUSE_SCHEDULE:
+@@ -3831,6 +3840,13 @@
+             error ("schedule chunk size expression must be integral");
+             remove = true;
+           }
++        else
++          {
++            t = mark_rvalue_use (t);
++            if (!processing_template_decl)
++              t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
++            OMP_CLAUSE_SCHEDULE_CHUNK_EXPR (c) = t;
++          }
+         break;
+       case OMP_CLAUSE_NOWAIT:
+@@ -4927,8 +4943,9 @@
            gcc_unreachable ();
  
          case INTEGER_CST:
@@ -4958,8 +6064,8 @@ Index: gcc/cp/semantics.c
  
 Index: gcc/cp/decl2.c
 ===================================================================
---- gcc/cp/decl2.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/decl2.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/decl2.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/decl2.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1185,9 +1185,9 @@
  
    old_attrs = *q;
@@ -4974,8 +6080,8 @@ Index: gcc/cp/decl2.c
    if (!DECL_P (*decl_p) && *decl_p == TYPE_MAIN_VARIANT (*decl_p))
 Index: gcc/cp/call.c
 ===================================================================
---- gcc/cp/call.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/call.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/call.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/call.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -4996,6 +4996,7 @@
      case POSTDECREMENT_EXPR:
      case REALPART_EXPR:
@@ -4986,8 +6092,8 @@ Index: gcc/cp/call.c
      case ARRAY_REF:
 Index: gcc/cp/mangle.c
 ===================================================================
---- gcc/cp/mangle.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cp/mangle.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cp/mangle.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cp/mangle.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2770,7 +2770,8 @@
        break;
  
@@ -4998,10 +6104,32 @@ Index: gcc/cp/mangle.c
      }
  
    write_char ('E');
+Index: gcc/dojump.c
+===================================================================
+--- gcc/dojump.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/dojump.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1023,7 +1023,7 @@
+     }
+   else
+     {
+-      if (GET_MODE_CLASS (mode) == MODE_FLOAT
++      if (SCALAR_FLOAT_MODE_P (mode)
+         && ! can_compare_p (code, mode, ccp_jump)
+         && can_compare_p (swap_condition (code), mode, ccp_jump))
+       {
+@@ -1034,7 +1034,7 @@
+         op1 = tmp;
+       }
+-      else if (GET_MODE_CLASS (mode) == MODE_FLOAT
++      else if (SCALAR_FLOAT_MODE_P (mode)
+              && ! can_compare_p (code, mode, ccp_jump)
+              /* Never split ORDERED and UNORDERED.  These must be implemented.  */
 Index: gcc/lto-cgraph.c
 ===================================================================
---- gcc/lto-cgraph.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto-cgraph.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto-cgraph.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto-cgraph.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1792,9 +1792,9 @@
  {
    const struct lto_function_header *header =
@@ -5015,10 +6143,35 @@ Index: gcc/lto-cgraph.c
    struct data_in *data_in;
    struct lto_input_block ib_main;
    unsigned int i;
+Index: gcc/compare-elim.c
+===================================================================
+--- gcc/compare-elim.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/compare-elim.c (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -297,8 +297,11 @@
+       src = conforming_compare (insn);
+       if (src)
+       {
++        enum machine_mode src_mode = GET_MODE (src);
++
+         /* Eliminate a compare that's redundant with the previous.  */
+         if (last_cmp_valid
++            && src_mode == last_cmp->orig_mode
+             && rtx_equal_p (last_cmp->in_a, XEXP (src, 0))
+             && rtx_equal_p (last_cmp->in_b, XEXP (src, 1)))
+           {
+@@ -311,7 +314,7 @@
+         last_cmp->prev_clobber = last_clobber;
+         last_cmp->in_a = XEXP (src, 0);
+         last_cmp->in_b = XEXP (src, 1);
+-        last_cmp->orig_mode = GET_MODE (SET_DEST (single_set (insn)));
++        last_cmp->orig_mode = src_mode;
+         VEC_safe_push (comparison_struct_p, heap, all_compares, last_cmp);
+         /* It's unusual, but be prepared for comparison patterns that
 Index: gcc/lto-streamer-out.c
 ===================================================================
---- gcc/lto-streamer-out.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto-streamer-out.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto-streamer-out.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto-streamer-out.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2408,7 +2408,7 @@
    enum gcc_plugin_symbol_kind kind;
    enum gcc_plugin_symbol_visibility visibility;
@@ -5057,8 +6210,8 @@ Index: gcc/lto-streamer-out.c
  
 Index: gcc/dwarf2out.c
 ===================================================================
---- gcc/dwarf2out.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/dwarf2out.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/dwarf2out.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/dwarf2out.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -4431,6 +4431,11 @@
    const char *section; /* Section this loclist is relative to */
    dw_loc_descr_ref expr;
@@ -5125,7 +6278,29 @@ Index: gcc/dwarf2out.c
  /* Equate a DIE to a particular declaration.  */
  
  static void
-@@ -16995,15 +17031,22 @@
+@@ -11128,6 +11164,13 @@
+       /* Don't output an entry that starts and ends at the same address.  */
+       if (strcmp (curr->begin, curr->end) == 0)
+       continue;
++      size = size_of_locs (curr->expr);
++      /* If the expression is too large, drop it on the floor.  We could
++       perhaps put it into DW_TAG_dwarf_procedure and refer to that
++       in the expression, but >= 64KB expressions for a single value
++       in a single range are unlikely very useful.  */
++      if (size > 0xffff)
++      continue;
+       if (!have_multiple_function_sections)
+       {
+         dw2_asm_output_delta (DWARF2_ADDR_SIZE, curr->begin, curr->section,
+@@ -11146,7 +11189,6 @@
+                              "Location list end address (%s)",
+                              list_head->ll_symbol);
+       }
+-      size = size_of_locs (curr->expr);
+       /* Output the block length for this list of location operations.  */
+       gcc_assert (size <= 0xffff);
+@@ -16995,15 +17037,22 @@
     these things can crop up in other ways also.)  Note that one type of
     constant value which can be passed into an inlined function is a constant
     pointer.  This can happen for example if an actual argument in an inlined
@@ -5150,7 +6325,7 @@ Index: gcc/dwarf2out.c
  
    if (TREE_CODE (decl) == ERROR_MARK)
      return false;
-@@ -17040,7 +17083,33 @@
+@@ -17040,7 +17089,33 @@
          && add_const_value_attribute (die, rtl))
         return true;
      }
@@ -5185,7 +6360,7 @@ Index: gcc/dwarf2out.c
    if (list)
      {
        add_AT_location_description (die, attr, list);
-@@ -18738,7 +18807,7 @@
+@@ -18738,7 +18813,7 @@
          equate_decl_number_to_die (node, parm_die);
        if (! DECL_ABSTRACT (node_or_origin))
        add_location_or_const_value_attribute (parm_die, node_or_origin,
@@ -5194,7 +6369,7 @@ Index: gcc/dwarf2out.c
  
        break;
  
-@@ -18923,6 +18992,7 @@
+@@ -18923,6 +18998,7 @@
    tree context;
    int was_abstract;
    htab_t old_decl_loc_table;
@@ -5202,7 +6377,7 @@ Index: gcc/dwarf2out.c
  
    /* Make sure we have the actual abstract inline, not a clone.  */
    decl = DECL_ORIGIN (decl);
-@@ -18937,6 +19007,8 @@
+@@ -18937,6 +19013,8 @@
       get locations in abstract instantces.  */
    old_decl_loc_table = decl_loc_table;
    decl_loc_table = NULL;
@@ -5211,7 +6386,7 @@ Index: gcc/dwarf2out.c
  
    /* Be sure we've emitted the in-class declaration DIE (if any) first, so
       we don't get confused by DECL_ABSTRACT.  */
-@@ -18961,6 +19033,7 @@
+@@ -18961,6 +19039,7 @@
  
    current_function_decl = save_fn;
    decl_loc_table = old_decl_loc_table;
@@ -5219,7 +6394,7 @@ Index: gcc/dwarf2out.c
    pop_cfun ();
  }
  
-@@ -19745,9 +19818,8 @@
+@@ -19745,9 +19824,8 @@
            && !TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl_or_origin)))
        defer_location (decl_or_origin, var_die);
        else
@@ -5231,7 +6406,7 @@ Index: gcc/dwarf2out.c
        add_pubname (decl_or_origin, var_die);
      }
    else
-@@ -21534,6 +21606,7 @@
+@@ -21534,6 +21612,7 @@
    dwarf2out_decl (decl);
  
    htab_empty (decl_loc_table);
@@ -5239,7 +6414,7 @@ Index: gcc/dwarf2out.c
  }
  
  /* Output a marker (i.e. a label) for the beginning of the generated code for
-@@ -22267,6 +22340,11 @@
+@@ -22267,6 +22346,11 @@
    decl_loc_table = htab_create_ggc (10, decl_loc_table_hash,
                                    decl_loc_table_eq, NULL);
  
@@ -5251,7 +6426,7 @@ Index: gcc/dwarf2out.c
    /* Allocate the initial hunk of the decl_scope_table.  */
    decl_scope_table = VEC_alloc (tree, gc, 256);
  
-@@ -22907,30 +22985,53 @@
+@@ -22907,30 +22991,53 @@
  {
    dw_die_ref c;
    dw_attr_ref a;
@@ -5316,7 +6491,7 @@ Index: gcc/dwarf2out.c
          {
            remove_AT (die, a->dw_attr);
            ix--;
-@@ -23359,6 +23460,7 @@
+@@ -23359,6 +23466,7 @@
        add_location_or_const_value_attribute (
          VEC_index (deferred_locations, deferred_locations_list, i)->die,
          VEC_index (deferred_locations, deferred_locations_list, i)->variable,
@@ -5326,8 +6501,8 @@ Index: gcc/dwarf2out.c
  
 Index: gcc/expr.c
 ===================================================================
---- gcc/expr.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/expr.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/expr.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/expr.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2180,6 +2180,111 @@
    return tgtblk;
  }
@@ -5469,7 +6644,59 @@ Index: gcc/expr.c
        emit_move_insn (to_rtx, temp);
  
        preserve_temp_slots (to_rtx);
-@@ -8533,10 +8643,15 @@
+@@ -6186,6 +6296,24 @@
+   /* Otherwise, split it up.  */
+   if (offset)
+     {
++      /* Avoid returning a negative bitpos as this may wreak havoc later.  */
++      if (double_int_negative_p (bit_offset))
++        {
++        double_int mask
++          = double_int_mask (BITS_PER_UNIT == 8
++                             ? 3 : exact_log2 (BITS_PER_UNIT));
++        double_int tem = double_int_and_not (bit_offset, mask);
++        /* TEM is the bitpos rounded to BITS_PER_UNIT towards -Inf.
++           Subtract it to BIT_OFFSET and add it (scaled) to OFFSET.  */
++        bit_offset = double_int_sub (bit_offset, tem);
++        tem = double_int_rshift (tem,
++                                 BITS_PER_UNIT == 8
++                                 ? 3 : exact_log2 (BITS_PER_UNIT),
++                                 HOST_BITS_PER_DOUBLE_INT, true);
++        offset = size_binop (PLUS_EXPR, offset,
++                             double_int_to_tree (sizetype, tem));
++      }
++
+       *pbitpos = double_int_to_shwi (bit_offset);
+       *poffset = offset;
+     }
+@@ -6887,7 +7015,12 @@
+      generating ADDR_EXPR of something that isn't an LVALUE.  The only
+      exception here is STRING_CST.  */
+   if (CONSTANT_CLASS_P (exp))
+-    return XEXP (expand_expr_constant (exp, 0, modifier), 0);
++    {
++      result = XEXP (expand_expr_constant (exp, 0, modifier), 0);
++      if (modifier < EXPAND_SUM)
++      result = force_operand (result, target);
++      return result;
++    }
+   /* Everything must be something allowed by is_gimple_addressable.  */
+   switch (TREE_CODE (exp))
+@@ -6908,7 +7041,11 @@
+     case CONST_DECL:
+       /* Expand the initializer like constants above.  */
+-      return XEXP (expand_expr_constant (DECL_INITIAL (exp), 0, modifier), 0);
++      result = XEXP (expand_expr_constant (DECL_INITIAL (exp),
++                                         0, modifier), 0);
++      if (modifier < EXPAND_SUM)
++      result = force_operand (result, target);
++      return result;
+     case REALPART_EXPR:
+       /* The real part of the complex number is always first, therefore
+@@ -8533,10 +8670,15 @@
          return temp;
        }
  
@@ -5489,7 +6716,7 @@ Index: gcc/expr.c
        {
          enum machine_mode pmode;
  
-@@ -9189,8 +9304,16 @@
+@@ -9189,8 +9331,16 @@
                && modifier != EXPAND_CONST_ADDRESS
                && modifier != EXPAND_INITIALIZER)
            /* If the field is volatile, we always want an aligned
@@ -5508,7 +6735,7 @@ Index: gcc/expr.c
            /* If the field isn't aligned enough to fetch as a memref,
               fetch it as a bit field.  */
            || (mode1 != BLKmode
-@@ -9486,10 +9609,32 @@
+@@ -9486,10 +9636,32 @@
         results.  */
        if (MEM_P (op0))
        {
@@ -5543,8 +6770,8 @@ Index: gcc/expr.c
                   && MEM_ALIGN (op0) < GET_MODE_ALIGNMENT (mode))
 Index: gcc/expr.h
 ===================================================================
---- gcc/expr.h (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/expr.h (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/expr.h (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/expr.h (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -324,6 +324,8 @@
  /* Copy BLKmode object from a set of registers.  */
  extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
@@ -5556,8 +6783,8 @@ Index: gcc/expr.h
  
 Index: gcc/recog.c
 ===================================================================
---- gcc/recog.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/recog.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/recog.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/recog.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3023,6 +3023,7 @@
    static int search_ofs;
    enum reg_class cl;
@@ -5587,8 +6814,8 @@ Index: gcc/recog.c
    cl = (class_str[0] == 'r' ? GENERAL_REGS
 Index: gcc/ada/mlib-tgt-specific-darwin.adb
 ===================================================================
---- gcc/ada/mlib-tgt-specific-darwin.adb       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/mlib-tgt-specific-darwin.adb       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/mlib-tgt-specific-darwin.adb       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/mlib-tgt-specific-darwin.adb       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -36,8 +36,6 @@
  
     --  Non default subprograms
@@ -5624,8 +6851,8 @@ Index: gcc/ada/mlib-tgt-specific-darwin.adb
     Dynamic_Option_Ptr := Dynamic_Option'Access;
 Index: gcc/ada/init.c
 ===================================================================
---- gcc/ada/init.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/init.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/init.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/init.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2216,12 +2216,33 @@
    return 0;
  }
@@ -5663,8 +6890,8 @@ Index: gcc/ada/init.c
      case SIGSEGV:
 Index: gcc/ada/ChangeLog
 ===================================================================
---- gcc/ada/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,56 @@
 +2012-01-21  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -5724,8 +6951,8 @@ Index: gcc/ada/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/ada/gnatvsn.ads
 ===================================================================
---- gcc/ada/gnatvsn.ads        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/gnatvsn.ads        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/gnatvsn.ads        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/gnatvsn.ads        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -6,7 +6,7 @@
  --                                                                          --
  --                                 S p e c                                  --
@@ -5746,8 +6973,8 @@ Index: gcc/ada/gnatvsn.ads
  end Gnatvsn;
 Index: gcc/ada/gcc-interface/Makefile.in
 ===================================================================
---- gcc/ada/gcc-interface/Makefile.in  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/gcc-interface/Makefile.in  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/gcc-interface/Makefile.in  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/gcc-interface/Makefile.in  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2189,7 +2189,6 @@
  
    EH_MECHANISM=-gcc
@@ -5815,8 +7042,8 @@ Index: gcc/ada/gcc-interface/Makefile.in
                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \
 Index: gcc/ada/gcc-interface/decl.c
 ===================================================================
---- gcc/ada/gcc-interface/decl.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/gcc-interface/decl.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/gcc-interface/decl.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/gcc-interface/decl.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -808,16 +808,30 @@
                    && No (Address_Clause (gnat_entity))))
            && TREE_CODE (TYPE_SIZE (gnu_type)) == INTEGER_CST)
@@ -5870,8 +7097,8 @@ Index: gcc/ada/gcc-interface/decl.c
                    const_flag = true;
 Index: gcc/ada/gcc-interface/trans.c
 ===================================================================
---- gcc/ada/gcc-interface/trans.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/gcc-interface/trans.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/gcc-interface/trans.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/gcc-interface/trans.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -6,7 +6,7 @@
   *                                                                          *
   *                          C Implementation File                           *
@@ -5892,8 +7119,8 @@ Index: gcc/ada/gcc-interface/trans.c
      case ARRAY_REF:  case ARRAY_RANGE_REF:
 Index: gcc/ada/Make-generated.in
 ===================================================================
---- gcc/ada/Make-generated.in  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ada/Make-generated.in  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ada/Make-generated.in  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ada/Make-generated.in  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -64,37 +64,6 @@
        $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/nmake_s
        (cd $(ADA_GEN_SUBDIR)/bldtools/nmake_s; gnatmake -q xnmake ; ./xnmake -s ../../nmake.ads )
@@ -5934,8 +7161,8 @@ Index: gcc/ada/Make-generated.in
        $(ECHO) "pragma Style_Checks (Off);" >tmp-sdefault.adb
 Index: gcc/lto-streamer-in.c
 ===================================================================
---- gcc/lto-streamer-in.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto-streamer-in.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto-streamer-in.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto-streamer-in.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1366,9 +1366,9 @@
  {
    const struct lto_function_header *header;
@@ -5951,8 +7178,8 @@ Index: gcc/lto-streamer-in.c
  
 Index: gcc/c-decl.c
 ===================================================================
---- gcc/c-decl.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/c-decl.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/c-decl.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/c-decl.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -721,7 +721,7 @@
  
          complete_array_type (&TREE_TYPE (decl), NULL_TREE, true);
@@ -6016,8 +7243,8 @@ Index: gcc/c-decl.c
  {
 Index: gcc/fortran/interface.c
 ===================================================================
---- gcc/fortran/interface.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/interface.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/interface.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/interface.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1535,7 +1535,7 @@
        return 0;
      }
@@ -6040,8 +7267,16 @@ Index: gcc/fortran/interface.c
            gfc_error ("Actual argument to '%s' at %L must have the same "
 Index: gcc/fortran/trans-expr.c
 ===================================================================
---- gcc/fortran/trans-expr.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/trans-expr.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/trans-expr.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/trans-expr.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,6 +1,6 @@
+ /* Expression translation
+    Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+-   2011
++   2011, 2012
+    Free Software Foundation, Inc.
+    Contributed by Paul Brook <paul@nowt.org>
+    and Steven Bosscher <s.bosscher@student.tudelft.nl>
 @@ -3064,7 +3064,8 @@
                          || (fsym->attr.proc_pointer
                              && e->expr_type == EXPR_VARIABLE
@@ -6052,10 +7287,137 @@ Index: gcc/fortran/trans-expr.c
                    {
                      /* Scalar pointer dummy args require an extra level of
                         indirection. The null pointer already contains
+@@ -5535,7 +5536,7 @@
+ }
+-/* For Assignment to a reallocatable lhs from intrinsic functions,
++/* For assignment to a reallocatable lhs from intrinsic functions,
+    replace the se.expr (ie. the result) with a temporary descriptor.
+    Null the data field so that the library allocates space for the
+    result. Free the data of the original descriptor after the function,
+@@ -5549,55 +5550,94 @@
+   tree res_desc;
+   tree tmp;
+   tree offset;
++  tree zero_cond;
+   int n;
+   /* Use the allocation done by the library.  Substitute the lhs
+      descriptor with a copy, whose data field is nulled.*/
+   desc = build_fold_indirect_ref_loc (input_location, se->expr);
++
+   /* Unallocated, the descriptor does not have a dtype.  */
+   tmp = gfc_conv_descriptor_dtype (desc);
+   gfc_add_modify (&se->pre, tmp, gfc_get_dtype (TREE_TYPE (desc)));
++
+   res_desc = gfc_evaluate_now (desc, &se->pre);
+   gfc_conv_descriptor_data_set (&se->pre, res_desc, null_pointer_node);
+   se->expr = gfc_build_addr_expr (TREE_TYPE (se->expr), res_desc);
+-  /* Free the lhs after the function call and copy the result to
++  /* Free the lhs after the function call and copy the result data to
+      the lhs descriptor.  */
+   tmp = gfc_conv_descriptor_data_get (desc);
++  zero_cond = fold_build2_loc (input_location, EQ_EXPR,
++                             boolean_type_node, tmp,
++                             build_int_cst (TREE_TYPE (tmp), 0));
++  zero_cond = gfc_evaluate_now (zero_cond, &se->post);
+   tmp = gfc_call_free (fold_convert (pvoid_type_node, tmp));
+   gfc_add_expr_to_block (&se->post, tmp);
+-  gfc_add_modify (&se->post, desc, res_desc);
++  tmp = gfc_conv_descriptor_data_get (res_desc);
++  gfc_conv_descriptor_data_set (&se->post, desc, tmp);
++
++  /* Check that the shapes are the same between lhs and expression.  */
++  for (n = 0 ; n < rank; n++)
++    {
++      tree tmp1;
++      tmp = gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[n]);
++      tmp1 = gfc_conv_descriptor_lbound_get (res_desc, gfc_rank_cst[n]);
++      tmp = fold_build2_loc (input_location, MINUS_EXPR,
++                           gfc_array_index_type, tmp, tmp1);
++      tmp1 = gfc_conv_descriptor_ubound_get (desc, gfc_rank_cst[n]);
++      tmp = fold_build2_loc (input_location, MINUS_EXPR,
++                           gfc_array_index_type, tmp, tmp1);
++      tmp1 = gfc_conv_descriptor_ubound_get (res_desc, gfc_rank_cst[n]);
++      tmp = fold_build2_loc (input_location, PLUS_EXPR,
++                           gfc_array_index_type, tmp, tmp1);
++      tmp = fold_build2_loc (input_location, NE_EXPR,
++                           boolean_type_node, tmp,
++                           gfc_index_zero_node);
++      tmp = gfc_evaluate_now (tmp, &se->post);
++      zero_cond = fold_build2_loc (input_location, TRUTH_OR_EXPR,
++                                 boolean_type_node, tmp,
++                                 zero_cond);
++    }
++
++  /* 'zero_cond' being true is equal to lhs not being allocated or the
++     shapes being different.  */
++  zero_cond = gfc_evaluate_now (zero_cond, &se->post);
++
++  /* Now reset the bounds returned from the function call to bounds based
++     on the lhs lbounds, except where the lhs is not allocated or the shapes
++     of 'variable and 'expr' are different. Set the offset accordingly.  */
+   offset = gfc_index_zero_node;
+-  tmp = gfc_index_one_node;
+-  /* Now reset the bounds from zero based to unity based.  */
+   for (n = 0 ; n < rank; n++)
+     {
+-      /* Accumulate the offset.  */
+-      offset = fold_build2_loc (input_location, MINUS_EXPR,
+-                              gfc_array_index_type,
+-                              offset, tmp);
+-      /* Now do the bounds.  */
+-      gfc_conv_descriptor_offset_set (&se->post, desc, tmp);
+-      tmp = gfc_conv_descriptor_ubound_get (desc, gfc_rank_cst[n]);
++      tree lbound;
++
++      lbound = gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[n]);
++      lbound = fold_build3_loc (input_location, COND_EXPR,
++                              gfc_array_index_type, zero_cond,
++                              gfc_index_one_node, lbound);
++      lbound = gfc_evaluate_now (lbound, &se->post);
++
++      tmp = gfc_conv_descriptor_ubound_get (res_desc, gfc_rank_cst[n]);
+       tmp = fold_build2_loc (input_location, PLUS_EXPR,
+-                           gfc_array_index_type,
+-                           tmp, gfc_index_one_node);
++                           gfc_array_index_type, tmp, lbound);
+       gfc_conv_descriptor_lbound_set (&se->post, desc,
+-                                    gfc_rank_cst[n],
+-                                    gfc_index_one_node);
++                                    gfc_rank_cst[n], lbound);
+       gfc_conv_descriptor_ubound_set (&se->post, desc,
+                                     gfc_rank_cst[n], tmp);
+-      /* The extent for the next contribution to offset.  */
+-      tmp = fold_build2_loc (input_location, MINUS_EXPR,
+-                           gfc_array_index_type,
+-                           gfc_conv_descriptor_ubound_get (desc, gfc_rank_cst[n]),
+-                           gfc_conv_descriptor_lbound_get (desc, gfc_rank_cst[n]));
+-      tmp = fold_build2_loc (input_location, PLUS_EXPR,
+-                           gfc_array_index_type,
+-                           tmp, gfc_index_one_node);
++      /* Set stride and accumulate the offset.  */
++      tmp = gfc_conv_descriptor_stride_get (res_desc, gfc_rank_cst[n]);
++      gfc_conv_descriptor_stride_set (&se->post, desc,
++                                    gfc_rank_cst[n], tmp);
++      tmp = fold_build2_loc (input_location, MULT_EXPR,
++                           gfc_array_index_type, lbound, tmp);
++      offset = fold_build2_loc (input_location, MINUS_EXPR,
++                              gfc_array_index_type, offset, tmp);
++      offset = gfc_evaluate_now (offset, &se->post);
+     }
++
+   gfc_conv_descriptor_offset_set (&se->post, desc, offset);
+ }
 Index: gcc/fortran/trans-array.c
 ===================================================================
---- gcc/fortran/trans-array.c  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/trans-array.c  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/trans-array.c  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/trans-array.c  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -6772,8 +6772,17 @@
                              gfc_array_index_type, cond,
                              lbound, gfc_index_one_node);
@@ -6093,9 +7455,36 @@ Index: gcc/fortran/trans-array.c
  }
 Index: gcc/fortran/ChangeLog
 ===================================================================
---- gcc/fortran/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,121 @@
+--- gcc/fortran/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,148 @@
++2012-02-09  Jakub Jelinek  <jakub@redhat.com>
++
++      Backported from mainline
++      2011-12-15  Jakub Jelinek  <jakub@redhat.com>
++
++      PR debug/51517
++      * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span.
++      (gfc_trans_deferred_vars): Instead add its runtime initialization
++      here.
++
++2012-02-08  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/52151
++      * trans-expr.c (fcncall_realloc_result): Set also the stride.
++
++2012-02-03  Tobias Burnus  <burnus@net-b.de>
++
++      PR fortran/52093
++      * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
++
++2012-02-03  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/52012
++      * trans-expr.c (fcncall_realloc_result): Correct calculation of
++      result offset. If variable shape is correct, retain the bounds,
++      whatever they are.
++
 +2012-01-28  Tobias Burnus  <burnus@net-b.de>
 +
 +      PR fortran/52022
@@ -6219,8 +7608,8 @@ Index: gcc/fortran/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/fortran/expr.c
 ===================================================================
---- gcc/fortran/expr.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/expr.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/expr.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/expr.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3679,6 +3679,8 @@
          if (!c->attr.pointer
             && gfc_has_default_initializer (c->ts.u.derived))
@@ -6279,8 +7668,8 @@ Index: gcc/fortran/expr.c
      {
 Index: gcc/fortran/invoke.texi
 ===================================================================
---- gcc/fortran/invoke.texi    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/invoke.texi    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/invoke.texi    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/invoke.texi    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1438,10 +1438,16 @@
  the real and imaginary parts of local @code{COMPLEX} variables),
  @option{-finit-logical=@var{<true|false>}}, and
@@ -6304,8 +7693,8 @@ Index: gcc/fortran/invoke.texi
  and @code{COMPLEX} variables with a quiet NaN. For a signalling NaN
 Index: gcc/fortran/trans-types.c
 ===================================================================
---- gcc/fortran/trans-types.c  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/trans-types.c  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/trans-types.c  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/trans-types.c  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2092,6 +2092,9 @@
    gfc_component *to_cm;
    gfc_component *from_cm;
@@ -6318,8 +7707,8 @@ Index: gcc/fortran/trans-types.c
      return 0;
 Index: gcc/fortran/resolve.c
 ===================================================================
---- gcc/fortran/resolve.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/resolve.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/resolve.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/resolve.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1053,6 +1053,7 @@
          && comp->ts.u.cl->length->expr_type == EXPR_CONSTANT
          && cons->expr->ts.u.cl && cons->expr->ts.u.cl->length
@@ -6462,8 +7851,8 @@ Index: gcc/fortran/resolve.c
  
 Index: gcc/fortran/trans-decl.c
 ===================================================================
---- gcc/fortran/trans-decl.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/trans-decl.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/trans-decl.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/trans-decl.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -677,7 +677,7 @@
        }
        else if (s->backend_decl)
@@ -6473,7 +7862,15 @@ Index: gcc/fortran/trans-decl.c
            gfc_copy_dt_decls_ifequal (s->ts.u.derived, sym->ts.u.derived,
                                       true);
          else if (sym->ts.type == BT_CHARACTER)
-@@ -1602,6 +1602,11 @@
+@@ -1352,7 +1352,6 @@
+       gfc_finish_var_decl (span, sym);
+       TREE_STATIC (span) = TREE_STATIC (decl);
+       DECL_ARTIFICIAL (span) = 1;
+-      DECL_INITIAL (span) = build_int_cst (gfc_array_index_type, 0);
+       GFC_DECL_SPAN (decl) = span;
+       GFC_TYPE_ARRAY_SPAN (TREE_TYPE (decl)) = span;
+@@ -1602,6 +1601,11 @@
        gfc_find_symbol (sym->name, gsym->ns, 0, &s);
        if (s && s->backend_decl)
        {
@@ -6485,7 +7882,25 @@ Index: gcc/fortran/trans-decl.c
          sym->backend_decl = s->backend_decl;
          return sym->backend_decl;
        }
-@@ -4179,10 +4184,16 @@
+@@ -3389,6 +3393,17 @@
+       if (sym->assoc)
+       continue;
++      if (sym->attr.subref_array_pointer
++        && GFC_DECL_SPAN (sym->backend_decl)
++        && !TREE_STATIC (GFC_DECL_SPAN (sym->backend_decl)))
++      {
++        gfc_init_block (&tmpblock);
++        gfc_add_modify (&tmpblock, GFC_DECL_SPAN (sym->backend_decl),
++                        build_int_cst (gfc_array_index_type, 0));
++        gfc_add_init_cleanup (block, gfc_finish_block (&tmpblock),
++                              NULL_TREE);
++      }
++
+       if (sym->attr.dimension)
+       {
+           /* Assumed-size Cray pointees need to be treated as AS_EXPLICIT.  */
+@@ -4179,10 +4194,16 @@
                             "declared INTENT(OUT) but was not set and "
                             "does not have a default initializer",
                             sym->name, &sym->declared_at);
@@ -6503,7 +7918,7 @@ Index: gcc/fortran/trans-decl.c
        }
  
        /* Warn for unused variables, but not if they're inside a common
-@@ -4227,11 +4238,6 @@
+@@ -4227,11 +4248,6 @@
        mark the symbol now, as well as in traverse_ns, to prevent
        getting stuck in a circular dependency.  */
        sym->mark = 1;
@@ -6515,7 +7930,7 @@ Index: gcc/fortran/trans-decl.c
      }
    else if (sym->attr.flavor == FL_PARAMETER)
      {
-@@ -4846,11 +4852,11 @@
+@@ -4846,11 +4862,11 @@
        if (result == NULL_TREE)
        {
          /* TODO: move to the appropriate place in resolve.c.  */
@@ -6532,8 +7947,8 @@ Index: gcc/fortran/trans-decl.c
        gfc_add_expr_to_block (&body, gfc_generate_return ());
 Index: gcc/fortran/check.c
 ===================================================================
---- gcc/fortran/check.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/check.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/check.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/check.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -485,23 +485,47 @@
        && (gfc_current_intrinsic_arg[n]->intent == INTENT_OUT
          || gfc_current_intrinsic_arg[n]->intent == INTENT_INOUT))
@@ -6595,8 +8010,8 @@ Index: gcc/fortran/check.c
  
 Index: gcc/fortran/dependency.c
 ===================================================================
---- gcc/fortran/dependency.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/fortran/dependency.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/fortran/dependency.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/dependency.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -163,9 +163,19 @@
          break;
  
@@ -6619,10 +8034,22 @@ Index: gcc/fortran/dependency.c
          break;
  
        default:
+Index: gcc/fortran/simplify.c
+===================================================================
+--- gcc/fortran/simplify.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/fortran/simplify.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -5583,6 +5583,7 @@
+         case INTRINSIC_NOT:
+         case INTRINSIC_UPLUS:
+         case INTRINSIC_UMINUS:
++        case INTRINSIC_PARENTHESES:
+           replacement = array->value.op.op1;
+           break;
 Index: gcc/regmove.c
 ===================================================================
---- gcc/regmove.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/regmove.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/regmove.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/regmove.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -860,7 +860,7 @@
          if (REG_N_CALLS_CROSSED (REGNO (src)) == 0)
            break;
@@ -6634,8 +8061,8 @@ Index: gcc/regmove.c
        }
 Index: gcc/configure.ac
 ===================================================================
---- gcc/configure.ac   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/configure.ac   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/configure.ac   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/configure.ac   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -807,17 +807,7 @@
  gcc_AC_PROG_LN_S
  ACX_PROG_LN($LN_S)
@@ -6657,15 +8084,37 @@ Index: gcc/configure.ac
  gcc_AC_PROG_INSTALL
 Index: gcc/BASE-VER
 ===================================================================
---- gcc/BASE-VER       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/BASE-VER       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/BASE-VER       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/BASE-VER       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1 +1 @@
 -4.6.2
 +4.6.3
+Index: gcc/function.c
+===================================================================
+--- gcc/function.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/function.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,7 +1,7 @@
+ /* Expands front end tree to back end RTL for GCC.
+    Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+    1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+-   2010, 2011  Free Software Foundation, Inc.
++   2010, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of GCC.
+@@ -1747,7 +1747,7 @@
+       if (!check_asm_operands (PATTERN (insn)))
+       {
+         error_for_asm (insn, "impossible constraint in %<asm%>");
+-        delete_insn (insn);
++        delete_insn_and_edges (insn);
+       }
+     }
+   else
 Index: gcc/df.h
 ===================================================================
---- gcc/df.h   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/df.h   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/df.h   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/df.h   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -53,7 +53,7 @@
  #define DF_RD      3      /* Reaching Defs. */
  #define DF_CHAIN   4      /* Def-Use and/or Use-Def Chains. */
@@ -6677,8 +8126,8 @@ Index: gcc/df.h
  #define DF_LAST_PROBLEM_PLUS1 (DF_MD + 1)
 Index: gcc/ipa-split.c
 ===================================================================
---- gcc/ipa-split.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ipa-split.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ipa-split.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ipa-split.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -130,6 +130,10 @@
  
  struct split_point best_split_point;
@@ -6822,8 +8271,8 @@ Index: gcc/ipa-split.c
    return todo;
 Index: gcc/lto-section-in.c
 ===================================================================
---- gcc/lto-section-in.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto-section-in.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto-section-in.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto-section-in.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -296,7 +296,7 @@
      = (const struct lto_simple_header *) data;
  
@@ -6833,10 +8282,56 @@ Index: gcc/lto-section-in.c
  
    if (!data)
      return NULL;
+Index: gcc/profile.c
+===================================================================
+--- gcc/profile.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/profile.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -998,6 +998,41 @@
+           fprintf (dump_file, "Adding fake entry edge to bb %i\n",
+                    bb->index);
+         make_edge (ENTRY_BLOCK_PTR, bb, EDGE_FAKE);
++        /* Avoid bbs that have both fake entry edge and also some
++           exit edge.  One of those edges wouldn't be added to the
++           spanning tree, but we can't instrument any of them.  */
++        if (have_exit_edge || need_exit_edge)
++          {
++            gimple_stmt_iterator gsi;
++            gimple first;
++            tree fndecl;
++
++            gsi = gsi_after_labels (bb);
++            gcc_checking_assert (!gsi_end_p (gsi));
++            first = gsi_stmt (gsi);
++            if (is_gimple_debug (first))
++              {
++                gsi_next_nondebug (&gsi);
++                gcc_checking_assert (!gsi_end_p (gsi));
++                first = gsi_stmt (gsi);
++              }
++            /* Don't split the bbs containing __builtin_setjmp_receiver
++               or __builtin_setjmp_dispatcher calls.  These are very
++               special and don't expect anything to be inserted before
++               them.  */
++            if (!is_gimple_call (first)
++                || (fndecl = gimple_call_fndecl (first)) == NULL
++                || DECL_BUILT_IN_CLASS (fndecl) != BUILT_IN_NORMAL
++                || (DECL_FUNCTION_CODE (fndecl) != BUILT_IN_SETJMP_RECEIVER
++                    && (DECL_FUNCTION_CODE (fndecl)
++                        != BUILT_IN_SETJMP_DISPATCHER)))
++              {
++                if (dump_file)
++                  fprintf (dump_file, "Splitting bb %i after labels\n",
++                           bb->index);
++                split_block_after_labels (bb);
++              }
++          }
+       }
+     }
 Index: gcc/tree-vect-data-refs.c
 ===================================================================
---- gcc/tree-vect-data-refs.c  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-vect-data-refs.c  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-vect-data-refs.c  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-vect-data-refs.c  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2631,6 +2631,16 @@
            return false;
          }
@@ -6856,8 +8351,8 @@ Index: gcc/tree-vect-data-refs.c
        /* If the dataref is in an inner-loop of the loop that is considered for
 Index: gcc/c-typeck.c
 ===================================================================
---- gcc/c-typeck.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/c-typeck.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/c-typeck.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/c-typeck.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3802,11 +3802,7 @@
        if (val && TREE_CODE (val) == INDIRECT_REF
            && TREE_CONSTANT (TREE_OPERAND (val, 0)))
@@ -6873,8 +8368,8 @@ Index: gcc/c-typeck.c
  
 Index: gcc/calls.c
 ===================================================================
---- gcc/calls.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/calls.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/calls.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/calls.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1548,6 +1548,131 @@
    return funexp;
  }
@@ -7007,7 +8502,7 @@ Index: gcc/calls.c
  /* Return true if and only if SIZE storage units (usually bytes)
     starting from address ADDR overlap with already clobbered argument
     area.  This function is used to determine if we should give up a
-@@ -1557,20 +1682,17 @@
+@@ -1557,20 +1682,22 @@
  mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size)
  {
    HOST_WIDE_INT i;
@@ -7033,10 +8528,15 @@ Index: gcc/calls.c
    else
 -    return false;
 +    i = INTVAL (val);
++#ifdef STACK_GROWS_DOWNWARD
++  i -= crtl->args.pretend_args_size;
++#else
++  i += crtl->args.pretend_args_size;
++#endif
  
  #ifdef ARGS_GROW_DOWNWARD
    i = -i - size;
-@@ -3175,6 +3297,8 @@
+@@ -3175,6 +3302,8 @@
            }
  
          sbitmap_free (stored_args_map);
@@ -7045,10 +8545,23 @@ Index: gcc/calls.c
        }
        else
        {
+Index: gcc/tree-ssa-coalesce.c
+===================================================================
+--- gcc/tree-ssa-coalesce.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-ssa-coalesce.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1373,7 +1373,7 @@
+         if (a
+             && SSA_NAME_VAR (a)
+-            && !DECL_ARTIFICIAL (SSA_NAME_VAR (a))
++            && !DECL_IGNORED_P (SSA_NAME_VAR (a))
+             && (!has_zero_uses (a) || !SSA_NAME_IS_DEFAULT_DEF (a)))
+           {
+             tree *slot = (tree *) htab_find_slot (ssa_name_hash, a, INSERT);
 Index: gcc/loop-doloop.c
 ===================================================================
---- gcc/loop-doloop.c  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/loop-doloop.c  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/loop-doloop.c  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/loop-doloop.c  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -334,14 +334,11 @@
     describes the loop, DESC describes the number of iterations of the
     loop, and DOLOOP_INSN is the low-overhead looping insn to emit at the
@@ -7110,8 +8623,8 @@ Index: gcc/loop-doloop.c
  
 Index: gcc/tree-ssa-pre.c
 ===================================================================
---- gcc/tree-ssa-pre.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-ssa-pre.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-ssa-pre.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-ssa-pre.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1545,7 +1545,7 @@
        tree newvuse = vuse;
        VEC (vn_reference_op_s, heap) *newoperands = NULL;
@@ -7271,8 +8784,8 @@ Index: gcc/tree-ssa-pre.c
              vn_reference_fold_indirect (&newoperands, &j);
 Index: gcc/cfgcleanup.c
 ===================================================================
---- gcc/cfgcleanup.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cfgcleanup.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/cfgcleanup.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cfgcleanup.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1969,7 +1969,14 @@
  
    cond = get_condition (jump, &move_before, true, false);
@@ -7307,8 +8820,8 @@ Index: gcc/cfgcleanup.c
    do
 Index: gcc/simplify-rtx.c
 ===================================================================
---- gcc/simplify-rtx.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/simplify-rtx.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/simplify-rtx.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/simplify-rtx.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2777,7 +2777,7 @@
                }
            }
@@ -7344,8 +8857,8 @@ Index: gcc/simplify-rtx.c
    /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is
 Index: gcc/tree-sra.c
 ===================================================================
---- gcc/tree-sra.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-sra.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-sra.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-sra.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1020,31 +1020,52 @@
    return false;
  }
@@ -7544,8 +9057,8 @@ Index: gcc/tree-sra.c
    return false;
 Index: gcc/lto/lto.c
 ===================================================================
---- gcc/lto/lto.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto/lto.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto/lto.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto/lto.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -198,7 +198,7 @@
    uint32_t ix;
    tree decl;
@@ -7613,8 +9126,8 @@ Index: gcc/lto/lto.c
          internal_error ("could not parse file offset");
 Index: gcc/lto/lto.h
 ===================================================================
---- gcc/lto/lto.h      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto/lto.h      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto/lto.h      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto/lto.h      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -60,6 +60,4 @@
    size_t len;
  };
@@ -7624,8 +9137,8 @@ Index: gcc/lto/lto.h
  #endif /* LTO_H */
 Index: gcc/lto/ChangeLog
 ===================================================================
---- gcc/lto/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,10 @@
 +2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -7637,10 +9150,68 @@ Index: gcc/lto/ChangeLog
  2011-10-26  Release Manager
  
        * GCC 4.6.2 released.
+Index: gcc/tree-mudflap.c
+===================================================================
+--- gcc/tree-mudflap.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-mudflap.c (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -69,6 +69,13 @@
+ static gimple_seq mx_register_decls (tree, gimple_seq, location_t);
+ static unsigned int execute_mudflap_function_decls (void);
++/* Return true if DECL is artificial stub that shouldn't be instrumented by
++   mf.  We should instrument clones of non-artificial functions.  */
++static inline bool
++mf_artificial (const_tree decl)
++{
++  return DECL_ARTIFICIAL (DECL_ORIGIN (decl));
++}
+ /* ------------------------------------------------------------------------ */
+ /* Some generally helpful functions for mudflap instrumentation.  */
+@@ -412,8 +419,8 @@
+   /* Don't instrument functions such as the synthetic constructor
+      built during mudflap_finish_file.  */
+-  if (mf_marked_p (current_function_decl) ||
+-      DECL_ARTIFICIAL (current_function_decl))
++  if (mf_marked_p (current_function_decl)
++      || mf_artificial (current_function_decl))
+     return 0;
+   push_gimplify_context (&gctx);
+@@ -1014,8 +1021,8 @@
+   /* Don't instrument functions such as the synthetic constructor
+      built during mudflap_finish_file.  */
+-  if (mf_marked_p (current_function_decl) ||
+-      DECL_ARTIFICIAL (current_function_decl))
++  if (mf_marked_p (current_function_decl)
++      || mf_artificial (current_function_decl))
+     return 0;
+   push_gimplify_context (&gctx);
+@@ -1097,7 +1104,7 @@
+           /* Add the __mf_register call at the current appending point.  */
+           if (gsi_end_p (initially_stmts))
+           {
+-            if (!DECL_ARTIFICIAL (decl))
++            if (!mf_artificial (decl))
+               warning (OPT_Wmudflap,
+                        "mudflap cannot track %qE in stub function",
+                        DECL_NAME (decl));
+@@ -1268,7 +1275,7 @@
+      during mudflap_finish_file ().  That would confuse the user,
+      since the text would refer to variables that don't show up in the
+      user's source code.  */
+-  if (DECL_P (obj) && DECL_EXTERNAL (obj) && DECL_ARTIFICIAL (obj))
++  if (DECL_P (obj) && DECL_EXTERNAL (obj) && mf_artificial (obj))
+     return;
+   VEC_safe_push (tree, gc, deferred_static_decls, obj);
 Index: gcc/ipa-prop.c
 ===================================================================
---- gcc/ipa-prop.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/ipa-prop.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/ipa-prop.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/ipa-prop.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2868,9 +2868,9 @@
  {
    const struct lto_function_header *header =
@@ -7656,8 +9227,8 @@ Index: gcc/ipa-prop.c
    unsigned int i;
 Index: gcc/po/ChangeLog
 ===================================================================
---- gcc/po/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/po/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/po/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/po/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-10-30  Joseph Myers  <joseph@codesourcery.com>
 +
@@ -7668,8 +9239,8 @@ Index: gcc/po/ChangeLog
        * GCC 4.6.2 released.
 Index: gcc/po/ja.po
 ===================================================================
---- gcc/po/ja.po       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/po/ja.po       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/po/ja.po       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/po/ja.po       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -20,7 +20,7 @@
  "Project-Id-Version: gcc 4.6.1\n"
  "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
@@ -9257,8 +10828,8 @@ Index: gcc/po/ja.po
  #, gcc-internal-format
 Index: gcc/tree-ssa-forwprop.c
 ===================================================================
---- gcc/tree-ssa-forwprop.c    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-ssa-forwprop.c    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-ssa-forwprop.c    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-ssa-forwprop.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -872,7 +872,7 @@
                     TREE_TYPE (gimple_assign_rhs1 (use_stmt))))
        {
@@ -9309,8 +10880,8 @@ Index: gcc/tree-ssa-forwprop.c
          tidy_after_forward_propagate_addr (use_stmt);
 Index: gcc/varasm.c
 ===================================================================
---- gcc/varasm.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/varasm.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/varasm.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/varasm.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -6751,11 +6751,14 @@
    /* A non-decl is an entry in the constant pool.  */
    if (!DECL_P (exp))
@@ -9333,8 +10904,8 @@ Index: gcc/varasm.c
    else if (! TREE_PUBLIC (exp))
 Index: gcc/sched-deps.c
 ===================================================================
---- gcc/sched-deps.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/sched-deps.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/sched-deps.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/sched-deps.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2687,7 +2687,11 @@
          else
            sched_analyze_2 (deps, XEXP (link, 0), insn);
@@ -9348,10 +10919,30 @@ Index: gcc/sched-deps.c
        reg_pending_barrier = MOVE_BARRIER;
      }
  
+Index: gcc/tree-vect-stmts.c
+===================================================================
+--- gcc/tree-vect-stmts.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-vect-stmts.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -5117,6 +5117,15 @@
+       && GET_MODE_CLASS (inner_mode) != MODE_FLOAT)
+     return NULL_TREE;
++  /* We shouldn't end up building VECTOR_TYPEs of non-scalar components.
++     When the component mode passes the above test simply use a type
++     corresponding to that mode.  The theory is that any use that
++     would cause problems with this will disable vectorization anyway.  */
++  if (!SCALAR_FLOAT_TYPE_P (scalar_type)
++      && !INTEGRAL_TYPE_P (scalar_type)
++      && !POINTER_TYPE_P (scalar_type))
++    scalar_type = lang_hooks.types.type_for_mode (inner_mode, 1);
++
+   /* If no size was supplied use the mode the target prefers.   Otherwise
+      lookup a vector mode of the specified size.  */
+   if (size == 0)
 Index: gcc/tree-object-size.c
 ===================================================================
---- gcc/tree-object-size.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-object-size.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-object-size.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-object-size.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -175,7 +175,7 @@
        unsigned HOST_WIDE_INT sz;
  
@@ -9361,10 +10952,103 @@ Index: gcc/tree-object-size.c
        {
          sz = compute_builtin_object_size (TREE_OPERAND (pt_var, 0),
                                            object_size_type & ~1);
+Index: gcc/combine.c
+===================================================================
+--- gcc/combine.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/combine.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1666,6 +1666,7 @@
+   rtx link;
+ #endif
+   bool all_adjacent = true;
++  int (*is_volatile_p) (const_rtx);
+   if (succ)
+     {
+@@ -1914,11 +1915,17 @@
+       && REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER)
+     return 0;
+-  /* If there are any volatile insns between INSN and I3, reject, because
+-     they might affect machine state.  */
++  /* If INSN contains volatile references (specifically volatile MEMs),
++     we cannot combine across any other volatile references.
++     Even if INSN doesn't contain volatile references, any intervening
++     volatile insn might affect machine state.  */
++  is_volatile_p = volatile_refs_p (PATTERN (insn))
++    ? volatile_refs_p
++    : volatile_insn_p;
++    
+   for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
+-    if (INSN_P (p) && p != succ && p != succ2 && volatile_insn_p (PATTERN (p)))
++    if (INSN_P (p) && p != succ && p != succ2 && is_volatile_p (PATTERN (p)))
+       return 0;
+   /* If INSN contains an autoincrement or autodecrement, make sure that
+@@ -2551,8 +2558,8 @@
+   rtx i3dest_killed = 0;
+   /* SET_DEST and SET_SRC of I2, I1 and I0.  */
+   rtx i2dest = 0, i2src = 0, i1dest = 0, i1src = 0, i0dest = 0, i0src = 0;
+-  /* Copy of SET_SRC of I1, if needed.  */
+-  rtx i1src_copy = 0;
++  /* Copy of SET_SRC of I1 and I0, if needed.  */
++  rtx i1src_copy = 0, i0src_copy = 0, i0src_copy2 = 0;
+   /* Set if I2DEST was reused as a scratch register.  */
+   bool i2scratch = false;
+   /* The PATTERNs of I0, I1, and I2, or a copy of them in certain cases.  */
+@@ -3164,6 +3171,11 @@
+       n_occurrences = 0;
+       subst_low_luid = DF_INSN_LUID (i1);
++      /* If the following substitution will modify I1SRC, make a copy of it
++       for the case where it is substituted for I1DEST in I2PAT later.  */
++      if (added_sets_2 && i1_feeds_i2_n)
++      i1src_copy = copy_rtx (i1src);
++
+       /* If I0 feeds into I1 and I0DEST is in I0SRC, we need to make a unique
+        copy of I1SRC each time we substitute it, in order to avoid creating
+        self-referential RTL when we will be substituting I0SRC for I0DEST
+@@ -3191,10 +3203,14 @@
+         return 0;
+       }
+-      /* If the following substitution will modify I1SRC, make a copy of it
+-       for the case where it is substituted for I1DEST in I2PAT later.  */
+-      if (i0_feeds_i1_n && added_sets_2 && i1_feeds_i2_n)
+-      i1src_copy = copy_rtx (i1src);
++      /* If the following substitution will modify I0SRC, make a copy of it
++       for the case where it is substituted for I0DEST in I1PAT later.  */
++      if (added_sets_1 && i0_feeds_i1_n)
++      i0src_copy = copy_rtx (i0src);
++      /* And a copy for I0DEST in I2PAT substitution.  */
++      if (added_sets_2 && ((i0_feeds_i1_n && i1_feeds_i2_n)
++                         || (i0_feeds_i2_n)))
++      i0src_copy2 = copy_rtx (i0src);
+       n_occurrences = 0;
+       subst_low_luid = DF_INSN_LUID (i0);
+@@ -3260,7 +3276,7 @@
+       {
+         rtx t = i1pat;
+         if (i0_feeds_i1_n)
+-          t = subst (t, i0dest, i0src, 0, 0);
++          t = subst (t, i0dest, i0src_copy ? i0src_copy : i0src, 0, 0);
+         XVECEXP (newpat, 0, --total_sets) = t;
+       }
+@@ -3271,7 +3287,7 @@
+           t = subst (t, i1dest, i1src_copy ? i1src_copy : i1src, 0,
+                      i0_feeds_i1_n && i0dest_in_i0src);
+         if ((i0_feeds_i1_n && i1_feeds_i2_n) || i0_feeds_i2_n)
+-          t = subst (t, i0dest, i0src, 0, 0);
++          t = subst (t, i0dest, i0src_copy2 ? i0src_copy2 : i0src, 0, 0);
+         XVECEXP (newpat, 0, --total_sets) = t;
+       }
 Index: gcc/tree-outof-ssa.c
 ===================================================================
---- gcc/tree-outof-ssa.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-outof-ssa.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-outof-ssa.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-outof-ssa.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -237,9 +237,10 @@
  
    var = SSA_NAME_VAR (partition_to_var (SA.map, dest));
@@ -9380,8 +11064,8 @@ Index: gcc/tree-outof-ssa.c
      {
 Index: gcc/tree-ssa-structalias.c
 ===================================================================
---- gcc/tree-ssa-structalias.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/tree-ssa-structalias.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/tree-ssa-structalias.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/tree-ssa-structalias.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -308,6 +308,7 @@
  static varinfo_t first_or_preceding_vi_for_offset (varinfo_t,
                                                   unsigned HOST_WIDE_INT);
@@ -9431,8 +11115,8 @@ Index: gcc/tree-ssa-structalias.c
  /* Return true if T is a type that does contain pointers.  */
 Index: gcc/lto-opts.c
 ===================================================================
---- gcc/lto-opts.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/lto-opts.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/lto-opts.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/lto-opts.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -358,7 +358,7 @@
    size_t len, l, skip;
    const char *data, *p;
@@ -9457,8 +11141,8 @@ Index: gcc/lto-opts.c
        p += skip;
 Index: gcc/c-parser.c
 ===================================================================
---- gcc/c-parser.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/c-parser.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/c-parser.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/c-parser.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -6294,7 +6294,7 @@
              c_parser_error (parser, "expected identifier");
            c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
@@ -9468,10 +11152,26 @@ Index: gcc/c-parser.c
          }
          break;
        case RID_CHOOSE_EXPR:
+@@ -8629,6 +8629,7 @@
+     {
+       location_t expr_loc = c_parser_peek_token (parser)->location;
+       tree c, t = c_parser_expression (parser).value;
++      mark_exp_read (t);
+       t = c_fully_fold (t, false, NULL);
+       c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>");
+@@ -8815,6 +8816,7 @@
+       here = c_parser_peek_token (parser)->location;
+       t = c_parser_expr_no_commas (parser, NULL).value;
++      mark_exp_read (t);
+       t = c_fully_fold (t, false, NULL);
+       if (OMP_CLAUSE_SCHEDULE_KIND (c) == OMP_CLAUSE_SCHEDULE_RUNTIME)
 Index: gcc/config/alpha/linux-unwind.h
 ===================================================================
---- gcc/config/alpha/linux-unwind.h    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/alpha/linux-unwind.h    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/alpha/linux-unwind.h    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/alpha/linux-unwind.h    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,5 +1,5 @@
  /* DWARF2 EH unwinding support for Alpha Linux.
 -   Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
@@ -9547,8 +11247,8 @@ Index: gcc/config/alpha/linux-unwind.h
 +}
 Index: gcc/config/s390/s390.md
 ===================================================================
---- gcc/config/s390/s390.md    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/s390/s390.md    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/s390/s390.md    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/s390/s390.md    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -7644,6 +7644,7 @@
     sra<gk>\t%0,%1,%Y2"
    [(set_attr "op_type"  "RS<E>,RSY")
@@ -9559,8 +11259,8 @@ Index: gcc/config/s390/s390.md
  
 Index: gcc/config/sparc/sparc.md
 ===================================================================
---- gcc/config/sparc/sparc.md  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/sparc/sparc.md  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/sparc/sparc.md  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/sparc/sparc.md  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -28,6 +28,7 @@
    [(UNSPEC_MOVE_PIC           0)
     (UNSPEC_UPDATE_RETURN      1)
@@ -9740,8 +11440,8 @@ Index: gcc/config/sparc/sparc.md
    ""
 Index: gcc/config/sparc/sparc.c
 ===================================================================
---- gcc/config/sparc/sparc.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/sparc/sparc.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/sparc/sparc.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/sparc/sparc.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -4569,8 +4569,9 @@
        else if (actual_fsize <= 8192)
        {
@@ -9774,8 +11474,8 @@ Index: gcc/config/sparc/sparc.c
        {
 Index: gcc/config/sparc/sparc.h
 ===================================================================
---- gcc/config/sparc/sparc.h   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/sparc/sparc.h   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/sparc/sparc.h   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/sparc/sparc.h   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -408,6 +408,7 @@
  %{mcpu=sparclite:-Asparclite} \
  %{mcpu=sparclite86x:-Asparclite} \
@@ -9786,8 +11486,8 @@ Index: gcc/config/sparc/sparc.h
  %{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
 Index: gcc/config/sparc/sol2-unwind.h
 ===================================================================
---- gcc/config/sparc/sol2-unwind.h     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/sparc/sol2-unwind.h     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/sparc/sol2-unwind.h     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/sparc/sol2-unwind.h     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,5 +1,5 @@
  /* DWARF2 EH unwinding support for SPARC Solaris.
 -   Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
@@ -9994,8 +11694,8 @@ Index: gcc/config/sparc/sol2-unwind.h
        struct frame frwin;
 Index: gcc/config/i386/i386.md
 ===================================================================
---- gcc/config/i386/i386.md    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/i386/i386.md    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/i386/i386.md    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/i386.md    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1960,7 +1960,7 @@
  
  (define_insn "*movdi_internal_rex64"
@@ -10210,8 +11910,8 @@ Index: gcc/config/i386/i386.md
    [(unspec_volatile [(match_operand:SWI48 0 "register_operand" "r")
 Index: gcc/config/i386/sse.md
 ===================================================================
---- gcc/config/i386/sse.md     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/i386/sse.md     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/i386/sse.md     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/sse.md     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -4521,15 +4521,14 @@
    [(set (match_operand:V4DF 0 "register_operand"         "=x,x")
        (vec_select:V4DF
@@ -10233,10 +11933,35 @@ Index: gcc/config/i386/sse.md
    [(set_attr "type" "sselog")
     (set_attr "prefix" "vex")
     (set_attr "mode" "V4DF")])
+Index: gcc/config/i386/winnt-cxx.c
+===================================================================
+--- gcc/config/i386/winnt-cxx.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/winnt-cxx.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -97,6 +97,20 @@
+  
+   if (lookup_attribute ("dllexport", TYPE_ATTRIBUTES (t)) != NULL_TREE)
+     {
++      tree tmv = TYPE_MAIN_VARIANT (t);
++
++      /* Make sure that we set dllexport attribute to typeinfo's
++       base declaration, as otherwise it would fail to be exported as
++       it isn't a class-member.  */
++      if (tmv != NULL_TREE
++        && CLASSTYPE_TYPEINFO_VAR (tmv) != NULL_TREE)
++      {
++        tree na, ti_decl = CLASSTYPE_TYPEINFO_VAR (tmv);
++        na = tree_cons (get_identifier ("dllexport"), NULL_TREE,
++                        NULL_TREE);
++        decl_attributes (&ti_decl, na, 0);
++      }
++
+       /* Check static VAR_DECL's.  */
+       for (member = TYPE_FIELDS (t); member; member = DECL_CHAIN (member))
+       if (TREE_CODE (member) == VAR_DECL)     
 Index: gcc/config/i386/freebsd.h
 ===================================================================
---- gcc/config/i386/freebsd.h  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/i386/freebsd.h  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/i386/freebsd.h  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/freebsd.h  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -147,3 +147,6 @@
  #if FBSD_MAJOR >= 6
  #define SUBTARGET32_DEFAULT_CPU "i486"
@@ -10246,8 +11971,8 @@ Index: gcc/config/i386/freebsd.h
 +
 Index: gcc/config/i386/driver-i386.c
 ===================================================================
---- gcc/config/i386/driver-i386.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/i386/driver-i386.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/i386/driver-i386.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/driver-i386.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -507,7 +507,7 @@
        processor = PROCESSOR_AMDFAM10;
        else if (has_sse2 || has_longmode)
@@ -10259,8 +11984,8 @@ Index: gcc/config/i386/driver-i386.c
        processor = PROCESSOR_K6;
 Index: gcc/config/i386/avxintrin.h
 ===================================================================
---- gcc/config/i386/avxintrin.h        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/i386/avxintrin.h        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/i386/avxintrin.h        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/avxintrin.h        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -759,7 +759,7 @@
  
  #ifdef __x86_64__
@@ -10272,8 +11997,8 @@ Index: gcc/config/i386/avxintrin.h
    __Y = _mm_insert_epi64 (__Y, __D, __N % 2);
 Index: gcc/config/i386/i386.c
 ===================================================================
---- gcc/config/i386/i386.c     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/i386/i386.c     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/i386/i386.c     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/i386/i386.c     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -16329,7 +16329,6 @@
    basic_block bb = BLOCK_FOR_INSN (insn);
    int distance = 0;
@@ -10306,8 +12031,8 @@ Index: gcc/config/i386/i386.c
                }
 Index: gcc/config/avr/libgcc.S
 ===================================================================
---- gcc/config/avr/libgcc.S    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/avr/libgcc.S    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/avr/libgcc.S    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/avr/libgcc.S    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -582,7 +582,16 @@
        push r17
        push r28
@@ -10359,8 +12084,8 @@ Index: gcc/config/avr/libgcc.S
  #endif /* defined (L_epilogue) */
 Index: gcc/config/avr/avr.md
 ===================================================================
---- gcc/config/avr/avr.md      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/avr/avr.md      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/avr/avr.md      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/avr/avr.md      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -299,7 +299,7 @@
    [(set (match_operand:HI 0 "stack_register_operand" "=q")
          (unspec_volatile:HI [(match_operand:HI 1 "register_operand"  "r")] 
@@ -10381,8 +12106,8 @@ Index: gcc/config/avr/avr.md
        sei
 Index: gcc/config/avr/avr-devices.c
 ===================================================================
---- gcc/config/avr/avr-devices.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/avr/avr-devices.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/avr/avr-devices.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/avr/avr-devices.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -70,7 +70,7 @@
    { "attiny2313a",          ARCH_AVR25, "__AVR_ATtiny2313A__",      1, 0x0060, "tn2313a" },
    { "attiny24",             ARCH_AVR25, "__AVR_ATtiny24__",         1, 0x0060, "tn24" },
@@ -10403,8 +12128,8 @@ Index: gcc/config/avr/avr-devices.c
    { "at43usb355",           ARCH_AVR3, "__AVR_AT43USB355__",        0, 0x0060, "43355" },
 Index: gcc/config/avr/avr.c
 ===================================================================
---- gcc/config/avr/avr.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/avr/avr.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/avr/avr.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/avr/avr.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1879,9 +1879,12 @@
            }
          else if (test_hard_reg_class (STACK_REG, src))
@@ -10446,8 +12171,8 @@ Index: gcc/config/avr/avr.c
           "__zero_reg__ = 1\n", asm_out_file);
 Index: gcc/config/rs6000/rs6000.c
 ===================================================================
---- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2612,6 +2612,7 @@
       off.  */
    rs6000_altivec_abi = 1;
@@ -10464,7 +12189,33 @@ Index: gcc/config/rs6000/rs6000.c
  #else
        && DEFAULT_ABI == ABI_V4
        && !flag_pic
-@@ -16613,7 +16615,7 @@
+@@ -7588,17 +7590,14 @@
+   if (!TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
+       && mode == TFmode && GET_CODE (operands[1]) == CONST_DOUBLE)
+     {
+-      /* DImode is used, not DFmode, because simplify_gen_subreg doesn't
+-       know how to get a DFmode SUBREG of a TFmode.  */
+-      enum machine_mode imode = (TARGET_E500_DOUBLE ? DFmode : DImode);
+-      rs6000_emit_move (simplify_gen_subreg (imode, operands[0], mode, 0),
+-                      simplify_gen_subreg (imode, operands[1], mode, 0),
+-                      imode);
+-      rs6000_emit_move (simplify_gen_subreg (imode, operands[0], mode,
+-                                           GET_MODE_SIZE (imode)),
+-                      simplify_gen_subreg (imode, operands[1], mode,
+-                                           GET_MODE_SIZE (imode)),
+-                      imode);
++      rs6000_emit_move (simplify_gen_subreg (DFmode, operands[0], mode, 0),
++                      simplify_gen_subreg (DFmode, operands[1], mode, 0),
++                      DFmode);
++      rs6000_emit_move (simplify_gen_subreg (DFmode, operands[0], mode,
++                                           GET_MODE_SIZE (DFmode)),
++                      simplify_gen_subreg (DFmode, operands[1], mode,
++                                           GET_MODE_SIZE (DFmode)),
++                      DFmode);
+       return;
+     }
+@@ -16613,7 +16612,7 @@
        if (TARGET_RELOCATABLE
          && in_section != toc_section
          && in_section != text_section
@@ -10473,7 +12224,7 @@ Index: gcc/config/rs6000/rs6000.c
          && !recurse
          && GET_CODE (x) != CONST_INT
          && GET_CODE (x) != CONST_DOUBLE
-@@ -20227,7 +20229,7 @@
+@@ -20227,7 +20226,7 @@
  {
    /* This blockage is needed so that sched doesn't decide to move
       the sp change before the register restores.  */
@@ -10482,7 +12233,7 @@ Index: gcc/config/rs6000/rs6000.c
        || (TARGET_SPE_ABI
          && info->spe_64bit_regs_used != 0
          && info->first_gp_reg_save != 32))
-@@ -20644,56 +20646,52 @@
+@@ -20644,56 +20643,52 @@
      {
        int i;
        rtx spe_save_area_ptr;
@@ -10566,7 +12317,7 @@ Index: gcc/config/rs6000/rs6000.c
        if (saving_GPRs_inline)
        {
          for (i = 0; i < 32 - info->first_gp_reg_save; i++)
-@@ -20705,36 +20703,34 @@
+@@ -20705,36 +20700,34 @@
                /* We're doing all this to ensure that the offset fits into
                   the immediate offset of 'evstdd'.  */
                gcc_assert (SPE_CONST_OFFSET_OK (reg_size * i + spe_offset));
@@ -10615,7 +12366,7 @@ Index: gcc/config/rs6000/rs6000.c
      }
    else if (!WORLD_SAVE_P (info) && !saving_GPRs_inline)
      {
-@@ -20743,10 +20739,12 @@
+@@ -20743,10 +20736,12 @@
        /* Need to adjust r11 (r12) if we saved any FPRs.  */
        if (info->first_fp_reg_save != 64)
          {
@@ -10632,7 +12383,7 @@ Index: gcc/config/rs6000/rs6000.c
          emit_insn (gen_add3_insn (dest_reg, frame_reg_rtx, offset));
          }
  
-@@ -21622,40 +21620,39 @@
+@@ -21622,40 +21617,39 @@
        && info->first_gp_reg_save != 32)
      {
        /* Determine whether we can address all of the registers that need
@@ -10693,7 +12444,7 @@ Index: gcc/config/rs6000/rs6000.c
  
        if (restoring_GPRs_inline)
        {
-@@ -21695,8 +21692,8 @@
+@@ -21695,8 +21689,8 @@
        {
          rtx par;
  
@@ -10704,7 +12455,7 @@ Index: gcc/config/rs6000/rs6000.c
                                        /*savep=*/false, /*gpr=*/true,
                                        /*lr=*/true);
          emit_jump_insn (par);
-@@ -21717,12 +21714,12 @@
+@@ -21717,12 +21711,12 @@
                                 sp_offset, can_use_exit);
        else
        {
@@ -10722,7 +12473,7 @@ Index: gcc/config/rs6000/rs6000.c
        }
  
        par = rs6000_make_savres_rtx (info, frame_reg_rtx,
-@@ -27763,7 +27760,7 @@
+@@ -27763,7 +27757,7 @@
                    if (strcmp (r, rs6000_opt_vars[i].name) == 0)
                      {
                        size_t j = rs6000_opt_vars[i].global_offset;
@@ -10733,8 +12484,8 @@ Index: gcc/config/rs6000/rs6000.c
                      }
 Index: gcc/config/rs6000/rs6000.md
 ===================================================================
---- gcc/config/rs6000/rs6000.md        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/rs6000/rs6000.md        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/rs6000/rs6000.md        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/rs6000/rs6000.md        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -12241,8 +12241,8 @@
    "
  {
@@ -10748,8 +12499,8 @@ Index: gcc/config/rs6000/rs6000.md
    operands[5] = gen_rtx_MEM (SImode,
 Index: gcc/config/darwin.c
 ===================================================================
---- gcc/config/darwin.c        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/darwin.c        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/darwin.c        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/darwin.c        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1753,19 +1753,51 @@
    return (!strncmp ((const char *)p, "_OBJC_", 6));
  }
@@ -10980,8 +12731,8 @@ Index: gcc/config/darwin.c
       re-arranging data.  */
 Index: gcc/config/arm/thumb2.md
 ===================================================================
---- gcc/config/arm/thumb2.md   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/arm/thumb2.md   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/arm/thumb2.md   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/arm/thumb2.md   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -257,7 +257,7 @@
        (not:SI (match_operator:SI 1 "arm_comparison_operator"
                 [(match_operand 2 "cc_register" "") (const_int 0)])))]
@@ -10993,8 +12744,8 @@ Index: gcc/config/arm/thumb2.md
  )
 Index: gcc/config/arm/arm.c
 ===================================================================
---- gcc/config/arm/arm.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/arm/arm.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/arm/arm.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/arm/arm.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3570,6 +3570,10 @@
        add_libcall (libcall_htab,
                   convert_optab_libfunc (trunc_optab, HFmode, SFmode));
@@ -11196,8 +12947,8 @@ Index: gcc/config/arm/arm.c
                               GEN_INT (amount)));
 Index: gcc/config/arm/arm.md
 ===================================================================
---- gcc/config/arm/arm.md      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/arm/arm.md      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/arm/arm.md      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/arm/arm.md      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -104,6 +104,7 @@
     (UNSPEC_SYMBOL_OFFSET 27) ; The offset of the start of the symbol from
                               ; another symbolic address.
@@ -11246,7 +12997,17 @@ Index: gcc/config/arm/arm.md
  ;; The rather odd constraints on the following are to force reload to leave
  ;; the insn alone, and to force the minipool generation pass to then move
  ;; the GOT symbol to memory.
-@@ -7346,7 +7371,7 @@
+@@ -5338,7 +5363,8 @@
+                   (const_int 8)
+                   (match_operand 1 "" "")]
+                  UNSPEC_PIC_BASE))
+-   (set (match_operand:SI 2 "register_operand" "") (mem:SI (match_dup 0)))]
++   (set (match_operand:SI 2 "arm_general_register_operand" "")
++      (mem:SI (match_dup 0)))]
+   "TARGET_ARM && peep2_reg_dead_p (2, operands[0])"
+   [(set (match_dup 2)
+       (mem:SI (unspec:SI [(match_dup 3)
+@@ -7346,7 +7372,7 @@
        (not:SI (match_operator:SI 1 "arm_comparison_operator"
                 [(match_operand 2 "cc_register" "") (const_int 0)])))]
    "TARGET_ARM"
@@ -11257,8 +13018,8 @@ Index: gcc/config/arm/arm.md
     (set_attr "length" "8")]
 Index: gcc/config/pa/pa.c
 ===================================================================
---- gcc/config/pa/pa.c (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/pa/pa.c (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/pa/pa.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/pa/pa.c (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1863,6 +1863,11 @@
    /* Handle the most common case: storing into a register.  */
    else if (register_operand (operand0, mode))
@@ -11273,8 +13034,8 @@ Index: gcc/config/pa/pa.c
              && cint_ok_for_move (INTVAL (operand1)))
 Index: gcc/config/pa/pa.h
 ===================================================================
---- gcc/config/pa/pa.h (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/pa/pa.h (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/pa/pa.h (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/pa/pa.h (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -848,6 +848,9 @@
     && (NEW_HP_ASSEMBLER                                               \
         || TARGET_GAS                                          \
@@ -11287,8 +13048,8 @@ Index: gcc/config/pa/pa.h
     && (!TARGET_64BIT                                          \
 Index: gcc/config/mips/mips.md
 ===================================================================
---- gcc/config/mips/mips.md    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/config/mips/mips.md    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/config/mips/mips.md    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/config/mips/mips.md    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -4707,7 +4707,7 @@
  ;; of _gp from the start of this function.  Operand 1 is the incoming
  ;; function address.
@@ -11300,9 +13061,86 @@ Index: gcc/config/mips/mips.md
                  UNSPEC_LOADGP))]
 Index: gcc/cfgrtl.c
 ===================================================================
---- gcc/cfgrtl.c       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/cfgrtl.c       (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1642,9 +1642,10 @@
+--- gcc/cfgrtl.c       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/cfgrtl.c       (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1123,6 +1123,7 @@
+   rtx note;
+   edge new_edge;
+   int abnormal_edge_flags = 0;
++  bool asm_goto_edge = false;
+   int loc;
+   /* In the case the last instruction is conditional jump to the next
+@@ -1202,8 +1203,28 @@
+       }
+     }
+-  if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags)
++  /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
++     don't point to target label.  */
++  if (JUMP_P (BB_END (e->src))
++      && target != EXIT_BLOCK_PTR
++      && e->dest == target
++      && (e->flags & EDGE_FALLTHRU)
++      && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
+     {
++      int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
++
++      for (i = 0; i < n; ++i)
++      if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
++        {
++          asm_goto_edge = true;
++          break;
++        }
++    }
++
++  if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
++    {
++      gcov_type count = e->count;
++      int probability = e->probability;
+       /* Create the new structures.  */
+       /* If the old block ended with a tablejump, skip its table
+@@ -1214,7 +1235,7 @@
+       note = NEXT_INSN (note);
+       jump_block = create_basic_block (note, NULL, e->src);
+-      jump_block->count = e->count;
++      jump_block->count = count;
+       jump_block->frequency = EDGE_FREQUENCY (e);
+       jump_block->loop_depth = target->loop_depth;
+@@ -1230,13 +1251,27 @@
+       /* Wire edge in.  */
+       new_edge = make_edge (e->src, jump_block, EDGE_FALLTHRU);
+-      new_edge->probability = e->probability;
+-      new_edge->count = e->count;
++      new_edge->probability = probability;
++      new_edge->count = count;
+       /* Redirect old edge.  */
+       redirect_edge_pred (e, jump_block);
+       e->probability = REG_BR_PROB_BASE;
++      /* If asm goto has any label refs to target's label,
++       add also edge from asm goto bb to target.  */
++      if (asm_goto_edge)
++      {
++        new_edge->probability /= 2;
++        new_edge->count /= 2;
++        jump_block->count /= 2;
++        jump_block->frequency /= 2;
++        new_edge = make_edge (new_edge->src, target,
++                              e->flags & ~EDGE_FALLTHRU);
++        new_edge->probability = probability - probability / 2;
++        new_edge->count = count - count / 2;
++      }
++
+       new_bb = jump_block;
+     }
+   else
+@@ -1642,9 +1677,10 @@
        putc ('\n', outf);
      }
  
@@ -11316,10 +13154,68 @@ Index: gcc/cfgrtl.c
  
    if (df)
      {
+@@ -2754,6 +2790,11 @@
+       rtx first = BB_END (a), last;
+       last = emit_insn_after_noloc (b->il.rtl->header, BB_END (a), a);
++      /* The above might add a BARRIER as BB_END, but as barriers
++       aren't valid parts of a bb, remove_insn doesn't update
++       BB_END if it is a barrier.  So adjust BB_END here.  */
++      while (BB_END (a) != first && BARRIER_P (BB_END (a)))
++      BB_END (a) = PREV_INSN (BB_END (a));
+       delete_insn_chain (NEXT_INSN (first), last, false);
+       b->il.rtl->header = NULL;
+     }
+Index: gcc/stmt.c
+===================================================================
+--- gcc/stmt.c (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/stmt.c (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1252,11 +1252,11 @@
+ static bool
+ check_unique_operand_names (tree outputs, tree inputs, tree labels)
+ {
+-  tree i, j;
++  tree i, j, i_name = NULL_TREE;
+   for (i = outputs; i ; i = TREE_CHAIN (i))
+     {
+-      tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
++      i_name = TREE_PURPOSE (TREE_PURPOSE (i));
+       if (! i_name)
+       continue;
+@@ -1267,7 +1267,7 @@
+   for (i = inputs; i ; i = TREE_CHAIN (i))
+     {
+-      tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
++      i_name = TREE_PURPOSE (TREE_PURPOSE (i));
+       if (! i_name)
+       continue;
+@@ -1281,7 +1281,7 @@
+   for (i = labels; i ; i = TREE_CHAIN (i))
+     {
+-      tree i_name = TREE_PURPOSE (i);
++      i_name = TREE_PURPOSE (i);
+       if (! i_name)
+       continue;
+@@ -1296,8 +1296,7 @@
+   return true;
+  failure:
+-  error ("duplicate asm operand name %qs",
+-       TREE_STRING_POINTER (TREE_PURPOSE (TREE_PURPOSE (i))));
++  error ("duplicate asm operand name %qs", TREE_STRING_POINTER (i_name));
+   return false;
+ }
 Index: gcc/reload1.c
 ===================================================================
---- gcc/reload1.c      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ gcc/reload1.c      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- gcc/reload1.c      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ gcc/reload1.c      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -3899,6 +3899,10 @@
      if (XEXP (x, 0))
        set_label_offsets (XEXP (x, 0), NULL_RTX, 1);
@@ -11333,8 +13229,8 @@ Index: gcc/reload1.c
  
 Index: zlib/configure
 ===================================================================
---- zlib/configure     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ zlib/configure     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- zlib/configure     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ zlib/configure     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -8600,7 +8600,7 @@
        ;;
  
@@ -11364,8 +13260,8 @@ Index: zlib/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: zlib/ChangeLog
 ===================================================================
---- zlib/ChangeLog     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ zlib/ChangeLog     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- zlib/ChangeLog     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ zlib/ChangeLog     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -11376,8 +13272,8 @@ Index: zlib/ChangeLog
        * GCC 4.6.2 released.
 Index: libstdc++-v3/configure
 ===================================================================
---- libstdc++-v3/configure     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/configure     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/configure     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/configure     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -9698,7 +9698,7 @@
        ;;
  
@@ -11434,8 +13330,8 @@ Index: libstdc++-v3/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libstdc++-v3/include/debug/unordered_map
 ===================================================================
---- libstdc++-v3/include/debug/unordered_map   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/debug/unordered_map   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/debug/unordered_map   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/debug/unordered_map   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -276,6 +276,10 @@
        }
  
@@ -11460,8 +13356,8 @@ Index: libstdc++-v3/include/debug/unordered_map
        __glibcxx_check_erase_range(__first, __last);
 Index: libstdc++-v3/include/debug/unordered_set
 ===================================================================
---- libstdc++-v3/include/debug/unordered_set   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/debug/unordered_set   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/debug/unordered_set   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/debug/unordered_set   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -269,6 +269,10 @@
        }
  
@@ -11486,8 +13382,8 @@ Index: libstdc++-v3/include/debug/unordered_set
        __glibcxx_check_erase_range(__first, __last);
 Index: libstdc++-v3/include/debug/map.h
 ===================================================================
---- libstdc++-v3/include/debug/map.h   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/debug/map.h   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/debug/map.h   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/debug/map.h   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -273,6 +273,10 @@
        this->_M_invalidate_if(_Equal(__position.base()));
        return iterator(_Base::erase(__position.base()), this);
@@ -11501,8 +13397,8 @@ Index: libstdc++-v3/include/debug/map.h
        erase(iterator __position)
 Index: libstdc++-v3/include/debug/multimap.h
 ===================================================================
---- libstdc++-v3/include/debug/multimap.h      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/debug/multimap.h      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/debug/multimap.h      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/debug/multimap.h      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -254,6 +254,10 @@
        this->_M_invalidate_if(_Equal(__position.base()));
        return iterator(_Base::erase(__position.base()), this);
@@ -11516,8 +13412,8 @@ Index: libstdc++-v3/include/debug/multimap.h
        erase(iterator __position)
 Index: libstdc++-v3/include/std/condition_variable
 ===================================================================
---- libstdc++-v3/include/std/condition_variable        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/std/condition_variable        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/std/condition_variable        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/std/condition_variable        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -198,10 +198,25 @@
        void
        wait(_Lock& __lock)
@@ -11550,8 +13446,8 @@ Index: libstdc++-v3/include/std/condition_variable
  
 Index: libstdc++-v3/include/std/complex
 ===================================================================
---- libstdc++-v3/include/std/complex   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/std/complex   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/std/complex   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/std/complex   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,7 +1,7 @@
  // The template and inlines for the -*- C++ -*- complex number classes.
  
@@ -11579,8 +13475,8 @@ Index: libstdc++-v3/include/std/complex
  #if _GLIBCXX_USE_C99_COMPLEX_TR1
 Index: libstdc++-v3/include/ext/type_traits.h
 ===================================================================
---- libstdc++-v3/include/ext/type_traits.h     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/ext/type_traits.h     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/ext/type_traits.h     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/ext/type_traits.h     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,6 +1,7 @@
  // -*- C++ -*-
  
@@ -11668,8 +13564,8 @@ Index: libstdc++-v3/include/ext/type_traits.h
  _GLIBCXX_END_NAMESPACE_VERSION
 Index: libstdc++-v3/include/profile/map.h
 ===================================================================
---- libstdc++-v3/include/profile/map.h (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/profile/map.h (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/profile/map.h (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/profile/map.h (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -326,6 +326,10 @@
          __profcxx_map_to_unordered_map_erase(this, size(), 1);
          return __i;
@@ -11683,8 +13579,8 @@ Index: libstdc++-v3/include/profile/map.h
        erase(iterator __position)
 Index: libstdc++-v3/include/profile/multimap.h
 ===================================================================
---- libstdc++-v3/include/profile/multimap.h    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/profile/multimap.h    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/profile/multimap.h    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/profile/multimap.h    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -225,6 +225,10 @@
        iterator
        erase(const_iterator __position)
@@ -11698,8 +13594,8 @@ Index: libstdc++-v3/include/profile/multimap.h
        erase(iterator __position)
 Index: libstdc++-v3/include/bits/hashtable.h
 ===================================================================
---- libstdc++-v3/include/bits/hashtable.h      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/hashtable.h      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/hashtable.h      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/hashtable.h      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -440,6 +440,11 @@
        iterator
        erase(const_iterator);
@@ -11714,8 +13610,8 @@ Index: libstdc++-v3/include/bits/hashtable.h
  
 Index: libstdc++-v3/include/bits/shared_ptr.h
 ===================================================================
---- libstdc++-v3/include/bits/shared_ptr.h     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/shared_ptr.h     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/shared_ptr.h     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/shared_ptr.h     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -100,6 +100,8 @@
        constexpr shared_ptr()
        : __shared_ptr<_Tp>() { }
@@ -11736,8 +13632,8 @@ Index: libstdc++-v3/include/bits/shared_ptr.h
        operator=(const shared_ptr<_Tp1>& __r) // never throws
 Index: libstdc++-v3/include/bits/stl_map.h
 ===================================================================
---- libstdc++-v3/include/bits/stl_map.h        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/stl_map.h        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/stl_map.h        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/stl_map.h        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -612,6 +612,11 @@
        iterator
        erase(const_iterator __position)
@@ -11752,8 +13648,8 @@ Index: libstdc++-v3/include/bits/stl_map.h
         *  @brief Erases an element from a %map.
 Index: libstdc++-v3/include/bits/stl_multimap.h
 ===================================================================
---- libstdc++-v3/include/bits/stl_multimap.h   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/stl_multimap.h   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/stl_multimap.h   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/stl_multimap.h   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -533,6 +533,11 @@
        iterator
        erase(const_iterator __position)
@@ -11768,8 +13664,8 @@ Index: libstdc++-v3/include/bits/stl_multimap.h
         *  @brief Erases an element from a %multimap.
 Index: libstdc++-v3/include/bits/stl_numeric.h
 ===================================================================
---- libstdc++-v3/include/bits/stl_numeric.h    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/stl_numeric.h    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/stl_numeric.h    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/stl_numeric.h    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -222,10 +222,10 @@
    /**
     *  @brief  Return list of partial sums
@@ -11806,8 +13702,8 @@ Index: libstdc++-v3/include/bits/stl_numeric.h
    template<typename _InputIterator, typename _OutputIterator,
 Index: libstdc++-v3/include/bits/stl_uninitialized.h
 ===================================================================
---- libstdc++-v3/include/bits/stl_uninitialized.h      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/stl_uninitialized.h      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/stl_uninitialized.h      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/stl_uninitialized.h      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,7 +1,7 @@
  // Raw memory manipulators -*- C++ -*-
  
@@ -11860,8 +13756,8 @@ Index: libstdc++-v3/include/bits/stl_uninitialized.h
        {
 Index: libstdc++-v3/include/bits/shared_ptr_base.h
 ===================================================================
---- libstdc++-v3/include/bits/shared_ptr_base.h        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/shared_ptr_base.h        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/shared_ptr_base.h        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/shared_ptr_base.h        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -799,7 +799,8 @@
        : _M_ptr(__p), _M_refcount(__r._M_refcount) // never throws
        { }
@@ -11872,10 +13768,53 @@ Index: libstdc++-v3/include/bits/shared_ptr_base.h
  
        template<typename _Tp1, typename = typename
               std::enable_if<std::is_convertible<_Tp1*, _Tp*>::value>::type>
+Index: libstdc++-v3/include/bits/random.tcc
+===================================================================
+--- libstdc++-v3/include/bits/random.tcc       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/random.tcc       (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,6 +1,6 @@
+ // random number generation (out of line) -*- C++ -*-
+-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
++// Copyright (C) 2009, 2010, 2011, 2012 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
+@@ -49,6 +49,8 @@
+     //
+     // Preconditions:  a > 0, m > 0.
+     //
++    // XXX FIXME: as-is, only works correctly for __m % __a < __m / __a. 
++    //
+     template<typename _Tp, _Tp __m, _Tp __a, _Tp __c, bool>
+       struct _Mod
+       {
+@@ -2769,8 +2771,8 @@
+                        ^ __begin[(__k + __p) % __n]
+                        ^ __begin[(__k - 1) % __n]);
+         _Type __r1 = __arg ^ (__arg >> 27);
+-        __r1 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value,
+-                               1664525u, 0u>(__r1);
++        __r1 = __detail::__mod<_Type,
++                  __detail::_Shift<_Type, 32>::__value>(1664525u * __r1);
+         _Type __r2 = __r1;
+         if (__k == 0)
+           __r2 += __s;
+@@ -2791,8 +2793,8 @@
+                        + __begin[(__k + __p) % __n]
+                        + __begin[(__k - 1) % __n]);
+         _Type __r3 = __arg ^ (__arg >> 27);
+-        __r3 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value,
+-                               1566083941u, 0u>(__r3);
++        __r3 = __detail::__mod<_Type,
++                 __detail::_Shift<_Type, 32>::__value>(1566083941u * __r3);
+         _Type __r4 = __r3 - __k % __n;
+         __r4 = __detail::__mod<_Type,
+                  __detail::_Shift<_Type, 32>::__value>(__r4);
 Index: libstdc++-v3/include/bits/regex.h
 ===================================================================
---- libstdc++-v3/include/bits/regex.h  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/regex.h  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/regex.h  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/regex.h  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2219,7 +2219,7 @@
                  regex_constants::match_flag_type __flags
                  = regex_constants::match_default)
@@ -11885,10 +13824,34 @@ Index: libstdc++-v3/include/bits/regex.h
        regex_replace(std::back_inserter(__result),
                    __s.begin(), __s.end(), __e, __fmt, __flags);
        return __result;
+Index: libstdc++-v3/include/bits/random.h
+===================================================================
+--- libstdc++-v3/include/bits/random.h (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/random.h (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,6 +1,6 @@
+ // random number generation -*- C++ -*-
+-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
++// Copyright (C) 2009, 2010, 2011, 2012 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
+@@ -174,6 +174,11 @@
+       static_assert(__m == 0u || (__a < __m && __c < __m),
+                   "template argument substituting __m out of bounds");
++      // XXX FIXME:
++      // _Mod::__calc should handle correctly __m % __a >= __m / __a too.
++      static_assert(__m % __a < __m / __a,
++                  "sorry, not implemented yet: try a smaller 'a' constant");
++
+     public:
+       /** The type of the generated random value. */
+       typedef _UIntType result_type;
 Index: libstdc++-v3/include/bits/stl_tree.h
 ===================================================================
---- libstdc++-v3/include/bits/stl_tree.h       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/bits/stl_tree.h       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/bits/stl_tree.h       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/bits/stl_tree.h       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -760,6 +760,16 @@
        _M_erase_aux(__position);
        return __result._M_const_cast();
@@ -11908,8 +13871,8 @@ Index: libstdc++-v3/include/bits/stl_tree.h
        erase(iterator __position)
 Index: libstdc++-v3/include/c_global/cmath
 ===================================================================
---- libstdc++-v3/include/c_global/cmath        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/c_global/cmath        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/c_global/cmath        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/c_global/cmath        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,7 +1,7 @@
  // -*- C++ -*- C forwarding header.
  
@@ -11945,8 +13908,8 @@ Index: libstdc++-v3/include/c_global/cmath
        typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
 Index: libstdc++-v3/include/tr1/complex
 ===================================================================
---- libstdc++-v3/include/tr1/complex   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/tr1/complex   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/tr1/complex   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/tr1/complex   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -185,12 +185,9 @@
      std::complex<_Tp>
      __complex_acosh(const std::complex<_Tp>& __z)
@@ -11965,8 +13928,8 @@ Index: libstdc++-v3/include/tr1/complex
  #if _GLIBCXX_USE_C99_COMPLEX_TR1
 Index: libstdc++-v3/include/tr1/poly_hermite.tcc
 ===================================================================
---- libstdc++-v3/include/tr1/poly_hermite.tcc  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/include/tr1/poly_hermite.tcc  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/include/tr1/poly_hermite.tcc  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/include/tr1/poly_hermite.tcc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,6 +1,6 @@
  // Special functions -*- C++ -*-
  
@@ -11986,9 +13949,18 @@ Index: libstdc++-v3/include/tr1/poly_hermite.tcc
          }
 Index: libstdc++-v3/ChangeLog
 ===================================================================
---- libstdc++-v3/ChangeLog     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,131 @@
+--- libstdc++-v3/ChangeLog     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,140 @@
++2012-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
++
++      PR libstdc++/51795
++      * include/bits/random.h (linear_congruential_generator): Add
++      static_assert preventing instantiation for values of 'a' and 'm'
++      currently handled incorrectly by _Mod::__calc.
++      * include/bits/random.tcc (seed_seq::generate): Avoid unsafe
++      uses of _Mod::__calc.
++
 +2012-01-03  Chase Douglas  <chase.douglas@canonical.com>
 +          Jonathan Wakely  <jwakely.gcc@gmail.com>
 +
@@ -12123,7 +14095,7 @@ Index: libstdc++-v3/ChangeLog
 Index: libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
 ===================================================================
 --- libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,31 @@
 +// { dg-options "-std=gnu++0x" }
 +// { dg-do compile }
@@ -12159,7 +14131,7 @@ Index: libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
 Index: libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
 ===================================================================
 --- libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,31 @@
 +// { dg-options "-std=gnu++0x" }
 +// { dg-do compile }
@@ -12195,7 +14167,7 @@ Index: libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
 Index: libstdc++-v3/testsuite/26_numerics/complex/51083.cc
 ===================================================================
 --- libstdc++-v3/testsuite/26_numerics/complex/51083.cc        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/26_numerics/complex/51083.cc        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/26_numerics/complex/51083.cc        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,54 @@
 +// { dg-options "-std=gnu++0x" }
 +//
@@ -12254,7 +14226,7 @@ Index: libstdc++-v3/testsuite/26_numerics/complex/51083.cc
 Index: libstdc++-v3/testsuite/26_numerics/complex/50880.cc
 ===================================================================
 --- libstdc++-v3/testsuite/26_numerics/complex/50880.cc        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/26_numerics/complex/50880.cc        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/26_numerics/complex/50880.cc        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,53 @@
 +// { dg-options "-std=gnu++0x" }
 +//
@@ -12312,7 +14284,7 @@ Index: libstdc++-v3/testsuite/26_numerics/complex/50880.cc
 Index: libstdc++-v3/testsuite/26_numerics/cmath/51083.cc
 ===================================================================
 --- libstdc++-v3/testsuite/26_numerics/cmath/51083.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/26_numerics/cmath/51083.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/26_numerics/cmath/51083.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,62 @@
 +// { dg-options "-std=gnu++0x" }
 +//
@@ -12379,7 +14351,7 @@ Index: libstdc++-v3/testsuite/26_numerics/cmath/51083.cc
 Index: libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
 ===================================================================
 --- libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,80 @@
 +// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
 +// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
@@ -12463,8 +14435,8 @@ Index: libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
 +}
 Index: libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -36,4 +36,4 @@
  }
  
@@ -12473,8 +14445,8 @@ Index: libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
 +// { dg-error "declaration of" "" { target *-*-* } 107 }
 Index: libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -35,4 +35,4 @@
  }
  
@@ -12483,8 +14455,8 @@ Index: libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
 +// { dg-error "no type" "" { target *-*-* } 70 } 
 Index: libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -35,4 +35,4 @@
  }
  
@@ -12493,8 +14465,8 @@ Index: libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
 +// { dg-error "no type" "" { target *-*-* } 113 }
 Index: libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -36,4 +36,4 @@
  }
  
@@ -12504,7 +14476,7 @@ Index: libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
 Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
 ===================================================================
 --- libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,54 @@
 +// { dg-options "-std=gnu++0x" }
 +//
@@ -12563,7 +14535,7 @@ Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
 Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
 ===================================================================
 --- libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc      (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc      (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,51 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12619,7 +14591,7 @@ Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
 Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
 ===================================================================
 --- libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc        (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc        (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,62 @@
 +// { dg-options "-std=gnu++0x" }
 +//
@@ -12686,7 +14658,7 @@ Index: libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
 Index: libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12729,7 +14701,7 @@ Index: libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12772,7 +14744,7 @@ Index: libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12815,7 +14787,7 @@ Index: libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12858,7 +14830,7 @@ Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12901,7 +14873,7 @@ Index: libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12944,7 +14916,7 @@ Index: libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc     (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -12987,7 +14959,7 @@ Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
 Index: libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,38 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -13029,8 +15001,8 @@ Index: libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
 +}
 Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -35,6 +35,6 @@
    // { dg-error "incomplete" "" { target *-*-* } 766 }
  
@@ -13042,7 +15014,7 @@ Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
 Index: libstdc++-v3/testsuite/20_util/allocator/51626.cc
 ===================================================================
 --- libstdc++-v3/testsuite/20_util/allocator/51626.cc  (.../tags/gcc_4_6_2_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/20_util/allocator/51626.cc  (.../branches/gcc-4_6-branch)   (wersja 183790)
++++ libstdc++-v3/testsuite/20_util/allocator/51626.cc  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -0,0 +1,66 @@
 +// Copyright (C) 2011 Free Software Foundation, Inc.
 +//
@@ -13112,8 +15084,8 @@ Index: libstdc++-v3/testsuite/20_util/allocator/51626.cc
 +}
 Index: libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -42,8 +42,8 @@
    return 0;
  }
@@ -13127,8 +15099,8 @@ Index: libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
  // { dg-warning "note" "" { target *-*-* } 1049 }
 Index: configure.ac
 ===================================================================
---- configure.ac       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ configure.ac       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- configure.ac       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ configure.ac       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -2428,10 +2428,6 @@
      extra_arflags_for_target=" -X32_64"
      extra_nmflags_for_target=" -B -X32_64"
@@ -13142,8 +15114,8 @@ Index: configure.ac
      ;;
 Index: libobjc/configure
 ===================================================================
---- libobjc/configure  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libobjc/configure  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libobjc/configure  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libobjc/configure  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -8797,7 +8797,7 @@
        ;;
  
@@ -13173,8 +15145,8 @@ Index: libobjc/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libobjc/ChangeLog
 ===================================================================
---- libobjc/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libobjc/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libobjc/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libobjc/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -13185,8 +15157,8 @@ Index: libobjc/ChangeLog
        * GCC 4.6.2 released.
 Index: libgfortran/configure
 ===================================================================
---- libgfortran/configure      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgfortran/configure      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgfortran/configure      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgfortran/configure      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -10326,7 +10326,7 @@
        ;;
  
@@ -13243,8 +15215,8 @@ Index: libgfortran/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libgfortran/ChangeLog
 ===================================================================
---- libgfortran/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libgfortran/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libgfortran/ChangeLog      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libgfortran/ChangeLog      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -13255,8 +15227,8 @@ Index: libgfortran/ChangeLog
        * GCC 4.6.2 released.
 Index: Makefile.def
 ===================================================================
---- Makefile.def       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ Makefile.def       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- Makefile.def       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ Makefile.def       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -353,6 +353,7 @@
  dependencies = { module=install-gcc ; on=install-fixincludes; };
  dependencies = { module=install-gcc ; on=install-lto-plugin; };
@@ -13267,8 +15239,8 @@ Index: Makefile.def
  dependencies = { module=configure-libcpp; on=configure-intl; };
 Index: libada/Makefile.in
 ===================================================================
---- libada/Makefile.in (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libada/Makefile.in (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libada/Makefile.in (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libada/Makefile.in (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -70,6 +70,7 @@
  version := $(shell cat $(srcdir)/../gcc/BASE-VER)
  libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
@@ -13312,8 +15284,8 @@ Index: libada/Makefile.in
        $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) install-gnatlib
 Index: libada/ChangeLog
 ===================================================================
---- libada/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libada/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libada/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libada/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,9 @@
 +2011-11-13  Iain Sandoe  <iains@gcc.gnu.org>
 +
@@ -13326,8 +15298,8 @@ Index: libada/ChangeLog
        * GCC 4.6.2 released.
 Index: libmudflap/configure
 ===================================================================
---- libmudflap/configure       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libmudflap/configure       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libmudflap/configure       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libmudflap/configure       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -8818,7 +8818,7 @@
        ;;
  
@@ -13357,9 +15329,17 @@ Index: libmudflap/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libmudflap/ChangeLog
 ===================================================================
---- libmudflap/ChangeLog       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libmudflap/ChangeLog       (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,7 @@
+--- libmudflap/ChangeLog       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libmudflap/ChangeLog       (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,15 @@
++2012-02-09  Jakub Jelinek  <jakub@redhat.com>
++
++      Backported from mainline
++      2012-01-19  Jakub Jelinek  <jakub@redhat.com>
++
++      PR libmudflap/40778
++      * testsuite/libmudflap.c/fail68-frag.c: New test.
++
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
 +      * configure: Regenerate.
@@ -13367,11 +15347,65 @@ Index: libmudflap/ChangeLog
  2011-10-26  Release Manager
  
        * GCC 4.6.2 released.
+Index: libmudflap/testsuite/libmudflap.c/fail68-frag.c
+===================================================================
+--- libmudflap/testsuite/libmudflap.c/fail68-frag.c    (.../tags/gcc_4_6_2_release)    (wersja 0)
++++ libmudflap/testsuite/libmudflap.c/fail68-frag.c    (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -0,0 +1,27 @@
++/* PR libmudflap/40778 */
++
++char p[32];
++static int j;
++
++__attribute__((noinline))
++static void foo (int i)
++{
++  if (j++ == 0)
++    p[i + 4] = 12;
++  else
++    p[i - 4] = 13;
++}
++
++int
++main ()
++{
++  foo (30);
++  foo (30);
++  foo (30);
++  return 0;
++}
++
++/* { dg-output "mudflap violation 1.*" } */
++/* { dg-output "Nearby object 1.*" } */
++/* { dg-output "mudflap object.*name.*p" } */
++/* { dg-do run { xfail *-*-* } } */
+Index: boehm-gc/include/gc_config_macros.h
+===================================================================
+--- boehm-gc/include/gc_config_macros.h        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ boehm-gc/include/gc_config_macros.h        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -81,7 +81,9 @@
+     typedef long ptrdiff_t;   /* ptrdiff_t is not defined */
+ # endif
+-#if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL)
++#if ((defined(_DLL) && !defined (__MINGW32__)) \
++     || (defined (DLL_EXPORT) && defined (GC_BUILD))) \
++    && !defined(GC_DLL)
+ # define GC_DLL
+ #endif
 Index: boehm-gc/ChangeLog
 ===================================================================
---- boehm-gc/ChangeLog (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ boehm-gc/ChangeLog (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,7 @@
+--- boehm-gc/ChangeLog (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ boehm-gc/ChangeLog (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,14 @@
++2012-02-10  Kai Tietz  <ktietz@redhat.com>
++
++      PR boehm-gc/48514
++      * include/gc_config_macros.h (GC_DLL): Define it for mingw-targets
++      only, if we are actual in boehm-gc's build and DLL_EXPORT
++      is defined.
++
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
 +      * configure: Regenerate.
@@ -13381,8 +15415,8 @@ Index: boehm-gc/ChangeLog
        * GCC 4.6.2 released.
 Index: boehm-gc/configure
 ===================================================================
---- boehm-gc/configure (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ boehm-gc/configure (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- boehm-gc/configure (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ boehm-gc/configure (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -9604,7 +9604,7 @@
        ;;
  
@@ -13439,9 +15473,28 @@ Index: boehm-gc/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libiberty/ChangeLog
 ===================================================================
---- libiberty/ChangeLog        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libiberty/ChangeLog        (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,17 @@
+--- libiberty/ChangeLog        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libiberty/ChangeLog        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,36 @@
++2012-02-09  Jakub Jelinek  <jakub@redhat.com>
++
++      Backported from mainline
++      2012-01-26  Jakub Jelinek  <jakub@redhat.com>
++
++      * make-relative-prefix.c (make_relative_prefix_1): Avoid warning
++      about using preprocessor directives inside of macro arguments.
++
++      2012-01-02  Jakub Jelinek  <jakub@redhat.com>
++
++      * make-relative-prefix.c (make_relative_prefix_1): Avoid
++      stack overflow if PATH contains just a single entry and
++      HOST_EXECUTABLE_SUFFIX needs to be used.
++
++      PR driver/48306
++      * make-relative-prefix.c: Include sys/stat.h.
++      (make_relative_prefix_1): If access succeeds, check also stat
++      if nstore is a regular file.
++
 +2011-11-13  Iain Sandoe  <iains@gcc.gnu.org>
 +
 +      PR target/48108
@@ -13461,8 +15514,8 @@ Index: libiberty/ChangeLog
        * GCC 4.6.2 released.
 Index: libiberty/simple-object-mach-o.c
 ===================================================================
---- libiberty/simple-object-mach-o.c   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libiberty/simple-object-mach-o.c   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libiberty/simple-object-mach-o.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libiberty/simple-object-mach-o.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,5 +1,5 @@
  /* simple-object-mach-o.c -- routines to manipulate Mach-O object files.
 -   Copyright 2010 Free Software Foundation, Inc.
@@ -14208,10 +16261,67 @@ Index: libiberty/simple-object-mach-o.c
    return NULL;
  }
  
+Index: libiberty/make-relative-prefix.c
+===================================================================
+--- libiberty/make-relative-prefix.c   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libiberty/make-relative-prefix.c   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -58,6 +58,9 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
++#ifdef HAVE_SYS_STAT_H
++#include <sys/stat.h>
++#endif
+ #include <string.h>
+@@ -245,10 +248,15 @@
+       {
+         char *startp, *endp, *nstore;
+         size_t prefixlen = strlen (temp) + 1;
++        size_t len;
+         if (prefixlen < 2)
+           prefixlen = 2;
+-        nstore = (char *) alloca (prefixlen + strlen (progname) + 1);
++        len = prefixlen + strlen (progname) + 1;
++#ifdef HAVE_HOST_EXECUTABLE_SUFFIX
++        len += strlen (HOST_EXECUTABLE_SUFFIX);
++#endif
++        nstore = (char *) alloca (len);
+         startp = endp = temp;
+         while (1)
+@@ -263,7 +271,7 @@
+                   }
+                 else
+                   {
+-                    strncpy (nstore, startp, endp - startp);
++                    memcpy (nstore, startp, endp - startp);
+                     if (! IS_DIR_SEPARATOR (endp[-1]))
+                       {
+                         nstore[endp - startp] = DIR_SEPARATOR;
+@@ -279,8 +287,14 @@
+ #endif
+                     )
+                   {
+-                    progname = nstore;
+-                    break;
++#if defined (HAVE_SYS_STAT_H) && defined (S_ISREG)
++                    struct stat st;
++                    if (stat (nstore, &st) >= 0 && S_ISREG (st.st_mode))
++#endif
++                      {
++                        progname = nstore;
++                        break;
++                      }
+                   }
+                 if (*endp == 0)
 Index: ChangeLog
 ===================================================================
---- ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,23 @@
 +2012-01-02  Richard Guenther  <rguenther@suse.de>
 +
@@ -14238,8 +16348,8 @@ Index: ChangeLog
        * GCC 4.6.2 released.
 Index: lto-plugin/configure
 ===================================================================
---- lto-plugin/configure       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ lto-plugin/configure       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- lto-plugin/configure       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ lto-plugin/configure       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -622,6 +622,7 @@
  GREP
  SED
@@ -14341,8 +16451,8 @@ Index: lto-plugin/configure
  #if HAVE_DLFCN_H
 Index: lto-plugin/Makefile.in
 ===================================================================
---- lto-plugin/Makefile.in     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ lto-plugin/Makefile.in     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- lto-plugin/Makefile.in     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ lto-plugin/Makefile.in     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -47,6 +47,7 @@
        $(top_srcdir)/../config/lead-dot.m4 \
        $(top_srcdir)/../config/lthostflags.m4 \
@@ -14370,8 +16480,8 @@ Index: lto-plugin/Makefile.in
  gcc_build_dir = ../$(host_subdir)/gcc
 Index: lto-plugin/configure.ac
 ===================================================================
---- lto-plugin/configure.ac    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ lto-plugin/configure.ac    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- lto-plugin/configure.ac    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ lto-plugin/configure.ac    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -6,6 +6,7 @@
  AM_MAINTAINER_MODE
  AC_PROG_CC
@@ -14382,8 +16492,8 @@ Index: lto-plugin/configure.ac
  AC_SUBST(target_noncanonical)
 Index: lto-plugin/ChangeLog
 ===================================================================
---- lto-plugin/ChangeLog       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ lto-plugin/ChangeLog       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- lto-plugin/ChangeLog       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ lto-plugin/ChangeLog       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,20 @@
 +2012-01-03  Richard Guenther  <rguenther@suse.de>
 +
@@ -14407,8 +16517,8 @@ Index: lto-plugin/ChangeLog
        * GCC 4.6.2 released.
 Index: lto-plugin/Makefile.am
 ===================================================================
---- lto-plugin/Makefile.am     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ lto-plugin/Makefile.am     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- lto-plugin/Makefile.am     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ lto-plugin/Makefile.am     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -8,7 +8,7 @@
  libexecsubdir := $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
  
@@ -14420,8 +16530,8 @@ Index: lto-plugin/Makefile.am
  libexecsub_LTLIBRARIES = liblto_plugin.la
 Index: lto-plugin/aclocal.m4
 ===================================================================
---- lto-plugin/aclocal.m4      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ lto-plugin/aclocal.m4      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- lto-plugin/aclocal.m4      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ lto-plugin/aclocal.m4      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -973,6 +973,7 @@
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
@@ -14432,8 +16542,8 @@ Index: lto-plugin/aclocal.m4
  m4_include([../ltsugar.m4])
 Index: libffi/configure
 ===================================================================
---- libffi/configure   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libffi/configure   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libffi/configure   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libffi/configure   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -9001,7 +9001,7 @@
        ;;
  
@@ -14461,11 +16571,33 @@ Index: libffi/configure
      shlibpath_overrides_runpath=yes
      ;;
    freebsd3.[01]* | freebsdelf3.[01]*)
+@@ -11435,6 +11435,15 @@
+   x86_64-*-cygwin* | x86_64-*-mingw*)
+       TARGET=X86_WIN64; TARGETDIR=x86
++      # All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
++      # We must also check with_cross_host to decide if this is a native
++      # or cross-build and select where to install dlls appropriately.
++      if test -n "$with_cross_host" &&
++         test x"$with_cross_host" != x"no"; then
++        AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
++      else
++        AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
++      fi
+       ;;
+   x86_64-*-*)
 Index: libffi/ChangeLog
 ===================================================================
---- libffi/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libffi/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,7 @@
+--- libffi/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libffi/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,13 @@
++2012-02-10  Kai Tietz  <ktietz@redhat.com>
++
++      * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
++      windows target.
++      * configure: Regenerated
++
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
 +      * configure: Regenerate.
@@ -14473,10 +16605,30 @@ Index: libffi/ChangeLog
  2011-10-26  Release Manager
  
        * GCC 4.6.2 released.
+Index: libffi/configure.ac
+===================================================================
+--- libffi/configure.ac        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libffi/configure.ac        (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -166,6 +166,15 @@
+   x86_64-*-cygwin* | x86_64-*-mingw*)
+       TARGET=X86_WIN64; TARGETDIR=x86
++      # All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
++      # We must also check with_cross_host to decide if this is a native
++      # or cross-build and select where to install dlls appropriately.
++      if test -n "$with_cross_host" &&
++         test x"$with_cross_host" != x"no"; then
++        AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
++      else
++        AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
++      fi
+       ;;
+   x86_64-*-*)
 Index: libssp/configure
 ===================================================================
---- libssp/configure   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libssp/configure   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libssp/configure   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libssp/configure   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -8864,7 +8864,7 @@
        ;;
  
@@ -14506,8 +16658,8 @@ Index: libssp/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libssp/ChangeLog
 ===================================================================
---- libssp/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libssp/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libssp/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libssp/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -14518,8 +16670,8 @@ Index: libssp/ChangeLog
        * GCC 4.6.2 released.
 Index: config/ChangeLog
 ===================================================================
---- config/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ config/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- config/ChangeLog   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ config/ChangeLog   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,7 @@
 +2011-12-18  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -14530,8 +16682,8 @@ Index: config/ChangeLog
        * GCC 4.6.2 released.
 Index: config/acx.m4
 ===================================================================
---- config/acx.m4      (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ config/acx.m4      (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- config/acx.m4      (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ config/acx.m4      (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -356,9 +356,9 @@
  ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
  
@@ -14556,8 +16708,8 @@ Index: config/acx.m4
    have_gnat=no
 Index: libjava/libltdl/configure
 ===================================================================
---- libjava/libltdl/configure  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/libltdl/configure  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/libltdl/configure  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/libltdl/configure  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -7355,7 +7355,7 @@
        ;;
  
@@ -14578,8 +16730,8 @@ Index: libjava/libltdl/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libjava/libltdl/ChangeLog
 ===================================================================
---- libjava/libltdl/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/libltdl/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/libltdl/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/libltdl/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,8 @@
 +2011-11-20  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -14591,8 +16743,8 @@ Index: libjava/libltdl/ChangeLog
        * GCC 4.6.2 released.
 Index: libjava/libltdl/acinclude.m4
 ===================================================================
---- libjava/libltdl/acinclude.m4       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/libltdl/acinclude.m4       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/libltdl/acinclude.m4       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/libltdl/acinclude.m4       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1377,7 +1377,7 @@
    esac
    shlibpath_var=LD_LIBRARY_PATH
@@ -14622,8 +16774,8 @@ Index: libjava/libltdl/acinclude.m4
        _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
 Index: libjava/configure.ac
 ===================================================================
---- libjava/configure.ac       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/configure.ac       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/configure.ac       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/configure.ac       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1060,7 +1060,7 @@
       *-*-cygwin*)
        # Don't set THREADLIBS here.  Cygwin doesn't have -lpthread.
@@ -14633,10 +16785,27 @@ Index: libjava/configure.ac
        # Before FreeBSD 5, it didn't have -lpthread (or any library which
        # merely adds pthread_* functions) but it does have a -pthread switch
        # which is required at link-time to select -lc_r *instead* of -lc.
+@@ -1135,9 +1135,14 @@
+     # FIXME: In Java we are able to detect thread death at the end of
+     # Thread.run() so we should be able to clean up the exception handling
+     # contexts ourselves.
+-    THREADSTARTFILESPEC='crtmt%O%s'
++    case "$host" in
++    *-w64-mingw*)
++      ;;
++    *)
++      THREADSTARTFILESPEC='crtmt%O%s'
++      ;;
++    esac
+     ;;
+-
+  none)
+     THREADH=no-threads.h
+     ;;
 Index: libjava/classpath/config.rpath
 ===================================================================
---- libjava/classpath/config.rpath     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/classpath/config.rpath     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/classpath/config.rpath     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/classpath/config.rpath     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -361,7 +361,7 @@
        hardcode_libdir_flag_spec='-R$libdir'
        hardcode_direct=yes
@@ -14657,8 +16826,8 @@ Index: libjava/classpath/config.rpath
          library_names_spec='$libname$shrext' ;;
 Index: libjava/classpath/configure
 ===================================================================
---- libjava/classpath/configure        (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/classpath/configure        (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/classpath/configure        (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/classpath/configure        (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -10025,7 +10025,7 @@
        ;;
  
@@ -14715,8 +16884,8 @@ Index: libjava/classpath/configure
    freebsd3.[01]* | freebsdelf3.[01]*)
 Index: libjava/classpath/ChangeLog.gcj
 ===================================================================
---- libjava/classpath/ChangeLog.gcj    (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/classpath/ChangeLog.gcj    (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/classpath/ChangeLog.gcj    (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/classpath/ChangeLog.gcj    (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,9 @@
 +2011-11-29  Andreas Tobler  <andreast@fgznet.ch>
 +
@@ -14729,9 +16898,16 @@ Index: libjava/classpath/ChangeLog.gcj
        * config.rpath, ltcf-c.sh, ltcf-gcj.sh, ltconfig: Remove
 Index: libjava/ChangeLog
 ===================================================================
---- libjava/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 183790)
-@@ -1,3 +1,16 @@
+--- libjava/ChangeLog  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/ChangeLog  (.../branches/gcc-4_6-branch)   (wersja 184125)
+@@ -1,3 +1,23 @@
++2012-02-03  Kai Tietz  <ktietz@redhat.com>
++
++      PR libjava/48512
++      * configure.ac (THREADSTARTFILESPEC): Don't add crtmet.o file for
++      w64 windows targets.
++      * configure: Regenerated.
++
 +2011-11-24  Jakub Jelinek  <jakub@redhat.com>
 +
 +      PR bootstrap/50888
@@ -14750,8 +16926,8 @@ Index: libjava/ChangeLog
        * GCC 4.6.2 released.
 Index: libjava/prims.cc
 ===================================================================
---- libjava/prims.cc   (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/prims.cc   (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/prims.cc   (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/prims.cc   (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -38,7 +38,6 @@
  #endif
  
@@ -14812,8 +16988,8 @@ Index: libjava/prims.cc
      {
 Index: libjava/configure
 ===================================================================
---- libjava/configure  (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ libjava/configure  (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- libjava/configure  (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ libjava/configure  (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -11560,7 +11560,7 @@
        ;;
  
@@ -14886,10 +17062,27 @@ Index: libjava/configure
        # Before FreeBSD 5, it didn't have -lpthread (or any library which
        # merely adds pthread_* functions) but it does have a -pthread switch
        # which is required at link-time to select -lc_r *instead* of -lc.
+@@ -20796,9 +20796,14 @@
+     # FIXME: In Java we are able to detect thread death at the end of
+     # Thread.run() so we should be able to clean up the exception handling
+     # contexts ourselves.
+-    THREADSTARTFILESPEC='crtmt%O%s'
++    case "$host" in
++    *-w64-mingw*)
++      ;;
++    *)
++      THREADSTARTFILESPEC='crtmt%O%s'
++      ;;
++    esac
+     ;;
+-
+  none)
+     THREADH=no-threads.h
+     ;;
 Index: maintainer-scripts/ChangeLog
 ===================================================================
---- maintainer-scripts/ChangeLog       (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ maintainer-scripts/ChangeLog       (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- maintainer-scripts/ChangeLog       (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ maintainer-scripts/ChangeLog       (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -1,3 +1,8 @@
 +2011-11-23  Gerald Pfeifer  <gerald@pfeifer.com>
 +
@@ -14901,8 +17094,8 @@ Index: maintainer-scripts/ChangeLog
        * GCC 4.6.2 released.
 Index: maintainer-scripts/update_web_docs_svn
 ===================================================================
---- maintainer-scripts/update_web_docs_svn     (.../tags/gcc_4_6_2_release)    (wersja 183790)
-+++ maintainer-scripts/update_web_docs_svn     (.../branches/gcc-4_6-branch)   (wersja 183790)
+--- maintainer-scripts/update_web_docs_svn     (.../tags/gcc_4_6_2_release)    (wersja 184125)
++++ maintainer-scripts/update_web_docs_svn     (.../branches/gcc-4_6-branch)   (wersja 184125)
 @@ -93,6 +93,7 @@
  
  if [ ! -d $DOCSDIR ]; then
index e53ccc8467980bbf4fb4e265da4fee38ed516502..52e4c93b4a5670ccf09941e336abee9a2cbc0bea 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -78,7 +78,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:       5
+Release:       6
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
This page took 0.713924 seconds and 4 git commands to generate.