Changeset 1864309 for patches


Ignore:
Timestamp:
Oct 1, 2013, 9:38:35 AM (13 years ago)
Author:
William Harrington <kb0iic@…>
Branches:
clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
Children:
e53d8f54
Parents:
23a1e45
Message:

Update GCC Branch update patch.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • patches/gcc-4.8.1-branch_update-3.patch

    r23a1e45 r1864309  
    11Submitted By: William Harrington (kb0iic at cross-lfs dot org)
    2 Date: 09-19-2013
     2Date: 10-01-2013
    33Initial Package Version: 4.8.1
    44Origin: Upstream
     
    77             rechecked periodically.
    88
    9 This patch was made from Revision # 202050.
    10 Added fix for BUILD¿CXXFLAGS.
    11 Added fix for ISL.
     9This patch was made from Revision # 203062.
    1210
    13 diff -Naur gcc-4.8.1.orig/ChangeLog gcc-4.8.1/ChangeLog
    14 --- gcc-4.8.1.orig/ChangeLog    2013-05-31 09:00:41.000000000 +0000
    15 +++ gcc-4.8.1/ChangeLog 2013-09-13 19:01:43.959862879 +0000
    16 @@ -1,3 +1,12 @@
    17 +2013-07-13  Tobias Grosser  <tobias@grosser.es>
    18 +
    19 +       PR tree-optimization/54094
    20 +       * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
    21 +         scheduling dimension for the parallelism check from the polyhedral
    22 +         information in the AST.
    23 +       * graphite-dependences.c (carries_deps): Do not assume the schedule is
    24 +         in 2D + 1 form.
    25 +
    26  2013-05-31  Release Manager
    27  
    28         * GCC 4.8.1 released.
     11Added fix for BUILD_CXXFLAGS during crosscompile.
     12Added fix for ISL 2D + 1 form in parallelism check.
     13
     14diff -Naur gcc-4.8.1.orig/boehm-gc/Makefile.am gcc-4.8.1/boehm-gc/Makefile.am
     15--- gcc-4.8.1.orig/boehm-gc/Makefile.am 2013-03-22 14:19:12.000000000 +0000
     16+++ gcc-4.8.1/boehm-gc/Makefile.am      2013-10-01 16:06:43.760554292 +0000
     17@@ -35,7 +35,7 @@
     18 
     19 # Include THREADLIBS here to ensure that the correct versions of
     20 # linuxthread semaphore functions get linked:
     21-libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS)
     22+libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS) $(EXTRA_TEST_LIBS)
     23 libgcjgc_la_DEPENDENCIES = $(addobjs)
     24 libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
     25 libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS)
     26diff -Naur gcc-4.8.1.orig/boehm-gc/Makefile.in gcc-4.8.1/boehm-gc/Makefile.in
     27--- gcc-4.8.1.orig/boehm-gc/Makefile.in 2013-05-31 09:09:26.000000000 +0000
     28+++ gcc-4.8.1/boehm-gc/Makefile.in      2013-10-01 16:06:43.760554292 +0000
     29@@ -280,7 +280,7 @@
     30 
     31 # Include THREADLIBS here to ensure that the correct versions of
     32 # linuxthread semaphore functions get linked:
     33-libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS)
     34+libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS) $(EXTRA_TEST_LIBS)
     35 libgcjgc_la_DEPENDENCIES = $(addobjs)
     36 libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
     37 libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS)
     38diff -Naur gcc-4.8.1.orig/configure gcc-4.8.1/configure
     39--- gcc-4.8.1.orig/configure    2013-02-15 17:45:54.000000000 +0000
     40+++ gcc-4.8.1/configure 2013-10-01 16:06:43.764554292 +0000
     41@@ -5939,6 +5939,55 @@
     42   fi
     43 
     44 
     45+    if test "${gcc_cv_isl}" = no ; then
     46+
     47+  if test "${ENABLE_ISL_CHECK}" = yes ; then
     48+    _isl_saved_CFLAGS=$CFLAGS
     49+    _isl_saved_LDFLAGS=$LDFLAGS
     50+    _isl_saved_LIBS=$LIBS
     51+
     52+    CFLAGS="${_isl_saved_CFLAGS} ${islinc} ${gmpinc}"
     53+    LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs}"
     54+    LIBS="${_isl_saved_LIBS} -lisl"
     55+
     56+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.12 of ISL" >&5
     57+$as_echo_n "checking for version 0.12 of ISL... " >&6; }
     58+    if test "$cross_compiling" = yes; then :
     59+  gcc_cv_isl=yes
     60+else
     61+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
     62+/* end confdefs.h.  */
     63+#include <isl/version.h>
     64+   #include <string.h>
     65+int
     66+main ()
     67+{
     68+if (strncmp (isl_version (), "isl-0.12", strlen ("isl-0.12")) != 0)
     69+     return 1;
     70+
     71+  ;
     72+  return 0;
     73+}
     74+_ACEOF
     75+if ac_fn_c_try_run "$LINENO"; then :
     76+  gcc_cv_isl=yes
     77+else
     78+  gcc_cv_isl=no
     79+fi
     80+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
     81+  conftest.$ac_objext conftest.beam conftest.$ac_ext
     82+fi
     83+
     84+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_isl" >&5
     85+$as_echo "$gcc_cv_isl" >&6; }
     86+
     87+    CFLAGS=$_isl_saved_CFLAGS
     88+    LDFLAGS=$_isl_saved_LDFLAGS
     89+    LIBS=$_isl_saved_LIBS
     90+  fi
     91+
     92+
     93+    fi
     94   fi
     95 
     96 
     97diff -Naur gcc-4.8.1.orig/configure.ac gcc-4.8.1/configure.ac
     98--- gcc-4.8.1.orig/configure.ac 2013-02-15 17:45:54.000000000 +0000
     99+++ gcc-4.8.1/configure.ac      2013-10-01 16:06:43.764554292 +0000
     100@@ -1630,6 +1630,9 @@
     101   ISL_CHECK_VERSION(0,10)
     102   if test "${gcc_cv_isl}" = no ; then
     103     ISL_CHECK_VERSION(0,11)
     104+    if test "${gcc_cv_isl}" = no ; then
     105+      ISL_CHECK_VERSION(0,12)
     106+    fi
     107   fi
     108   dnl Only execute fail-action, if ISL has been requested.
     109   ISL_IF_FAILED([
    29110diff -Naur gcc-4.8.1.orig/fixincludes/fixincl.x gcc-4.8.1/fixincludes/fixincl.x
    30111--- gcc-4.8.1.orig/fixincludes/fixincl.x        2013-01-16 04:07:20.000000000 +0000
    31 +++ gcc-4.8.1/fixincludes/fixincl.x     2013-09-13 19:01:42.876532387 +0000
     112+++ gcc-4.8.1/fixincludes/fixincl.x     2013-10-01 16:06:43.764554292 +0000
    32113@@ -2,11 +2,11 @@
    33114  *
     
    55136diff -Naur gcc-4.8.1.orig/fixincludes/inclhack.def gcc-4.8.1/fixincludes/inclhack.def
    56137--- gcc-4.8.1.orig/fixincludes/inclhack.def     2013-01-16 04:07:20.000000000 +0000
    57 +++ gcc-4.8.1/fixincludes/inclhack.def  2013-09-13 19:01:42.879865711 +0000
     138+++ gcc-4.8.1/fixincludes/inclhack.def  2013-10-01 16:06:43.764554292 +0000
    58139@@ -3447,7 +3447,7 @@
    59140 
     
    76157diff -Naur gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h
    77158--- gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h        2011-08-10 08:43:38.000000000 +0000
    78 +++ gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h     2013-09-13 19:01:42.879865711 +0000
     159+++ gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h     2013-10-01 16:06:43.764554292 +0000
    79160@@ -10,7 +10,7 @@
    80161 
     
    86167                __powl(__X, (long double) (__Y)); }
    87168 #endif
     169diff -Naur gcc-4.8.1.orig/gcc/ChangeLog gcc-4.8.1/gcc/ChangeLog
     170--- gcc-4.8.1.orig/gcc/ChangeLog        2013-05-31 09:02:05.000000000 +0000
     171+++ gcc-4.8.1/gcc/ChangeLog     2013-10-01 16:08:15.584551652 +0000
     172@@ -1,3 +1,12 @@
     173+2013-07-13  Tobias Grosser  <tobias@grosser.es>
     174+
     175+       PR tree-optimization/54094
     176+       * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
     177+         scheduling dimension for the parallelism check from the polyhedral
     178+         information in the AST.
     179+       * graphite-dependences.c (carries_deps): Do not assume the schedule is
     180+         in 2D + 1 form.
     181+
     182 2013-05-31  Release Manager
     183 
     184        * GCC 4.8.1 released.
    88185diff -Naur gcc-4.8.1.orig/gcc/DATESTAMP gcc-4.8.1/gcc/DATESTAMP
    89186--- gcc-4.8.1.orig/gcc/DATESTAMP        2013-05-31 00:16:35.000000000 +0000
    90 +++ gcc-4.8.1/gcc/DATESTAMP     2013-09-13 19:01:43.079865187 +0000
     187+++ gcc-4.8.1/gcc/DATESTAMP     2013-10-01 16:06:43.968554286 +0000
    91188@@ -1 +1 @@
    92189-20130531
    93 +20130828
     190+20131001
    94191diff -Naur gcc-4.8.1.orig/gcc/Makefile.in gcc-4.8.1/gcc/Makefile.in
    95192--- gcc-4.8.1.orig/gcc/Makefile.in      2013-05-21 16:00:49.000000000 +0000
    96 +++ gcc-4.8.1/gcc/Makefile.in   2013-09-13 19:01:43.176531600 +0000
     193+++ gcc-4.8.1/gcc/Makefile.in   2013-10-01 16:06:43.996554285 +0000
    97194@@ -2505,7 +2505,7 @@
    98195    $(TM_H) coretypes.h $(TREE_PASS_H) $(FLAGS_H) \
     
    106203diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h
    107204--- gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h     2013-02-25 19:08:51.000000000 +0000
    108 +++ gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h  2013-09-13 19:01:42.883199036 +0000
     205+++ gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h  2013-10-01 16:06:43.764554292 +0000
    109206@@ -360,10 +360,6 @@
    110207    constant CONSTRUCTOR.  */
     
    120217diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c gcc-4.8.1/gcc/ada/gcc-interface/decl.c
    121218--- gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c 2013-05-07 08:03:15.000000000 +0000
    122 +++ gcc-4.8.1/gcc/ada/gcc-interface/decl.c      2013-09-13 19:01:42.886532361 +0000
     219+++ gcc-4.8.1/gcc/ada/gcc-interface/decl.c      2013-10-01 16:06:43.764554292 +0000
    123220@@ -1019,7 +1019,7 @@
    124221                        save_gnu_tree (gnat_entity, gnu_decl, true);
     
    199296diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h gcc-4.8.1/gcc/ada/gcc-interface/gigi.h
    200297--- gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h 2013-02-06 13:19:20.000000000 +0000
    201 +++ gcc-4.8.1/gcc/ada/gcc-interface/gigi.h      2013-09-13 19:01:42.886532361 +0000
     298+++ gcc-4.8.1/gcc/ada/gcc-interface/gigi.h      2013-10-01 16:06:43.768554292 +0000
    202299@@ -177,10 +177,9 @@
    203300 /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
     
    230327diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c gcc-4.8.1/gcc/ada/gcc-interface/trans.c
    231328--- gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c        2013-05-26 10:04:50.000000000 +0000
    232 +++ gcc-4.8.1/gcc/ada/gcc-interface/trans.c     2013-09-13 19:01:42.889865685 +0000
    233 @@ -1075,19 +1075,6 @@
     329+++ gcc-4.8.1/gcc/ada/gcc-interface/trans.c     2013-10-01 16:06:43.768554292 +0000
     330@@ -286,9 +286,6 @@
     331   tree int64_type = gnat_type_for_size (64, 0);
     332   struct elab_info *info;
     333   int i;
     334-#ifdef ORDINARY_MAP_INSTANCE
     335-  struct line_map *map;
     336-#endif
     337 
     338   max_gnat_nodes = max_gnat_node;
     339 
     340@@ -303,10 +300,6 @@
     341 
     342   type_annotate_only = (gigi_operating_mode == 1);
     343 
     344-  /* ??? Disable the generation of the SCO instance table until after the
     345-     back-end supports instance based debug info discriminators.  */
     346-  Generate_SCO_Instance_Table = False;
     347-
     348   for (i = 0; i < number_file; i++)
     349     {
     350       /* Use the identifier table to make a permanent copy of the filename as
     351@@ -326,11 +319,6 @@
     352       /* We create the line map for a source file at once, with a fixed number
     353         of columns chosen to avoid jumping over the next power of 2.  */
     354       linemap_add (line_table, LC_ENTER, 0, filename, 1);
     355-#ifdef ORDINARY_MAP_INSTANCE
     356-      map = LINEMAPS_ORDINARY_MAP_AT (line_table, i);
     357-      if (flag_debug_instances)
     358-       ORDINARY_MAP_INSTANCE (map) = file_info_ptr[i].Instance;
     359-#endif
     360       linemap_line_start (line_table, file_info_ptr[i].Num_Source_Lines, 252);
     361       linemap_position_for_column (line_table, 252 - 1);
     362       linemap_add (line_table, LC_LEAVE, 0, NULL, 0);
     363@@ -1075,19 +1063,6 @@
    234364     {
    235365       const bool read_only = DECL_POINTS_TO_READONLY_P (gnu_result);
     
    251381       if (TREE_CODE (gnu_result) == PARM_DECL
    252382          && DECL_BY_COMPONENT_PTR_P (gnu_result))
    253 @@ -2280,7 +2267,10 @@
     383@@ -1290,6 +1265,7 @@
     384 static tree
     385 Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute)
     386 {
     387+  const Node_Id gnat_prefix = Prefix (gnat_node);
     388   tree gnu_prefix, gnu_type, gnu_expr;
     389   tree gnu_result_type, gnu_result = error_mark_node;
     390   bool prefix_unused = false;
     391@@ -1299,13 +1275,13 @@
     392      parameter types might be incomplete types coming from a limited with.  */
     393   if (Ekind (Etype (gnat_node)) == E_Access_Subprogram_Type
     394       && Is_Dispatch_Table_Entity (Etype (gnat_node))
     395-      && Nkind (Prefix (gnat_node)) == N_Identifier
     396-      && Is_Subprogram (Entity (Prefix (gnat_node)))
     397-      && Is_Public (Entity (Prefix (gnat_node)))
     398-      && !present_gnu_tree (Entity (Prefix (gnat_node))))
     399-    gnu_prefix = get_minimal_subprog_decl (Entity (Prefix (gnat_node)));
     400+      && Nkind (gnat_prefix) == N_Identifier
     401+      && Is_Subprogram (Entity (gnat_prefix))
     402+      && Is_Public (Entity (gnat_prefix))
     403+      && !present_gnu_tree (Entity (gnat_prefix)))
     404+    gnu_prefix = get_minimal_subprog_decl (Entity (gnat_prefix));
     405   else
     406-    gnu_prefix = gnat_to_gnu (Prefix (gnat_node));
     407+    gnu_prefix = gnat_to_gnu (gnat_prefix);
     408   gnu_type = TREE_TYPE (gnu_prefix);
     409 
     410   /* If the input is a NULL_EXPR, make a new one.  */
     411@@ -1448,8 +1424,8 @@
     412         since it can use a special calling convention on some platforms,
     413         which cannot be propagated to the access type.  */
     414       else if (attribute == Attr_Access
     415-              && Nkind (Prefix (gnat_node)) == N_Identifier
     416-              && is_cplusplus_method (Entity (Prefix (gnat_node))))
     417+              && Nkind (gnat_prefix) == N_Identifier
     418+              && is_cplusplus_method (Entity (gnat_prefix)))
     419        post_error ("access to C++ constructor or member function not allowed",
     420                    gnat_node);
     421 
     422@@ -1560,13 +1536,12 @@
     423          /* If this is a dereference and we have a special dynamic constrained
     424             subtype on the prefix, use it to compute the size; otherwise, use
     425             the designated subtype.  */
     426-         if (Nkind (Prefix (gnat_node)) == N_Explicit_Dereference)
     427+         if (Nkind (gnat_prefix) == N_Explicit_Dereference)
     428            {
     429-             Node_Id gnat_deref = Prefix (gnat_node);
     430              Node_Id gnat_actual_subtype
     431-               = Actual_Designated_Subtype (gnat_deref);
     432+               = Actual_Designated_Subtype (gnat_prefix);
     433              tree gnu_ptr_type
     434-               = TREE_TYPE (gnat_to_gnu (Prefix (gnat_deref)));
     435+               = TREE_TYPE (gnat_to_gnu (Prefix (gnat_prefix)));
     436 
     437              if (TYPE_IS_FAT_OR_THIN_POINTER_P (gnu_ptr_type)
     438                  && Present (gnat_actual_subtype))
     439@@ -1627,7 +1602,6 @@
     440          align = DECL_ALIGN (TREE_OPERAND (gnu_prefix, 1)) / BITS_PER_UNIT;
     441        else
     442          {
     443-           Node_Id gnat_prefix = Prefix (gnat_node);
     444            Entity_Id gnat_type = Etype (gnat_prefix);
     445            unsigned int double_align;
     446            bool is_capped_double, align_clause;
     447@@ -1699,28 +1673,38 @@
     448                         : 1), i;
     449        struct parm_attr_d *pa = NULL;
     450        Entity_Id gnat_param = Empty;
     451+       bool unconstrained_ptr_deref = false;
     452 
     453        /* Make sure any implicit dereference gets done.  */
     454        gnu_prefix = maybe_implicit_deref (gnu_prefix);
     455        gnu_prefix = maybe_unconstrained_array (gnu_prefix);
     456 
     457-       /* We treat unconstrained array In parameters specially.  */
     458-       if (!Is_Constrained (Etype (Prefix (gnat_node))))
     459-         {
     460-           Node_Id gnat_prefix = Prefix (gnat_node);
     461+       /* We treat unconstrained array In parameters specially.  We also note
     462+          whether we are dereferencing a pointer to unconstrained array.  */
     463+       if (!Is_Constrained (Etype (gnat_prefix)))
     464+         switch (Nkind (gnat_prefix))
     465+           {
     466+           case N_Identifier:
     467+             /* This is the direct case.  */
     468+             if (Ekind (Entity (gnat_prefix)) == E_In_Parameter)
     469+               gnat_param = Entity (gnat_prefix);
     470+             break;
     471 
     472-           /* This is the direct case.  */
     473-           if (Nkind (gnat_prefix) == N_Identifier
     474-               && Ekind (Entity (gnat_prefix)) == E_In_Parameter)
     475-             gnat_param = Entity (gnat_prefix);
     476-
     477-           /* This is the indirect case.  Note that we need to be sure that
     478-              the access value cannot be null as we'll hoist the load.  */
     479-           if (Nkind (gnat_prefix) == N_Explicit_Dereference
     480-               && Nkind (Prefix (gnat_prefix)) == N_Identifier
     481-               && Ekind (Entity (Prefix (gnat_prefix))) == E_In_Parameter
     482-               && Can_Never_Be_Null (Entity (Prefix (gnat_prefix))))
     483-             gnat_param = Entity (Prefix (gnat_prefix));
     484+           case N_Explicit_Dereference:
     485+             /* This is the indirect case.  Note that we need to be sure that
     486+                the access value cannot be null as we'll hoist the load.  */
     487+             if (Nkind (Prefix (gnat_prefix)) == N_Identifier
     488+                 && Ekind (Entity (Prefix (gnat_prefix))) == E_In_Parameter)
     489+               {
     490+                 if (Can_Never_Be_Null (Entity (Prefix (gnat_prefix))))
     491+                   gnat_param = Entity (Prefix (gnat_prefix));
     492+               }
     493+             else
     494+               unconstrained_ptr_deref = true;
     495+             break;
     496+
     497+           default:
     498+             break;
     499          }
     500 
     501        /* If the prefix is the view conversion of a constrained array to an
     502@@ -1855,22 +1839,54 @@
     503          {
     504            gnu_result
     505              = build1 (SAVE_EXPR, TREE_TYPE (gnu_result), gnu_result);
     506-           if (attribute == Attr_First)
     507-             pa->first = gnu_result;
     508-           else if (attribute == Attr_Last)
     509-             pa->last = gnu_result;
     510-           else
     511-             pa->length = gnu_result;
     512+           switch (attribute)
     513+             {
     514+             case Attr_First:
     515+               pa->first = gnu_result;
     516+               break;
     517+
     518+             case Attr_Last:
     519+               pa->last = gnu_result;
     520+               break;
     521+
     522+             case Attr_Length:
     523+             case Attr_Range_Length:
     524+               pa->length = gnu_result;
     525+               break;
     526+
     527+             default:
     528+               gcc_unreachable ();
     529+             }
     530          }
     531 
     532-       /* Set the source location onto the predicate of the condition in the
     533-          'Length case but do not do it if the expression is cached to avoid
     534-          messing up the debug info.  */
     535-       else if ((attribute == Attr_Range_Length || attribute == Attr_Length)
     536-                && TREE_CODE (gnu_result) == COND_EXPR
     537-                && EXPR_P (TREE_OPERAND (gnu_result, 0)))
     538-         set_expr_location_from_node (TREE_OPERAND (gnu_result, 0),
     539-                                      gnat_node);
     540+       /* Otherwise, evaluate it each time it is referenced.  */
     541+       else
     542+         switch (attribute)
     543+           {
     544+           case Attr_First:
     545+           case Attr_Last:
     546+             /* If we are dereferencing a pointer to unconstrained array, we
     547+                need to capture the value because the pointed-to bounds may
     548+                subsequently be released.  */
     549+             if (unconstrained_ptr_deref)
     550+               gnu_result
     551+                 = build1 (SAVE_EXPR, TREE_TYPE (gnu_result), gnu_result);
     552+             break;
     553+
     554+           case Attr_Length:
     555+           case Attr_Range_Length:
     556+             /* Set the source location onto the predicate of the condition
     557+                but not if the expression is cached to avoid messing up the
     558+                debug info.  */
     559+             if (TREE_CODE (gnu_result) == COND_EXPR
     560+                 && EXPR_P (TREE_OPERAND (gnu_result, 0)))
     561+               set_expr_location_from_node (TREE_OPERAND (gnu_result, 0),
     562+                                            gnat_node);
     563+             break;
     564+
     565+           default:
     566+             gcc_unreachable ();
     567+           }
     568 
     569        break;
     570       }
     571@@ -2043,8 +2059,8 @@
     572 
     573     case Attr_Mechanism_Code:
     574       {
     575+       Entity_Id gnat_obj = Entity (gnat_prefix);
     576        int code;
     577-       Entity_Id gnat_obj = Entity (Prefix (gnat_node));
     578 
     579        prefix_unused = true;
     580        gnu_result_type = get_unpadded_type (Etype (gnat_node));
     581@@ -2079,10 +2095,11 @@
     582      it has a side-effect.  But don't do it if the prefix is just an entity
     583      name.  However, if an access check is needed, we must do it.  See second
     584      example in AARM 11.6(5.e).  */
     585-  if (prefix_unused && TREE_SIDE_EFFECTS (gnu_prefix)
     586-      && !Is_Entity_Name (Prefix (gnat_node)))
     587-    gnu_result = build_compound_expr  (TREE_TYPE (gnu_result), gnu_prefix,
     588-                                      gnu_result);
     589+  if (prefix_unused
     590+      && TREE_SIDE_EFFECTS (gnu_prefix)
     591+      && !Is_Entity_Name (gnat_prefix))
     592+    gnu_result
     593+      = build_compound_expr  (TREE_TYPE (gnu_result), gnu_prefix, gnu_result);
     594 
     595   *gnu_result_type_p = gnu_result_type;
     596   return gnu_result;
     597@@ -2280,7 +2297,10 @@
    254598   if (TREE_CODE (val) != INTEGER_CST)
    255599     return true;
     
    263607 
    264608 /* Return true if VAL (of type TYPE) can equal the minimum value of TYPE.
    265 @@ -3251,7 +3241,6 @@
     609@@ -3251,7 +3271,6 @@
    266610            = convert_vms_descriptor (TREE_TYPE (gnu_subprog_param),
    267611                                      gnu_stub_param,
     
    271615        }
    272616       else
    273 @@ -3546,8 +3535,7 @@
     617@@ -3490,6 +3509,8 @@
     618     {
     619       tree gnu_retval;
     620 
     621+      gnu_return_var_stack->pop ();
     622+
     623       add_stmt (gnu_result);
     624       add_stmt (build1 (LABEL_EXPR, void_type_node,
     625                        gnu_return_label_stack->last ()));
     626@@ -3546,8 +3567,7 @@
    274627       bool is_var_decl = (TREE_CODE (gnu_param) == VAR_DECL);
    275628 
     
    281634       if (is_var_decl)
    282635        save_gnu_tree (gnat_param, NULL_TREE, false);
    283 @@ -4009,12 +3997,6 @@
     636@@ -4009,12 +4029,6 @@
    284637          /* The symmetry of the paths to the type of an entity is broken here
    285638             since arguments don't know that they will be passed by ref.  */
     
    296649diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c gcc-4.8.1/gcc/ada/gcc-interface/utils.c
    297650--- gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c        2013-02-06 13:19:20.000000000 +0000
    298 +++ gcc-4.8.1/gcc/ada/gcc-interface/utils.c     2013-09-13 19:01:42.893199010 +0000
     651+++ gcc-4.8.1/gcc/ada/gcc-interface/utils.c     2013-10-01 16:06:43.768554292 +0000
    299652@@ -4073,33 +4073,25 @@
    300653 
     
    356709diff -Naur gcc-4.8.1.orig/gcc/ada/targparm.ads gcc-4.8.1/gcc/ada/targparm.ads
    357710--- gcc-4.8.1.orig/gcc/ada/targparm.ads 2013-02-06 10:35:52.000000000 +0000
    358 +++ gcc-4.8.1/gcc/ada/targparm.ads      2013-09-13 19:01:42.893199010 +0000
     711+++ gcc-4.8.1/gcc/ada/targparm.ads      2013-10-01 16:06:43.768554292 +0000
    359712@@ -436,7 +436,7 @@
    360713    --  the source program may not contain explicit 64-bit shifts. In addition,
     
    368721diff -Naur gcc-4.8.1.orig/gcc/asan.c gcc-4.8.1/gcc/asan.c
    369722--- gcc-4.8.1.orig/gcc/asan.c   2013-02-28 21:23:23.000000000 +0000
    370 +++ gcc-4.8.1/gcc/asan.c        2013-09-13 19:01:42.896532334 +0000
     723+++ gcc-4.8.1/gcc/asan.c        2013-10-01 16:06:43.768554292 +0000
    371724@@ -1675,7 +1675,7 @@
    372725    access to the last byte of the argument; it uses the result of the
     
    403756diff -Naur gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c gcc-4.8.1/gcc/c-family/c-ada-spec.c
    404757--- gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c    2013-01-10 20:38:27.000000000 +0000
    405 +++ gcc-4.8.1/gcc/c-family/c-ada-spec.c 2013-09-13 19:01:42.896532334 +0000
     758+++ gcc-4.8.1/gcc/c-family/c-ada-spec.c 2013-10-01 16:06:43.768554292 +0000
    406759@@ -2900,7 +2900,7 @@
    407760       pp_string (buffer, "  -- ");
     
    413766 
    414767       newline_and_indent (buffer, spc);
     768diff -Naur gcc-4.8.1.orig/gcc/cfgcleanup.c gcc-4.8.1/gcc/cfgcleanup.c
     769--- gcc-4.8.1.orig/gcc/cfgcleanup.c     2013-01-30 11:53:28.000000000 +0000
     770+++ gcc-4.8.1/gcc/cfgcleanup.c  2013-10-01 16:06:43.772554291 +0000
     771@@ -927,6 +927,24 @@
     772          set_mem_align (y, MEM_ALIGN (x));
     773        }
     774     }
     775+  if (code == MEM)
     776+    {
     777+      if (MEM_READONLY_P (x) != MEM_READONLY_P (y))
     778+       {
     779+         MEM_READONLY_P (x) = 0;
     780+         MEM_READONLY_P (y) = 0;
     781+       }
     782+      if (MEM_NOTRAP_P (x) != MEM_NOTRAP_P (y))
     783+       {
     784+         MEM_NOTRAP_P (x) = 0;
     785+         MEM_NOTRAP_P (y) = 0;
     786+       }
     787+      if (MEM_VOLATILE_P (x) != MEM_VOLATILE_P (y))
     788+       {
     789+         MEM_VOLATILE_P (x) = 1;
     790+         MEM_VOLATILE_P (y) = 1;
     791+       }
     792+    }
     793 
     794   fmt = GET_RTX_FORMAT (code);
     795   for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
    415796diff -Naur gcc-4.8.1.orig/gcc/collect2.c gcc-4.8.1/gcc/collect2.c
    416797--- gcc-4.8.1.orig/gcc/collect2.c       2013-02-07 02:53:13.000000000 +0000
    417 +++ gcc-4.8.1/gcc/collect2.c    2013-09-13 19:01:42.899865659 +0000
     798+++ gcc-4.8.1/gcc/collect2.c    2013-10-01 16:06:43.772554291 +0000
    418799@@ -366,8 +366,8 @@
    419800 
     
    561942diff -Naur gcc-4.8.1.orig/gcc/collect2.h gcc-4.8.1/gcc/collect2.h
    562943--- gcc-4.8.1.orig/gcc/collect2.h       2013-01-10 20:38:27.000000000 +0000
    563 +++ gcc-4.8.1/gcc/collect2.h    2013-09-13 19:01:42.899865659 +0000
     944+++ gcc-4.8.1/gcc/collect2.h    2013-10-01 16:06:43.772554291 +0000
    564945@@ -25,8 +25,6 @@
    565946 extern struct pex_obj *collect_execute (const char *, char **, const char *,
     
    573954diff -Naur gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c gcc-4.8.1/gcc/common/config/s390/s390-common.c
    574955--- gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c 2013-01-10 20:38:27.000000000 +0000
    575 +++ gcc-4.8.1/gcc/common/config/s390/s390-common.c      2013-09-13 19:01:42.899865659 +0000
     956+++ gcc-4.8.1/gcc/common/config/s390/s390-common.c      2013-10-01 16:06:43.772554291 +0000
    576957@@ -42,7 +42,7 @@
    577958     /* z196 */   PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT
     
    585966diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c
    586967--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c        2013-02-28 17:19:33.000000000 +0000
    587 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c     2013-09-13 19:01:42.899865659 +0000
     968+++ gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c     2013-10-01 16:06:43.772554291 +0000
    588969@@ -1154,6 +1154,7 @@
    589970       return aarch64_simd_expand_args (target, icode, 1, exp,
     
    596977diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h
    597978--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h   2013-01-10 20:38:27.000000000 +0000
    598 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h        2013-09-13 19:01:42.903198984 +0000
     979+++ gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h        2013-10-01 16:06:43.772554291 +0000
    599980@@ -23,6 +23,8 @@
    600981 
     
    608989diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def
    609990--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def 2013-02-22 16:39:45.000000000 +0000
    610 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def      2013-09-13 19:01:42.906532308 +0000
     991+++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def      2013-10-01 16:06:43.776554291 +0000
    611992@@ -256,3 +256,10 @@
    612993   BUILTIN_VALL (BINOP, uzp2)
     
    6221003diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md
    6231004--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md   2013-04-11 14:14:56.000000000 +0000
    624 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md        2013-09-13 19:01:42.906532308 +0000
     1005+++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md        2013-10-01 16:06:43.776554291 +0000
    6251006@@ -3457,6 +3457,17 @@
    6261007   DONE;
     
    6611042diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c gcc-4.8.1/gcc/config/aarch64/aarch64.c
    6621043--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c 2013-05-02 17:00:00.000000000 +0000
    663 +++ gcc-4.8.1/gcc/config/aarch64/aarch64.c      2013-09-13 19:01:42.903198984 +0000
     1044+++ gcc-4.8.1/gcc/config/aarch64/aarch64.c      2013-10-01 16:06:43.772554291 +0000
    6641045@@ -3373,7 +3373,7 @@
    6651046          output_operand_lossage ("invalid operand for '%%%c'", code);
     
    6731054diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md gcc-4.8.1/gcc/config/aarch64/aarch64.md
    6741055--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md        2013-04-25 17:00:44.000000000 +0000
    675 +++ gcc-4.8.1/gcc/config/aarch64/aarch64.md     2013-09-13 19:01:42.906532308 +0000
     1056+++ gcc-4.8.1/gcc/config/aarch64/aarch64.md     2013-10-01 16:06:43.772554291 +0000
    6761057@@ -834,7 +834,8 @@
    6771058    movi\\t%d0, %1"
     
    6861067diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h gcc-4.8.1/gcc/config/aarch64/arm_neon.h
    6871068--- gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h        2013-04-24 15:47:21.000000000 +0000
    688 +++ gcc-4.8.1/gcc/config/aarch64/arm_neon.h     2013-09-13 19:01:42.916532282 +0000
     1069+++ gcc-4.8.1/gcc/config/aarch64/arm_neon.h     2013-10-01 16:06:43.776554291 +0000
    6891070@@ -8518,28 +8518,6 @@
    6901071   return result;
     
    15491930diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.c gcc-4.8.1/gcc/config/alpha/alpha.c
    15501931--- gcc-4.8.1.orig/gcc/config/alpha/alpha.c     2013-01-10 20:38:27.000000000 +0000
    1551 +++ gcc-4.8.1/gcc/config/alpha/alpha.c  2013-09-13 19:01:42.919865606 +0000
    1552 @@ -2700,12 +2700,12 @@
     1932+++ gcc-4.8.1/gcc/config/alpha/alpha.c  2013-10-01 16:06:43.780554291 +0000
     1933@@ -2659,6 +2659,7 @@
     1934       cmp_mode = cmp_mode == DImode ? DFmode : DImode;
     1935       op0 = gen_lowpart (cmp_mode, tem);
     1936       op1 = CONST0_RTX (cmp_mode);
     1937+      cmp = gen_rtx_fmt_ee (code, VOIDmode, op0, op1);
     1938       local_fast_math = 1;
     1939     }
     1940 
     1941@@ -2700,12 +2701,12 @@
    15531942       break;
    15541943 
     
    15691958 
    15701959     default:
    1571 @@ -3067,12 +3067,9 @@
     1960@@ -3067,12 +3068,9 @@
    15721961   operands[1] = op1;
    15731962   out = gen_reg_rtx (DImode);
     
    15871976diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.md gcc-4.8.1/gcc/config/alpha/alpha.md
    15881977--- gcc-4.8.1.orig/gcc/config/alpha/alpha.md    2013-02-01 16:34:28.000000000 +0000
    1589 +++ gcc-4.8.1/gcc/config/alpha/alpha.md 2013-09-13 19:01:42.923198931 +0000
     1978+++ gcc-4.8.1/gcc/config/alpha/alpha.md 2013-10-01 16:06:43.780554291 +0000
    15901979@@ -23,6 +23,7 @@
    15911980 ;; Uses of UNSPEC in this file:
     
    15981987diff -Naur gcc-4.8.1.orig/gcc/config/arm/arm.c gcc-4.8.1/gcc/config/arm/arm.c
    15991988--- gcc-4.8.1.orig/gcc/config/arm/arm.c 2013-05-24 15:15:44.000000000 +0000
    1600 +++ gcc-4.8.1/gcc/config/arm/arm.c      2013-09-13 19:01:42.933198905 +0000
     1989+++ gcc-4.8.1/gcc/config/arm/arm.c      2013-10-01 16:06:43.784554291 +0000
    16011990@@ -4459,7 +4459,9 @@
    16021991     if (((pcum->aapcs_vfp_regs_free >> regno) & mask) == mask)
     
    16802069                      + MEM_P (SET_DEST (x))));
    16812070 
     2071@@ -17453,7 +17475,8 @@
     2072            }
     2073        }
     2074 
     2075-      if (current_tune->prefer_ldrd_strd
     2076+      if (TARGET_LDRD
     2077+         && current_tune->prefer_ldrd_strd
     2078           && !optimize_function_for_size_p (cfun))
     2079         {
     2080           if (TARGET_THUMB2)
     2081@@ -23767,7 +23790,8 @@
     2082         }
     2083       else
     2084         {
     2085-          if (current_tune->prefer_ldrd_strd
     2086+          if (TARGET_LDRD
     2087+             && current_tune->prefer_ldrd_strd
     2088               && !optimize_function_for_size_p (cfun))
     2089             {
     2090               if (TARGET_THUMB2)
    16822091diff -Naur gcc-4.8.1.orig/gcc/config/arm/neon.md gcc-4.8.1/gcc/config/arm/neon.md
    16832092--- gcc-4.8.1.orig/gcc/config/arm/neon.md       2013-04-04 14:34:01.000000000 +0000
    1684 +++ gcc-4.8.1/gcc/config/arm/neon.md    2013-09-13 19:01:42.936532229 +0000
     2093+++ gcc-4.8.1/gcc/config/arm/neon.md    2013-10-01 16:06:43.784554291 +0000
    16852094@@ -244,7 +244,7 @@
    16862095   [(set (match_operand:VDQX 0 "neon_struct_or_register_operand")
     
    17852194       if (!inverse)
    17862195        emit_insn (base_comparison (mask, operands[4], operands[5], magic_rtx));
     2196diff -Naur gcc-4.8.1.orig/gcc/config/arm/vfp.md gcc-4.8.1/gcc/config/arm/vfp.md
     2197--- gcc-4.8.1.orig/gcc/config/arm/vfp.md        2013-01-29 18:34:12.000000000 +0000
     2198+++ gcc-4.8.1/gcc/config/arm/vfp.md     2013-10-01 16:06:43.784554291 +0000
     2199@@ -1207,18 +1207,18 @@
     2200    (set_attr "type" "fcmpd")]
     2201 )
     2202 
     2203-;; Fixed point to floating point conversions.
     2204+;; Fixed point to floating point conversions.
     2205 (define_code_iterator FCVT [unsigned_float float])
     2206 (define_code_attr FCVTI32typename [(unsigned_float "u32") (float "s32")])
     2207 
     2208 (define_insn "*combine_vcvt_f32_<FCVTI32typename>"
     2209   [(set (match_operand:SF 0 "s_register_operand" "=t")
     2210        (mult:SF (FCVT:SF (match_operand:SI 1 "s_register_operand" "0"))
     2211-                (match_operand 2
     2212+                (match_operand 2
     2213                        "const_double_vcvt_power_of_two_reciprocal" "Dt")))]
     2214   "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math"
     2215-  "vcvt.f32.<FCVTI32typename>\\t%0, %1, %v2"
     2216- [(set_attr "predicable" "no")
     2217+  "vcvt%?.f32.<FCVTI32typename>\\t%0, %1, %v2"
     2218+ [(set_attr "predicable" "yes")
     2219   (set_attr "type" "f_cvt")]
     2220 )
     2221 
     2222@@ -1227,15 +1227,16 @@
     2223 (define_insn "*combine_vcvt_f64_<FCVTI32typename>"
     2224   [(set (match_operand:DF 0 "s_register_operand" "=x,x,w")
     2225        (mult:DF (FCVT:DF (match_operand:SI 1 "s_register_operand" "r,t,r"))
     2226-                (match_operand 2
     2227+                (match_operand 2
     2228                     "const_double_vcvt_power_of_two_reciprocal" "Dt,Dt,Dt")))]
     2229-  "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
     2230+  "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
     2231   && !TARGET_VFP_SINGLE"
     2232   "@
     2233-  vmov.f32\\t%0, %1\;vcvt.f64.<FCVTI32typename>\\t%P0, %P0, %v2
     2234-  vmov.f32\\t%0, %1\;vcvt.f64.<FCVTI32typename>\\t%P0, %P0, %v2
     2235-  vmov.f64\\t%P0, %1, %1\;vcvt.f64.<FCVTI32typename>\\t%P0, %P0, %v2"
     2236- [(set_attr "predicable" "no")
     2237+  vmov%?.f32\\t%0, %1\;vcvt%?.f64.<FCVTI32typename>\\t%P0, %P0, %v2
     2238+  vmov%?.f32\\t%0, %1\;vcvt%?.f64.<FCVTI32typename>\\t%P0, %P0, %v2
     2239+  vmov%?.f64\\t%P0, %1, %1\;vcvt%?.f64.<FCVTI32typename>\\t%P0, %P0, %v2"
     2240+ [(set_attr "predicable" "yes")
     2241+  (set_attr "ce_count" "2")
     2242   (set_attr "type" "f_cvt")
     2243   (set_attr "length" "8")]
     2244 )
    17872245diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md gcc-4.8.1/gcc/config/avr/avr-fixed.md
    17882246--- gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md  2013-02-08 10:13:37.000000000 +0000
    1789 +++ gcc-4.8.1/gcc/config/avr/avr-fixed.md       2013-09-13 19:01:42.939865554 +0000
     2247+++ gcc-4.8.1/gcc/config/avr/avr-fixed.md       2013-10-01 16:06:43.792554291 +0000
    17902248@@ -447,49 +447,18 @@
    17912249 ;; "roundqq3_const"  "rounduqq3_const"
     
    18502308diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def gcc-4.8.1/gcc/config/avr/avr-mcus.def
    18512309--- gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def  2013-02-28 09:03:09.000000000 +0000
    1852 +++ gcc-4.8.1/gcc/config/avr/avr-mcus.def       2013-09-13 19:01:42.939865554 +0000
     2310+++ gcc-4.8.1/gcc/config/avr/avr-mcus.def       2013-10-01 16:06:43.792554291 +0000
    18532311@@ -168,7 +168,6 @@
    18542312 AVR_MCU ("atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0, 0x0100, 1, "m169a")
     
    19012359diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-protos.h gcc-4.8.1/gcc/config/avr/avr-protos.h
    19022360--- gcc-4.8.1.orig/gcc/config/avr/avr-protos.h  2013-01-14 15:08:45.000000000 +0000
    1903 +++ gcc-4.8.1/gcc/config/avr/avr-protos.h       2013-09-13 19:01:42.943198879 +0000
     2361+++ gcc-4.8.1/gcc/config/avr/avr-protos.h       2013-10-01 16:06:43.792554291 +0000
    19042362@@ -86,7 +86,8 @@
    19052363 extern void avr_output_addr_vec_elt (FILE *stream, int value);
     
    19142372diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt gcc-4.8.1/gcc/config/avr/avr-tables.opt
    19152373--- gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt        2013-02-28 09:03:09.000000000 +0000
    1916 +++ gcc-4.8.1/gcc/config/avr/avr-tables.opt     2013-09-13 19:01:42.946532203 +0000
     2374+++ gcc-4.8.1/gcc/config/avr/avr-tables.opt     2013-10-01 16:06:43.792554291 +0000
    19172375@@ -330,479 +330,440 @@
    19182376 Enum(avr_mcu) String(atmega169pa) Value(101)
     
    25433001diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.c gcc-4.8.1/gcc/config/avr/avr.c
    25443002--- gcc-4.8.1.orig/gcc/config/avr/avr.c 2013-03-12 11:42:26.000000000 +0000
    2545 +++ gcc-4.8.1/gcc/config/avr/avr.c      2013-09-13 19:01:42.939865554 +0000
     3003+++ gcc-4.8.1/gcc/config/avr/avr.c      2013-10-01 16:06:43.784554291 +0000
    25463004@@ -584,7 +584,12 @@
    25473005     {
     
    27873245diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.md gcc-4.8.1/gcc/config/avr/avr.md
    27883246--- gcc-4.8.1.orig/gcc/config/avr/avr.md        2013-02-08 10:13:37.000000000 +0000
    2789 +++ gcc-4.8.1/gcc/config/avr/avr.md     2013-09-13 19:01:42.943198879 +0000
     3247+++ gcc-4.8.1/gcc/config/avr/avr.md     2013-10-01 16:06:43.792554291 +0000
    27903248@@ -140,7 +140,7 @@
    27913249   "out_bitop, plus, addto_sp,
     
    27993257diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.opt gcc-4.8.1/gcc/config/avr/avr.opt
    28003258--- gcc-4.8.1.orig/gcc/config/avr/avr.opt       2013-03-12 11:42:26.000000000 +0000
    2801 +++ gcc-4.8.1/gcc/config/avr/avr.opt    2013-09-13 19:01:42.943198879 +0000
     3259+++ gcc-4.8.1/gcc/config/avr/avr.opt    2013-10-01 16:06:43.792554291 +0000
    28023260@@ -77,4 +77,4 @@
    28033261 
     
    28083266diff -Naur gcc-4.8.1.orig/gcc/config/avr/gen-avr-mmcu-texi.c gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c
    28093267--- gcc-4.8.1.orig/gcc/config/avr/gen-avr-mmcu-texi.c   2013-01-14 18:09:34.000000000 +0000
    2810 +++ gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c        2013-09-13 19:01:42.946532203 +0000
     3268+++ gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c        2013-10-01 16:06:43.792554291 +0000
    28113269@@ -68,6 +68,7 @@
    28123270 static void
     
    28413299diff -Naur gcc-4.8.1.orig/gcc/config/avr/t-multilib gcc-4.8.1/gcc/config/avr/t-multilib
    28423300--- gcc-4.8.1.orig/gcc/config/avr/t-multilib    2013-02-28 09:03:09.000000000 +0000
    2843 +++ gcc-4.8.1/gcc/config/avr/t-multilib 2013-09-13 19:01:42.946532203 +0000
     3301+++ gcc-4.8.1/gcc/config/avr/t-multilib 2013-10-01 16:06:43.792554291 +0000
    28443302@@ -135,7 +135,6 @@
    28453303        mmcu?avr5=mmcu?atmega169a \
     
    28923350diff -Naur gcc-4.8.1.orig/gcc/config/darwin-protos.h gcc-4.8.1/gcc/config/darwin-protos.h
    28933351--- gcc-4.8.1.orig/gcc/config/darwin-protos.h   2013-01-10 20:38:27.000000000 +0000
    2894 +++ gcc-4.8.1/gcc/config/darwin-protos.h        2013-09-13 19:01:42.949865528 +0000
     3352+++ gcc-4.8.1/gcc/config/darwin-protos.h        2013-10-01 16:06:43.792554291 +0000
    28953353@@ -25,6 +25,7 @@
    28963354 extern void machopic_output_function_base_name (FILE *);
     
    29033361diff -Naur gcc-4.8.1.orig/gcc/config/darwin.c gcc-4.8.1/gcc/config/darwin.c
    29043362--- gcc-4.8.1.orig/gcc/config/darwin.c  2013-02-11 22:36:23.000000000 +0000
    2905 +++ gcc-4.8.1/gcc/config/darwin.c       2013-09-13 19:01:42.946532203 +0000
     3363+++ gcc-4.8.1/gcc/config/darwin.c       2013-10-01 16:06:43.792554291 +0000
    29063364@@ -369,14 +369,13 @@
    29073365 
     
    29543412diff -Naur gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h gcc-4.8.1/gcc/config/i386/bmiintrin.h
    29553413--- gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h  2013-01-10 20:38:27.000000000 +0000
    2956 +++ gcc-4.8.1/gcc/config/i386/bmiintrin.h       2013-09-13 19:01:42.949865528 +0000
     3414+++ gcc-4.8.1/gcc/config/i386/bmiintrin.h       2013-10-01 16:06:43.792554291 +0000
    29573415@@ -38,7 +38,6 @@
    29583416   return __builtin_ctzs (__X);
     
    30843542diff -Naur gcc-4.8.1.orig/gcc/config/i386/driver-i386.c gcc-4.8.1/gcc/config/i386/driver-i386.c
    30853543--- gcc-4.8.1.orig/gcc/config/i386/driver-i386.c        2013-05-17 15:06:36.000000000 +0000
    3086 +++ gcc-4.8.1/gcc/config/i386/driver-i386.c     2013-09-13 19:01:42.949865528 +0000
     3544+++ gcc-4.8.1/gcc/config/i386/driver-i386.c     2013-10-01 16:06:43.792554291 +0000
    30873545@@ -520,8 +520,7 @@
    30883546       if (vendor == signature_AMD_ebx
     
    31533611diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.c gcc-4.8.1/gcc/config/i386/i386.c
    31543612--- gcc-4.8.1.orig/gcc/config/i386/i386.c       2013-05-17 15:06:36.000000000 +0000
    3155 +++ gcc-4.8.1/gcc/config/i386/i386.c    2013-09-13 19:01:42.963198826 +0000
     3613+++ gcc-4.8.1/gcc/config/i386/i386.c    2013-10-01 16:06:43.796554291 +0000
    31563614@@ -2438,11 +2438,11 @@
    31573615   {&generic32_cost, 16, 7, 16, 7, 16},
     
    34633921diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.md gcc-4.8.1/gcc/config/i386/i386.md
    34643922--- gcc-4.8.1.orig/gcc/config/i386/i386.md      2013-05-22 12:16:41.000000000 +0000
    3465 +++ gcc-4.8.1/gcc/config/i386/i386.md   2013-09-13 19:01:42.969865475 +0000
     3923+++ gcc-4.8.1/gcc/config/i386/i386.md   2013-10-01 16:06:43.928554287 +0000
    34663924@@ -222,6 +222,8 @@
    34673925   UNSPECV_XEND
     
    35734031diff -Naur gcc-4.8.1.orig/gcc/config/i386/predicates.md gcc-4.8.1/gcc/config/i386/predicates.md
    35744032--- gcc-4.8.1.orig/gcc/config/i386/predicates.md        2013-01-10 20:38:27.000000000 +0000
    3575 +++ gcc-4.8.1/gcc/config/i386/predicates.md     2013-09-13 19:01:42.969865475 +0000
     4033+++ gcc-4.8.1/gcc/config/i386/predicates.md     2013-10-01 16:06:43.928554287 +0000
    35764034@@ -835,19 +835,28 @@
    35774035     return false;
     
    36174075diff -Naur gcc-4.8.1.orig/gcc/config/i386/sse.md gcc-4.8.1/gcc/config/i386/sse.md
    36184076--- gcc-4.8.1.orig/gcc/config/i386/sse.md       2013-04-29 22:16:04.000000000 +0000
    3619 +++ gcc-4.8.1/gcc/config/i386/sse.md    2013-09-13 19:01:42.976532125 +0000
     4077+++ gcc-4.8.1/gcc/config/i386/sse.md    2013-10-01 16:06:43.928554287 +0000
    36204078@@ -3603,7 +3603,7 @@
    36214079        (vec_select:V4SF
     
    36804138diff -Naur gcc-4.8.1.orig/gcc/config/i386/x86-64.h gcc-4.8.1/gcc/config/i386/x86-64.h
    36814139--- gcc-4.8.1.orig/gcc/config/i386/x86-64.h     2013-01-10 20:38:27.000000000 +0000
    3682 +++ gcc-4.8.1/gcc/config/i386/x86-64.h  2013-09-13 19:01:42.976532125 +0000
     4140+++ gcc-4.8.1/gcc/config/i386/x86-64.h  2013-10-01 16:06:43.928554287 +0000
    36834141@@ -103,3 +103,6 @@
    36844142 
     
    36884146+#undef TARGET_SECTION_TYPE_FLAGS
    36894147+#define TARGET_SECTION_TYPE_FLAGS  x86_64_elf_section_type_flags
     4148diff -Naur gcc-4.8.1.orig/gcc/config/pa/pa.c gcc-4.8.1/gcc/config/pa/pa.c
     4149--- gcc-4.8.1.orig/gcc/config/pa/pa.c   2013-04-06 17:46:50.000000000 +0000
     4150+++ gcc-4.8.1/gcc/config/pa/pa.c        2013-10-01 16:06:43.928554287 +0000
     4151@@ -513,6 +513,12 @@
     4152       write_symbols = NO_DEBUG;
     4153     }
     4154 
     4155+#ifdef AUTO_INC_DEC
     4156+  /* FIXME: Disable auto increment and decrement processing until reload
     4157+     is completed.  See PR middle-end 56791.  */
     4158+  flag_auto_inc_dec = reload_completed;
     4159+#endif
     4160+
     4161   /* We only support the "big PIC" model now.  And we always generate PIC
     4162      code when in 64bit mode.  */
     4163   if (flag_pic == 1 || TARGET_64BIT)
     4164@@ -4038,7 +4044,8 @@
     4165              || (! TARGET_64BIT && df_regs_ever_live_p (i + 1)))
     4166            {
     4167              rtx addr, insn, reg;
     4168-             addr = gen_rtx_MEM (DFmode, gen_rtx_POST_INC (DFmode, tmpreg));
     4169+             addr = gen_rtx_MEM (DFmode,
     4170+                                 gen_rtx_POST_INC (word_mode, tmpreg));
     4171              reg = gen_rtx_REG (DFmode, i);
     4172              insn = emit_move_insn (addr, reg);
     4173              if (DO_FRAME_NOTES)
     4174@@ -4331,7 +4338,8 @@
     4175        if (df_regs_ever_live_p (i)
     4176            || (! TARGET_64BIT && df_regs_ever_live_p (i + 1)))
     4177          {
     4178-           rtx src = gen_rtx_MEM (DFmode, gen_rtx_POST_INC (DFmode, tmpreg));
     4179+           rtx src = gen_rtx_MEM (DFmode,
     4180+                                  gen_rtx_POST_INC (word_mode, tmpreg));
     4181            rtx dest = gen_rtx_REG (DFmode, i);
     4182            emit_move_insn (dest, src);
     4183          }
     4184diff -Naur gcc-4.8.1.orig/gcc/config/pa/pa.md gcc-4.8.1/gcc/config/pa/pa.md
     4185--- gcc-4.8.1.orig/gcc/config/pa/pa.md  2013-03-11 00:44:28.000000000 +0000
     4186+++ gcc-4.8.1/gcc/config/pa/pa.md       2013-10-01 16:06:43.932554287 +0000
     4187@@ -833,46 +833,46 @@
     4188 (define_insn "scc"
     4189   [(set (match_operand:SI 0 "register_operand" "=r")
     4190        (match_operator:SI 3 "comparison_operator"
     4191-                          [(match_operand:SI 1 "register_operand" "r")
     4192+                          [(match_operand:SI 1 "reg_or_0_operand" "rM")
     4193                            (match_operand:SI 2 "arith11_operand" "rI")]))]
     4194   ""
     4195-  "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi 1,%0"
     4196+  "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi 1,%0"
     4197   [(set_attr "type" "binary")
     4198    (set_attr "length" "8")])
     4199 
     4200 (define_insn ""
     4201   [(set (match_operand:DI 0 "register_operand" "=r")
     4202        (match_operator:DI 3 "comparison_operator"
     4203-                          [(match_operand:DI 1 "register_operand" "r")
     4204+                          [(match_operand:DI 1 "reg_or_0_operand" "rM")
     4205                            (match_operand:DI 2 "arith11_operand" "rI")]))]
     4206   "TARGET_64BIT"
     4207-  "cmp%I2clr,*%B3 %2,%1,%0\;ldi 1,%0"
     4208+  "cmp%I2clr,*%B3 %2,%r1,%0\;ldi 1,%0"
     4209   [(set_attr "type" "binary")
     4210    (set_attr "length" "8")])
     4211 
     4212 (define_insn "iorscc"
     4213   [(set (match_operand:SI 0 "register_operand" "=r")
     4214        (ior:SI (match_operator:SI 3 "comparison_operator"
     4215-                                  [(match_operand:SI 1 "register_operand" "r")
     4216+                                  [(match_operand:SI 1 "reg_or_0_operand" "rM")
     4217                                    (match_operand:SI 2 "arith11_operand" "rI")])
     4218                (match_operator:SI 6 "comparison_operator"
     4219-                                  [(match_operand:SI 4 "register_operand" "r")
     4220+                                  [(match_operand:SI 4 "reg_or_0_operand" "rM")
     4221                                    (match_operand:SI 5 "arith11_operand" "rI")])))]
     4222   ""
     4223-  "{com%I2clr|cmp%I2clr},%S3 %2,%1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%4,%0\;ldi 1,%0"
     4224+  "{com%I2clr|cmp%I2clr},%S3 %2,%r1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%r4,%0\;ldi 1,%0"
     4225   [(set_attr "type" "binary")
     4226    (set_attr "length" "12")])
     4227 
     4228 (define_insn ""
     4229   [(set (match_operand:DI 0 "register_operand" "=r")
     4230        (ior:DI (match_operator:DI 3 "comparison_operator"
     4231-                                  [(match_operand:DI 1 "register_operand" "r")
     4232+                                  [(match_operand:DI 1 "reg_or_0_operand" "rM")
     4233                                    (match_operand:DI 2 "arith11_operand" "rI")])
     4234                (match_operator:DI 6 "comparison_operator"
     4235-                                  [(match_operand:DI 4 "register_operand" "r")
     4236+                                  [(match_operand:DI 4 "reg_or_0_operand" "rM")
     4237                                    (match_operand:DI 5 "arith11_operand" "rI")])))]
     4238   "TARGET_64BIT"
     4239-  "cmp%I2clr,*%S3 %2,%1,%%r0\;cmp%I5clr,*%B6 %5,%4,%0\;ldi 1,%0"
     4240+  "cmp%I2clr,*%S3 %2,%r1,%%r0\;cmp%I5clr,*%B6 %5,%r4,%0\;ldi 1,%0"
     4241   [(set_attr "type" "binary")
     4242    (set_attr "length" "12")])
     4243 
     4244@@ -881,20 +881,20 @@
     4245 (define_insn "negscc"
     4246   [(set (match_operand:SI 0 "register_operand" "=r")
     4247        (neg:SI (match_operator:SI 3 "comparison_operator"
     4248-              [(match_operand:SI 1 "register_operand" "r")
     4249+              [(match_operand:SI 1 "reg_or_0_operand" "rM")
     4250                (match_operand:SI 2 "arith11_operand" "rI")])))]
     4251   ""
     4252-  "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi -1,%0"
     4253+  "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi -1,%0"
     4254   [(set_attr "type" "binary")
     4255    (set_attr "length" "8")])
     4256 
     4257 (define_insn ""
     4258   [(set (match_operand:DI 0 "register_operand" "=r")
     4259        (neg:DI (match_operator:DI 3 "comparison_operator"
     4260-              [(match_operand:DI 1 "register_operand" "r")
     4261+              [(match_operand:DI 1 "reg_or_0_operand" "rM")
     4262                (match_operand:DI 2 "arith11_operand" "rI")])))]
     4263   "TARGET_64BIT"
     4264-  "cmp%I2clr,*%B3 %2,%1,%0\;ldi -1,%0"
     4265+  "cmp%I2clr,*%B3 %2,%r1,%0\;ldi -1,%0"
     4266   [(set_attr "type" "binary")
     4267    (set_attr "length" "8")])
     4268 
    36904269diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/default64.h gcc-4.8.1/gcc/config/rs6000/default64.h
    36914270--- gcc-4.8.1.orig/gcc/config/rs6000/default64.h        2013-01-10 20:38:27.000000000 +0000
    3692 +++ gcc-4.8.1/gcc/config/rs6000/default64.h     2013-09-13 19:01:42.976532125 +0000
     4271+++ gcc-4.8.1/gcc/config/rs6000/default64.h     2013-10-01 16:06:43.932554287 +0000
    36934272@@ -18,5 +18,10 @@
    36944273 along with GCC; see the file COPYING3.  If not see
     
    37044283diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/dfp.md gcc-4.8.1/gcc/config/rs6000/dfp.md
    37054284--- gcc-4.8.1.orig/gcc/config/rs6000/dfp.md     2013-01-10 20:38:27.000000000 +0000
    3706 +++ gcc-4.8.1/gcc/config/rs6000/dfp.md  2013-09-13 19:01:42.976532125 +0000
     4285+++ gcc-4.8.1/gcc/config/rs6000/dfp.md  2013-10-01 16:06:43.932554287 +0000
    37074286@@ -394,11 +394,14 @@
    37084287   "")
     
    37264305diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux.h gcc-4.8.1/gcc/config/rs6000/linux.h
    37274306--- gcc-4.8.1.orig/gcc/config/rs6000/linux.h    2013-01-10 20:38:27.000000000 +0000
    3728 +++ gcc-4.8.1/gcc/config/rs6000/linux.h 2013-09-13 19:01:42.979865449 +0000
     4307+++ gcc-4.8.1/gcc/config/rs6000/linux.h 2013-10-01 16:06:43.932554287 +0000
    37294308@@ -79,6 +79,24 @@
    37304309 #undef LINK_OS_DEFAULT_SPEC
     
    37544333diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux64.h gcc-4.8.1/gcc/config/rs6000/linux64.h
    37554334--- gcc-4.8.1.orig/gcc/config/rs6000/linux64.h  2013-01-10 20:38:27.000000000 +0000
    3756 +++ gcc-4.8.1/gcc/config/rs6000/linux64.h       2013-09-13 19:01:42.976532125 +0000
     4335+++ gcc-4.8.1/gcc/config/rs6000/linux64.h       2013-10-01 16:06:43.932554287 +0000
    37574336@@ -180,20 +180,14 @@
    37584337 #endif
     
    38264405diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h
    38274406--- gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h     2013-01-10 20:38:27.000000000 +0000
    3828 +++ gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h  2013-09-13 19:01:42.976532125 +0000
     4407+++ gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h  2013-10-01 16:06:43.932554287 +0000
    38294408@@ -20,8 +20,13 @@
    38304409    <http://www.gnu.org/licenses/>.  */
     
    38434422diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h gcc-4.8.1/gcc/config/rs6000/linuxspe.h
    38444423--- gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h 2013-01-10 20:38:27.000000000 +0000
    3845 +++ gcc-4.8.1/gcc/config/rs6000/linuxspe.h      2013-09-13 19:01:42.979865449 +0000
     4424+++ gcc-4.8.1/gcc/config/rs6000/linuxspe.h      2013-10-01 16:06:43.932554287 +0000
    38464425@@ -20,8 +20,13 @@
    38474426    <http://www.gnu.org/licenses/>.  */
     
    38604439diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/predicates.md gcc-4.8.1/gcc/config/rs6000/predicates.md
    38614440--- gcc-4.8.1.orig/gcc/config/rs6000/predicates.md      2013-01-10 20:38:27.000000000 +0000
    3862 +++ gcc-4.8.1/gcc/config/rs6000/predicates.md   2013-09-13 19:01:42.979865449 +0000
    3863 @@ -464,9 +464,11 @@
     4441+++ gcc-4.8.1/gcc/config/rs6000/predicates.md   2013-10-01 16:06:43.932554287 +0000
     4442@@ -275,14 +275,18 @@
     4443   (ior (match_code "const_int")
     4444        (match_operand 0 "gpc_reg_operand")))
     4445 
     4446+;; Return 1 if op is a constant integer valid for addition with addis, addi.
     4447+(define_predicate "add_cint_operand"
     4448+  (and (match_code "const_int")
     4449+       (match_test "(unsigned HOST_WIDE_INT)
     4450+                     (INTVAL (op) + (mode == SImode ? 0x80000000 : 0x80008000))
     4451+                   < (unsigned HOST_WIDE_INT) 0x100000000ll")))
     4452+
     4453 ;; Return 1 if op is a constant integer valid for addition
     4454 ;; or non-special register.
     4455 (define_predicate "reg_or_add_cint_operand"
     4456   (if_then_else (match_code "const_int")
     4457-    (match_test "(HOST_BITS_PER_WIDE_INT == 32
     4458-                 && (mode == SImode || INTVAL (op) < 0x7fff8000))
     4459-                || ((unsigned HOST_WIDE_INT) (INTVAL (op) + 0x80008000)
     4460-                    < (unsigned HOST_WIDE_INT) 0x100000000ll)")
     4461+    (match_operand 0 "add_cint_operand")
     4462     (match_operand 0 "gpc_reg_operand")))
     4463 
     4464 ;; Return 1 if op is a constant integer valid for subtraction
     4465@@ -464,9 +468,11 @@
    38644466            (match_test "easy_altivec_constant (op, mode)")))
    38654467 {
     
    38744476   return EASY_VECTOR_15_ADD_SELF (val);
    38754477 })
    3876 @@ -478,9 +480,11 @@
     4478@@ -478,9 +484,11 @@
    38774479            (match_test "easy_altivec_constant (op, mode)")))
    38784480 {
     
    38874489 })
    38884490 
     4491@@ -1521,7 +1529,7 @@
     4492 (define_predicate "small_toc_ref"
     4493   (match_code "unspec,plus")
     4494 {
     4495-  if (GET_CODE (op) == PLUS && CONST_INT_P (XEXP (op, 1)))
     4496+  if (GET_CODE (op) == PLUS && add_cint_operand (XEXP (op, 1), mode))
     4497     op = XEXP (op, 0);
     4498 
     4499   return GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_TOCREL;
    38894500diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c gcc-4.8.1/gcc/config/rs6000/rs6000.c
    38904501--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c   2013-05-10 01:54:06.000000000 +0000
    3891 +++ gcc-4.8.1/gcc/config/rs6000/rs6000.c        2013-09-13 19:01:42.986532098 +0000
    3892 @@ -2190,7 +2190,8 @@
     4502+++ gcc-4.8.1/gcc/config/rs6000/rs6000.c        2013-10-01 16:06:43.936554287 +0000
     4503@@ -284,9 +284,6 @@
     4504   { "rsqrtd",   (RECIP_DF_RSQRT | RECIP_V2DF_RSQRT) },
     4505 };
     4506 
     4507-/* 2 argument gen function typedef.  */
     4508-typedef rtx (*gen_2arg_fn_t) (rtx, rtx, rtx);
     4509-
     4510 /* Pointer to function (in rs6000-c.c) that can define or undefine target
     4511    macros that have changed.  Languages that don't support the preprocessor
     4512    don't link in rs6000-c.c, so we can't call it directly.  */
     4513@@ -2190,7 +2187,8 @@
    38934514          int reg_size2 = reg_size;
    38944515 
     
    39004521 
    39014522          rs6000_class_max_nregs[m][c]
    3902 @@ -4239,7 +4240,7 @@
     4523@@ -4239,7 +4237,7 @@
    39034524   bitsize = GET_MODE_BITSIZE (inner);
    39044525   mask = GET_MODE_MASK (inner);
     
    39094530   msb_val = val > 0 ? 0 : -1;
    39104531 
    3911 @@ -4279,7 +4280,7 @@
     4532@@ -4279,7 +4277,7 @@
    39124533   for (i = 0; i < nunits - 1; ++i)
    39134534     {
     
    39184539       else
    39194540        desired_val = msb_val;
    3920 @@ -4364,13 +4365,13 @@
     4541@@ -4364,13 +4362,13 @@
    39214542 {
    39224543   enum machine_mode mode = GET_MODE (op);
     
    39344555   /* Then try with a vspltish.  */
    39354556   if (step == 1)
    3936 @@ -4379,7 +4380,7 @@
     4557@@ -4379,7 +4377,7 @@
    39374558     step >>= 1;
    39384559 
     
    39434564   /* And finally a vspltisb.  */
    39444565   if (step == 1)
    3945 @@ -4388,7 +4389,7 @@
     4566@@ -4388,7 +4386,7 @@
    39464567     step >>= 1;
    39474568 
     
    39524573   gcc_unreachable ();
    39534574 }
    3954 @@ -9066,19 +9067,20 @@
     4575@@ -5337,7 +5335,7 @@
     4576 
     4577   tocrel_base = op;
     4578   tocrel_offset = const0_rtx;
     4579-  if (GET_CODE (op) == PLUS && CONST_INT_P (XEXP (op, 1)))
     4580+  if (GET_CODE (op) == PLUS && add_cint_operand (XEXP (op, 1), GET_MODE (op)))
     4581     {
     4582       tocrel_base = XEXP (op, 0);
     4583       tocrel_offset = XEXP (op, 1);
     4584@@ -9066,19 +9064,20 @@
    39554585       && cfun->va_list_gpr_size)
    39564586     {
     
    39774607       mem = gen_rtx_MEM (BLKmode,
    39784608                         plus_constant (Pmode, save_area,
    3979 @@ -16900,8 +16902,9 @@
     4609@@ -16900,8 +16899,9 @@
    39804610   shift = gen_reg_rtx (SImode);
    39814611   addr = gen_lowpart (SImode, addr);
     
    39894619 
    39904620   /* Mask for insertion.  */
    3991 @@ -19957,8 +19960,7 @@
     4621@@ -19957,8 +19957,7 @@
    39924622          HOST_WIDE_INT offset;
    39934623 
     
    39994629          spe_save_area_ptr = gen_rtx_REG (Pmode, 11);
    40004630          save_off = frame_off - offset;
    4001 @@ -21200,8 +21202,7 @@
     4631@@ -21200,8 +21199,7 @@
    40024632             anew to every function.  */
    40034633 
     
    40094639          emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx,
    40104640                                 GEN_INT (info->spe_gp_save_offset
    4011 @@ -22151,20 +22152,22 @@
     4641@@ -22151,20 +22149,22 @@
    40124642 
    40134643       if (TARGET_64BIT)
     
    40364666          else
    40374667            fprintf (file, "\t.tc FT_%lx_%lx_%lx_%lx[TC],",
    4038 @@ -22191,18 +22194,19 @@
     4668@@ -22191,18 +22191,19 @@
    40394669 
    40404670       if (TARGET_64BIT)
     
    40594689          else
    40604690            fprintf (file, "\t.tc FD_%lx_%lx[TC],",
    4061 @@ -22226,16 +22230,19 @@
     4691@@ -22226,16 +22227,19 @@
    40624692 
    40634693       if (TARGET_64BIT)
     
    40824712          else
    40834713            fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
    4084 @@ -22267,9 +22274,8 @@
     4714@@ -22267,9 +22271,8 @@
    40854715        }
    40864716 #endif
     
    40944724         a separate constant pool, because then we'd have
    40954725         to have both a TOC entry _and_ the actual constant.)
    4096 @@ -22280,7 +22286,7 @@
     4726@@ -22280,7 +22283,7 @@
    40974727       /* It would be easy to make this work, but it doesn't now.  */
    40984728       gcc_assert (!TARGET_64BIT || POINTER_SIZE >= GET_MODE_BITSIZE (mode));
     
    41034733 #if HOST_BITS_PER_WIDE_INT == 32
    41044734          lshift_double (low, high, POINTER_SIZE - GET_MODE_BITSIZE (mode),
    4105 @@ -22295,7 +22301,7 @@
     4735@@ -22295,7 +22298,7 @@
    41064736 
    41074737       if (TARGET_64BIT)
     
    41124742          else
    41134743            fprintf (file, "\t.tc ID_%lx_%lx[TC],",
    4114 @@ -22308,7 +22314,7 @@
     4744@@ -22308,7 +22311,7 @@
    41154745        {
    41164746          if (POINTER_SIZE < GET_MODE_BITSIZE (mode))
     
    41214751              else
    41224752                fprintf (file, "\t.tc ID_%lx_%lx[TC],",
    4123 @@ -22318,7 +22324,7 @@
     4753@@ -22318,7 +22321,7 @@
    41244754            }
    41254755          else
     
    41304760              else
    41314761                fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff);
    4132 @@ -22356,7 +22362,7 @@
     4762@@ -22356,7 +22359,7 @@
    41334763       gcc_unreachable ();
    41344764     }
     
    41394769   else
    41404770     {
     4771@@ -26651,7 +26654,7 @@
     4772   enum machine_mode mode = GET_MODE (dst);
     4773   rtx x0, e0, e1, y1, u0, v0;
     4774   enum insn_code code = optab_handler (smul_optab, mode);
     4775-  gen_2arg_fn_t gen_mul = (gen_2arg_fn_t) GEN_FCN (code);
     4776+  insn_gen_fn gen_mul = GEN_FCN (code);
     4777   rtx one = rs6000_load_constant_and_splat (mode, dconst1);
     4778 
     4779   gcc_assert (code != CODE_FOR_nothing);
     4780@@ -26689,7 +26692,7 @@
     4781   enum machine_mode mode = GET_MODE (dst);
     4782   rtx x0, e0, e1, e2, y1, y2, y3, u0, v0, one;
     4783   enum insn_code code = optab_handler (smul_optab, mode);
     4784-  gen_2arg_fn_t gen_mul = (gen_2arg_fn_t) GEN_FCN (code);
     4785+  insn_gen_fn gen_mul = GEN_FCN (code);
     4786 
     4787   gcc_assert (code != CODE_FOR_nothing);
     4788 
     4789@@ -26760,7 +26763,7 @@
     4790   int i;
     4791   rtx halfthree;
     4792   enum insn_code code = optab_handler (smul_optab, mode);
     4793-  gen_2arg_fn_t gen_mul = (gen_2arg_fn_t) GEN_FCN (code);
     4794+  insn_gen_fn gen_mul = GEN_FCN (code);
     4795 
     4796   gcc_assert (code != CODE_FOR_nothing);
     4797 
    41414798diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h gcc-4.8.1/gcc/config/rs6000/rs6000.h
    41424799--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h   2013-05-06 23:33:49.000000000 +0000
    4143 +++ gcc-4.8.1/gcc/config/rs6000/rs6000.h        2013-09-13 19:01:42.989865423 +0000
     4800+++ gcc-4.8.1/gcc/config/rs6000/rs6000.h        2013-10-01 16:06:43.936554287 +0000
    41444801@@ -662,6 +662,11 @@
    41454802    instructions for them.  Might as well be consistent with bits and bytes.  */
     
    41704827diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md gcc-4.8.1/gcc/config/rs6000/rs6000.md
    41714828--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md  2013-02-07 08:04:58.000000000 +0000
    4172 +++ gcc-4.8.1/gcc/config/rs6000/rs6000.md       2013-09-13 19:01:42.993198747 +0000
     4829+++ gcc-4.8.1/gcc/config/rs6000/rs6000.md       2013-10-01 16:06:43.936554287 +0000
    41734830@@ -1990,6 +1990,8 @@
    41744831   [(set_attr "length" "4,4,12")
     
    41894846   [(set (match_operand:SI 0 "gpc_reg_operand" "")
    41904847        (bswap:SI (match_operand:SI 1 "gpc_reg_operand" "")))]
    4191 @@ -2125,8 +2129,10 @@
     4848@@ -2106,7 +2110,9 @@
     4849    (clobber (match_scratch:DI 3 "=&r,&r,&r"))
     4850    (clobber (match_scratch:DI 4 "=&r,X,&r"))]
     4851   "TARGET_POWERPC64 && !TARGET_LDBRX
     4852-   && (REG_P (operands[0]) || REG_P (operands[1]))"
     4853+   && (REG_P (operands[0]) || REG_P (operands[1]))
     4854+   && !(MEM_P (operands[0]) && MEM_VOLATILE_P (operands[0]))
     4855+   && !(MEM_P (operands[1]) && MEM_VOLATILE_P (operands[1]))"
     4856   "#"
     4857   [(set_attr "length" "16,12,36")])
     4858 
     4859@@ -2125,8 +2131,10 @@
    41924860   rtx op2    = operands[2];
    41934861   rtx op3    = operands[3];
     
    42024870   rtx addr2;
    42034871   rtx word_high;
    4204 @@ -2186,8 +2192,10 @@
     4872@@ -2186,8 +2194,10 @@
    42054873   rtx src    = operands[1];
    42064874   rtx op2    = operands[2];
     
    42154883   rtx addr2;
    42164884   rtx word_high;
    4217 @@ -2221,16 +2229,14 @@
     4885@@ -2221,16 +2231,14 @@
    42184886     {
    42194887       word_high = change_address (dest, SImode, addr1);
     
    42344902 
    42354903 (define_split
    4236 @@ -2247,10 +2253,11 @@
     4904@@ -2247,10 +2255,11 @@
    42374905   rtx src     = operands[1];
    42384906   rtx op2     = operands[2];
     
    42504918   emit_insn (gen_lshrdi3 (op2, src, GEN_INT (32)));
    42514919   emit_insn (gen_bswapsi2 (dest_si, src_si));
    4252 @@ -2275,15 +2282,15 @@
     4920@@ -2275,15 +2284,15 @@
    42534921   [(const_int 0)]
    42544922   "
     
    42734941   addr1 = XEXP (src, 0);
    42744942   if (GET_CODE (addr1) == PLUS)
    4275 @@ -2308,19 +2315,11 @@
     4943@@ -2308,19 +2317,11 @@
    42764944       addr2 = gen_rtx_PLUS (SImode, op2, addr1);
    42774945     }
     
    42974965 
    42984966 (define_split
    4299 @@ -2331,15 +2330,15 @@
     4967@@ -2331,15 +2332,15 @@
    43004968   [(const_int 0)]
    43014969   "
     
    43204988   addr1 = XEXP (dest, 0);
    43214989   if (GET_CODE (addr1) == PLUS)
    4322 @@ -2364,19 +2363,11 @@
     4990@@ -2364,19 +2365,11 @@
    43234991       addr2 = gen_rtx_PLUS (SImode, op2, addr1);
    43244992     }
     
    43445012 
    43455013 (define_split
    4346 @@ -2387,15 +2378,15 @@
     5014@@ -2387,15 +2380,15 @@
    43475015   [(const_int 0)]
    43485016   "
     
    43685036 
    43695037 (define_insn "mulsi3"
    4370 @@ -4682,6 +4673,41 @@
     5038@@ -4682,6 +4675,41 @@
    43715039   "frsqrtes %0,%1"
    43725040   [(set_attr "type" "fp")])
     
    44105078   [(set (match_dup 3)
    44115079         (abs:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "")))
    4412 @@ -6210,10 +6236,25 @@
     5080@@ -6210,10 +6238,25 @@
    44135081   [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
    44145082        (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
     
    44405108    (set_attr "length" "8,12")])
    44415109 
    4442 @@ -7064,13 +7105,12 @@
     5110@@ -7064,13 +7107,12 @@
    44435111   [(set (match_operand:DI 0 "gpc_reg_operand" "")
    44445112        (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "")
     
    44565124       emit_insn (gen_ashrdi3_no_power (operands[0], operands[1], operands[2]));
    44575125       DONE;
    4458 @@ -8277,8 +8317,8 @@
     5126@@ -8277,8 +8319,8 @@
    44595127   "&& reload_completed"
    44605128   [(pc)]
     
    44675135                  operands[1]);
    44685136   emit_move_insn (simplify_gen_subreg (DFmode, operands[0], TFmode, lo_word),
    4469 @@ -8507,8 +8547,8 @@
     5137@@ -8507,8 +8549,8 @@
    44705138    && TARGET_LONG_DOUBLE_128"
    44715139   "
     
    44785146   operands[4] = gen_reg_rtx (CCFPmode);
    44795147   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
    4480 @@ -11609,8 +11649,8 @@
     5148@@ -10422,7 +10464,7 @@
     5149            (unspec [(match_operand:DI 1 "" "")
     5150                     (match_operand:DI 2 "gpc_reg_operand" "b")]
     5151                    UNSPEC_TOCREL)
     5152-           (match_operand 3 "const_int_operand" "n"))))]
     5153+           (match_operand:DI 3 "add_cint_operand" "n"))))]
     5154    "TARGET_ELF && TARGET_CMODEL != CMODEL_SMALL"
     5155    "addis %0,%2,%1+%3@toc@ha")
     5156 
     5157@@ -10433,7 +10475,7 @@
     5158            (unspec [(match_operand:P 1 "" "")
     5159                     (match_operand:P 2 "gpc_reg_operand" "b")]
     5160                    UNSPEC_TOCREL)
     5161-           (match_operand 3 "const_int_operand" "n"))))]
     5162+           (match_operand:P 3 "add_cint_operand" "n"))))]
     5163    "TARGET_XCOFF && TARGET_CMODEL != CMODEL_SMALL"
     5164    "addis %0,%1+%3@u(%2)")
     5165 
     5166@@ -11609,8 +11651,8 @@
    44815167    (match_dup 13)]
    44825168 {
     
    44915177diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rtems.h gcc-4.8.1/gcc/config/rs6000/rtems.h
    44925178--- gcc-4.8.1.orig/gcc/config/rs6000/rtems.h    2013-01-10 20:38:27.000000000 +0000
    4493 +++ gcc-4.8.1/gcc/config/rs6000/rtems.h 2013-09-13 19:01:42.996532072 +0000
     5179+++ gcc-4.8.1/gcc/config/rs6000/rtems.h 2013-10-01 16:06:43.936554287 +0000
    44945180@@ -34,6 +34,9 @@
    44955181     }                                     \
     
    45045190diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/spe.md gcc-4.8.1/gcc/config/rs6000/spe.md
    45055191--- gcc-4.8.1.orig/gcc/config/rs6000/spe.md     2013-01-10 20:38:27.000000000 +0000
    4506 +++ gcc-4.8.1/gcc/config/rs6000/spe.md  2013-09-13 19:01:42.996532072 +0000
     5192+++ gcc-4.8.1/gcc/config/rs6000/spe.md  2013-10-01 16:06:43.940554287 +0000
    45075193@@ -2604,8 +2604,8 @@
    45085194    && TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128"
     
    45295215diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h gcc-4.8.1/gcc/config/rs6000/sysv4.h
    45305216--- gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h    2013-01-10 20:38:27.000000000 +0000
    4531 +++ gcc-4.8.1/gcc/config/rs6000/sysv4.h 2013-09-13 19:01:42.996532072 +0000
     5217+++ gcc-4.8.1/gcc/config/rs6000/sysv4.h 2013-10-01 16:06:43.940554287 +0000
    45325218@@ -187,12 +187,6 @@
    45335219             rs6000_abi_name);                                          \
     
    46155301diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h gcc-4.8.1/gcc/config/rs6000/sysv4le.h
    46165302--- gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h  2013-01-10 20:38:27.000000000 +0000
    4617 +++ gcc-4.8.1/gcc/config/rs6000/sysv4le.h       2013-09-13 19:01:42.999865397 +0000
     5303+++ gcc-4.8.1/gcc/config/rs6000/sysv4le.h       2013-10-01 16:06:43.940554287 +0000
    46185304@@ -25,12 +25,12 @@
    46195305 #undef CC1_ENDIAN_DEFAULT_SPEC
     
    46365322diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmintrin.h gcc-4.8.1/gcc/config/s390/htmintrin.h
    46375323--- gcc-4.8.1.orig/gcc/config/s390/htmintrin.h  1970-01-01 00:00:00.000000000 +0000
    4638 +++ gcc-4.8.1/gcc/config/s390/htmintrin.h       2013-09-13 19:01:42.999865397 +0000
     5324+++ gcc-4.8.1/gcc/config/s390/htmintrin.h       2013-10-01 16:06:43.940554287 +0000
    46395325@@ -0,0 +1,57 @@
    46405326+/* GNU compiler hardware transactional execution intrinsics
     
    46975383diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h gcc-4.8.1/gcc/config/s390/htmxlintrin.h
    46985384--- gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h        1970-01-01 00:00:00.000000000 +0000
    4699 +++ gcc-4.8.1/gcc/config/s390/htmxlintrin.h     2013-09-13 19:01:42.999865397 +0000
     5385+++ gcc-4.8.1/gcc/config/s390/htmxlintrin.h     2013-10-01 16:06:43.940554287 +0000
    47005386@@ -0,0 +1,182 @@
    47015387+/* XL compiler hardware transactional execution intrinsics
     
    48835569diff -Naur gcc-4.8.1.orig/gcc/config/s390/predicates.md gcc-4.8.1/gcc/config/s390/predicates.md
    48845570--- gcc-4.8.1.orig/gcc/config/s390/predicates.md        2013-01-10 20:38:27.000000000 +0000
    4885 +++ gcc-4.8.1/gcc/config/s390/predicates.md     2013-09-13 19:01:42.999865397 +0000
     5571+++ gcc-4.8.1/gcc/config/s390/predicates.md     2013-10-01 16:06:43.940554287 +0000
    48865572@@ -176,7 +176,11 @@
    48875573 {
     
    49125598diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-modes.def gcc-4.8.1/gcc/config/s390/s390-modes.def
    49135599--- gcc-4.8.1.orig/gcc/config/s390/s390-modes.def       2013-01-10 20:38:27.000000000 +0000
    4914 +++ gcc-4.8.1/gcc/config/s390/s390-modes.def    2013-09-13 19:01:43.009865370 +0000
     5600+++ gcc-4.8.1/gcc/config/s390/s390-modes.def    2013-10-01 16:06:43.944554286 +0000
    49155601@@ -152,6 +152,14 @@
    49165602 operands were equal/unequal. The CCZ1 mode ensures the result can be
     
    49355621diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-protos.h gcc-4.8.1/gcc/config/s390/s390-protos.h
    49365622--- gcc-4.8.1.orig/gcc/config/s390/s390-protos.h        2013-01-10 20:38:27.000000000 +0000
    4937 +++ gcc-4.8.1/gcc/config/s390/s390-protos.h     2013-09-13 19:01:43.009865370 +0000
     5623+++ gcc-4.8.1/gcc/config/s390/s390-protos.h     2013-10-01 16:06:43.944554286 +0000
    49385624@@ -58,7 +58,7 @@
    49395625 extern enum machine_mode s390_tm_ccmode (rtx, rtx, bool);
     
    49555641diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.c gcc-4.8.1/gcc/config/s390/s390.c
    49565642--- gcc-4.8.1.orig/gcc/config/s390/s390.c       2013-04-08 07:55:57.000000000 +0000
    4957 +++ gcc-4.8.1/gcc/config/s390/s390.c    2013-09-13 19:01:43.003198721 +0000
     5643+++ gcc-4.8.1/gcc/config/s390/s390.c    2013-10-01 16:06:43.940554287 +0000
    49585644@@ -367,6 +367,10 @@
    49595645   const char *some_ld_name;
     
    51005786     {
    51015787       if (target_flags_explicit & MASK_HARD_DFP)
    5102 @@ -7341,11 +7377,11 @@
     5788@@ -7028,25 +7064,12 @@
     5789         or a casesi jump, check all potential targets.  */
     5790       else if (GET_CODE (insn) == JUMP_INSN)
     5791        {
     5792-          rtx pat = PATTERN (insn);
     5793-         if (GET_CODE (pat) == PARALLEL && XVECLEN (pat, 0) > 2)
     5794-           pat = XVECEXP (pat, 0, 0);
     5795-
     5796-          if (GET_CODE (pat) == SET)
     5797-            {
     5798-             rtx label = JUMP_LABEL (insn);
     5799-             if (label)
     5800-               {
     5801-                 if (s390_find_pool (pool_list, label)
     5802-                     != s390_find_pool (pool_list, insn))
     5803-                   bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
     5804-               }
     5805-            }
     5806-         else if (GET_CODE (pat) == PARALLEL
     5807-                  && XVECLEN (pat, 0) == 2
     5808-                  && GET_CODE (XVECEXP (pat, 0, 0)) == SET
     5809-                  && GET_CODE (XVECEXP (pat, 0, 1)) == USE
     5810-                  && GET_CODE (XEXP (XVECEXP (pat, 0, 1), 0)) == LABEL_REF)
     5811+         rtx pat = PATTERN (insn);
     5812+         if (GET_CODE (pat) == PARALLEL
     5813+             && XVECLEN (pat, 0) == 2
     5814+             && GET_CODE (XVECEXP (pat, 0, 0)) == SET
     5815+             && GET_CODE (XVECEXP (pat, 0, 1)) == USE
     5816+             && GET_CODE (XEXP (XVECEXP (pat, 0, 1), 0)) == LABEL_REF)
     5817            {
     5818              /* Find the jump table used by this casesi jump.  */
     5819              rtx vec_label = XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
     5820@@ -7068,8 +7091,23 @@
     5821                        bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
     5822                    }
     5823                }
     5824+             continue;
     5825            }
     5826-        }
     5827+
     5828+         if (GET_CODE (pat) == PARALLEL)
     5829+           pat = XVECEXP (pat, 0, 0);
     5830+
     5831+         if (GET_CODE (pat) == SET)
     5832+           {
     5833+             rtx label = JUMP_LABEL (insn);
     5834+             if (label)
     5835+               {
     5836+                 if (s390_find_pool (pool_list, label)
     5837+                     != s390_find_pool (pool_list, insn))
     5838+                   bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
     5839+               }
     5840+           }
     5841+       }
     5842     }
     5843 
     5844   /* Insert base register reload insns before every pool.  */
     5845@@ -7341,11 +7379,11 @@
    51035846   if (GET_CODE (setreg) == SUBREG)
    51045847     {
     
    51145857   else
    51155858     return;
    5116 @@ -7368,13 +7404,13 @@
     5859@@ -7368,13 +7406,13 @@
    51175860   rtx cur_insn;
    51185861   unsigned int i;
     
    51305873     }
    51315874 
    5132 @@ -7396,7 +7432,7 @@
     5875@@ -7396,7 +7434,7 @@
    51335876      See expand_builtin_unwind_init.  For regs_ever_live this is done by
    51345877      reload.  */
     
    51395882        regs_ever_clobbered[i] = 1;
    51405883 
    5141 @@ -7462,17 +7498,6 @@
     5884@@ -7462,17 +7500,6 @@
    51425885 {
    51435886   int i, j;
     
    51575900      data, except that we don't save and restore global registers.
    51585901 
    5159 @@ -7481,6 +7506,28 @@
     5902@@ -7481,6 +7508,28 @@
    51605903 
    51615904   s390_regs_ever_clobbered (clobbered_regs);
     
    51865929     clobbered_regs[i] = clobbered_regs[i] && !global_regs[i] && !fixed_regs[i];
    51875930 
    5188 @@ -7731,7 +7778,7 @@
     5931@@ -7731,7 +7780,7 @@
    51895932 {
    51905933   HOST_WIDE_INT frame_size;
     
    51955938   /* On S/390 machines, we may need to perform branch splitting, which
    51965939      will require both base and return address register.  We have no
    5197 @@ -7766,6 +7813,157 @@
     5940@@ -7766,6 +7815,157 @@
    51985941   while (frame_size != cfun_frame_layout.frame_size);
    51995942 }
     
    53536096    current info and update regs_ever_live for the special registers.
    53546097    May be called multiple times, but may never cause *more* registers
    5355 @@ -7774,7 +7972,7 @@
     6098@@ -7774,7 +7974,7 @@
    53566099 static void
    53576100 s390_update_frame_layout (void)
     
    53626105   s390_register_info (clobbered_regs);
    53636106 
    5364 @@ -8204,8 +8402,10 @@
     6107@@ -8204,8 +8404,10 @@
    53656108   int offset;
    53666109   int next_fpr = 0;
     
    53746117 
    53756118   /* Annotate all constant pool references to let the scheduler know
    5376 @@ -9353,6 +9553,291 @@
     6119@@ -9353,6 +9555,291 @@
    53776120   return build_va_arg_indirect_ref (addr);
    53786121 }
     
    56666409    stdio stream FILE.
    56676410 
    5668 @@ -11008,6 +11493,11 @@
     6411@@ -11008,6 +11495,11 @@
    56696412 #undef TARGET_RETURN_IN_MEMORY
    56706413 #define TARGET_RETURN_IN_MEMORY s390_return_in_memory
     
    56806423diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.h gcc-4.8.1/gcc/config/s390/s390.h
    56816424--- gcc-4.8.1.orig/gcc/config/s390/s390.h       2013-03-05 12:02:06.000000000 +0000
    5682 +++ gcc-4.8.1/gcc/config/s390/s390.h    2013-09-13 19:01:43.003198721 +0000
     6425+++ gcc-4.8.1/gcc/config/s390/s390.h    2013-10-01 16:06:43.940554287 +0000
    56836426@@ -34,7 +34,8 @@
    56846427   PF_DFP = 16,
     
    57626505diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.md gcc-4.8.1/gcc/config/s390/s390.md
    57636506--- gcc-4.8.1.orig/gcc/config/s390/s390.md      2013-01-10 20:38:27.000000000 +0000
    5764 +++ gcc-4.8.1/gcc/config/s390/s390.md   2013-09-13 19:01:43.009865370 +0000
     6507+++ gcc-4.8.1/gcc/config/s390/s390.md   2013-10-01 16:06:43.944554286 +0000
    57656508@@ -59,11 +59,17 @@
    57666509 (define_c_enum "unspec" [
     
    61866929diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.opt gcc-4.8.1/gcc/config/s390/s390.opt
    61876930--- gcc-4.8.1.orig/gcc/config/s390/s390.opt     2013-01-10 20:38:27.000000000 +0000
    6188 +++ gcc-4.8.1/gcc/config/s390/s390.opt  2013-09-13 19:01:43.009865370 +0000
     6931+++ gcc-4.8.1/gcc/config/s390/s390.opt  2013-10-01 16:06:43.944554286 +0000
    61896932@@ -104,6 +104,10 @@
    61906933 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
     
    62006943diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390intrin.h gcc-4.8.1/gcc/config/s390/s390intrin.h
    62016944--- gcc-4.8.1.orig/gcc/config/s390/s390intrin.h 1970-01-01 00:00:00.000000000 +0000
    6202 +++ gcc-4.8.1/gcc/config/s390/s390intrin.h      2013-09-13 19:01:43.006532046 +0000
     6945+++ gcc-4.8.1/gcc/config/s390/s390intrin.h      2013-10-01 16:06:43.940554287 +0000
    62036946@@ -0,0 +1,33 @@
    62046947+/* S/390 System z specific intrinsics
     
    62376980diff -Naur gcc-4.8.1.orig/gcc/config/sh/sh.md gcc-4.8.1/gcc/config/sh/sh.md
    62386981--- gcc-4.8.1.orig/gcc/config/sh/sh.md  2013-05-06 19:53:56.000000000 +0000
    6239 +++ gcc-4.8.1/gcc/config/sh/sh.md       2013-09-13 19:01:43.016532020 +0000
    6240 @@ -12073,10 +12073,10 @@
     6982+++ gcc-4.8.1/gcc/config/sh/sh.md       2013-10-01 16:06:43.944554286 +0000
     6983@@ -6834,10 +6834,11 @@
     6984 ;; If movqi_reg_reg is specified as an alternative of movqi, movqi will be
     6985 ;; selected to copy QImode regs.  If one of them happens to be allocated
     6986 ;; on the stack, reload will stick to movqi insn and generate wrong
     6987-;; displacement addressing because of the generic m alternatives. 
     6988-;; With the movqi_reg_reg being specified before movqi it will be initially
     6989-;; picked to load/store regs.  If the regs regs are on the stack reload will
     6990-;; try other insns and not stick to movqi_reg_reg.
     6991+;; displacement addressing because of the generic m alternatives.
     6992+;; With the movqi_reg_reg being specified before movqi it will be initially
     6993+;; picked to load/store regs.  If the regs regs are on the stack reload
     6994+;; try other insns and not stick to movqi_reg_reg, unless there were spilled
     6995+;; pseudos in which case 'm' constraints pertain.
     6996 ;; The same applies to the movhi variants.
     6997 ;;
     6998 ;; Notice, that T bit is not allowed as a mov src operand here.  This is to
     6999@@ -6849,11 +6850,14 @@
     7000 ;; reloading MAC subregs otherwise.  For that probably special patterns
     7001 ;; would be required.
     7002 (define_insn "*mov<mode>_reg_reg"
     7003-  [(set (match_operand:QIHI 0 "arith_reg_dest" "=r")
     7004-       (match_operand:QIHI 1 "register_operand" "r"))]
     7005+  [(set (match_operand:QIHI 0 "arith_reg_dest" "=r,m,*z")
     7006+       (match_operand:QIHI 1 "register_operand" "r,*z,m"))]
     7007   "TARGET_SH1 && !t_reg_operand (operands[1], VOIDmode)"
     7008-  "mov %1,%0"
     7009-  [(set_attr "type" "move")])
     7010+  "@
     7011+    mov                %1,%0
     7012+    mov.<bw>   %1,%0
     7013+    mov.<bw>   %1,%0"
     7014+  [(set_attr "type" "move,store,load")])
     7015 
     7016 ;; FIXME: The non-SH2A and SH2A variants should be combined by adding
     7017 ;; "enabled" attribute as it is done in other targets.
     7018@@ -12073,10 +12077,10 @@
    62417019 
    62427020 ;; FMA (fused multiply-add) patterns
     
    62537031 {
    62547032   if (TARGET_SH2E)
    6255 @@ -12107,6 +12107,43 @@
     7033@@ -12107,6 +12111,43 @@
    62567034   "fmac.s %1, %2, %0"
    62577035   [(set_attr "type" "fparith_media")])
     
    62997077diff -Naur gcc-4.8.1.orig/gcc/config/sparc/sparc.c gcc-4.8.1/gcc/config/sparc/sparc.c
    63007078--- gcc-4.8.1.orig/gcc/config/sparc/sparc.c     2013-04-15 08:31:12.000000000 +0000
    6301 +++ gcc-4.8.1/gcc/config/sparc/sparc.c  2013-09-13 19:01:43.019865344 +0000
     7079+++ gcc-4.8.1/gcc/config/sparc/sparc.c  2013-10-01 16:06:43.944554286 +0000
    63027080@@ -11174,6 +11174,11 @@
    63037081       /* Total Store Ordering: all memory transactions with store semantics
     
    63147092diff -Naur gcc-4.8.1.orig/gcc/config.gcc gcc-4.8.1/gcc/config.gcc
    63157093--- gcc-4.8.1.orig/gcc/config.gcc       2013-03-13 09:47:41.000000000 +0000
    6316 +++ gcc-4.8.1/gcc/config.gcc    2013-09-13 19:01:43.023198669 +0000
     7094+++ gcc-4.8.1/gcc/config.gcc    2013-10-01 16:06:43.948554286 +0000
    63177095@@ -452,6 +452,7 @@
    63187096        cpu_type=s390
     
    63627140diff -Naur gcc-4.8.1.orig/gcc/config.in gcc-4.8.1/gcc/config.in
    63637141--- gcc-4.8.1.orig/gcc/config.in        2013-05-31 09:09:26.000000000 +0000
    6364 +++ gcc-4.8.1/gcc/config.in     2013-09-13 19:01:43.023198669 +0000
     7142+++ gcc-4.8.1/gcc/config.in     2013-10-01 16:06:43.948554286 +0000
    63657143@@ -1228,7 +1228,7 @@
    63667144 #endif
     
    63747152diff -Naur gcc-4.8.1.orig/gcc/configure gcc-4.8.1/gcc/configure
    63757153--- gcc-4.8.1.orig/gcc/configure        2013-05-08 11:36:36.000000000 +0000
    6376 +++ gcc-4.8.1/gcc/configure     2013-09-13 19:01:43.973196178 +0000
     7154+++ gcc-4.8.1/gcc/configure     2013-10-01 16:06:55.812553945 +0000
    63777155@@ -11703,6 +11703,7 @@
    63787156 if test x$build != x$host || test "x$coverage_flags" != x
     
    64637241diff -Naur gcc-4.8.1.orig/gcc/configure.ac gcc-4.8.1/gcc/configure.ac
    64647242--- gcc-4.8.1.orig/gcc/configure.ac     2013-05-08 11:36:36.000000000 +0000
    6465 +++ gcc-4.8.1/gcc/configure.ac  2013-09-13 19:01:43.976529502 +0000
     7243+++ gcc-4.8.1/gcc/configure.ac  2013-10-01 16:06:55.816553945 +0000
    64667244@@ -1887,6 +1887,7 @@
    64677245 if test x$build != x$host || test "x$coverage_flags" != x
     
    65617339diff -Naur gcc-4.8.1.orig/gcc/cp/call.c gcc-4.8.1/gcc/cp/call.c
    65627340--- gcc-4.8.1.orig/gcc/cp/call.c        2013-05-14 12:51:17.000000000 +0000
    6563 +++ gcc-4.8.1/gcc/cp/call.c     2013-09-13 19:01:43.036531967 +0000
     7341+++ gcc-4.8.1/gcc/cp/call.c     2013-10-01 16:06:43.952554286 +0000
    65647342@@ -6195,8 +6195,8 @@
    65657343   if (convs->check_narrowing)
     
    65847362diff -Naur gcc-4.8.1.orig/gcc/cp/class.c gcc-4.8.1/gcc/cp/class.c
    65857363--- gcc-4.8.1.orig/gcc/cp/class.c       2013-04-01 19:05:21.000000000 +0000
    6586 +++ gcc-4.8.1/gcc/cp/class.c    2013-09-13 19:01:43.039865292 +0000
     7364+++ gcc-4.8.1/gcc/cp/class.c    2013-10-01 16:06:43.952554286 +0000
    65877365@@ -4574,15 +4574,20 @@
    65887366 static void
     
    66547432    a DECL for the field or TYPE itself (DR 253).  */
    66557433 
     7434@@ -7465,7 +7508,7 @@
     7435      dependent on overload resolution.  */
     7436   gcc_assert (TREE_CODE (rhs) == ADDR_EXPR
     7437              || TREE_CODE (rhs) == COMPONENT_REF
     7438-             || really_overloaded_fn (rhs)
     7439+             || is_overloaded_fn (rhs)
     7440              || (flag_ms_extensions && TREE_CODE (rhs) == FUNCTION_DECL));
     7441 
     7442   /* This should really only be used when attempting to distinguish
    66567443diff -Naur gcc-4.8.1.orig/gcc/cp/cp-tree.h gcc-4.8.1/gcc/cp/cp-tree.h
    66577444--- gcc-4.8.1.orig/gcc/cp/cp-tree.h     2013-04-24 15:42:20.000000000 +0000
    6658 +++ gcc-4.8.1/gcc/cp/cp-tree.h  2013-09-13 19:01:43.043198616 +0000
     7445+++ gcc-4.8.1/gcc/cp/cp-tree.h  2013-10-01 16:06:43.956554286 +0000
    66597446@@ -1211,17 +1211,20 @@
    66607447 /* The _DECL for this _TYPE.  */
     
    67227509diff -Naur gcc-4.8.1.orig/gcc/cp/cvt.c gcc-4.8.1/gcc/cp/cvt.c
    67237510--- gcc-4.8.1.orig/gcc/cp/cvt.c 2013-02-20 09:02:35.000000000 +0000
    6724 +++ gcc-4.8.1/gcc/cp/cvt.c      2013-09-13 19:01:43.043198616 +0000
     7511+++ gcc-4.8.1/gcc/cp/cvt.c      2013-10-01 16:06:43.956554286 +0000
    67257512@@ -620,6 +620,9 @@
    67267513 
     
    67777564diff -Naur gcc-4.8.1.orig/gcc/cp/decl.c gcc-4.8.1/gcc/cp/decl.c
    67787565--- gcc-4.8.1.orig/gcc/cp/decl.c        2013-05-16 15:09:07.000000000 +0000
    6779 +++ gcc-4.8.1/gcc/cp/decl.c     2013-09-13 19:01:43.049865266 +0000
     7566+++ gcc-4.8.1/gcc/cp/decl.c     2013-10-01 16:06:43.956554286 +0000
    67807567@@ -10878,7 +10878,7 @@
    67817568    DECL, if there is no DECL available.  */
     
    68337620diff -Naur gcc-4.8.1.orig/gcc/cp/init.c gcc-4.8.1/gcc/cp/init.c
    68347621--- gcc-4.8.1.orig/gcc/cp/init.c        2013-04-25 16:25:04.000000000 +0000
    6835 +++ gcc-4.8.1/gcc/cp/init.c     2013-09-13 19:01:43.049865266 +0000
     7622+++ gcc-4.8.1/gcc/cp/init.c     2013-10-01 16:06:43.956554286 +0000
    68367623@@ -3524,6 +3524,8 @@
    68377624 
     
    68437630   else if (from_array)
    68447631     {
     7632@@ -4062,6 +4064,7 @@
     7633       tree cookie_addr;
     7634       tree size_ptr_type = build_pointer_type (sizetype);
     7635 
     7636+      base = mark_rvalue_use (base);
     7637       if (TREE_SIDE_EFFECTS (base))
     7638        {
     7639          base_init = get_target_expr (base);
    68457640diff -Naur gcc-4.8.1.orig/gcc/cp/method.c gcc-4.8.1/gcc/cp/method.c
    68467641--- gcc-4.8.1.orig/gcc/cp/method.c      2013-02-12 20:47:15.000000000 +0000
    6847 +++ gcc-4.8.1/gcc/cp/method.c   2013-09-13 19:01:43.053198590 +0000
     7642+++ gcc-4.8.1/gcc/cp/method.c   2013-10-01 16:06:43.956554286 +0000
    68487643@@ -1340,7 +1340,8 @@
    68497644       if (diag && assign_p && move_p
     
    68587653diff -Naur gcc-4.8.1.orig/gcc/cp/name-lookup.c gcc-4.8.1/gcc/cp/name-lookup.c
    68597654--- gcc-4.8.1.orig/gcc/cp/name-lookup.c 2013-02-27 18:13:24.000000000 +0000
    6860 +++ gcc-4.8.1/gcc/cp/name-lookup.c      2013-09-13 19:01:43.053198590 +0000
     7655+++ gcc-4.8.1/gcc/cp/name-lookup.c      2013-10-01 16:06:43.956554286 +0000
    68617656@@ -3015,8 +3015,10 @@
    68627657   if (name == error_mark_node)
     
    68747669diff -Naur gcc-4.8.1.orig/gcc/cp/parser.c gcc-4.8.1/gcc/cp/parser.c
    68757670--- gcc-4.8.1.orig/gcc/cp/parser.c      2013-05-14 20:37:48.000000000 +0000
    6876 +++ gcc-4.8.1/gcc/cp/parser.c   2013-09-13 19:01:43.063198564 +0000
     7671+++ gcc-4.8.1/gcc/cp/parser.c   2013-10-01 16:06:43.960554286 +0000
    68777672@@ -5438,11 +5438,18 @@
    68787673        /* Restore the old message.  */
     
    69307725diff -Naur gcc-4.8.1.orig/gcc/cp/pt.c gcc-4.8.1/gcc/cp/pt.c
    69317726--- gcc-4.8.1.orig/gcc/cp/pt.c  2013-05-24 13:25:44.000000000 +0000
    6932 +++ gcc-4.8.1/gcc/cp/pt.c       2013-09-13 19:01:43.069865213 +0000
     7727+++ gcc-4.8.1/gcc/cp/pt.c       2013-10-01 16:06:43.964554286 +0000
    69337728@@ -138,6 +138,7 @@
    69347729                                             tree);
     
    71947989     {
    71957990       if (TREE_CODE (expression) == ADDR_EXPR)
     7991@@ -20077,7 +20127,7 @@
     7992 any_type_dependent_elements_p (const_tree list)
     7993 {
     7994   for (; list; list = TREE_CHAIN (list))
     7995-    if (value_dependent_expression_p (TREE_VALUE (list)))
     7996+    if (type_dependent_expression_p (TREE_VALUE (list)))
     7997       return true;
     7998 
     7999   return false;
    71968000@@ -20626,7 +20676,7 @@
    71978001     = build_tree_list (NULL_TREE, TYPE_NAME (auto_node));
     
    72058009diff -Naur gcc-4.8.1.orig/gcc/cp/semantics.c gcc-4.8.1/gcc/cp/semantics.c
    72068010--- gcc-4.8.1.orig/gcc/cp/semantics.c   2013-05-14 12:51:17.000000000 +0000
    7207 +++ gcc-4.8.1/gcc/cp/semantics.c        2013-09-13 19:01:43.073198538 +0000
     8011+++ gcc-4.8.1/gcc/cp/semantics.c        2013-10-01 16:06:43.964554286 +0000
    72088012@@ -155,6 +155,17 @@
    72098013     }
     
    72968100diff -Naur gcc-4.8.1.orig/gcc/cp/tree.c gcc-4.8.1/gcc/cp/tree.c
    72978101--- gcc-4.8.1.orig/gcc/cp/tree.c        2013-05-24 13:25:51.000000000 +0000
    7298 +++ gcc-4.8.1/gcc/cp/tree.c     2013-09-13 19:01:43.073198538 +0000
     8102+++ gcc-4.8.1/gcc/cp/tree.c     2013-10-01 16:06:43.964554286 +0000
    72998103@@ -1220,6 +1220,8 @@
    73008104            result =
     
    73088112diff -Naur gcc-4.8.1.orig/gcc/cp/typeck.c gcc-4.8.1/gcc/cp/typeck.c
    73098113--- gcc-4.8.1.orig/gcc/cp/typeck.c      2013-05-13 19:34:15.000000000 +0000
    7310 +++ gcc-4.8.1/gcc/cp/typeck.c   2013-09-13 19:01:43.079865187 +0000
     8114+++ gcc-4.8.1/gcc/cp/typeck.c   2013-10-01 16:06:43.968554286 +0000
    73118115@@ -8307,7 +8307,8 @@
    73128116      && TREE_CODE (retval) == VAR_DECL
     
    73318135diff -Naur gcc-4.8.1.orig/gcc/cp/typeck2.c gcc-4.8.1/gcc/cp/typeck2.c
    73328136--- gcc-4.8.1.orig/gcc/cp/typeck2.c     2013-04-11 16:05:02.000000000 +0000
    7333 +++ gcc-4.8.1/gcc/cp/typeck2.c  2013-09-13 19:01:43.076531862 +0000
     8137+++ gcc-4.8.1/gcc/cp/typeck2.c  2013-10-01 16:06:43.964554286 +0000
    73348138@@ -262,7 +262,7 @@
    73358139      so that we can check again once it is completed. This makes sense
     
    73438147diff -Naur gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi gcc-4.8.1/gcc/doc/avr-mmcu.texi
    73448148--- gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi        2013-02-28 09:03:09.000000000 +0000
    7345 +++ gcc-4.8.1/gcc/doc/avr-mmcu.texi     2013-09-13 19:01:43.079865187 +0000
     8149+++ gcc-4.8.1/gcc/doc/avr-mmcu.texi     2013-10-01 16:06:43.968554286 +0000
    73468150@@ -38,7 +38,7 @@
    73478151 
     
    73558159diff -Naur gcc-4.8.1.orig/gcc/doc/cpp.texi gcc-4.8.1/gcc/doc/cpp.texi
    73568160--- gcc-4.8.1.orig/gcc/doc/cpp.texi     2013-01-10 20:38:27.000000000 +0000
    7357 +++ gcc-4.8.1/gcc/doc/cpp.texi  2013-09-13 19:01:43.083198511 +0000
     8161+++ gcc-4.8.1/gcc/doc/cpp.texi  2013-10-01 16:06:43.968554286 +0000
    73588162@@ -1926,11 +1926,9 @@
    73598163 This macro is defined when the C++ compiler is in use.  You can use
     
    73738177diff -Naur gcc-4.8.1.orig/gcc/doc/extend.texi gcc-4.8.1/gcc/doc/extend.texi
    73748178--- gcc-4.8.1.orig/gcc/doc/extend.texi  2013-03-28 14:07:55.000000000 +0000
    7375 +++ gcc-4.8.1/gcc/doc/extend.texi       2013-09-13 19:01:43.086531836 +0000
    7376 @@ -8786,6 +8786,7 @@
     8179+++ gcc-4.8.1/gcc/doc/extend.texi       2013-10-01 16:06:43.968554286 +0000
     8180@@ -7412,6 +7412,8 @@
     8181 the byte at @code{*@var{ptr}}.  The byte is set to some implementation
     8182 defined nonzero ``set'' value and the return value is @code{true} if and only
     8183 if the previous contents were ``set''.
     8184+It should be only used for operands of type @code{bool} or @code{char}. For
     8185+other types only part of the value may be set.
     8186 
     8187 All memory models are valid.
     8188 
     8189@@ -7421,6 +7423,10 @@
     8190 
     8191 This built-in function performs an atomic clear operation on
     8192 @code{*@var{ptr}}.  After the operation, @code{*@var{ptr}} contains 0.
     8193+It should be only used for operands of type @code{bool} or @code{char} and
     8194+in conjunction with @code{__atomic_test_and_set}.
     8195+For other types it may only clear partially. If the type is not @code{bool}
     8196+prefer using @code{__atomic_store}.
     8197 
     8198 The valid memory model variants are
     8199 @code{__ATOMIC_RELAXED}, @code{__ATOMIC_SEQ_CST}, and
     8200@@ -7492,18 +7498,20 @@
     8201 Memory model must be @code{__ATOMIC_RELEASE} or stronger.
     8202 @end table
     8203 
     8204-When a lock acquire fails it's required for good performance to abort
     8205+When a lock acquire fails it is required for good performance to abort
     8206 the transaction quickly. This can be done with a @code{_mm_pause}
     8207 
     8208 @smallexample
     8209 #include <immintrin.h> // For _mm_pause
     8210 
     8211+int lockvar;
     8212+
     8213 /* Acquire lock with lock elision */
     8214 while (__atomic_exchange_n(&lockvar, 1, __ATOMIC_ACQUIRE|__ATOMIC_HLE_ACQUIRE))
     8215     _mm_pause(); /* Abort failed transaction */
     8216 ...
     8217 /* Free lock with lock elision */
     8218-__atomic_clear(&lockvar, __ATOMIC_RELEASE|__ATOMIC_HLE_RELEASE);
     8219+__atomic_store_n(&lockvar, 0, __ATOMIC_RELEASE|__ATOMIC_HLE_RELEASE);
     8220 @end smallexample
     8221 
     8222 @node Object Size Checking
     8223@@ -8786,6 +8794,7 @@
    73778224 * PowerPC Built-in Functions::
    73788225 * PowerPC AltiVec/VSX Built-in Functions::
     
    73828229 * SPARC VIS Built-in Functions::
    73838230 * SPU Built-in Functions::
    7384 @@ -14026,6 +14027,120 @@
     8231@@ -14026,6 +14035,120 @@
    73858232 Generates the @code{wait} machine instruction.
    73868233 @end deftypefn
     
    75038350 @subsection SH Built-in Functions
    75048351 The following built-in functions are supported on the SH1, SH2, SH3 and SH4
     8352diff -Naur gcc-4.8.1.orig/gcc/doc/implement-cxx.texi gcc-4.8.1/gcc/doc/implement-cxx.texi
     8353--- gcc-4.8.1.orig/gcc/doc/implement-cxx.texi   2013-01-10 20:38:27.000000000 +0000
     8354+++ gcc-4.8.1/gcc/doc/implement-cxx.texi        2013-10-01 16:06:43.968554286 +0000
     8355@@ -9,8 +9,8 @@
     8356 A conforming implementation of ISO C++ is required to document its
     8357 choice of behavior in each of the areas that are designated
     8358 ``implementation defined''.  The following lists all such areas,
     8359-along with the section numbers from the ISO/IEC 14822:1998 and ISO/IEC
     8360-14822:2003 standards.  Some areas are only implementation-defined in
     8361+along with the section numbers from the ISO/IEC 14882:1998 and ISO/IEC
     8362+14882:2003 standards.  Some areas are only implementation-defined in
     8363 one version of the standard.
     8364 
     8365 Some choices depend on the externally determined ABI for the platform
    75058366diff -Naur gcc-4.8.1.orig/gcc/doc/invoke.texi gcc-4.8.1/gcc/doc/invoke.texi
    75068367--- gcc-4.8.1.orig/gcc/doc/invoke.texi  2013-03-29 13:41:29.000000000 +0000
    7507 +++ gcc-4.8.1/gcc/doc/invoke.texi       2013-09-13 19:01:43.093198485 +0000
     8368+++ gcc-4.8.1/gcc/doc/invoke.texi       2013-10-01 16:06:43.972554286 +0000
    75088369@@ -13726,8 +13726,13 @@
    75098370 SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction
     
    75218382 
    75228383 @item k6
     8384diff -Naur gcc-4.8.1.orig/gcc/explow.c gcc-4.8.1/gcc/explow.c
     8385--- gcc-4.8.1.orig/gcc/explow.c 2013-01-10 20:38:27.000000000 +0000
     8386+++ gcc-4.8.1/gcc/explow.c      2013-10-01 16:06:43.972554286 +0000
     8387@@ -106,10 +106,10 @@
     8388          if (overflow)
     8389            gcc_unreachable ();
     8390 
     8391-         return immed_double_int_const (v, VOIDmode);
     8392+         return immed_double_int_const (v, mode);
     8393        }
     8394 
     8395-      return GEN_INT (INTVAL (x) + c);
     8396+      return gen_int_mode (INTVAL (x) + c, mode);
     8397 
     8398     case CONST_DOUBLE:
     8399       {
     8400@@ -124,7 +124,7 @@
     8401             To fix, add constant support wider than CONST_DOUBLE.  */
     8402          gcc_assert (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_DOUBLE_INT);
     8403 
     8404-       return immed_double_int_const (v, VOIDmode);
     8405+       return immed_double_int_const (v, mode);
     8406       }
     8407 
     8408     case MEM:
     8409diff -Naur gcc-4.8.1.orig/gcc/expr.c gcc-4.8.1/gcc/expr.c
     8410--- gcc-4.8.1.orig/gcc/expr.c   2013-05-14 06:28:12.000000000 +0000
     8411+++ gcc-4.8.1/gcc/expr.c        2013-10-01 16:06:43.976554286 +0000
     8412@@ -119,7 +119,7 @@
     8413   int reverse;
     8414 };
     8415 
     8416-static void move_by_pieces_1 (rtx (*) (rtx, ...), enum machine_mode,
     8417+static void move_by_pieces_1 (insn_gen_fn, machine_mode,
     8418                              struct move_by_pieces_d *);
     8419 static bool block_move_libcall_safe_for_call_parm (void);
     8420 static bool emit_block_move_via_movmem (rtx, rtx, rtx, unsigned, unsigned, HOST_WIDE_INT);
     8421@@ -128,7 +128,7 @@
     8422 static rtx clear_by_pieces_1 (void *, HOST_WIDE_INT, enum machine_mode);
     8423 static void clear_by_pieces (rtx, unsigned HOST_WIDE_INT, unsigned int);
     8424 static void store_by_pieces_1 (struct store_by_pieces_d *, unsigned int);
     8425-static void store_by_pieces_2 (rtx (*) (rtx, ...), enum machine_mode,
     8426+static void store_by_pieces_2 (insn_gen_fn, machine_mode,
     8427                               struct store_by_pieces_d *);
     8428 static tree clear_storage_libcall_fn (int);
     8429 static rtx compress_float_constant (rtx, rtx);
     8430@@ -1043,7 +1043,7 @@
     8431    to make a move insn for that mode.  DATA has all the other info.  */
     8432 
     8433 static void
     8434-move_by_pieces_1 (rtx (*genfun) (rtx, ...), enum machine_mode mode,
     8435+move_by_pieces_1 (insn_gen_fn genfun, machine_mode mode,
     8436                  struct move_by_pieces_d *data)
     8437 {
     8438   unsigned int size = GET_MODE_SIZE (mode);
     8439@@ -2657,7 +2657,7 @@
     8440    to make a move insn for that mode.  DATA has all the other info.  */
     8441 
     8442 static void
     8443-store_by_pieces_2 (rtx (*genfun) (rtx, ...), enum machine_mode mode,
     8444+store_by_pieces_2 (insn_gen_fn genfun, machine_mode mode,
     8445                   struct store_by_pieces_d *data)
     8446 {
     8447   unsigned int size = GET_MODE_SIZE (mode);
    75238448diff -Naur gcc-4.8.1.orig/gcc/file-find.c gcc-4.8.1/gcc/file-find.c
    75248449--- gcc-4.8.1.orig/gcc/file-find.c      2013-01-10 20:38:27.000000000 +0000
    7525 +++ gcc-4.8.1/gcc/file-find.c   2013-09-13 19:01:43.093198485 +0000
     8450+++ gcc-4.8.1/gcc/file-find.c   2013-10-01 16:06:43.976554286 +0000
    75268451@@ -31,7 +31,7 @@
    75278452 }
     
    75718496diff -Naur gcc-4.8.1.orig/gcc/file-find.h gcc-4.8.1/gcc/file-find.h
    75728497--- gcc-4.8.1.orig/gcc/file-find.h      2013-01-10 20:38:27.000000000 +0000
    7573 +++ gcc-4.8.1/gcc/file-find.h   2013-09-13 19:01:43.096531810 +0000
     8498+++ gcc-4.8.1/gcc/file-find.h   2013-10-01 16:06:43.976554286 +0000
    75748499@@ -38,7 +38,7 @@
    75758500 };
     
    75818506 extern void prefix_from_env (const char *, struct path_prefix *);
    75828507 extern void prefix_from_string (const char *, struct path_prefix *);
     8508diff -Naur gcc-4.8.1.orig/gcc/fold-const.c gcc-4.8.1/gcc/fold-const.c
     8509--- gcc-4.8.1.orig/gcc/fold-const.c     2013-05-17 08:52:36.000000000 +0000
     8510+++ gcc-4.8.1/gcc/fold-const.c  2013-10-01 16:06:43.976554286 +0000
     8511@@ -469,11 +469,24 @@
     8512         and actually traps on some architectures.  But if overflow is
     8513         undefined, we can negate, because - (INT_MIN / 1) is an
     8514         overflow.  */
     8515-      if (INTEGRAL_TYPE_P (TREE_TYPE (t))
     8516-         && !TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (t)))
     8517-        break;
     8518-      return negate_expr_p (TREE_OPERAND (t, 1))
     8519-             || negate_expr_p (TREE_OPERAND (t, 0));
     8520+      if (INTEGRAL_TYPE_P (TREE_TYPE (t)))
     8521+       {
     8522+         if (!TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (t)))
     8523+           break;
     8524+         /* If overflow is undefined then we have to be careful because
     8525+            we ask whether it's ok to associate the negate with the
     8526+            division which is not ok for example for
     8527+            -((a - b) / c) where (-(a - b)) / c may invoke undefined
     8528+            overflow because of negating INT_MIN.  So do not use
     8529+            negate_expr_p here but open-code the two important cases.  */
     8530+         if (TREE_CODE (TREE_OPERAND (t, 0)) == NEGATE_EXPR
     8531+             || (TREE_CODE (TREE_OPERAND (t, 0)) == INTEGER_CST
     8532+                 && may_negate_without_overflow_p (TREE_OPERAND (t, 0))))
     8533+           return true;
     8534+       }
     8535+      else if (negate_expr_p (TREE_OPERAND (t, 0)))
     8536+       return true;
     8537+      return negate_expr_p (TREE_OPERAND (t, 1));
     8538 
     8539     case NOP_EXPR:
     8540       /* Negate -((double)float) as (double)(-float).  */
     8541@@ -653,16 +666,20 @@
     8542              return fold_build2_loc (loc, TREE_CODE (t), type,
     8543                                  TREE_OPERAND (t, 0), negate_expr (tem));
     8544            }
     8545+         /* If overflow is undefined then we have to be careful because
     8546+            we ask whether it's ok to associate the negate with the
     8547+            division which is not ok for example for
     8548+            -((a - b) / c) where (-(a - b)) / c may invoke undefined
     8549+            overflow because of negating INT_MIN.  So do not use
     8550+            negate_expr_p here but open-code the two important cases.  */
     8551           tem = TREE_OPERAND (t, 0);
     8552-          if (negate_expr_p (tem))
     8553-           {
     8554-             if (INTEGRAL_TYPE_P (type)
     8555-                 && (TREE_CODE (tem) != INTEGER_CST
     8556-                     || tree_int_cst_equal (tem, TYPE_MIN_VALUE (type))))
     8557-               fold_overflow_warning (warnmsg, WARN_STRICT_OVERFLOW_MISC);
     8558-             return fold_build2_loc (loc, TREE_CODE (t), type,
     8559-                                 negate_expr (tem), TREE_OPERAND (t, 1));
     8560-           }
     8561+         if ((INTEGRAL_TYPE_P (type)
     8562+              && (TREE_CODE (tem) == NEGATE_EXPR
     8563+                  || (TREE_CODE (tem) == INTEGER_CST
     8564+                      && may_negate_without_overflow_p (tem))))
     8565+             || !INTEGRAL_TYPE_P (type))
     8566+           return fold_build2_loc (loc, TREE_CODE (t), type,
     8567+                                   negate_expr (tem), TREE_OPERAND (t, 1));
     8568         }
     8569       break;
     8570 
     8571@@ -4220,7 +4237,7 @@
     8572     }
     8573 
     8574   if (low == 0 && high == 0)
     8575-    return build_int_cst (type, 1);
     8576+    return omit_one_operand_loc (loc, type, build_int_cst (type, 1), exp);
     8577 
     8578   if (low == 0)
     8579     return fold_build2_loc (loc, LE_EXPR, type, exp,
     8580@@ -9851,6 +9868,24 @@
     8581     }
     8582 }
     8583 
     8584+/*  Mask out the tz least significant bits of X of type TYPE where
     8585+    tz is the number of trailing zeroes in Y.  */
     8586+static double_int
     8587+mask_with_tz (tree type, double_int x, double_int y)
     8588+{
     8589+  int tz = y.trailing_zeros ();
     8590+
     8591+  if (tz > 0)
     8592+    {
     8593+      double_int mask;
     8594+
     8595+      mask = ~double_int::mask (tz);
     8596+      mask = mask.ext (TYPE_PRECISION (type), TYPE_UNSIGNED (type));
     8597+      return mask & x;
     8598+    }
     8599+  return x;
     8600+}
     8601+
     8602 /* Fold a binary expression of code CODE and type TYPE with operands
     8603    OP0 and OP1.  LOC is the location of the resulting expression.
     8604    Return the folded expression if folding is successful.  Otherwise,
     8605@@ -11175,6 +11210,8 @@
     8606        {
     8607          double_int c1, c2, c3, msk;
     8608          int width = TYPE_PRECISION (type), w;
     8609+         bool try_simplify = true;
     8610+
     8611          c1 = tree_to_double_int (TREE_OPERAND (arg0, 1));
     8612          c2 = tree_to_double_int (arg1);
     8613 
     8614@@ -11209,7 +11246,21 @@
     8615                  break;
     8616                }
     8617            }
     8618-         if (c3 != c1)
     8619+
     8620+         /* If X is a tree of the form (Y * K1) & K2, this might conflict
     8621+            with that optimization from the BIT_AND_EXPR optimizations.
     8622+            This could end up in an infinite recursion.  */
     8623+         if (TREE_CODE (TREE_OPERAND (arg0, 0)) == MULT_EXPR
     8624+             && TREE_CODE (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1))
     8625+                           == INTEGER_CST)
     8626+         {
     8627+           tree t = TREE_OPERAND (TREE_OPERAND (arg0, 0), 1);
     8628+           double_int masked = mask_with_tz (type, c3, tree_to_double_int (t));
     8629+
     8630+           try_simplify = (masked != c1);
     8631+         }
     8632+
     8633+         if (try_simplify && c3 != c1)
     8634            return fold_build2_loc (loc, BIT_IOR_EXPR, type,
     8635                                    fold_build2_loc (loc, BIT_AND_EXPR, type,
     8636                                                     TREE_OPERAND (arg0, 0),
     8637@@ -11599,22 +11650,16 @@
     8638          && TREE_CODE (arg0) == MULT_EXPR
     8639          && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
     8640        {
     8641-         int arg1tz
     8642-           = tree_to_double_int (TREE_OPERAND (arg0, 1)).trailing_zeros ();
     8643-         if (arg1tz > 0)
     8644-           {
     8645-             double_int arg1mask, masked;
     8646-             arg1mask = ~double_int::mask (arg1tz);
     8647-             arg1mask = arg1mask.ext (TYPE_PRECISION (type),
     8648-                                        TYPE_UNSIGNED (type));
     8649-             masked = arg1mask & tree_to_double_int (arg1);
     8650-             if (masked.is_zero ())
     8651-               return omit_two_operands_loc (loc, type, build_zero_cst (type),
     8652-                                             arg0, arg1);
     8653-             else if (masked != tree_to_double_int (arg1))
     8654-               return fold_build2_loc (loc, code, type, op0,
     8655-                                       double_int_to_tree (type, masked));
     8656-           }
     8657+         double_int masked
     8658+           = mask_with_tz (type, tree_to_double_int (arg1),
     8659+                           tree_to_double_int (TREE_OPERAND (arg0, 1)));
     8660+
     8661+         if (masked.is_zero ())
     8662+           return omit_two_operands_loc (loc, type, build_zero_cst (type),
     8663+                                         arg0, arg1);
     8664+         else if (masked != tree_to_double_int (arg1))
     8665+           return fold_build2_loc (loc, code, type, op0,
     8666+                                   double_int_to_tree (type, masked));
     8667        }
     8668 
     8669       /* For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M,
     8670@@ -14040,14 +14085,29 @@
     8671          && integer_zerop (op2)
     8672          && (tem = sign_bit_p (TREE_OPERAND (arg0, 0), arg1)))
     8673        {
     8674+         /* sign_bit_p looks through both zero and sign extensions,
     8675+            but for this optimization only sign extensions are
     8676+            usable.  */
     8677+         tree tem2 = TREE_OPERAND (arg0, 0);
     8678+         while (tem != tem2)
     8679+           {
     8680+             if (TREE_CODE (tem2) != NOP_EXPR
     8681+                 || TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (tem2, 0))))
     8682+               {
     8683+                 tem = NULL_TREE;
     8684+                 break;
     8685+               }
     8686+             tem2 = TREE_OPERAND (tem2, 0);
     8687+           }
     8688          /* sign_bit_p only checks ARG1 bits within A's precision.
     8689             If <sign bit of A> has wider type than A, bits outside
     8690             of A's precision in <sign bit of A> need to be checked.
     8691             If they are all 0, this optimization needs to be done
     8692             in unsigned A's type, if they are all 1 in signed A's type,
     8693             otherwise this can't be done.  */
     8694-         if (TYPE_PRECISION (TREE_TYPE (tem))
     8695-             < TYPE_PRECISION (TREE_TYPE (arg1))
     8696+         if (tem
     8697+             && TYPE_PRECISION (TREE_TYPE (tem))
     8698+                < TYPE_PRECISION (TREE_TYPE (arg1))
     8699              && TYPE_PRECISION (TREE_TYPE (tem))
     8700                 < TYPE_PRECISION (type))
     8701            {
    75838702diff -Naur gcc-4.8.1.orig/gcc/fortran/interface.c gcc-4.8.1/gcc/fortran/interface.c
    75848703--- gcc-4.8.1.orig/gcc/fortran/interface.c      2013-04-26 19:20:55.000000000 +0000
    7585 +++ gcc-4.8.1/gcc/fortran/interface.c   2013-09-13 19:01:43.096531810 +0000
     8704+++ gcc-4.8.1/gcc/fortran/interface.c   2013-10-01 16:06:43.976554286 +0000
    75868705@@ -1024,7 +1024,8 @@
    75878706                             bool type_must_agree, char *errmsg, int err_len)
     
    75968715diff -Naur gcc-4.8.1.orig/gcc/fortran/match.c gcc-4.8.1/gcc/fortran/match.c
    75978716--- gcc-4.8.1.orig/gcc/fortran/match.c  2013-04-18 18:20:22.000000000 +0000
    7598 +++ gcc-4.8.1/gcc/fortran/match.c       2013-09-13 19:01:43.099865134 +0000
     8717+++ gcc-4.8.1/gcc/fortran/match.c       2013-10-01 16:06:43.980554285 +0000
    75998718@@ -5142,7 +5142,6 @@
    76008719 {
     
    76748793diff -Naur gcc-4.8.1.orig/gcc/fortran/module.c gcc-4.8.1/gcc/fortran/module.c
    76758794--- gcc-4.8.1.orig/gcc/fortran/module.c 2013-01-29 21:40:51.000000000 +0000
    7676 +++ gcc-4.8.1/gcc/fortran/module.c      2013-09-13 19:01:43.099865134 +0000
     8795+++ gcc-4.8.1/gcc/fortran/module.c      2013-10-01 16:06:43.980554285 +0000
    76778796@@ -4465,7 +4465,7 @@
    76788797   module_locus locus;
     
    76868805diff -Naur gcc-4.8.1.orig/gcc/fortran/resolve.c gcc-4.8.1/gcc/fortran/resolve.c
    76878806--- gcc-4.8.1.orig/gcc/fortran/resolve.c        2013-05-07 16:36:48.000000000 +0000
    7688 +++ gcc-4.8.1/gcc/fortran/resolve.c     2013-09-13 19:01:43.103198459 +0000
     8807+++ gcc-4.8.1/gcc/fortran/resolve.c     2013-10-01 16:06:43.980554285 +0000
    76898808@@ -9746,6 +9746,10 @@
    76908809 
     
    77088827diff -Naur gcc-4.8.1.orig/gcc/fortran/simplify.c gcc-4.8.1/gcc/fortran/simplify.c
    77098828--- gcc-4.8.1.orig/gcc/fortran/simplify.c       2013-05-07 16:36:48.000000000 +0000
    7710 +++ gcc-4.8.1/gcc/fortran/simplify.c    2013-09-13 19:01:43.106531784 +0000
     8829+++ gcc-4.8.1/gcc/fortran/simplify.c    2013-10-01 16:06:43.980554285 +0000
    77118830@@ -332,13 +332,15 @@
    77128831 }
     
    77638882diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-array.c gcc-4.8.1/gcc/fortran/trans-array.c
    77648883--- gcc-4.8.1.orig/gcc/fortran/trans-array.c    2013-02-21 12:26:44.000000000 +0000
    7765 +++ gcc-4.8.1/gcc/fortran/trans-array.c 2013-09-13 19:01:43.109865108 +0000
     8884+++ gcc-4.8.1/gcc/fortran/trans-array.c 2013-10-01 16:06:43.984554285 +0000
    77668885@@ -3674,7 +3674,7 @@
    77678886 /* Calculate the lower bound of an array section.  */
     
    79009019diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c gcc-4.8.1/gcc/fortran/trans-intrinsic.c
    79019020--- gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c        2013-03-15 10:09:39.000000000 +0000
    7902 +++ gcc-4.8.1/gcc/fortran/trans-intrinsic.c     2013-09-13 19:01:43.113198433 +0000
     9021+++ gcc-4.8.1/gcc/fortran/trans-intrinsic.c     2013-10-01 16:06:43.984554285 +0000
    79039022@@ -5653,8 +5653,7 @@
    79049023 
     
    79279046diff -Naur gcc-4.8.1.orig/gcc/gcc-ar.c gcc-4.8.1/gcc/gcc-ar.c
    79289047--- gcc-4.8.1.orig/gcc/gcc-ar.c 2013-01-10 20:38:27.000000000 +0000
    7929 +++ gcc-4.8.1/gcc/gcc-ar.c      2013-09-13 19:01:43.113198433 +0000
     9048+++ gcc-4.8.1/gcc/gcc-ar.c      2013-10-01 16:06:43.984554285 +0000
    79309049@@ -136,7 +136,7 @@
    79319050   setup_prefixes (av[0]);
     
    79689087 
    79699088   /* Create new command line with plugin */
     9089diff -Naur gcc-4.8.1.orig/gcc/genoutput.c gcc-4.8.1/gcc/genoutput.c
     9090--- gcc-4.8.1.orig/gcc/genoutput.c      2013-01-10 20:38:27.000000000 +0000
     9091+++ gcc-4.8.1/gcc/genoutput.c   2013-10-01 16:06:43.984554285 +0000
     9092@@ -404,9 +404,9 @@
     9093        }
     9094 
     9095       if (d->name && d->name[0] != '*')
     9096-       printf ("    (insn_gen_fn) gen_%s,\n", d->name);
     9097+       printf ("    { (insn_gen_fn::stored_funcptr) gen_%s },\n", d->name);
     9098       else
     9099-       printf ("    0,\n");
     9100+       printf ("    { 0 },\n");
     9101 
     9102       printf ("    &operand_data[%d],\n", d->operand_number);
     9103       printf ("    %d,\n", d->n_generator_args);
    79709104diff -Naur gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c
    79719105--- gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c  2013-04-15 15:00:06.000000000 +0000
    7972 +++ gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c       2013-09-13 19:01:43.116531757 +0000
     9106+++ gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c       2013-10-01 16:06:43.984554285 +0000
    79739107@@ -1525,11 +1525,23 @@
    79749108 static void
     
    80029136diff -Naur gcc-4.8.1.orig/gcc/gimple.c gcc-4.8.1/gcc/gimple.c
    80039137--- gcc-4.8.1.orig/gcc/gimple.c 2013-01-10 20:38:27.000000000 +0000
    8004 +++ gcc-4.8.1/gcc/gimple.c      2013-09-13 19:01:43.113198433 +0000
     9138+++ gcc-4.8.1/gcc/gimple.c      2013-10-01 16:06:43.984554285 +0000
    80059139@@ -4045,6 +4045,13 @@
    80069140            ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data);
     
    80199153diff -Naur gcc-4.8.1.orig/gcc/go/go-gcc.cc gcc-4.8.1/gcc/go/go-gcc.cc
    80209154--- gcc-4.8.1.orig/gcc/go/go-gcc.cc     2013-01-10 20:38:27.000000000 +0000
    8021 +++ gcc-4.8.1/gcc/go/go-gcc.cc  2013-09-13 19:01:43.166531626 +0000
    8022 @@ -287,10 +287,10 @@
     9155+++ gcc-4.8.1/gcc/go/go-gcc.cc  2013-10-01 16:06:43.992554285 +0000
     9156@@ -208,6 +208,16 @@
     9157   Bexpression*
     9158   zero_expression(Btype*);
     9159 
     9160+  Bexpression*
     9161+  error_expression()
     9162+  { return this->make_expression(error_mark_node); }
     9163+
     9164+  Bexpression*
     9165+  var_expression(Bvariable* var, Location);
     9166+
     9167+  Bexpression*
     9168+  indirect_expression(Bexpression* expr, bool known_valid, Location);
     9169+
     9170   // Statements.
     9171 
     9172   Bstatement*
     9173@@ -287,10 +297,10 @@
    80239174                     Location, Bstatement**);
    80249175 
     
    80339184 
    80349185   Bvariable*
    8035 @@ -1242,20 +1242,41 @@
     9186@@ -848,6 +858,30 @@
     9187   return tree_to_expr(ret);
     9188 }
     9189 
     9190+// An expression that references a variable.
     9191+
     9192+Bexpression*
     9193+Gcc_backend::var_expression(Bvariable* var, Location)
     9194+{
     9195+  tree ret = var->get_tree();
     9196+  if (ret == error_mark_node)
     9197+    return this->error_expression();
     9198+  return tree_to_expr(ret);
     9199+}
     9200+
     9201+// An expression that indirectly references an expression.
     9202+
     9203+Bexpression*
     9204+Gcc_backend::indirect_expression(Bexpression* expr, bool known_valid,
     9205+                                 Location location)
     9206+{
     9207+  tree ret = build_fold_indirect_ref_loc(location.gcc_location(),
     9208+                                         expr->get_tree());
     9209+  if (known_valid)
     9210+    TREE_THIS_NOTRAP(ret) = 1;
     9211+  return tree_to_expr(ret);
     9212+}
     9213+
     9214 // An expression as a statement.
     9215 
     9216 Bstatement*
     9217@@ -1242,20 +1276,41 @@
    80369218   switch (TREE_CODE(type))
    80379219     {
     
    80899271     case ARRAY_TYPE:
    80909272       {
    8091 @@ -1454,8 +1475,8 @@
     9273@@ -1454,8 +1509,8 @@
    80929274 // Create a named immutable initialized data structure.
    80939275 
     
    80959277-Gcc_backend::immutable_struct(const std::string& name, bool, Btype* btype,
    80969278-                             Location location)
    8097 +Gcc_backend::immutable_struct(const std::string& name, bool, bool,
    8098 +                             Btype* btype, Location location)
     9279+Gcc_backend::immutable_struct(const std::string& name, bool is_hidden,
     9280+                             bool, Btype* btype, Location location)
    80999281 {
    81009282   tree type_tree = btype->get_tree();
    81019283   if (type_tree == error_mark_node)
    8102 @@ -1482,7 +1503,7 @@
     9284@@ -1469,6 +1524,8 @@
     9285   TREE_CONSTANT(decl) = 1;
     9286   TREE_USED(decl) = 1;
     9287   DECL_ARTIFICIAL(decl) = 1;
     9288+  if (!is_hidden)
     9289+    TREE_PUBLIC(decl) = 1;
     9290 
     9291   // We don't call rest_of_decl_compilation until we have the
     9292   // initializer.
     9293@@ -1482,8 +1539,7 @@
    81039294 
    81049295 void
    81059296 Gcc_backend::immutable_struct_set_init(Bvariable* var, const std::string&,
    81069297-                                      bool is_common, Btype*,
    8107 +                                      bool is_hidden, bool is_common, Btype*,
    8108                                       Location,
     9298-                                      Location,
     9299+                                      bool, bool is_common, Btype*, Location,
    81099300                                       Bexpression* initializer)
    81109301 {
    8111 @@ -1495,12 +1516,18 @@
     9302   tree decl = var->get_tree();
     9303@@ -1494,13 +1550,14 @@
     9304   DECL_INITIAL(decl) = init_tree;
    81129305 
    81139306   // We can't call make_decl_one_only until we set DECL_INITIAL.
    8114    if (!is_common)
     9307-  if (!is_common)
    81159308-    TREE_PUBLIC(decl) = 1;
    81169309-  else
    8117      {
     9310-    {
    81189311-      make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl));
    81199312-      resolve_unique_section(decl, 1, 0);
    8120 +      if (!is_hidden)
    8121 +       TREE_PUBLIC(decl) = 1;
    8122      }
    8123 +  else
     9313-    }
     9314+  if (is_common)
    81249315+    make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl));
    81259316+
     
    81349325diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/backend.h gcc-4.8.1/gcc/go/gofrontend/backend.h
    81359326--- gcc-4.8.1.orig/gcc/go/gofrontend/backend.h  2012-11-29 18:11:17.000000000 +0000
    8136 +++ gcc-4.8.1/gcc/go/gofrontend/backend.h       2013-09-13 19:01:43.116531757 +0000
     9327+++ gcc-4.8.1/gcc/go/gofrontend/backend.h       2013-10-01 16:06:43.984554285 +0000
    81379328@@ -95,7 +95,10 @@
    81389329 
     
    81479338   function_type(const Btyped_identifier& receiver,
    81489339                const std::vector<Btyped_identifier>& parameters,
    8149 @@ -388,18 +391,22 @@
     9340@@ -228,6 +231,22 @@
     9341   virtual Bexpression*
     9342   zero_expression(Btype*) = 0;
     9343 
     9344+  // Create an error expression. This is used for cases which should
     9345+  // not occur in a correct program, in order to keep the compilation
     9346+  // going without crashing.
     9347+  virtual Bexpression*
     9348+  error_expression() = 0;
     9349+
     9350+  // Create a reference to a variable.
     9351+  virtual Bexpression*
     9352+  var_expression(Bvariable* var, Location) = 0;
     9353+
     9354+  // Create an expression that indirects through the pointer expression EXPR
     9355+  // (i.e., return the expression for *EXPR). KNOWN_VALID is true if the pointer
     9356+  // is known to point to a valid memory location.
     9357+  virtual Bexpression*
     9358+  indirect_expression(Bexpression* expr, bool known_valid, Location) = 0;
     9359+
     9360   // Statements.
     9361 
     9362   // Create an error statement.  This is used for cases which should
     9363@@ -388,18 +407,22 @@
    81509364                     Bstatement** pstatement) = 0;
    81519365 
     
    81749388   // TYPE will be a struct type; the type of the returned expression
    81759389   // must be a pointer to this struct type.
    8176 @@ -409,20 +416,20 @@
     9390@@ -409,20 +432,20 @@
    81779391   // address.  After calling this the frontend will call
    81789392   // immutable_struct_set_init.
     
    82069420diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc gcc-4.8.1/gcc/go/gofrontend/expressions.cc
    82079421--- gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc     2012-12-21 15:59:27.000000000 +0000
    8208 +++ gcc-4.8.1/gcc/go/gofrontend/expressions.cc  2013-09-13 19:01:43.119865082 +0000
    8209 @@ -1090,6 +1090,15 @@
     9422+++ gcc-4.8.1/gcc/go/gofrontend/expressions.cc  2013-10-01 16:06:43.988554285 +0000
     9423@@ -978,22 +978,19 @@
     9424 {
     9425   Bvariable* bvar = this->variable_->get_backend_variable(context->gogo(),
     9426                                                          context->function());
     9427-  tree ret = var_to_tree(bvar);
     9428-  if (ret == error_mark_node)
     9429-    return error_mark_node;
     9430   bool is_in_heap;
     9431+  Location loc = this->location();
     9432   if (this->variable_->is_variable())
     9433     is_in_heap = this->variable_->var_value()->is_in_heap();
     9434   else if (this->variable_->is_result_variable())
     9435     is_in_heap = this->variable_->result_var_value()->is_in_heap();
     9436   else
     9437     go_unreachable();
     9438+
     9439+  Bexpression* ret = context->backend()->var_expression(bvar, loc);
     9440   if (is_in_heap)
     9441-    {
     9442-      ret = build_fold_indirect_ref_loc(this->location().gcc_location(), ret);
     9443-      TREE_THIS_NOTRAP(ret) = 1;
     9444-    }
     9445-  return ret;
     9446+    ret = context->backend()->indirect_expression(ret, true, loc);
     9447+  return expr_to_tree(ret);
     9448 }
     9449 
     9450 // Ast dump for variable expression.
     9451@@ -1090,6 +1087,15 @@
    82109452   return this->statement_->type();
    82119453 }
     
    82239465 
    82249466 void
    8225 @@ -1255,17 +1264,16 @@
     9467@@ -1255,17 +1261,16 @@
    82269468     go_unreachable();
    82279469 }
     
    82479489     go_unreachable();
    82489490 
    8249 @@ -1273,14 +1281,12 @@
     9491@@ -1273,14 +1278,12 @@
    82509492   // can't take their address.
    82519493   if (fntype->is_builtin())
     
    82649506   if (id == error_mark_node)
    82659507     return error_mark_node;
    8266 @@ -1296,46 +1302,55 @@
     9508@@ -1296,46 +1299,55 @@
    82679509   if (fndecl == error_mark_node)
    82689510     return error_mark_node;
     
    83499591 
    83509592 // Ast dump for function.
    8351 @@ -1361,6 +1376,197 @@
     9593@@ -1361,6 +1373,181 @@
    83529594   return new Func_expression(function, closure, location);
    83539595 }
     
    83599601+Func_descriptor_expression::Func_descriptor_expression(Named_object* fn)
    83609602+  : Expression(EXPRESSION_FUNC_DESCRIPTOR, fn->location()),
    8361 +    fn_(fn), dfn_(NULL), dvar_(NULL)
     9603+    fn_(fn), dvar_(NULL)
    83629604+{
    83639605+  go_assert(!fn->is_function() || !fn->func_value()->needs_closure());
     
    83949636+}
    83959637+
    8396 +// Copy a Func_descriptor_expression;
    8397 +
    8398 +Expression*
    8399 +Func_descriptor_expression::do_copy()
    8400 +{
    8401 +  Func_descriptor_expression* fde =
    8402 +    Expression::make_func_descriptor(this->fn_);
    8403 +  if (this->dfn_ != NULL)
    8404 +    fde->set_descriptor_wrapper(this->dfn_);
    8405 +  return fde;
    8406 +}
    8407 +
    84089638+// The tree for a function descriptor.
    84099639+
     
    84329662+  if (no->package() != NULL
    84339663+      || Linemap::is_predeclared_location(no->location()))
    8434 +    {
    8435 +      bvar = context->backend()->immutable_struct_reference(var_name, btype,
    8436 +                                                           loc);
    8437 +      go_assert(this->dfn_ == NULL);
    8438 +    }
     9664+    bvar = context->backend()->immutable_struct_reference(var_name, btype,
     9665+                                                         loc);
    84399666+  else
    84409667+    {
     
    84469673+                                                 btype, bloc);
    84479674+      Expression_list* vals = new Expression_list();
    8448 +      go_assert(this->dfn_ != NULL);
    8449 +      vals->push_back(Expression::make_func_code_reference(this->dfn_, bloc));
     9675+      vals->push_back(Expression::make_func_code_reference(this->fn_, bloc));
    84509676+      Expression* init =
    84519677+       Expression::make_struct_composite_literal(this->type(), vals, bloc);
     
    85479773 
    85489774 // Return the name of an unknown expression.
    8549 @@ -5462,6 +5668,7 @@
     9775@@ -5462,6 +5649,7 @@
    85509776       if (tleft->is_abstract()
    85519777          && subcontext.type != NULL
     
    85559781        this->report_error(("invalid context-determined non-integer type "
    85569782                            "for left operand of shift"));
    8557 @@ -5641,6 +5848,20 @@
     9783@@ -5641,6 +5829,20 @@
    85589784          this->set_is_error();
    85599785          return;
     
    85769802   else
    85779803     {
    8578 @@ -6429,20 +6650,49 @@
     9804@@ -6429,20 +6631,49 @@
    85799805   return Expression::traverse(&this->expr_, traverse);
    85809806 }
     
    86339859 
    86349860 // Determine the types of a method expression.
    8635 @@ -6450,7 +6700,14 @@
     9861@@ -6450,7 +6681,14 @@
    86369862 void
    86379863 Bound_method_expression::do_determine_type(const Type_context*)
     
    86499875     this->expr_->determine_type_no_context();
    86509876   else
    8651 @@ -6465,31 +6722,278 @@
     9877@@ -6465,31 +6703,278 @@
    86529878 void
    86539879 Bound_method_expression::do_check_types(Gogo*)
     
    86689894+  else if (fn->is_function_declaration())
    86699895+    fntype = fn->func_declaration_value()->type();
    8670    else
     9896+  else
    86719897+    go_unreachable();
    86729898+  Type* rtype = fntype->receiver()->type()->deref();
     
    87039929+    Bound_method_expression::method_value_thunks.insert(val);
    87049930+  if (!ins.second)
     9931+    {
     9932+      // We have seen this method before.
     9933+      go_assert(ins.first->second != NULL);
     9934+      return ins.first->second;
     9935+    }
     9936+
     9937+  Location loc = fn->location();
     9938+
     9939+  Function_type* orig_fntype;
     9940+  if (fn->is_function())
     9941+    orig_fntype = fn->func_value()->type();
     9942+  else if (fn->is_function_declaration())
     9943+    orig_fntype = fn->func_declaration_value()->type();
     9944+  else
     9945+    orig_fntype = NULL;
     9946+
     9947+  if (orig_fntype == NULL || !orig_fntype->is_method())
     9948+    {
     9949+      ins.first->second = Named_object::make_erroneous_name(Gogo::thunk_name());
     9950+      return ins.first->second;
     9951+    }
     9952+
     9953+  Struct_field_list* sfl = new Struct_field_list();
     9954+  // The type here is wrong--it should be the C function type.  But it
     9955+  // doesn't really matter.
     9956+  Type* vt = Type::make_pointer_type(Type::make_void_type());
     9957+  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
     9958+  sfl->push_back(Struct_field(Typed_identifier("val.1",
     9959+                                              orig_fntype->receiver()->type(),
     9960+                                              loc)));
     9961+  Type* closure_type = Type::make_struct_type(sfl, loc);
     9962+  closure_type = Type::make_pointer_type(closure_type);
     9963+
     9964+  Function_type* new_fntype = orig_fntype->copy_with_names();
     9965+
     9966+  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
     9967+                                             false, loc);
     9968+
     9969+  Variable* cvar = new Variable(closure_type, NULL, false, false, false, loc);
     9970+  cvar->set_is_used();
     9971+  Named_object* cp = Named_object::make_variable("$closure", NULL, cvar);
     9972+  new_no->func_value()->set_closure_var(cp);
     9973+
     9974+  gogo->start_block(loc);
     9975+
     9976+  // Field 0 of the closure is the function code pointer, field 1 is
     9977+  // the value on which to invoke the method.
     9978+  Expression* arg = Expression::make_var_reference(cp, loc);
     9979+  arg = Expression::make_unary(OPERATOR_MULT, arg, loc);
     9980+  arg = Expression::make_field_reference(arg, 1, loc);
     9981+
     9982+  Expression* bme = Expression::make_bound_method(arg, method, fn, loc);
     9983+
     9984+  const Typed_identifier_list* orig_params = orig_fntype->parameters();
     9985+  Expression_list* args;
     9986+  if (orig_params == NULL || orig_params->empty())
     9987+    args = NULL;
     9988   else
    87059989     {
    87069990-      Type* rtype = this->type()->function_type()->receiver()->type()->deref();
     
    87119995-      if (!Type::are_identical(rtype, etype, true, NULL))
    87129996-       this->report_error(_("method type does not match object type"));
    8713 +      // We have seen this method before.
    8714 +      go_assert(ins.first->second != NULL);
    8715 +      return ins.first->second;
    8716      }
    8717 +
    8718 +  Location loc = fn->location();
    8719 +
    8720 +  Function_type* orig_fntype;
    8721 +  if (fn->is_function())
    8722 +    orig_fntype = fn->func_value()->type();
    8723 +  else if (fn->is_function_declaration())
    8724 +    orig_fntype = fn->func_declaration_value()->type();
    8725 +  else
    8726 +    orig_fntype = NULL;
    8727 +
    8728 +  if (orig_fntype == NULL || !orig_fntype->is_method())
    8729 +    {
    8730 +      ins.first->second = Named_object::make_erroneous_name(Gogo::thunk_name());
    8731 +      return ins.first->second;
    8732 +    }
    8733 +
    8734 +  Struct_field_list* sfl = new Struct_field_list();
    8735 +  // The type here is wrong--it should be new_fntype.  But we don't
    8736 +  // have new_fntype yet, and it doesn't really matter.
    8737 +  Type* vt = Type::make_pointer_type(Type::make_void_type());
    8738 +  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
    8739 +  sfl->push_back(Struct_field(Typed_identifier("val.1",
    8740 +                                              orig_fntype->receiver()->type(),
    8741 +                                              loc)));
    8742 +  Type* closure_type = Type::make_struct_type(sfl, loc);
    8743 +  closure_type = Type::make_pointer_type(closure_type);
    8744 +
    8745 +  Function_type* new_fntype = orig_fntype->copy_with_closure(closure_type);
    8746 +
    8747 +  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
    8748 +                                             false, loc);
    8749 +
    8750 +  gogo->start_block(loc);
    8751 +
    8752 +  Named_object* cp = gogo->lookup("closure.0", NULL);
    8753 +  go_assert(cp != NULL
    8754 +           && cp->is_variable()
    8755 +           && cp->var_value()->is_parameter());
    8756 +
    8757 +  // Field 0 of the closure is the function code pointer, field 1 is
    8758 +  // the value on which to invoke the method.
    8759 +  Expression* arg = Expression::make_var_reference(cp, loc);
    8760 +  arg = Expression::make_unary(OPERATOR_MULT, arg, loc);
    8761 +  arg = Expression::make_field_reference(arg, 1, loc);
    8762 +
    8763 +  Expression* bme = Expression::make_bound_method(arg, method, fn, loc);
    8764 +
    8765 +  const Typed_identifier_list* orig_params = orig_fntype->parameters();
    8766 +  Expression_list* args;
    8767 +  if (orig_params == NULL || orig_params->empty())
    8768 +    args = NULL;
    8769 +  else
    8770 +    {
    87719997+      const Typed_identifier_list* new_params = new_fntype->parameters();
    87729998+      args = new Expression_list();
    87739999+      for (Typed_identifier_list::const_iterator p = new_params->begin();
    8774 +          p + 1 != new_params->end();
     10000+          p != new_params->end();
    877510001+          ++p)
    877610002+       {
     
    878110007+         args->push_back(Expression::make_var_reference(p_no, loc));
    878210008+       }
    8783 +    }
     10009     }
    878410010+
    878510011+  Call_expression* call = Expression::make_call(bme, args,
     
    894510171 
    894610172 // Dump ast representation of a bound method expression.
    8947 @@ -6508,16 +7012,16 @@
     10173@@ -6508,16 +6993,16 @@
    894810174       ast_dump_context->ostream() << ")";
    894910175     }
     
    896610192 
    896710193 // Class Builtin_call_expression.  This is used for a call to a
    8968 @@ -6722,6 +7226,26 @@
     10194@@ -6722,6 +7207,26 @@
    896910195       return Expression::make_error(loc);
    897010196     }
     
    899310219     {
    899410220       Numeric_constant nc;
    8995 @@ -6874,6 +7398,8 @@
     10221@@ -6874,6 +7379,8 @@
    899610222   Type* uintptr_type = Type::lookup_integer_type("uintptr");
    899710223   int uintptr_bits = uintptr_type->integer_type()->bits();
     
    900210228   Expression* len_arg;
    900310229   if (parg == args->end())
    9004 @@ -6892,6 +7418,7 @@
     10230@@ -6892,6 +7399,7 @@
    900510231   else
    900610232     {
     
    901010236        return Expression::make_error(this->location());
    901110237       if (len_arg->type()->integer_type() != NULL
    9012 @@ -6904,6 +7431,7 @@
     10238@@ -6904,6 +7412,7 @@
    901310239   if (is_slice && parg != args->end())
    901410240     {
     
    901810244        return Expression::make_error(this->location());
    901910245 
    9020 @@ -7279,19 +7807,31 @@
     10246@@ -7240,8 +7749,6 @@
     10247        return false;
     10248       if (arg_type->is_abstract())
     10249        return false;
     10250-      if (arg_type->named_type() != NULL)
     10251-       arg_type->named_type()->convert(this->gogo_);
     10252 
     10253       unsigned int ret;
     10254       if (this->code_ == BUILTIN_SIZEOF)
     10255@@ -7279,19 +7786,31 @@
    902110256       Field_reference_expression* farg = arg->field_reference_expression();
    902210257       if (farg == NULL)
     
    906210297     }
    906310298   else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
    9064 @@ -7509,6 +8049,8 @@
     10299@@ -7509,6 +8028,8 @@
    906510300     case BUILTIN_REAL:
    906610301     case BUILTIN_IMAG:
     
    907110306       break;
    907210307 
    9073 @@ -7517,6 +8059,8 @@
     10308@@ -7517,6 +8038,8 @@
    907410309        // For the complex function the type of one operand can
    907510310        // determine the type of the other, as in a binary expression.
     
    908010315          {
    908110316            Type* t1 = args->front()->type();
    9082 @@ -8509,6 +9053,74 @@
     10317@@ -8509,6 +9032,74 @@
    908310318 
    908410319 // Class Call_expression.
     
    915510390 
    915610391 int
    9157 @@ -8624,7 +9236,7 @@
     10392@@ -8542,35 +9133,27 @@
     10393   // Because do_type will return an error type and thus prevent future
     10394   // errors, check for that case now to ensure that the error gets
     10395   // reported.
     10396-  if (this->get_function_type() == NULL)
     10397+  Function_type* fntype = this->get_function_type();
     10398+  if (fntype == NULL)
     10399     {
     10400       if (!this->fn_->type()->is_error())
     10401        this->report_error(_("expected function"));
     10402       return Expression::make_error(loc);
     10403     }
     10404 
     10405-  // Recognize a call to a builtin function.
     10406-  Func_expression* fne = this->fn_->func_expression();
     10407-  if (fne != NULL
     10408-      && fne->named_object()->is_function_declaration()
     10409-      && fne->named_object()->func_declaration_value()->type()->is_builtin())
     10410-    return new Builtin_call_expression(gogo, this->fn_, this->args_,
     10411-                                      this->is_varargs_, loc);
     10412-
     10413   // Handle an argument which is a call to a function which returns
     10414   // multiple results.
     10415   if (this->args_ != NULL
     10416       && this->args_->size() == 1
     10417-      && this->args_->front()->call_expression() != NULL
     10418-      && this->fn_->type()->function_type() != NULL)
     10419+      && this->args_->front()->call_expression() != NULL)
     10420     {
     10421-      Function_type* fntype = this->fn_->type()->function_type();
     10422       size_t rc = this->args_->front()->call_expression()->result_count();
     10423       if (rc > 1
     10424-         && fntype->parameters() != NULL
     10425-         && (fntype->parameters()->size() == rc
     10426-             || (fntype->is_varargs()
     10427-                 && fntype->parameters()->size() - 1 <= rc)))
     10428+         && ((fntype->parameters() != NULL
     10429+               && (fntype->parameters()->size() == rc
     10430+                   || (fntype->is_varargs()
     10431+                       && fntype->parameters()->size() - 1 <= rc)))
     10432+              || fntype->is_builtin()))
     10433        {
     10434          Call_expression* call = this->args_->front()->call_expression();
     10435          Expression_list* args = new Expression_list;
     10436@@ -8584,6 +9167,11 @@
     10437        }
     10438     }
     10439 
     10440+  // Recognize a call to a builtin function.
     10441+  if (fntype->is_builtin())
     10442+    return new Builtin_call_expression(gogo, this->fn_, this->args_,
     10443+                                      this->is_varargs_, loc);
     10444+
     10445   // If this call returns multiple results, create a temporary
     10446   // variable for each result.
     10447   size_t rc = this->result_count();
     10448@@ -8592,8 +9180,7 @@
     10449       std::vector<Temporary_statement*>* temps =
     10450        new std::vector<Temporary_statement*>;
     10451       temps->reserve(rc);
     10452-      const Typed_identifier_list* results =
     10453-       this->fn_->type()->function_type()->results();
     10454+      const Typed_identifier_list* results = fntype->results();
     10455       for (Typed_identifier_list::const_iterator p = results->begin();
     10456           p != results->end();
     10457           ++p)
     10458@@ -8608,10 +9195,8 @@
     10459 
     10460   // Handle a call to a varargs function by packaging up the extra
     10461   // parameters.
     10462-  if (this->fn_->type()->function_type() != NULL
     10463-      && this->fn_->type()->function_type()->is_varargs())
     10464+  if (fntype->is_varargs())
     10465     {
     10466-      Function_type* fntype = this->fn_->type()->function_type();
     10467       const Typed_identifier_list* parameters = fntype->parameters();
     10468       go_assert(parameters != NULL && !parameters->empty());
     10469       Type* varargs_type = parameters->back().type();
     10470@@ -8624,7 +9209,7 @@
    915810471   Bound_method_expression* bme = this->fn_->bound_method_expression();
    915910472   if (bme != NULL)
     
    916410477 
    916510478       // We always pass a pointer when calling a method.
    9166 @@ -8665,7 +9277,7 @@
     10479@@ -8665,7 +9250,7 @@
    916710480       // old arguments, because we may be traversing them up in some
    916810481       // caller.  FIXME.
     
    917310486     }
    917410487 
    9175 @@ -9117,11 +9729,21 @@
     10488@@ -9117,6 +9702,16 @@
    917610489   const bool has_closure = func != NULL && func->closure() != NULL;
    917710490   const bool is_interface_method = interface_method != NULL;
    917810491 
    9179 int closure_arg;
     10492bool has_closure_arg;
    918010493+  if (has_closure)
    9181 +    closure_arg = 1;
     10494+    has_closure_arg = true;
    918210495+  else if (func != NULL)
    9183 +    closure_arg = 0;
     10496+    has_closure_arg = false;
    918410497+  else if (is_interface_method)
    9185 +    closure_arg = 0;
     10498+    has_closure_arg = false;
    918610499+  else
    9187 +    closure_arg = 1;
     10500+    has_closure_arg = true;
    918810501+
    918910502   int nargs;
    919010503   tree* args;
    919110504   if (this->args_ == NULL || this->args_->empty())
    9192      {
    9193 -      nargs = is_interface_method ? 1 : 0;
    9194 +      nargs = (is_interface_method ? 1 : 0) + closure_arg;
    9195        args = nargs == 0 ? NULL : new tree[nargs];
    9196      }
    9197    else if (fntype->parameters() == NULL || fntype->parameters()->empty())
    9198 @@ -9130,7 +9752,7 @@
    9199        go_assert(!is_interface_method
    9200                 && fntype->is_method()
    9201                 && this->args_->size() == 1);
    9202 -      nargs = 1;
    9203 +      nargs = 1 + closure_arg;
    9204        args = new tree[nargs];
    9205        args[0] = this->args_->front()->get_tree(context);
    9206      }
    9207 @@ -9141,6 +9763,7 @@
    9208        nargs = this->args_->size();
    9209        int i = is_interface_method ? 1 : 0;
    9210        nargs += i;
    9211 +      nargs += closure_arg;
    9212        args = new tree[nargs];
    9213  
    9214        Typed_identifier_list::const_iterator pp = params->begin();
    9215 @@ -9161,36 +9784,71 @@
     10505@@ -9161,36 +9756,71 @@
    921610506                                                       arg_val,
    921710507                                                       location);
     
    922410514        }
    922510515       go_assert(pp == params->end());
    9226 -      go_assert(i == nargs);
    9227 +      go_assert(i + closure_arg == nargs);
     10516       go_assert(i == nargs);
    922810517     }
    922910518 
     
    925110540-  if (has_closure)
    925210541-    fn = func->get_tree_without_closure(gogo);
     10542+  tree closure_tree;
    925310543+  if (func != NULL)
    925410544+    {
    925510545+      Named_object* no = func->named_object();
    9256 +      go_assert(!no->is_function()
    9257 +               || !no->func_value()->is_descriptor_wrapper());
    925810546+      fn = Func_expression::get_code_pointer(gogo, no, location);
    9259 +      if (has_closure)
     10547+      if (!has_closure)
     10548+       closure_tree = NULL_TREE;
     10549+      else
    926010550+       {
    9261 +         go_assert(closure_arg == 1 && nargs > 0);
    9262 +         args[nargs - 1] = func->closure()->get_tree(context);
     10551+         closure_tree = func->closure()->get_tree(context);
     10552+         if (closure_tree == error_mark_node)
     10553+           return error_mark_node;
    926310554+       }
    926410555+    }
     
    927210563-      delete[] args;
    927310564-      return error_mark_node;
    9274 +      tree closure_tree = this->fn_->get_tree(context);
     10565+      closure_tree = this->fn_->get_tree(context);
    927510566+      if (closure_tree == error_mark_node)
    927610567+       return error_mark_node;
     
    928610577+                                                      fnc),
    928710578+                          field, NULL_TREE);
    9288 +      go_assert(closure_arg == 1 && nargs > 0);
    9289 +      args[nargs - 1] = closure_tree;
    929010579+    }     
    929110580+  else
     
    929510584+      if (fn == error_mark_node)
    929610585+       return error_mark_node;
    9297 +      go_assert(closure_arg == 0);
     10586+      closure_tree = NULL_TREE;
    929810587     }
    929910588 
     
    930410593   if (TREE_CODE(fndecl) == ADDR_EXPR)
    930510594     fndecl = TREE_OPERAND(fndecl, 0);
    9306 @@ -9198,12 +9856,7 @@
     10595@@ -9198,12 +9828,7 @@
    930710596   // Add a type cast in case the type of the function is a recursive
    930810597   // type which refers to itself.
     
    931810607   // This is to support builtin math functions when using 80387 math.
    931910608   tree excess_type = NULL_TREE;
    9320 @@ -9247,13 +9900,6 @@
     10609@@ -9241,19 +9866,38 @@
     10610   if (func == NULL)
     10611     fn = save_expr(fn);
     10612 
     10613+  if (!has_closure_arg)
     10614+    go_assert(closure_tree == NULL_TREE);
     10615+  else
     10616+    {
     10617+      // Pass the closure argument by calling the function function
     10618+      // __go_set_closure.  In the order_evaluations pass we have
     10619+      // ensured that if any parameters contain call expressions, they
     10620+      // will have been moved out to temporary variables.
     10621+
     10622+      go_assert(closure_tree != NULL_TREE);
     10623+      closure_tree = fold_convert_loc(location.gcc_location(), ptr_type_node,
     10624+                                     closure_tree);
     10625+      static tree set_closure_fndecl;
     10626+      tree set_closure = Gogo::call_builtin(&set_closure_fndecl,
     10627+                                           location,
     10628+                                           "__go_set_closure",
     10629+                                           1,
     10630+                                           void_type_node,
     10631+                                           ptr_type_node,
     10632+                                           closure_tree);
     10633+      if (set_closure == error_mark_node)
     10634+       return error_mark_node;
     10635+      fn = build2_loc(location.gcc_location(), COMPOUND_EXPR,
     10636+                     TREE_TYPE(fn), set_closure, fn);
     10637+    }
     10638+
     10639   tree ret = build_call_array(excess_type != NULL_TREE ? excess_type : rettype,
     10640                              fn, nargs, args);
     10641   delete[] args;
    932110642 
    932210643   SET_EXPR_LOCATION(ret, location.gcc_location());
     
    933210653   //   type F func() F
    933310654   // we have used ptr_type_node for the return type.  Add a cast here
    9334 @@ -9274,24 +9920,6 @@
     10655@@ -9274,24 +9918,6 @@
    933510656   if (this->results_ != NULL)
    933610657     ret = this->set_results(context, ret);
     
    935710678 
    935810679   return ret;
    9359 @@ -9774,13 +10402,20 @@
     10680@@ -9774,13 +10400,20 @@
    936010681 void
    936110682 Array_index_expression::do_check_types(Gogo*)
     
    938010701 
    938110702   Array_type* array_type = this->array_->type()->array_type();
    9382 @@ -10845,6 +11480,28 @@
     10703@@ -10845,6 +11478,28 @@
    938310704   return Expression::traverse(&this->expr_, traverse);
    938410705 }
     
    940910730 
    941010731 Type*
    9411 @@ -10905,18 +11562,188 @@
     10732@@ -10905,18 +11560,188 @@
    941210733     }
    941310734 }
     
    946610787+
    946710788+  Struct_field_list* sfl = new Struct_field_list();
    9468 +  // The type here is wrong--it should be new_fntype.  But we don't
    9469 +  // have new_fntype yet, and it doesn't really matter.
     10789+  // The type here is wrong--it should be the C function type.  But it
     10790+  // doesn't really matter.
    947010791+  Type* vt = Type::make_pointer_type(Type::make_void_type());
    947110792+  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
     
    947410795+  closure_type = Type::make_pointer_type(closure_type);
    947510796+
    9476 +  Function_type* new_fntype = orig_fntype->copy_with_closure(closure_type);
     10797+  Function_type* new_fntype = orig_fntype->copy_with_names();
    947710798+
    947810799+  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
    947910800+                                             false, loc);
    948010801+
     10802+  Variable* cvar = new Variable(closure_type, NULL, false, false, false, loc);
     10803+  cvar->set_is_used();
     10804+  Named_object* cp = Named_object::make_variable("$closure", NULL, cvar);
     10805+  new_no->func_value()->set_closure_var(cp);
     10806+
    948110807+  gogo->start_block(loc);
    9482 +
    9483 +  Named_object* cp = gogo->lookup("closure.0", NULL);
    9484 +  go_assert(cp != NULL
    9485 +           && cp->is_variable()
    9486 +           && cp->var_value()->is_parameter());
    948710808+
    948810809+  // Field 0 of the closure is the function code pointer, field 1 is
     
    950410825+      args = new Expression_list();
    950510826+      for (Typed_identifier_list::const_iterator p = new_params->begin();
    9506 +          p + 1 != new_params->end();
     10827+          p != new_params->end();
    950710828+          ++p)
    950810829+       {
     
    960710928 
    960810929 // Dump ast representation for an interface field reference.
    9609 @@ -11114,8 +11941,10 @@
     10930@@ -11114,8 +11939,10 @@
    961010931   // as their first argument.  If this is for a pointer type, we can
    961110932   // simply reuse the existing function.  We use an internal hack to
     
    962010941       Named_object* mno = (method->needs_stub_method()
    962110942                           ? method->stub_object()
    9622 @@ -11170,22 +11999,7 @@
     10943@@ -11170,22 +11997,7 @@
    962310944                                                method_type->is_varargs(),
    962410945                                                location);
     
    964610967diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h gcc-4.8.1/gcc/go/gofrontend/expressions.h
    964710968--- gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h      2013-01-29 00:28:09.000000000 +0000
    9648 +++ gcc-4.8.1/gcc/go/gofrontend/expressions.h   2013-09-13 19:01:43.123198407 +0000
     10969+++ gcc-4.8.1/gcc/go/gofrontend/expressions.h   2013-10-01 16:06:43.988554285 +0000
    964910970@@ -16,6 +16,7 @@
    965010971 class Traverse;
     
    975611077  protected:
    975711078   int
    9758 @@ -1532,11 +1556,68 @@
     11079@@ -1532,11 +1556,59 @@
    975911080   // The function itself.
    976011081   Named_object* function_;
     
    977611097+  Func_descriptor_expression(Named_object* fn);
    977711098+
    9778 +  // Set the descriptor wrapper.
    9779 +  void
    9780 +  set_descriptor_wrapper(Named_object* dfn)
    9781 +  {
    9782 +    go_assert(this->dfn_ == NULL);
    9783 +    this->dfn_ = dfn;
    9784 +  }
    9785 +
    978611099+  // Make the function descriptor type, so that it can be converted.
    978711100+  static void
     
    980011113+
    980111114+  Expression*
    9802 +  do_copy();
     11115+  do_copy()
     11116+  { return Expression::make_func_descriptor(this->fn_); }
    980311117+
    980411118+  bool
     
    981811132+  // The function for which this is the descriptor.
    981911133+  Named_object* fn_;
    9820 +  // The descriptor function.
    9821 +  Named_object* dfn_;
    982211134+  // The descriptor variable.
    982311135+  Bvariable* dvar_;
     
    982711139 
    982811140 class Unknown_expression : public Parser_expression
    9829 @@ -1773,10 +1854,10 @@
     11141@@ -1773,10 +1845,10 @@
    983011142 class Bound_method_expression : public Expression
    983111143 {
     
    984111153 
    984211154   // Return the object which is the first argument.
    9843 @@ -1791,20 +1872,33 @@
     11155@@ -1791,20 +1863,33 @@
    984411156   first_argument_type() const
    984511157   { return this->expr_type_; }
     
    987811190   do_type();
    987911191 
    9880 @@ -1818,7 +1912,7 @@
     11192@@ -1818,7 +1903,7 @@
    988111193   do_copy()
    988211194   {
     
    988711199 
    988811200   tree
    9889 @@ -1828,6 +1922,11 @@
     11201@@ -1828,6 +1913,11 @@
    989011202   do_dump_expression(Ast_dump_context*) const;
    989111203 
     
    989911211   // as the first argument.
    990011212   Expression* expr_;
    9901 @@ -1835,8 +1934,12 @@
     11213@@ -1835,8 +1925,12 @@
    990211214   // NULL in the normal case, non-NULL when using a method from an
    990311215   // anonymous field which does not require a stub.
     
    991411226 
    991511227 // A reference to a field in a struct.
    9916 @@ -1847,7 +1950,7 @@
     11228@@ -1847,7 +1941,7 @@
    991711229   Field_reference_expression(Expression* expr, unsigned int field_index,
    991811230                             Location location)
     
    992311235 
    992411236   // Return the struct expression.
    9925 @@ -1860,6 +1963,15 @@
     11237@@ -1860,6 +1954,15 @@
    992611238   field_index() const
    992711239   { return this->field_index_; }
     
    993911251   void
    994011252   set_struct_expression(Expression* expr)
    9941 @@ -1914,6 +2026,9 @@
     11253@@ -1914,6 +2017,9 @@
    994211254   Expression* expr_;
    994311255   // The zero-based index of the field we are retrieving.
     
    994911261   bool called_fieldtrack_;
    995011262 };
    9951 @@ -1940,6 +2055,11 @@
     11263@@ -1940,6 +2046,11 @@
    995211264   name() const
    995311265   { return this->name_; }
     
    996111273   // tree for the expression.
    996211274   tree
    9963 @@ -1955,6 +2075,9 @@
     11275@@ -1955,6 +2066,9 @@
    996411276   int
    996511277   do_traverse(Traverse* traverse);
     
    997111283   do_type();
    997211284 
    9973 @@ -1979,6 +2102,13 @@
     11285@@ -1979,6 +2093,13 @@
    997411286   do_dump_expression(Ast_dump_context*) const;
    997511287 
     
    998711299diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/go.cc gcc-4.8.1/gcc/go/gofrontend/go.cc
    998811300--- gcc-4.8.1.orig/gcc/go/gofrontend/go.cc      2012-10-31 00:38:49.000000000 +0000
    9989 +++ gcc-4.8.1/gcc/go/gofrontend/go.cc   2013-09-13 19:01:43.123198407 +0000
     11301+++ gcc-4.8.1/gcc/go/gofrontend/go.cc   2013-10-01 16:06:43.988554285 +0000
    999011302@@ -44,7 +44,7 @@
    999111303 GO_EXTERN_C
     
    1002711339diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc
    1002811340--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc       2013-01-29 00:28:09.000000000 +0000
    10029 +++ gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc    2013-09-13 19:01:43.126531731 +0000
     11341+++ gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc    2013-10-01 16:06:43.988554285 +0000
    1003011342@@ -755,6 +755,18 @@
    1003111343   this->build_interface_method_tables();
     
    1007211384       // have ideal or non-integral type.
    1007311385       if (no->is_const())
    10074 @@ -1255,14 +1278,47 @@
     11386@@ -986,6 +1009,16 @@
     11387       else
     11388        package_name = this->package_->package_name();
     11389 
     11390+      // Note that this will be misleading if this is an unexported
     11391+      // method generated for an embedded imported type.  In that case
     11392+      // the unexported method should have the package name of the
     11393+      // package from which it is imported, but we are going to give
     11394+      // it our package name.  Fixing this would require knowing the
     11395+      // package name, but we only know the package path.  It might be
     11396+      // better to use package paths here anyhow.  This doesn't affect
     11397+      // the assembler code, because we always set that name in
     11398+      // Function::get_or_make_decl anyhow.  FIXME.
     11399+
     11400       decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
     11401 
     11402       Function_type* fntype;
     11403@@ -1028,6 +1061,12 @@
     11404   if (this->tree_ != NULL_TREE)
     11405     return this->tree_;
     11406 
     11407+  if (Gogo::is_erroneous_name(this->name_))
     11408+    {
     11409+      this->tree_ = error_mark_node;
     11410+      return error_mark_node;
     11411+    }
     11412+
     11413   tree name;
     11414   if (this->classification_ == NAMED_OBJECT_TYPE)
     11415     name = NULL_TREE;
     11416@@ -1255,14 +1294,23 @@
    1007511417   if (this->fndecl_ == NULL_TREE)
    1007611418     {
     
    1008711429+         go_assert(FUNCTION_POINTER_TYPE_P(functype));
    1008811430+         functype = TREE_TYPE(functype);
    10089 +
    10090 +         // In the struct, the function type always has a trailing
    10091 +         // closure argument.  For the function body, we only use
    10092 +         // that trailing arg if this is a function literal or if it
    10093 +         // is a wrapper created to store in a descriptor.  Remove it
    10094 +         // in that case.
    10095 +         if (this->enclosing_ == NULL && !this->is_descriptor_wrapper_)
    10096 +           {
    10097 +             tree old_params = TYPE_ARG_TYPES(functype);
    10098 +             go_assert(old_params != NULL_TREE
    10099 +                       && old_params != void_list_node);
    10100 +             tree new_params = NULL_TREE;
    10101 +             tree *pp = &new_params;
    10102 +             while (TREE_CHAIN (old_params) != void_list_node)
    10103 +               {
    10104 +                 tree p = TREE_VALUE(old_params);
    10105 +                 go_assert(TYPE_P(p));
    10106 +                 *pp = tree_cons(NULL_TREE, p, NULL_TREE);
    10107 +                 pp = &TREE_CHAIN(*pp);
    10108 +                 old_params = TREE_CHAIN (old_params);
    10109 +               }
    10110 +             *pp = void_list_node;
    10111 +             functype = build_function_type(TREE_TYPE(functype), new_params);
    10112 +           }
    1011311431+       }
    1011411432+
     
    1012411442                                  id, functype);
    1012511443 
    10126 @@ -1308,9 +1364,6 @@
     11444@@ -1285,7 +1333,21 @@
     11445                   || this->type_->is_method())
     11446            {
     11447              TREE_PUBLIC(decl) = 1;
     11448-             std::string asm_name = gogo->pkgpath_symbol();
     11449+             std::string pkgpath = gogo->pkgpath_symbol();
     11450+             if (this->type_->is_method()
     11451+                 && Gogo::is_hidden_name(no->name())
     11452+                 && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
     11453+               {
     11454+                 // This is a method we created for an unexported
     11455+                 // method of an imported embedded type.  We need to
     11456+                 // use the pkgpath of the imported package to avoid
     11457+                 // a possible name collision.  See bug478 for a test
     11458+                 // case.
     11459+                 pkgpath = Gogo::hidden_name_pkgpath(no->name());
     11460+                 pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
     11461+               }
     11462+
     11463+             std::string asm_name = pkgpath;
     11464              asm_name.append(1, '.');
     11465              asm_name.append(Gogo::unpack_hidden_name(no->name()));
     11466              if (this->type_->is_method())
     11467@@ -1308,9 +1370,6 @@
    1012711468          DECL_CONTEXT(resdecl) = decl;
    1012811469          DECL_RESULT(decl) = resdecl;
     
    1013411475          // can't inline it, because recover behaves differently in a
    1013511476          // function passed directly to defer.  If this is a recover
    10136 @@ -1333,29 +1386,6 @@
     11477@@ -1333,29 +1392,6 @@
    1013711478            resolve_unique_section (decl, 0, 1);
    1013811479 
     
    1016411505     }
    1016511506   return this->fndecl_;
    10166 @@ -1382,15 +1412,44 @@
     11507@@ -1382,15 +1418,24 @@
    1016711508        }
    1016811509 
     
    1017911520+         go_assert(FUNCTION_POINTER_TYPE_P(functype));
    1018011521+         functype = TREE_TYPE(functype);
    10181 +
    10182 +         // In the struct, the function type always has a trailing
    10183 +         // closure argument.  Here we are referring to the function
    10184 +         // code directly, and we know it is not a function literal,
    10185 +         // and we know it is not a wrapper created to store in a
    10186 +         // descriptor.  Remove that trailing argument.
    10187 +         tree old_params = TYPE_ARG_TYPES(functype);
    10188 +         go_assert(old_params != NULL_TREE && old_params != void_list_node);
    10189 +         tree new_params = NULL_TREE;
    10190 +         tree *pp = &new_params;
    10191 +         while (TREE_CHAIN (old_params) != void_list_node)
    10192 +           {
    10193 +             tree p = TREE_VALUE(old_params);
    10194 +             go_assert(TYPE_P(p));
    10195 +             *pp = tree_cons(NULL_TREE, p, NULL_TREE);
    10196 +             pp = &TREE_CHAIN(*pp);
    10197 +             old_params = TREE_CHAIN (old_params);
    10198 +           }
    10199 +         *pp = void_list_node;
    10200 +         functype = build_function_type(TREE_TYPE(functype), new_params);
    1020111522+       }
    1020211523+
     
    1021311534                             functype);
    1021411535          TREE_PUBLIC(decl) = 1;
    10215 @@ -1599,6 +1658,32 @@
     11536@@ -1599,10 +1644,41 @@
    1021611537            }
    1021711538        }
    1021811539     }
    1021911540+
    10220 +  // The closure variable is passed last, if this is a function
    10221 +  // literal or a descriptor wrapper.
     11541   *pp = NULL_TREE;
     11542 
     11543   DECL_ARGUMENTS(fndecl) = params;
     11544 
     11545+  // If we need a closure variable, fetch it by calling a runtime
     11546+  // function.  The caller will have called __go_set_closure before
     11547+  // the function call.
    1022211548+  if (this->closure_var_ != NULL)
    1022311549+    {
     
    1022711553+      if (var_decl != error_mark_node)
    1022811554+       {
    10229 +         go_assert(TREE_CODE(var_decl) == PARM_DECL);
    10230 +         *pp = var_decl;
    10231 +         pp = &DECL_CHAIN(*pp);
     11555+         go_assert(TREE_CODE(var_decl) == VAR_DECL);
     11556+         static tree get_closure_fndecl;
     11557+         tree get_closure = Gogo::call_builtin(&get_closure_fndecl,
     11558+                                               this->location_,
     11559+                                               "__go_get_closure",
     11560+                                               0,
     11561+                                               ptr_type_node);
     11562+
     11563+         // Mark the __go_get_closure function as pure, since it
     11564+         // depends only on the global variable g.
     11565+         DECL_PURE_P(get_closure_fndecl) = 1;
     11566+
     11567+         get_closure = fold_convert_loc(this->location_.gcc_location(),
     11568+                                        TREE_TYPE(var_decl), get_closure);
     11569+         DECL_INITIAL(var_decl) = get_closure;
     11570+         DECL_CHAIN(var_decl) = declare_vars;
     11571+         declare_vars = var_decl;
    1023211572+       }
    1023311573+    }
    10234 +  else if (this->enclosing_ != NULL || this->is_descriptor_wrapper_)
    10235 +    {
    10236 +      tree parm_decl = build_decl(this->location_.gcc_location(), PARM_DECL,
    10237 +                                 get_identifier("$closure"),
    10238 +                                 const_ptr_type_node);
    10239 +      DECL_CONTEXT(parm_decl) = current_function_decl;
    10240 +      DECL_ARG_TYPE(parm_decl) = const_ptr_type_node;
    10241 +      *pp = parm_decl;
    10242 +      pp = &DECL_CHAIN(*pp);
    10243 +    }
    10244 +
    10245    *pp = NULL_TREE;
    10246  
    10247    DECL_ARGUMENTS(fndecl) = params;
    10248 @@ -1681,6 +1766,13 @@
     11574+
     11575   if (this->block_ != NULL)
     11576     {
     11577       go_assert(DECL_INITIAL(fndecl) == NULL_TREE);
     11578@@ -1681,6 +1757,13 @@
    1024911579 
    1025011580       DECL_SAVED_TREE(fndecl) = code;
     
    1026011590 
    1026111591 // Build the wrappers around function code needed if the function has
    10262 @@ -1844,6 +1936,20 @@
     11592@@ -1844,6 +1927,20 @@
    1026311593     }
    1026411594 }
     
    1028111611 
    1028211612 GO_EXTERN_C
    10283 @@ -2437,70 +2543,3 @@
     11613@@ -2437,70 +2534,3 @@
    1028411614                    build2(COMPOUND_EXPR, type_tree, call, tmp));
    1028511615     }
     
    1035411684diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc gcc-4.8.1/gcc/go/gofrontend/gogo.cc
    1035511685--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc    2013-02-10 06:02:38.000000000 +0000
    10356 +++ gcc-4.8.1/gcc/go/gofrontend/gogo.cc 2013-09-13 19:01:43.126531731 +0000
     11686+++ gcc-4.8.1/gcc/go/gofrontend/gogo.cc 2013-10-01 16:06:43.988554285 +0000
    1035711687@@ -364,7 +364,7 @@
    1035811688       // Declare "main" as a function which takes no parameters and
     
    1037411704   else if (!type->is_method())
    1037511705     {
    10376 @@ -1277,6 +1278,14 @@
     11706@@ -1191,6 +1192,27 @@
     11707   this->interface_types_.push_back(itype);
     11708 }
     11709 
     11710+// Return an erroneous name that indicates that an error has already
     11711+// been reported.
     11712+
     11713+std::string
     11714+Gogo::erroneous_name()
     11715+{
     11716+  static int erroneous_count;
     11717+  char name[50];
     11718+  snprintf(name, sizeof name, "$erroneous%d", erroneous_count);
     11719+  ++erroneous_count;
     11720+  return name;
     11721+}
     11722+
     11723+// Return whether a name is an erroneous name.
     11724+
     11725+bool
     11726+Gogo::is_erroneous_name(const std::string& name)
     11727+{
     11728+  return name.compare(0, 10, "$erroneous") == 0;
     11729+}
     11730+
     11731 // Return a name for a thunk object.
     11732 
     11733 std::string
     11734@@ -1277,6 +1299,14 @@
    1037711735                   n.c_str());
    1037811736          inform(pf->second, "%qs imported here", n.c_str());
     
    1038911747 }
    1039011748 
    10391 @@ -1599,8 +1608,9 @@
     11749@@ -1599,8 +1629,9 @@
    1039211750   return TRAVERSE_CONTINUE;
    1039311751 }
     
    1040111759 int
    1040211760 Lower_parse_tree::function(Named_object* no)
    10403 @@ -1732,6 +1742,146 @@
     11761@@ -1732,6 +1763,146 @@
    1040411762   lower.constant(no, false);
    1040511763 }
     
    1043311791+      && no->func_value()->enclosing() == NULL
    1043411792+      && !no->func_value()->is_method()
    10435 +      && !no->func_value()->is_descriptor_wrapper()
    10436 +      && !Gogo::is_hidden_name(no->name()))
     11793+      && !Gogo::is_hidden_name(no->name())
     11794+      && !Gogo::is_thunk(no))
    1043711795+    no->func_value()->descriptor(this->gogo_, no);
    1043811796+
     
    1054811906 // interfaces.
    1054911907 
    10550 @@ -2643,6 +2793,13 @@
     11908@@ -2217,7 +2388,7 @@
     11909   Block* retblock = new Block(enclosing, loc);
     11910   retblock->set_end_location(loc);
     11911 
     11912-  Temporary_statement* ts = Statement::make_temporary(Type::lookup_bool_type(),
     11913+  Temporary_statement* ts = Statement::make_temporary(shortcut->type(),
     11914                                                      left, loc);
     11915   retblock->add_statement(ts);
     11916 
     11917@@ -2391,13 +2562,38 @@
     11918     return TRAVERSE_CONTINUE;
     11919 
     11920   // If there is only one expression with a side-effect, we can
     11921-  // usually leave it in place.  However, for an assignment statement,
     11922-  // we need to evaluate an expression on the right hand side before
     11923-  // we evaluate any index expression on the left hand side, so for
     11924-  // that case we always move the expression.  Otherwise we mishandle
     11925-  // m[0] = len(m) where m is a map.
     11926-  if (c == 1 && s->classification() != Statement::STATEMENT_ASSIGNMENT)
     11927-    return TRAVERSE_CONTINUE;
     11928+  // usually leave it in place.
     11929+  if (c == 1)
     11930+    {
     11931+      switch (s->classification())
     11932+       {
     11933+       case Statement::STATEMENT_ASSIGNMENT:
     11934+         // For an assignment statement, we need to evaluate an
     11935+         // expression on the right hand side before we evaluate any
     11936+         // index expression on the left hand side, so for that case
     11937+         // we always move the expression.  Otherwise we mishandle
     11938+         // m[0] = len(m) where m is a map.
     11939+         break;
     11940+
     11941+       case Statement::STATEMENT_EXPRESSION:
     11942+         {
     11943+           // If this is a call statement that doesn't return any
     11944+           // values, it will not have been counted as a value to
     11945+           // move.  We need to move any subexpressions in case they
     11946+           // are themselves call statements that require passing a
     11947+           // closure.
     11948+           Expression* expr = s->expression_statement()->expr();
     11949+           if (expr->call_expression() != NULL
     11950+               && expr->call_expression()->result_count() == 0)
     11951+             break;
     11952+           return TRAVERSE_CONTINUE;
     11953+         }
     11954+
     11955+       default:
     11956+         // We can leave the expression in place.
     11957+         return TRAVERSE_CONTINUE;
     11958+       }
     11959+    }
     11960 
     11961   bool is_thunk = s->thunk_statement() != NULL;
     11962   for (Find_eval_ordering::const_iterator p = find_eval_ordering.begin();
     11963@@ -2643,10 +2839,17 @@
    1055111964   Expression* closure = NULL;
    1055211965   if (orig_func->needs_closure())
     
    1056211975       Variable* orig_closure_var = orig_closure_no->var_value();
    1056311976       Variable* new_var = new Variable(orig_closure_var->type(), NULL, false,
    10564 @@ -2682,22 +2839,7 @@
     11977-                                      true, false, location);
     11978+                                      false, false, location);
     11979       snprintf(buf, sizeof buf, "closure.%u", count);
     11980       ++count;
     11981       Named_object* new_closure_no = Named_object::make_variable(buf, NULL,
     11982@@ -2682,22 +2885,7 @@
    1056511983   // Any varargs call has already been lowered.
    1056611984   call->set_varargs_are_lowered();
     
    1058612004   gogo->add_statement(s);
    1058712005 
    10588 @@ -2991,7 +3133,8 @@
     12006@@ -2991,7 +3179,8 @@
    1058912007     return TRAVERSE_CONTINUE;
    1059012008 
     
    1059612014   return TRAVERSE_CONTINUE;
    1059712015 }
    10598 @@ -3101,6 +3244,7 @@
     12016@@ -3101,6 +3290,7 @@
    1059912017   Map_type::make_map_descriptor_type();
    1060012018   Channel_type::make_chan_type_descriptor_type();
     
    1060412022 
    1060512023   Runtime::convert_types(this);
    10606 @@ -3128,10 +3272,10 @@
     12024@@ -3128,9 +3318,9 @@
    1060712025                   Location location)
    1060812026   : type_(type), enclosing_(enclosing), results_(NULL),
     
    1061112029-    results_are_named_(false), nointerface_(false), calls_recover_(false),
    1061212030-    is_recover_thunk_(false), has_recover_thunk_(false),
    10613 -    in_unique_section_(false)
    1061412031+    local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL),
    1061512032+    is_sink_(false), results_are_named_(false), nointerface_(false),
    1061612033+    calls_recover_(false), is_recover_thunk_(false), has_recover_thunk_(false),
    10617 +    in_unique_section_(false), is_descriptor_wrapper_(false)
     12034     in_unique_section_(false)
    1061812035 {
    1061912036 }
    10620  
    10621 @@ -3206,6 +3350,7 @@
     12037@@ -3206,15 +3396,16 @@
    1062212038 {
    1062312039   if (this->closure_var_ == NULL)
     
    1062712043       // we find them.
    1062812044       Location loc = this->type_->location();
    10629 @@ -3229,7 +3374,14 @@
     12045       Struct_field_list* sfl = new Struct_field_list;
     12046       Type* struct_type = Type::make_struct_type(sfl, loc);
     12047       Variable* var = new Variable(Type::make_pointer_type(struct_type),
     12048-                                  NULL, false, true, false, loc);
     12049+                                  NULL, false, false, false, loc);
     12050       var->set_is_used();
     12051-      this->closure_var_ = Named_object::make_variable("closure", NULL, var);
     12052+      this->closure_var_ = Named_object::make_variable("$closure", NULL, var);
     12053       // Note that the new variable is not in any binding contour.
     12054     }
     12055   return this->closure_var_;
     12056@@ -3229,7 +3420,14 @@
    1063012057     return;
    1063112058   Named_object* closure = this->closure_var_;
     
    1064312070        p != this->closure_fields_.end();
    1064412071        ++p, ++index)
    10645 @@ -3410,6 +3562,102 @@
     12072@@ -3410,6 +3608,19 @@
    1064612073     this->block_->determine_types();
    1064712074 }
    1064812075 
    10649 +// Build a wrapper function for a function descriptor.  A function
    10650 +// descriptor refers to a function that takes a closure as its last
    10651 +// argument.  In this case there will be no closure, but an indirect
    10652 +// call will pass nil as the last argument.  We need to build a
    10653 +// wrapper function that accepts and discards that last argument, so
    10654 +// that cases like -mrtd will work correctly.  In most cases the
    10655 +// wrapper function will simply be a jump.
    10656 +
    10657 +Named_object*
    10658 +Function::make_descriptor_wrapper(Gogo* gogo, Named_object* no,
    10659 +                                 Function_type* orig_fntype)
    10660 +{
    10661 +  Location loc = no->location();
    10662 +
    10663 +  Type* vt = Type::make_pointer_type(Type::make_void_type());
    10664 +  Function_type* new_fntype = orig_fntype->copy_with_closure(vt);
    10665 +
    10666 +  std::string name = no->name() + "$descriptorfn";
    10667 +  Named_object* dno = gogo->start_function(name, new_fntype, false, loc);
    10668 +  dno->func_value()->is_descriptor_wrapper_ = true;
    10669 +
    10670 +  // Put the wrapper in a unique section so that it can be discarded
    10671 +  // by the linker if it is not needed.  Every top-level function will
    10672 +  // get a wrapper, in case there is a reference other than a call
    10673 +  // from some other package, but most will not need one.
    10674 +  dno->func_value()->set_in_unique_section();
    10675 +
    10676 +  gogo->start_block(loc);
    10677 +
    10678 +  Expression* fn = Expression::make_func_reference(no, NULL, loc);
    10679 +
    10680 +  // Call the function begin wrapped, passing all of the arguments
    10681 +  // except for the last one (the last argument is the ignored
    10682 +  // closure).
    10683 +  const Typed_identifier_list* orig_params = orig_fntype->parameters();
    10684 +  Expression_list* args;
    10685 +  if (orig_params == NULL || orig_params->empty())
    10686 +    args = NULL;
    10687 +  else
    10688 +    {
    10689 +      const Typed_identifier_list* new_params = new_fntype->parameters();
    10690 +      args = new Expression_list();
    10691 +      for (Typed_identifier_list::const_iterator p = new_params->begin();
    10692 +          p + 1 != new_params->end();
    10693 +          ++p)
    10694 +       {
    10695 +         Named_object* p_no = gogo->lookup(p->name(), NULL);
    10696 +         go_assert(p_no != NULL
    10697 +                   && p_no->is_variable()
    10698 +                   && p_no->var_value()->is_parameter());
    10699 +         args->push_back(Expression::make_var_reference(p_no, loc));
    10700 +       }
    10701 +    }
    10702 +
    10703 +  Call_expression* call = Expression::make_call(fn, args,
    10704 +                                               orig_fntype->is_varargs(),
    10705 +                                               loc);
    10706 +  call->set_varargs_are_lowered();
    10707 +
    10708 +  Statement* s = Statement::make_return_from_call(call, loc);
    10709 +  gogo->add_statement(s);
    10710 +  Block* b = gogo->finish_block(loc);
    10711 +  gogo->add_block(b, loc);
    10712 +  gogo->lower_block(dno, b);
    10713 +  gogo->finish_function(loc);
    10714 +
    10715 +  return dno;
    10716 +}
    10717 +
    1071812076+// Return the function descriptor, the value you get when you refer to
    1071912077+// the function in Go code without calling it.
    1072012078+
    1072112079+Expression*
    10722 +Function::descriptor(Gogo* gogo, Named_object* no)
     12080+Function::descriptor(Gogo*, Named_object* no)
    1072312081+{
    1072412082+  go_assert(!this->is_method());
    1072512083+  go_assert(this->closure_var_ == NULL);
    10726 +  go_assert(!this->is_descriptor_wrapper_);
    1072712084+  if (this->descriptor_ == NULL)
    10728 +    {
    10729 +      // Make and record the descriptor first, so that when we lower
    10730 +      // the descriptor wrapper we don't try to make it again.
    10731 +      Func_descriptor_expression* descriptor =
    10732 +       Expression::make_func_descriptor(no);
    10733 +      this->descriptor_ = descriptor;
    10734 +      if (no->package() == NULL
    10735 +         && !Linemap::is_predeclared_location(no->location()))
    10736 +       {
    10737 +         Named_object* dno = Function::make_descriptor_wrapper(gogo, no,
    10738 +                                                               this->type_);
    10739 +         descriptor->set_descriptor_wrapper(dno);
    10740 +       }
    10741 +    }
     12085+    this->descriptor_ = Expression::make_func_descriptor(no);
    1074212086+  return this->descriptor_;
    1074312087+}
     
    1074612090 // function, making it if necessary.  The value of the variable is set
    1074712091 // by the runtime routines to true if the function is returning,
    10748 @@ -3940,6 +4188,32 @@
     12092@@ -3940,6 +4151,19 @@
    1074912093     }
    1075012094 }
     
    1075512099+
    1075612100+Expression*
    10757 +Function_declaration::descriptor(Gogo* gogo, Named_object* no)
     12101+Function_declaration::descriptor(Gogo*, Named_object* no)
    1075812102+{
    1075912103+  go_assert(!this->fntype_->is_method());
    1076012104+  if (this->descriptor_ == NULL)
    10761 +    {
    10762 +      // Make and record the descriptor first, so that when we lower
    10763 +      // the descriptor wrapper we don't try to make it again.
    10764 +      Func_descriptor_expression* descriptor =
    10765 +       Expression::make_func_descriptor(no);
    10766 +      this->descriptor_ = descriptor;
    10767 +      if (no->package() == NULL
    10768 +         && !Linemap::is_predeclared_location(no->location()))
    10769 +       {
    10770 +         Named_object* dno = Function::make_descriptor_wrapper(gogo, no,
    10771 +                                                               this->fntype_);
    10772 +         descriptor->set_descriptor_wrapper(dno);
    10773 +       }
    10774 +    }
     12105+    this->descriptor_ = Expression::make_func_descriptor(no);
    1077512106+  return this->descriptor_;
    1077612107+}
     
    1077912110 
    1078012111 Variable::Variable(Type* type, Expression* init, bool is_global,
    10781 @@ -4755,6 +5029,12 @@
     12112@@ -4755,6 +4979,12 @@
    1078212113 Named_object::set_function_value(Function* function)
    1078312114 {
     
    1079412125diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h gcc-4.8.1/gcc/go/gofrontend/gogo.h
    1079512126--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h     2012-12-21 22:23:23.000000000 +0000
    10796 +++ gcc-4.8.1/gcc/go/gofrontend/gogo.h  2013-09-13 19:01:43.126531731 +0000
    10797 @@ -476,6 +476,10 @@
     12127+++ gcc-4.8.1/gcc/go/gofrontend/gogo.h  2013-10-01 16:06:43.988554285 +0000
     12128@@ -387,6 +387,16 @@
     12129   void
     12130   mark_locals_used();
     12131 
     12132+  // Return a name to use for an error case.  This should only be used
     12133+  // after reporting an error, and is used to avoid useless knockon
     12134+  // errors.
     12135+  static std::string
     12136+  erroneous_name();
     12137+
     12138+  // Return whether the name indicates an error.
     12139+  static bool
     12140+  is_erroneous_name(const std::string&);
     12141+
     12142   // Return a name to use for a thunk function.  A thunk function is
     12143   // one we create during the compilation, for a go statement or a
     12144   // defer statement or a method expression.
     12145@@ -476,6 +486,10 @@
    1079812146   void
    1079912147   lower_constant(Named_object*);
     
    1080612154   void
    1080712155   finalize_methods();
    10808 @@ -614,10 +618,6 @@
     12156@@ -614,10 +628,6 @@
    1080912157   receive_from_channel(tree type_tree, tree type_descriptor_tree, tree channel,
    1081012158                       Location);
     
    1081712165   // During parsing, we keep a stack of functions.  Each function on
    1081812166   // the stack is one that we are currently parsing.  For each
    10819 @@ -669,10 +669,6 @@
     12167@@ -669,10 +679,6 @@
    1082012168   tree
    1082112169   ptr_go_string_constant_tree(const std::string&);
     
    1082812176   typedef std::map<std::string, Package*> Imports;
    1082912177 
    10830 @@ -915,6 +911,14 @@
     12178@@ -915,6 +921,14 @@
    1083112179   result_variables()
    1083212180   { return this->results_; }
     
    1084312191   bool
    1084412192   results_are_named() const
    10845 @@ -1046,6 +1050,12 @@
    10846    set_in_unique_section()
    10847    { this->in_unique_section_ = true; }
    10848  
    10849 +  // Whether this function was created as a descriptor wrapper for
    10850 +  // another function.
    10851 +  bool
    10852 +  is_descriptor_wrapper() const
    10853 +  { return this->is_descriptor_wrapper_; }
    10854 +
    10855    // Swap with another function.  Used only for the thunk which calls
    10856    // recover.
    10857    void
    10858 @@ -1059,6 +1069,26 @@
     12193@@ -1059,6 +1073,22 @@
    1085912194   void
    1086012195   determine_types();
     
    1087612211+  }
    1087712212+
    10878 +  // Build a descriptor wrapper function.
    10879 +  static Named_object*
    10880 +  make_descriptor_wrapper(Gogo*, Named_object*, Function_type*);
    10881 +
    1088212213   // Return the function's decl given an identifier.
    1088312214   tree
    1088412215   get_or_make_decl(Gogo*, Named_object*, tree id);
    10885 @@ -1137,25 +1167,32 @@
     12216@@ -1137,22 +1167,26 @@
    1088612217   Labels labels_;
    1088712218   // The number of local types defined in this function.
     
    1091512246   // turned on for field tracking.
    1091612247   bool in_unique_section_ : 1;
    10917 +  // True if this is a function wrapper created to put in a function
    10918 +  // descriptor.
    10919 +  bool is_descriptor_wrapper_ : 1;
    10920  };
    10921  
    10922  // A snapshot of the current binding state.
    10923 @@ -1198,7 +1235,8 @@
     12248@@ -1198,7 +1232,8 @@
    1092412249 {
    1092512250  public:
     
    1093112256 
    1093212257   Function_type*
    10933 @@ -1218,10 +1256,27 @@
     12258@@ -1218,10 +1253,27 @@
    1093412259   set_asm_name(const std::string& asm_name)
    1093512260   { this->asm_name_ = asm_name; }
     
    1095912284   void
    1096012285   export_func(Export* exp, const std::string& name) const
    10961 @@ -1235,6 +1290,8 @@
     12286@@ -1235,6 +1287,8 @@
    1096212287   // The assembler name: this is the name to use in references to the
    1096312288   // function.  This is normally empty.
     
    1096812293   tree fndecl_;
    1096912294 };
    10970 @@ -1630,7 +1687,7 @@
     12295@@ -1630,7 +1684,7 @@
    1097112296   Named_constant(Type* type, Expression* expr, int iota_value,
    1097212297                 Location location)
     
    1097712302 
    1097812303   Type*
    10979 @@ -1664,6 +1721,14 @@
     12304@@ -1664,6 +1718,14 @@
    1098012305   clear_lowering()
    1098112306   { this->lowering_ = false; }
     
    1099212317   int
    1099312318   traverse_expression(Traverse*);
    10994 @@ -1699,6 +1764,8 @@
     12319@@ -1699,6 +1761,8 @@
    1099512320   Location location_;
    1099612321   // Whether we are currently lowering this constant.
     
    1100312328diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc gcc-4.8.1/gcc/go/gofrontend/parse.cc
    1100412329--- gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc   2012-12-13 22:20:23.000000000 +0000
    11005 +++ gcc-4.8.1/gcc/go/gofrontend/parse.cc        2013-09-13 19:01:43.129865056 +0000
     12330+++ gcc-4.8.1/gcc/go/gofrontend/parse.cc        2013-10-01 16:06:43.992554285 +0000
     12331@@ -213,7 +213,7 @@
     12332   if (name == "_")
     12333     {
     12334       error_at(this->location(), "invalid use of %<_%>");
     12335-      name = "blank";
     12336+      name = Gogo::erroneous_name();
     12337     }
     12338 
     12339   if (package->name() == this->gogo_->package_name())
    1100612340@@ -1457,6 +1457,16 @@
    1100712341 
     
    1102112355   if (pe != expr_list->end())
    1102212356     error_at(this->location(), "too many initializers");
    11023 @@ -2627,7 +2637,11 @@
     12357@@ -1930,12 +1940,9 @@
     12358        {
     12359          if (this->gogo_->in_global_scope())
     12360            return this->create_dummy_global(type, init, location);
     12361-         else if (type == NULL)
     12362-           this->gogo_->add_statement(Statement::make_statement(init, true));
     12363          else
     12364            {
     12365-             // With both a type and an initializer, create a dummy
     12366-             // variable so that we will check whether the
     12367+             // Create a dummy variable so that we will check whether the
     12368              // initializer can be assigned to the type.
     12369              Variable* var = new Variable(type, init, false, false, false,
     12370                                           location);
     12371@@ -2627,7 +2634,11 @@
    1102412372   Named_object* this_function = this->gogo_->current_function();
    1102512373   Named_object* closure = this_function->func_value()->closure_var();
     
    1103412382     this->enclosing_vars_.insert(ev);
    1103512383   if (ins.second)
    11036 @@ -2882,8 +2896,9 @@
     12384@@ -2882,8 +2893,9 @@
    1103712385 // Create a closure for the nested function FUNCTION.  This is based
    1103812386 // on ENCLOSING_VARS, which is a list of all variables defined in
     
    1104612394 Expression*
    1104712395 Parse::create_closure(Named_object* function, Enclosing_vars* enclosing_vars,
    11048 @@ -2899,16 +2914,25 @@
     12396@@ -2899,16 +2911,25 @@
    1104912397   for (Enclosing_vars::const_iterator p = enclosing_vars->begin();
    1105012398        p != enclosing_vars->end();
     
    1107412422       Expression* ref;
    1107512423       if (ev[i].in_function() == enclosing_function)
    11076 @@ -3016,7 +3040,7 @@
     12424@@ -3016,7 +3037,7 @@
    1107712425                  && t->array_type()->length()->is_nil_expression())
    1107812426                {
     
    1108312431                }
    1108412432              else
    11085 @@ -4499,9 +4523,12 @@
     12433@@ -3083,7 +3104,7 @@
     12434       if (token->identifier() == "_")
     12435        {
     12436          error_at(this->location(), "invalid use of %<_%>");
     12437-         name = this->gogo_->pack_hidden_name("blank", false);
     12438+         name = Gogo::erroneous_name();
     12439        }
     12440       this->advance_token();
     12441       return Expression::make_selector(left, name, location);
     12442@@ -4499,9 +4520,12 @@
    1108612443   bool is_fallthrough = false;
    1108712444   if (this->peek_token()->is_keyword(KEYWORD_FALLTHROUGH))
     
    1109612453 
    1109712454   if (is_default)
    11098 @@ -5239,7 +5266,8 @@
     12455@@ -4905,7 +4929,7 @@
     12456            {
     12457              error_at(recv_var_loc,
     12458                       "no new variables on left side of %<:=%>");
     12459-             recv_var = "blank";
     12460+             recv_var = Gogo::erroneous_name();
     12461            }
     12462          *is_send = false;
     12463          *varname = gogo->pack_hidden_name(recv_var, is_rv_exported);
     12464@@ -4941,7 +4965,7 @@
     12465                    {
     12466                      error_at(recv_var_loc,
     12467                               "no new variables on left side of %<:=%>");
     12468-                     recv_var = "blank";
     12469+                     recv_var = Gogo::erroneous_name();
     12470                    }
     12471                  *is_send = false;
     12472                  if (recv_var != "_")
     12473@@ -5239,7 +5263,8 @@
    1109912474        no->var_value()->set_type_from_range_value();
    1110012475       if (is_new)
     
    1110612481 
    1110712482   if (!any_new)
     12483@@ -5477,7 +5502,7 @@
     12484          if (name == "_")
     12485            {
     12486              error_at(this->location(), "invalid package name _");
     12487-             name = "blank";
     12488+             name = Gogo::erroneous_name();
     12489            }
     12490          this->advance_token();
     12491        }
    1110812492diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def gcc-4.8.1/gcc/go/gofrontend/runtime.def
    1110912493--- gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def        2012-11-29 18:11:17.000000000 +0000
    11110 +++ gcc-4.8.1/gcc/go/gofrontend/runtime.def     2013-09-13 19:01:43.129865056 +0000
     12494+++ gcc-4.8.1/gcc/go/gofrontend/runtime.def     2013-10-01 16:06:43.992554285 +0000
    1111112495@@ -224,11 +224,6 @@
    1111212496 DEF_GO_RUNTIME(NEW_NOPOINTERS, "__go_new_nopointers", P1(UINTPTR), R1(POINTER))
     
    1112312507diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc gcc-4.8.1/gcc/go/gofrontend/statements.cc
    1112412508--- gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc      2012-12-21 15:59:27.000000000 +0000
    11125 +++ gcc-4.8.1/gcc/go/gofrontend/statements.cc   2013-09-13 19:01:43.133198380 +0000
     12509+++ gcc-4.8.1/gcc/go/gofrontend/statements.cc   2013-10-01 16:06:43.992554285 +0000
    1112612510@@ -569,7 +569,10 @@
    1112712511 Assignment_statement::do_determine_types()
     
    1113612520 }
    1113712521 
    11138 @@ -1707,8 +1710,8 @@
     12522@@ -591,6 +594,15 @@
     12523 
     12524   Type* lhs_type = this->lhs_->type();
     12525   Type* rhs_type = this->rhs_->type();
     12526+
     12527+  // Invalid assignment of nil to the blank identifier.
     12528+  if (lhs_type->is_sink_type()
     12529+      && rhs_type->is_nil_type())
     12530+    {
     12531+      this->report_error(_("use of untyped nil"));
     12532+      return;
     12533+    }
     12534+
     12535   std::string reason;
     12536   bool ok;
     12537   if (this->are_hidden_fields_ok_)
     12538@@ -972,7 +984,10 @@
     12539 
     12540       if ((*plhs)->is_sink_expression())
     12541        {
     12542-         b->add_statement(Statement::make_statement(*prhs, true));
     12543+          if ((*prhs)->type()->is_nil_type())
     12544+            this->report_error(_("use of untyped nil"));
     12545+          else
     12546+            b->add_statement(Statement::make_statement(*prhs, true));
     12547          continue;
     12548        }
     12549 
     12550@@ -1655,46 +1670,23 @@
     12551                                                   location);
     12552 }
     12553 
     12554-// An expression statement.
     12555-
     12556-class Expression_statement : public Statement
     12557-{
     12558- public:
     12559-  Expression_statement(Expression* expr, bool is_ignored)
     12560-    : Statement(STATEMENT_EXPRESSION, expr->location()),
     12561-      expr_(expr), is_ignored_(is_ignored)
     12562-  { }
     12563-
     12564-  Expression*
     12565-  expr()
     12566-  { return this->expr_; }
     12567-
     12568- protected:
     12569-  int
     12570-  do_traverse(Traverse* traverse)
     12571-  { return this->traverse_expression(traverse, &this->expr_); }
     12572-
     12573-  void
     12574-  do_determine_types()
     12575-  { this->expr_->determine_type_no_context(); }
     12576-
     12577-  void
     12578-  do_check_types(Gogo*);
     12579+// Class Expression_statement.
     12580 
     12581-  bool
     12582-  do_may_fall_through() const;
     12583+// Constructor.
     12584 
     12585-  Bstatement*
     12586-  do_get_backend(Translate_context* context);
     12587+Expression_statement::Expression_statement(Expression* expr, bool is_ignored)
     12588+  : Statement(STATEMENT_EXPRESSION, expr->location()),
     12589+    expr_(expr), is_ignored_(is_ignored)
     12590+{
     12591+}
     12592 
     12593-  void
     12594-  do_dump_statement(Ast_dump_context*) const;
     12595+// Determine types.
     12596 
     12597- private:
     12598-  Expression* expr_;
     12599-  // Whether the value of this expression is being explicitly ignored.
     12600-  bool is_ignored_;
     12601-};
     12602+void
     12603+Expression_statement::do_determine_types()
     12604+{
     12605+  this->expr_->determine_type_no_context();
     12606+}
     12607 
     12608 // Check the types of an expression statement.  The only check we do
     12609 // is to possibly give an error about discarding the value of the
     12610@@ -1707,8 +1699,8 @@
    1113912611     this->expr_->discarding_value();
    1114012612 }
     
    1114712619 bool
    1114812620 Expression_statement::do_may_fall_through() const
    11149 @@ -1717,22 +1720,28 @@
     12621@@ -1717,22 +1709,28 @@
    1115012622   if (call != NULL)
    1115112623     {
     
    1115812630        {
    1115912631-         const Named_object* no = fe->named_object();
    11160 +         Named_object* no = ue->named_object();
    11161  
     12632-
    1116212633-         Function_type* fntype;
    1116312634-         if (no->is_function())
     
    1116712638-         else
    1116812639-           fntype = NULL;
    11169 -
     12640+         Named_object* no = ue->named_object();
     12641 
    1117012642-         // The builtin function panic does not return.
    1117112643-         if (fntype != NULL && fntype->is_builtin() && no->name() == "panic")
     
    1119012662     }
    1119112663   return true;
    11192 @@ -1953,10 +1962,15 @@
     12664@@ -1953,10 +1951,15 @@
    1119312665              && results->begin()->type()->points_to() == NULL)))
    1119412666     return false;
     
    1120812680 
    1120912681   return true;
    11210 @@ -2496,7 +2510,11 @@
     12682@@ -2496,7 +2499,11 @@
    1121112683 
    1121212684   Call_expression* ce = this->call_->call_expression();
     
    1122112693   const Expression_list* args = ce->args();
    1122212694   if (args == NULL || args->empty())
    11223 @@ -2800,6 +2818,28 @@
     12695@@ -2800,6 +2807,28 @@
    1122412696   return new Return_statement(vals, location);
    1122512697 }
     
    1125012722 
    1125112723 class Bc_statement : public Statement
    11252 @@ -3700,9 +3740,6 @@
     12724@@ -3700,9 +3729,6 @@
    1125312725   void
    1125412726   do_check_types(Gogo*);
     
    1126012732   do_get_backend(Translate_context*);
    1126112733 
    11262 @@ -3746,22 +3783,6 @@
     12734@@ -3746,22 +3772,6 @@
    1126312735     this->set_is_error();
    1126412736 }
     
    1128312755 
    1128412756 Bstatement*
    11285 @@ -3911,6 +3932,22 @@
     12757@@ -3911,6 +3921,22 @@
    1128612758   ast_dump_context->ostream() << std::endl;
    1128712759 }
     
    1130612778 
    1130712779 Switch_statement*
    11308 @@ -4050,6 +4087,27 @@
     12780@@ -4050,6 +4076,27 @@
    1130912781     }
    1131012782 }
     
    1133412806 
    1133512807 void
    11336 @@ -4148,6 +4206,25 @@
     12808@@ -4148,6 +4195,25 @@
    1133712809                        NULL);
    1133812810 }
     
    1136012832 
    1136112833 void
    11362 @@ -4237,6 +4314,22 @@
     12834@@ -4237,6 +4303,22 @@
    1136312835   return Statement::make_block_statement(b, loc);
    1136412836 }
     
    1138312855 // if necessary.
    1138412856 
    11385 @@ -4954,6 +5047,19 @@
     12857@@ -4954,6 +5036,19 @@
    1138612858   return Statement::make_block_statement(b, loc);
    1138712859 }
     
    1140312875 
    1140412876 Bstatement*
    11405 @@ -5114,6 +5220,20 @@
     12877@@ -5114,6 +5209,20 @@
    1140612878   this->continue_label_ = continue_label;
    1140712879 }
     
    1142612898diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.h gcc-4.8.1/gcc/go/gofrontend/statements.h
    1142712899--- gcc-4.8.1.orig/gcc/go/gofrontend/statements.h       2013-01-29 00:28:09.000000000 +0000
    11428 +++ gcc-4.8.1/gcc/go/gofrontend/statements.h    2013-09-13 19:01:43.133198380 +0000
    11429 @@ -207,6 +207,13 @@
     12900+++ gcc-4.8.1/gcc/go/gofrontend/statements.h    2013-10-01 16:06:43.992554285 +0000
     12901@@ -17,6 +17,7 @@
     12902 class Unnamed_label;
     12903 class Temporary_statement;
     12904 class Variable_declaration_statement;
     12905+class Expression_statement;
     12906 class Return_statement;
     12907 class Thunk_statement;
     12908 class Label_statement;
     12909@@ -207,6 +208,13 @@
    1143012910   static Return_statement*
    1143112911   make_return_statement(Expression_list*, Location);
     
    1144112921   static Statement*
    1144212922   make_break_statement(Unnamed_label* label, Location);
    11443 @@ -894,8 +901,7 @@
     12923@@ -322,6 +330,14 @@
     12924                         STATEMENT_VARIABLE_DECLARATION>();
     12925   }
     12926 
     12927+  // If this is an expression statement, return it.  Otherwise return
     12928+  // NULL.
     12929+  Expression_statement*
     12930+  expression_statement()
     12931+  {
     12932+    return this->convert<Expression_statement, STATEMENT_EXPRESSION>();
     12933+  }
     12934+
     12935   // If this is a return statement, return it.  Otherwise return NULL.
     12936   Return_statement*
     12937   return_statement()
     12938@@ -629,6 +645,43 @@
     12939   bool is_lowered_;
     12940 };
     12941 
     12942+// An expression statement.
     12943+
     12944+class Expression_statement : public Statement
     12945+{
     12946+ public:
     12947+  Expression_statement(Expression* expr, bool is_ignored);
     12948+
     12949+  Expression*
     12950+  expr()
     12951+  { return this->expr_; }
     12952+
     12953+ protected:
     12954+  int
     12955+  do_traverse(Traverse* traverse)
     12956+  { return this->traverse_expression(traverse, &this->expr_); }
     12957+
     12958+  void
     12959+  do_determine_types();
     12960+
     12961+  void
     12962+  do_check_types(Gogo*);
     12963+
     12964+  bool
     12965+  do_may_fall_through() const;
     12966+
     12967+  Bstatement*
     12968+  do_get_backend(Translate_context* context);
     12969+
     12970+  void
     12971+  do_dump_statement(Ast_dump_context*) const;
     12972+
     12973+ private:
     12974+  Expression* expr_;
     12975+  // Whether the value of this expression is being explicitly ignored.
     12976+  bool is_ignored_;
     12977+};
     12978+
     12979 // A send statement.
     12980 
     12981 class Send_statement : public Statement
     12982@@ -894,8 +947,7 @@
    1144412983   { this->clauses_->check_types(); }
    1144512984 
     
    1145112990   Bstatement*
    1145212991   do_get_backend(Translate_context*);
    11453 @@ -1086,6 +1092,9 @@
     12992@@ -1086,6 +1138,9 @@
    1145412993   Statement*
    1145512994   do_lower(Gogo*, Named_object*, Block*, Statement_inserter*);
     
    1146113000   do_get_backend(Translate_context*)
    1146213001   { go_unreachable(); }
    11463 @@ -1399,6 +1408,9 @@
     13002@@ -1399,6 +1454,9 @@
    1146413003   void
    1146513004   do_dump_statement(Ast_dump_context*) const;
     
    1147113010   // The value to switch on.  This may be NULL.
    1147213011   Expression* val_;
    11473 @@ -1449,6 +1461,11 @@
     13012@@ -1449,6 +1507,11 @@
    1147413013   lower(Type*, Block*, Temporary_statement* descriptor_temp,
    1147513014        Unnamed_label* break_label) const;
     
    1148313022   void
    1148413023   dump_clauses(Ast_dump_context*) const;
    11485 @@ -1493,6 +1510,12 @@
     13024@@ -1493,6 +1556,12 @@
    1148613025     lower(Type*, Block*, Temporary_statement* descriptor_temp,
    1148713026          Unnamed_label* break_label, Unnamed_label** stmts_label) const;
     
    1149613035     void
    1149713036     dump_clause(Ast_dump_context*) const;
    11498 @@ -1556,6 +1579,9 @@
     13037@@ -1556,6 +1625,9 @@
    1149913038   void
    1150013039   do_dump_statement(Ast_dump_context*) const;
     
    1150813047diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.cc gcc-4.8.1/gcc/go/gofrontend/types.cc
    1150913048--- gcc-4.8.1.orig/gcc/go/gofrontend/types.cc   2013-02-01 00:23:22.000000000 +0000
    11510 +++ gcc-4.8.1/gcc/go/gofrontend/types.cc        2013-09-13 19:01:43.136531705 +0000
     13049+++ gcc-4.8.1/gcc/go/gofrontend/types.cc        2013-10-01 16:06:43.992554285 +0000
    1151113050@@ -1298,8 +1298,8 @@
    1151213051   // converting INITIALIZER.
     
    1158713126   ++p;
    1158813127   go_assert(p == fields->end());
    11589 @@ -3407,6 +3387,19 @@
     13128@@ -2308,9 +2288,7 @@
     13129       }
     13130 
     13131     case TYPE_NAMED:
     13132-      // Begin converting this type to the backend representation.
     13133-      // This will create a placeholder if necessary.
     13134-      this->get_backend(gogo);
     13135+      this->named_type()->convert(gogo);
     13136       return this->named_type()->is_named_backend_type_size_known();
     13137 
     13138     case TYPE_FORWARD:
     13139@@ -3407,6 +3385,16 @@
    1159013140 Btype*
    1159113141 Function_type::do_get_backend(Gogo* gogo)
     
    1159413144+  // is represented as a pointer to a struct whose first field is the
    1159513145+  // actual function.  So that is what we return as the type of a Go
    11596 +  // function.  The function stored in the first field always that
    11597 +  // takes one additional trailing argument: the closure pointer.  For
    11598 +  // a top-level function, this additional argument will only be
    11599 +  // passed when invoking the function indirectly, via the struct.
     13146+  // function.
    1160013147+
    1160113148+  Location loc = this->location();
     
    1160713154   if (this->receiver_ != NULL)
    1160813155     {
    11609 @@ -3422,9 +3415,15 @@
    11610      }
    11611  
    11612    std::vector<Backend::Btyped_identifier> bparameters;
    11613 -  if (this->parameters_ != NULL)
    11614 +  size_t last;
    11615 +  if (this->parameters_ == NULL)
    11616 +    {
    11617 +      bparameters.resize(1);
    11618 +      last = 0;
    11619 +    }
    11620 +  else
    11621      {
    11622 -      bparameters.resize(this->parameters_->size());
    11623 +      bparameters.resize(this->parameters_->size() + 1);
    11624        size_t i = 0;
    11625        for (Typed_identifier_list::const_iterator p = this->parameters_->begin();
    11626            p != this->parameters_->end();
    11627 @@ -3434,8 +3433,12 @@
    11628           bparameters[i].btype = p->type()->get_backend(gogo);
    11629           bparameters[i].location = p->location();
    11630         }
    11631 -      go_assert(i == bparameters.size());
    11632 +      last = i;
    11633      }
    11634 +  go_assert(last + 1 == bparameters.size());
    11635 +  bparameters[last].name = "$closure";
    11636 +  bparameters[last].btype = ptr_struct_type;
    11637 +  bparameters[last].location = loc;
    11638  
    11639    std::vector<Backend::Btyped_identifier> bresults;
    11640    if (this->results_ != NULL)
    11641 @@ -3453,8 +3456,15 @@
     13156@@ -3453,8 +3441,15 @@
    1164213157       go_assert(i == bresults.size());
    1164313158     }
     
    1165713172 
    1165813173 // The type of a function type descriptor.
    11659 @@ -3826,6 +3836,49 @@
     13174@@ -3826,6 +3821,47 @@
    1166013175   return ret;
    1166113176 }
     
    1166513180+
    1166613181+Function_type*
    11667 +Function_type::copy_with_closure(Type* closure_type) const
     13182+Function_type::copy_with_names() const
    1166813183+{
    1166913184+  Typed_identifier_list* new_params = new Typed_identifier_list();
     
    1168313198+       }
    1168413199+    }
    11685 +  new_params->push_back(Typed_identifier("closure.0", closure_type,
    11686 +                                        this->location_));
    1168713200+
    1168813201+  const Typed_identifier_list* orig_results = this->results_;
     
    1170713220 
    1170813221 Function_type*
    11709 @@ -4168,6 +4221,22 @@
     13222@@ -4168,6 +4204,22 @@
    1171013223     }
    1171113224 }
     
    1173013243 
    1173113244 // A hash table used to find identical unnamed structs so that they
    11732 @@ -4532,6 +4601,7 @@
     13245@@ -4175,6 +4227,11 @@
     13246 
     13247 Struct_type::Identical_structs Struct_type::identical_structs;
     13248 
     13249+// A hash table used to merge method sets for identical unnamed
     13250+// structs.
     13251+
     13252+Struct_type::Struct_method_tables Struct_type::struct_method_tables;
     13253+
     13254 // Traversal.
     13255 
     13256 int
     13257@@ -4532,6 +4589,7 @@
    1173313258              go_assert(sub != NULL);
    1173413259            }
     
    1173813263       else if (subdepth > found_depth)
    1173913264        delete sub;
    11740 @@ -4781,11 +4851,16 @@
     13265@@ -4638,9 +4696,24 @@
     13266                                    const Interface_type* interface,
     13267                                    bool is_pointer)
     13268 {
     13269+  std::pair<Struct_type*, Struct_type::Struct_method_table_pair*>
     13270+    val(this, NULL);
     13271+  std::pair<Struct_type::Struct_method_tables::iterator, bool> ins =
     13272+    Struct_type::struct_method_tables.insert(val);
     13273+
     13274+  Struct_method_table_pair* smtp;
     13275+  if (!ins.second)
     13276+    smtp = ins.first->second;
     13277+  else
     13278+    {
     13279+      smtp = new Struct_method_table_pair();
     13280+      smtp->first = NULL;
     13281+      smtp->second = NULL;
     13282+      ins.first->second = smtp;
     13283+    }
     13284+
     13285   return Type::interface_method_table(gogo, this, interface, is_pointer,
     13286-                                     &this->interface_method_tables_,
     13287-                                     &this->pointer_interface_method_tables_);
     13288+                                     &smtp->first, &smtp->second);
     13289 }
     13290 
     13291 // Convert struct fields to the backend representation.  This is not
     13292@@ -4781,11 +4854,16 @@
    1174113293 
    1174213294       ++q;
     
    1175813310          fvals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc));
    1175913311        }
    11760 @@ -6227,7 +6302,8 @@
     13312@@ -6227,7 +6305,8 @@
    1176113313 
    1176213314   std::string mangled_name = "__go_map_" + this->mangled_name(gogo);
     
    1176813320                                                      bloc);
    1176913321 
    11770 @@ -6235,7 +6311,7 @@
     13322@@ -6235,7 +6314,7 @@
    1177113323   context.set_is_const();
    1177213324   Bexpression* binitializer = tree_to_expr(initializer->get_tree(&context));
     
    1177713329                                             binitializer);
    1177813330 
    11779 @@ -7569,7 +7645,7 @@
     13331@@ -7569,7 +7648,7 @@
    1178013332       // the child class.
    1178113333       return this->do_bind_method(expr, location);
     
    1178613338 
    1178713339 // Return the named object associated with a method.  This may only be
    11788 @@ -7612,8 +7688,8 @@
     13340@@ -7612,8 +7691,8 @@
    1178913341 Named_method::do_bind_method(Expression* expr, Location location) const
    1179013342 {
     
    1179713349   // the real method expects a different type.  We need to cast the
    1179813350   // first argument.
    11799 @@ -8991,28 +9067,16 @@
     13351@@ -8991,28 +9070,16 @@
    1180013352   Call_expression* call = Expression::make_call(func, arguments, is_varargs,
    1180113353                                                location);
     
    1183113383 
    1183213384 // Apply FIELD_INDEXES to EXPR.  The field indexes have to be applied
    11833 @@ -9353,13 +9417,18 @@
     13385@@ -9202,7 +9269,11 @@
     13386     }
     13387   else
     13388     {
     13389-      if (!ambig1.empty())
     13390+      if (Gogo::is_erroneous_name(name))
     13391+       {
     13392+         // An error was already reported.
     13393+       }
     13394+      else if (!ambig1.empty())
     13395        error_at(location, "%qs is ambiguous via %qs and %qs",
     13396                 Gogo::message_name(name).c_str(), ambig1.c_str(),
     13397                 ambig2.c_str());
     13398@@ -9353,13 +9424,18 @@
    1183413399        fnt = pf->type()->deref()->named_type();
    1183513400       go_assert(fnt != NULL);
     
    1185313418diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.h gcc-4.8.1/gcc/go/gofrontend/types.h
    1185413419--- gcc-4.8.1.orig/gcc/go/gofrontend/types.h    2013-02-01 00:23:22.000000000 +0000
    11855 +++ gcc-4.8.1/gcc/go/gofrontend/types.h 2013-09-13 19:01:43.139865030 +0000
     13420+++ gcc-4.8.1/gcc/go/gofrontend/types.h 2013-10-01 16:06:43.992554285 +0000
    1185613421@@ -523,6 +523,14 @@
    1185713422   static Type*
     
    1188813453   copy_with_receiver(Type*) const;
    1188913454 
    11890 +  // Return a copy of this type ignoring any receiver and adding a
    11891 +  // final closure parameter of type CLOSURE_TYPE.  This is used when
    11892 +  // creating descriptors.
     13455+  // Return a copy of this type ignoring any receiver and using dummy
     13456+  // names for all parameters.  This is used for thunks for method
     13457+  // values.
    1189313458+  Function_type*
    11894 +  copy_with_closure(Type* closure_type) const;
     13459+  copy_with_names() const;
    1189513460+
    1189613461   static Type*
     
    1191713482   Type*
    1191813483   type() const
     13484@@ -2031,8 +2041,7 @@
     13485  public:
     13486   Struct_type(Struct_field_list* fields, Location location)
     13487     : Type(TYPE_STRUCT),
     13488-      fields_(fields), location_(location), all_methods_(NULL),
     13489-      interface_method_tables_(NULL), pointer_interface_method_tables_(NULL)
     13490+      fields_(fields), location_(location), all_methods_(NULL)
     13491   { }
     13492 
     13493   // Return the field NAME.  This only looks at local fields, not at
     13494@@ -2190,6 +2199,16 @@
     13495 
     13496   static Identical_structs identical_structs;
     13497 
     13498+  // Used to manage method tables for identical unnamed structs.
     13499+  typedef std::pair<Interface_method_tables*, Interface_method_tables*>
     13500+    Struct_method_table_pair;
     13501+
     13502+  typedef Unordered_map_hash(Struct_type*, Struct_method_table_pair*,
     13503+                            Type_hash_identical, Type_identical)
     13504+    Struct_method_tables;
     13505+
     13506+  static Struct_method_tables struct_method_tables;
     13507+
     13508   // Used to avoid infinite loops in field_reference_depth.
     13509   struct Saw_named_type
     13510   {
     13511@@ -2208,13 +2227,6 @@
     13512   Location location_;
     13513   // If this struct is unnamed, a list of methods.
     13514   Methods* all_methods_;
     13515-  // A mapping from interfaces to the associated interface method
     13516-  // tables for this type.  Only used if this struct is unnamed.
     13517-  Interface_method_tables* interface_method_tables_;
     13518-  // A mapping from interfaces to the associated interface method
     13519-  // tables for pointers to this type.  Only used if this struct is
     13520-  // unnamed.
     13521-  Interface_method_tables* pointer_interface_method_tables_;
     13522 };
     13523 
     13524 // The type of an array.
    1191913525diff -Naur gcc-4.8.1.orig/gcc/graphite-clast-to-gimple.c gcc-4.8.1/gcc/graphite-clast-to-gimple.c
    1192013526--- gcc-4.8.1.orig/gcc/graphite-clast-to-gimple.c       2013-01-10 20:38:27.000000000 +0000
    11921 +++ gcc-4.8.1/gcc/graphite-clast-to-gimple.c    2013-09-13 19:01:43.959862879 +0000
     13527+++ gcc-4.8.1/gcc/graphite-clast-to-gimple.c    2013-10-01 16:07:00.564553809 +0000
    1192213528@@ -1170,8 +1170,11 @@
    1192313529   redirect_edge_succ_nodup (next_e, after);
     
    1193513541diff -Naur gcc-4.8.1.orig/gcc/graphite-dependences.c gcc-4.8.1/gcc/graphite-dependences.c
    1193613542--- gcc-4.8.1.orig/gcc/graphite-dependences.c   2013-01-10 20:38:27.000000000 +0000
    11937 +++ gcc-4.8.1/gcc/graphite-dependences.c        2013-09-13 19:01:43.963196204 +0000
     13543+++ gcc-4.8.1/gcc/graphite-dependences.c        2013-10-01 16:07:00.564553809 +0000
    1193813544@@ -297,7 +297,7 @@
    1193913545              int depth)
     
    1196413570diff -Naur gcc-4.8.1.orig/gcc/ipa-cp.c gcc-4.8.1/gcc/ipa-cp.c
    1196513571--- gcc-4.8.1.orig/gcc/ipa-cp.c 2013-05-09 11:56:32.000000000 +0000
    11966 +++ gcc-4.8.1/gcc/ipa-cp.c      2013-09-13 19:01:43.166531626 +0000
     13572+++ gcc-4.8.1/gcc/ipa-cp.c      2013-10-01 16:06:43.996554285 +0000
    1196713573@@ -1507,7 +1507,8 @@
    1196813574   tree otr_type;
     
    1198713593diff -Naur gcc-4.8.1.orig/gcc/ipa-prop.c gcc-4.8.1/gcc/ipa-prop.c
    1198813594--- gcc-4.8.1.orig/gcc/ipa-prop.c       2013-05-23 13:25:23.000000000 +0000
    11989 +++ gcc-4.8.1/gcc/ipa-prop.c    2013-09-13 19:01:43.169864951 +0000
     13595+++ gcc-4.8.1/gcc/ipa-prop.c    2013-10-01 16:06:43.996554285 +0000
    1199013596@@ -678,13 +678,19 @@
    1199113597   bool modified = false;
     
    1201413620diff -Naur gcc-4.8.1.orig/gcc/ira.c gcc-4.8.1/gcc/ira.c
    1201513621--- gcc-4.8.1.orig/gcc/ira.c    2013-05-23 10:36:55.000000000 +0000
    12016 +++ gcc-4.8.1/gcc/ira.c 2013-09-13 19:01:43.169864951 +0000
     13622+++ gcc-4.8.1/gcc/ira.c 2013-10-01 16:06:43.996554285 +0000
    1201713623@@ -2863,6 +2863,28 @@
    1201813624     }
     
    1211213718diff -Naur gcc-4.8.1.orig/gcc/lra-assigns.c gcc-4.8.1/gcc/lra-assigns.c
    1211313719--- gcc-4.8.1.orig/gcc/lra-assigns.c    2013-02-15 19:17:02.000000000 +0000
    12114 +++ gcc-4.8.1/gcc/lra-assigns.c 2013-09-13 19:01:43.173198275 +0000
     13720+++ gcc-4.8.1/gcc/lra-assigns.c 2013-10-01 16:06:43.996554285 +0000
    1211513721@@ -116,6 +116,11 @@
    1211613722 /* Map regno to the corresponding regno assignment info.  */
     
    1216013766diff -Naur gcc-4.8.1.orig/gcc/lra-constraints.c gcc-4.8.1/gcc/lra-constraints.c
    1216113767--- gcc-4.8.1.orig/gcc/lra-constraints.c        2013-05-02 19:16:29.000000000 +0000
    12162 +++ gcc-4.8.1/gcc/lra-constraints.c     2013-09-13 19:01:43.173198275 +0000
     13768+++ gcc-4.8.1/gcc/lra-constraints.c     2013-10-01 16:06:43.996554285 +0000
    1216313769@@ -1388,7 +1388,7 @@
    1216413770   for (nalt = 0; nalt < n_alternatives; nalt++)
     
    1218113787diff -Naur gcc-4.8.1.orig/gcc/omp-low.c gcc-4.8.1/gcc/omp-low.c
    1218213788--- gcc-4.8.1.orig/gcc/omp-low.c        2013-05-16 10:45:55.000000000 +0000
    12183 +++ gcc-4.8.1/gcc/omp-low.c     2013-09-13 19:01:43.179864925 +0000
     13789+++ gcc-4.8.1/gcc/omp-low.c     2013-10-01 16:06:44.000554285 +0000
    1218413790@@ -836,6 +836,7 @@
    1218513791   DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (var);
     
    1219013796   DECL_SEEN_IN_BIND_EXPR_P (copy) = 1;
    1219113797 
     13798@@ -5009,8 +5010,7 @@
     13799     {
     13800       /* If we are not inside a combined parallel+sections region,
     13801         call GOMP_sections_start.  */
     13802-      t = build_int_cst (unsigned_type_node,
     13803-                        exit_reachable ? len - 1 : len);
     13804+      t = build_int_cst (unsigned_type_node, len - 1);
     13805       u = builtin_decl_explicit (BUILT_IN_GOMP_SECTIONS_START);
     13806       stmt = gimple_build_call (u, 1, t);
     13807     }
    1219213808diff -Naur gcc-4.8.1.orig/gcc/passes.c gcc-4.8.1/gcc/passes.c
    1219313809--- gcc-4.8.1.orig/gcc/passes.c 2013-02-20 15:19:13.000000000 +0000
    12194 +++ gcc-4.8.1/gcc/passes.c      2013-09-13 19:01:43.179864925 +0000
    12195 @@ -1531,15 +1531,15 @@
     13810+++ gcc-4.8.1/gcc/passes.c      2013-10-01 16:06:44.000554285 +0000
     13811@@ -1531,18 +1531,21 @@
    1219613812       /* Perform simple scalar cleanup which is constant/copy propagation.  */
    1219713813       NEXT_PASS (pass_ccp);
     
    1221313829          need to adjust LIM to be more friendly towards preserving accurate
    1221413830         debug information here.  */
     13831+      /* Split critical edges before late uninit warning to reduce the
     13832+         number of false positives from it.  */
     13833+      NEXT_PASS (pass_split_crit_edges);
     13834       NEXT_PASS (pass_late_warn_uninitialized);
     13835       NEXT_PASS (pass_uncprop);
     13836       NEXT_PASS (pass_local_pure_const);
    1221513837diff -Naur gcc-4.8.1.orig/gcc/recog.c gcc-4.8.1/gcc/recog.c
    1221613838--- gcc-4.8.1.orig/gcc/recog.c  2013-01-10 20:38:27.000000000 +0000
    12217 +++ gcc-4.8.1/gcc/recog.c       2013-09-13 19:01:43.183198249 +0000
     13839+++ gcc-4.8.1/gcc/recog.c       2013-10-01 16:06:44.000554285 +0000
    1221813840@@ -1949,9 +1949,6 @@
    1221913841     (strictp ? strict_memory_address_addr_space_p
     
    1235713979        {
    1235813980          add_to_hard_reg_set (reg_set, mode, regno);
     13981diff -Naur gcc-4.8.1.orig/gcc/recog.h gcc-4.8.1/gcc/recog.h
     13982--- gcc-4.8.1.orig/gcc/recog.h  2013-01-10 20:38:27.000000000 +0000
     13983+++ gcc-4.8.1/gcc/recog.h       2013-10-01 16:06:44.000554285 +0000
     13984@@ -256,7 +256,57 @@
     13985 
     13986 typedef int (*insn_operand_predicate_fn) (rtx, enum machine_mode);
     13987 typedef const char * (*insn_output_fn) (rtx *, rtx);
     13988-typedef rtx (*insn_gen_fn) (rtx, ...);
     13989+
     13990+struct insn_gen_fn
     13991+{
     13992+  typedef rtx (*f0) (void);
     13993+  typedef rtx (*f1) (rtx);
     13994+  typedef rtx (*f2) (rtx, rtx);
     13995+  typedef rtx (*f3) (rtx, rtx, rtx);
     13996+  typedef rtx (*f4) (rtx, rtx, rtx, rtx);
     13997+  typedef rtx (*f5) (rtx, rtx, rtx, rtx, rtx);
     13998+  typedef rtx (*f6) (rtx, rtx, rtx, rtx, rtx, rtx);
     13999+  typedef rtx (*f7) (rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14000+  typedef rtx (*f8) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14001+  typedef rtx (*f9) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14002+  typedef rtx (*f10) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14003+  typedef rtx (*f11) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14004+  typedef rtx (*f12) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14005+  typedef rtx (*f13) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14006+  typedef rtx (*f14) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14007+  typedef rtx (*f15) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14008+  typedef rtx (*f16) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
     14009+
     14010+  typedef f0 stored_funcptr;
     14011+
     14012+  rtx operator () (void) const { return ((f0)func) (); }
     14013+  rtx operator () (rtx a0) const { return ((f1)func) (a0); }
     14014+  rtx operator () (rtx a0, rtx a1) const { return ((f2)func) (a0, a1); }
     14015+  rtx operator () (rtx a0, rtx a1, rtx a2) const { return ((f3)func) (a0, a1, a2); }
     14016+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3) const { return ((f4)func) (a0, a1, a2, a3); }
     14017+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4) const { return ((f5)func) (a0, a1, a2, a3, a4); }
     14018+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5) const { return ((f6)func) (a0, a1, a2, a3, a4, a5); }
     14019+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6) const { return ((f7)func) (a0, a1, a2, a3, a4, a5, a6); }
     14020+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7) const { return ((f8)func) (a0, a1, a2, a3, a4, a5, a6, a7); }
     14021+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8) const { return ((f9)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8); }
     14022+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9) const { return ((f10)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }
     14023+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10) const { return ((f11)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); }
     14024+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11) const { return ((f12)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); }
     14025+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12) const { return ((f13)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); }
     14026+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12, rtx a13) const { return ((f14)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); }
     14027+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12, rtx a13, rtx a14) const { return ((f15)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); }
     14028+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12, rtx a13, rtx a14, rtx a15) const { return ((f16)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); }
     14029+
     14030+  // This is for compatibility of code that invokes functions like
     14031+  //   (*funcptr) (arg)
     14032+  insn_gen_fn operator * (void) const { return *this; }
     14033+
     14034+  // The wrapped function pointer must be public and there must not be any
     14035+  // constructors.  Otherwise the insn_data_d struct initializers generated
     14036+  // by genoutput.c will result in static initializer functions, which defeats
     14037+  // the purpose of the generated insn_data_d array.
     14038+  stored_funcptr func;
     14039+};
     14040 
     14041 struct insn_operand_data
     14042 {
    1235914043diff -Naur gcc-4.8.1.orig/gcc/simplify-rtx.c gcc-4.8.1/gcc/simplify-rtx.c
    1236014044--- gcc-4.8.1.orig/gcc/simplify-rtx.c   2013-03-05 06:04:14.000000000 +0000
    12361 +++ gcc-4.8.1/gcc/simplify-rtx.c        2013-09-13 19:01:43.183198249 +0000
     14045+++ gcc-4.8.1/gcc/simplify-rtx.c        2013-10-01 16:06:44.000554285 +0000
    1236214046@@ -2784,6 +2784,7 @@
    1236314047           HOST_WIDE_INT mask = INTVAL (trueop1) << count;
     
    1237014054diff -Naur gcc-4.8.1.orig/gcc/testsuite/c-c++-common/gomp/pr58257.c gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c
    1237114055--- gcc-4.8.1.orig/gcc/testsuite/c-c++-common/gomp/pr58257.c    1970-01-01 00:00:00.000000000 +0000
    12372 +++ gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c 2013-09-13 19:01:43.186531574 +0000
     14056+++ gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c 2013-10-01 16:06:44.000554285 +0000
    1237314057@@ -0,0 +1,15 @@
    1237414058+/* PR middle-end/58257 */
     
    1238914073diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C
    1239014074--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C        1970-01-01 00:00:00.000000000 +0000
    12391 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C     2013-09-13 19:01:43.196531548 +0000
     14075+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C     2013-10-01 16:06:44.008554285 +0000
    1239214076@@ -0,0 +1,16 @@
    1239314077+// PR c++/57901
     
    1240914093diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C
    1241014094--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C      1970-01-01 00:00:00.000000000 +0000
    12411 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C   2013-09-13 19:01:43.196531548 +0000
     14095+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C   2013-10-01 16:06:44.008554285 +0000
    1241214096@@ -0,0 +1,20 @@
    1241314097+// PR c++/53211
     
    1243314117diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C
    1243414118--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C     1970-01-01 00:00:00.000000000 +0000
    12435 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C  2013-09-13 19:01:43.196531548 +0000
     14119+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C  2013-10-01 16:06:44.008554285 +0000
    1243614120@@ -0,0 +1,24 @@
    1243714121+// PR c++/57319
     
    1246114145diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C
    1246214146--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C     1970-01-01 00:00:00.000000000 +0000
    12463 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C  2013-09-13 19:01:43.196531548 +0000
     14147+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C  2013-10-01 16:06:44.008554285 +0000
    1246414148@@ -0,0 +1,20 @@
    1246514149+// { dg-do run }
     
    1248514169diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C
    1248614170--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C      1970-01-01 00:00:00.000000000 +0000
    12487 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C   2013-09-13 19:01:43.196531548 +0000
     14171+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C   2013-10-01 16:06:44.008554285 +0000
    1248814172@@ -0,0 +1,9 @@
    1248914173+// PR c++/56930
     
    1249814182diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C
    1249914183--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C     1970-01-01 00:00:00.000000000 +0000
    12500 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C  2013-09-13 19:01:43.196531548 +0000
     14184+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C  2013-10-01 16:06:44.008554285 +0000
    1250114185@@ -0,0 +1,24 @@
    1250214186+// PR c++/57526
     
    1252614210diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C
    1252714211--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C   1970-01-01 00:00:00.000000000 +0000
    12528 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C        2013-09-13 19:01:43.196531548 +0000
     14212+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C        2013-10-01 16:06:44.008554285 +0000
    1252914213@@ -0,0 +1,30 @@
    1253014214+// PR c++/58083
     
    1256014244diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C
    1256114245--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C   1970-01-01 00:00:00.000000000 +0000
    12562 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C        2013-09-13 19:01:43.196531548 +0000
     14246+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C        2013-10-01 16:06:44.008554285 +0000
    1256314247@@ -0,0 +1,26 @@
    1256414248+// PR c++/57437
     
    1259014274diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C
    1259114275--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C      1970-01-01 00:00:00.000000000 +0000
    12592 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C   2013-09-13 19:01:43.196531548 +0000
     14276+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C   2013-10-01 16:06:44.012554285 +0000
    1259314277@@ -0,0 +1,87 @@
    1259414278+// PR c++/57645
     
    1268114365diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C
    1268214366--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C 1970-01-01 00:00:00.000000000 +0000
    12683 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C      2013-09-13 19:01:43.196531548 +0000
     14367+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C      2013-10-01 16:06:44.012554285 +0000
    1268414368@@ -0,0 +1,17 @@
    1268514369+// { dg-options "-std=c++11 -Wall -Wextra" }
     
    1270214386diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C
    1270314387--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C      1970-01-01 00:00:00.000000000 +0000
    12704 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C   2013-09-13 19:01:43.199864872 +0000
     14388+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C   2013-10-01 16:06:44.012554285 +0000
    1270514389@@ -0,0 +1,18 @@
    1270614390+// PR c++/57825
     
    1272414408diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C
    1272514409--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C       1970-01-01 00:00:00.000000000 +0000
    12726 +++ gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C    2013-09-13 19:01:43.199864872 +0000
     14410+++ gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C    2013-10-01 16:06:44.012554285 +0000
    1272714411@@ -0,0 +1,14 @@
    1272814412+// PR c++/57545
     
    1274214426diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C
    1274314427--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C   1970-01-01 00:00:00.000000000 +0000
    12744 +++ gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C        2013-09-13 19:01:43.199864872 +0000
     14428+++ gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C        2013-10-01 16:06:44.012554285 +0000
    1274514429@@ -0,0 +1,9 @@
    1274614430+// PR c++/57551
     
    1275514439diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C
    1275614440--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C   1970-01-01 00:00:00.000000000 +0000
    12757 +++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C        2013-09-13 19:01:43.199864872 +0000
     14441+++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C        2013-10-01 16:06:44.012554285 +0000
    1275814442@@ -0,0 +1,199 @@
    1275914443+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
     
    1295614640+/* { dg-prune-output "int foo.* previously defined here" } */
    1295714641+/* { dg-prune-output "No dispatcher found for" } */
     14642diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57735.C gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57735.C
     14643--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57735.C   1970-01-01 00:00:00.000000000 +0000
     14644+++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57735.C        2013-10-01 16:06:44.012554285 +0000
     14645@@ -0,0 +1,145 @@
     14646+/* { dg-do compile { target arm*-*-* } } */
     14647+/* { dg-options "-march=armv5te -marm  -mtune=xscale -mfloat-abi=soft -O1" } */
     14648+
     14649+typedef unsigned int size_t;
     14650+__extension__
     14651+typedef long long int int64_t;
     14652+namespace WTF {
     14653+    template<typename T> class RefPtr {
     14654+    public:
     14655+        inline T* operator->() const { return m_ptr; }
     14656+        T* m_ptr;
     14657+    };
     14658+}
     14659+using WTF::RefPtr;
     14660+namespace JSC {
     14661+    class ExecState;
     14662+    class JSString;
     14663+    typedef int64_t EncodedJSValue;
     14664+    class JSValue {
     14665+    public:
     14666+        static EncodedJSValue encode(JSValue);
     14667+        JSString* toString(ExecState*) const;
     14668+    };
     14669+}
     14670+typedef unsigned char LChar;
     14671+    typedef short unsigned int UChar;
     14672+namespace WTF {
     14673+    template<typename T, size_t inlineCapacity = 0>
     14674+    class Vector {
     14675+    public:
     14676+        template<typename U> bool tryAppend(const U*, size_t);
     14677+    };
     14678+}
     14679+using WTF::Vector;
     14680+namespace WTF {
     14681+template<typename CharType> inline bool isASCIIDigit(CharType c)
     14682+{
     14683+}
     14684+template<typename CharType> inline bool isASCIIHexDigit(CharType c)
     14685+{
     14686+    return isASCIIDigit(c) || ((c | 0x20) >= 'a' && (c | 0x20) <= 'f');
     14687+}
     14688+    class StringImpl;
     14689+}
     14690+using WTF::StringImpl;
     14691+namespace WTF {
     14692+class StringImpl {
     14693+public:
     14694+    unsigned length() const { return m_length; }
     14695+    unsigned m_length;
     14696+};
     14697+}
     14698+namespace JSC {
     14699+    class Register {
     14700+    };
     14701+class UString {
     14702+public:
     14703+    unsigned length() const
     14704+    {
     14705+        return m_impl->length();
     14706+    }
     14707+    const LChar* characters8() const
     14708+    {
     14709+    }
     14710+    RefPtr<StringImpl> m_impl;
     14711+};
     14712+    class ExecState : private Register {
     14713+    public:
     14714+        JSValue argument(size_t argument)
     14715+        {
     14716+        }
     14717+    };
     14718+    class JSCell {
     14719+    };
     14720+    class JSString : public JSCell {
     14721+    public:
     14722+        const UString& value(ExecState*) const;
     14723+    };
     14724+class JSStringBuilder {
     14725+public:
     14726+    void append(const UChar u)
     14727+    {
     14728+        m_okay &= buffer16.tryAppend(&u, 1);
     14729+    }
     14730+    Vector<UChar, 64> buffer16;
     14731+    bool m_okay;
     14732+};
     14733+template <typename T>
     14734+class Lexer {
     14735+public:
     14736+    static unsigned char convertHex(int c1, int c2);
     14737+};
     14738+}
     14739+namespace WTF {
     14740+namespace Unicode {
     14741+    int UTF8SequenceLength(char);
     14742+    int decodeUTF8Sequence(const char*);
     14743+}
     14744+}
     14745+using namespace WTF;
     14746+using namespace Unicode;
     14747+namespace JSC {
     14748+template <typename CharType>
     14749+static JSValue decode(ExecState* exec, const CharType* characters, int length, const char* doNotUnescape, bool strict)
     14750+{
     14751+    JSStringBuilder builder;
     14752+    int k = 0;
     14753+    UChar u = 0;
     14754+    while (k < length) {
     14755+        const CharType* p = characters + k;
     14756+        CharType c = *p;
     14757+        if (c == '%') {
     14758+            int charLen = 0;
     14759+            if (k <= length - 3 && isASCIIHexDigit(p[1]) && isASCIIHexDigit(p[2])) {
     14760+                const char b0 = Lexer<CharType>::convertHex(p[1], p[2]);
     14761+                const int sequenceLen = UTF8SequenceLength(b0);
     14762+                if (sequenceLen && k <= length - sequenceLen * 3) {
     14763+                    charLen = sequenceLen * 3;
     14764+                    char sequence[5];
     14765+                    if (charLen != 0) {
     14766+                        const int character = decodeUTF8Sequence(sequence);
     14767+                        if (character < 0 || character >= 0x110000)
     14768+                            charLen = 0;
     14769+                        else if (character >= 0x10000) {
     14770+                            builder.append(static_cast<UChar>(0xD800 | ((character - 0x10000) >> 10)));
     14771+                        } else
     14772+                            u = static_cast<UChar>(character);
     14773+                    }
     14774+                }
     14775+            }
     14776+        }
     14777+    }
     14778+}
     14779+static JSValue decode(ExecState* exec, const char* doNotUnescape, bool strict)
     14780+{
     14781+    UString str = exec->argument(0).toString(exec)->value(exec);
     14782+        return decode(exec, str.characters8(), str.length(), doNotUnescape, strict);
     14783+}
     14784+EncodedJSValue globalFuncDecodeURI(ExecState* exec)
     14785+{
     14786+    static const char do_not_unescape_when_decoding_URI[] =
     14787+        "#$&+,/:;=?@";
     14788+    return JSValue::encode(decode(exec, do_not_unescape_when_decoding_URI, true));
     14789+}
     14790+}
    1295814791diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C
    1295914792--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C   1970-01-01 00:00:00.000000000 +0000
    12960 +++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C        2013-09-13 19:01:43.199864872 +0000
     14793+++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C        2013-10-01 16:06:44.012554285 +0000
    1296114794@@ -0,0 +1,22 @@
    1296214795+// PR tree-optimization/58006
     
    1298414817diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C
    1298514818--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C   1970-01-01 00:00:00.000000000 +0000
    12986 +++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C        2013-09-13 19:01:43.199864872 +0000
     14819+++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C        2013-10-01 16:06:44.012554285 +0000
    1298714820@@ -0,0 +1,14 @@
    1298814821+// PR tree-optimization/58165
     
    1300214835diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/ref-qual2.C gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C
    1300314836--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/ref-qual2.C       1970-01-01 00:00:00.000000000 +0000
    13004 +++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C    2013-09-13 19:01:43.199864872 +0000
     14837+++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C    2013-10-01 16:06:44.012554285 +0000
    1300514838@@ -0,0 +1,6 @@
    1300614839+// PR c++/57532
     
    1301014843+    return (int() & int());
    1301114844+}
     14845diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/using4.C gcc-4.8.1/gcc/testsuite/g++.dg/parse/using4.C
     14846--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/using4.C  1970-01-01 00:00:00.000000000 +0000
     14847+++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/using4.C       2013-10-01 16:06:44.012554285 +0000
     14848@@ -0,0 +1,20 @@
     14849+// PR c++/58457
     14850+
     14851+struct allocator
     14852+{
     14853+  void operator delete (void*);
     14854+  void* operator new (__SIZE_TYPE__, void*);
     14855+};
     14856+
     14857+struct type : public allocator
     14858+{
     14859+  type() {}
     14860+  using allocator::operator new;
     14861+  using allocator::operator delete;
     14862+};
     14863+
     14864+int main()
     14865+{
     14866+  new (0) type;
     14867+  return 0;
     14868+}
    1301214869diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C
    1301314870--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C       1970-01-01 00:00:00.000000000 +0000
    13014 +++ gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C    2013-09-13 19:01:43.199864872 +0000
     14871+++ gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C    2013-10-01 16:06:44.012554285 +0000
    1301514872@@ -0,0 +1,226 @@
    1301614873+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
     
    1324215099diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C
    1324315100--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C    1970-01-01 00:00:00.000000000 +0000
    13244 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C 2013-09-13 19:01:43.199864872 +0000
     15101+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C 2013-10-01 16:06:44.012554285 +0000
    1324515102@@ -0,0 +1,12 @@
    1324615103+// PR c++/58022
     
    1325815115diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C
    1325915116--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C     1970-01-01 00:00:00.000000000 +0000
    13260 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C  2013-09-13 19:01:43.199864872 +0000
     15117+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C  2013-10-01 16:06:44.012554285 +0000
    1326115118@@ -0,0 +1,17 @@
    1326215119+// PR c++/57550
     
    1327915136diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C
    1328015137--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C 1970-01-01 00:00:00.000000000 +0000
    13281 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C      2013-09-13 19:01:43.199864872 +0000
     15138+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C      2013-10-01 16:06:44.012554285 +0000
    1328215139@@ -0,0 +1,8 @@
    1328315140+// PR c++/57771
     
    1329115148diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C
    1329215149--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C      1970-01-01 00:00:00.000000000 +0000
    13293 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C   2013-09-13 19:01:43.203198197 +0000
     15150+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C   2013-10-01 16:06:44.012554285 +0000
    1329415151@@ -0,0 +1,26 @@
    1329515152+// PR c++/58119
     
    1331915176+  delete b;                    // { dg-error "template|delete" }
    1332015177+}
     15178diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/inherit9.C gcc-4.8.1/gcc/testsuite/g++.dg/template/inherit9.C
     15179--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/inherit9.C     1970-01-01 00:00:00.000000000 +0000
     15180+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/inherit9.C  2013-10-01 16:06:44.012554285 +0000
     15181@@ -0,0 +1,15 @@
     15182+// PR c++/58273
     15183+
     15184+class A {};
     15185+class B
     15186+{
     15187+  int goo(A);
     15188+};
     15189+template<typename E>
     15190+class D : public B
     15191+{
     15192+  void foo(A t)
     15193+  {
     15194+    int const i(B::goo(t));
     15195+  }
     15196+};
    1332115197diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C
    1332215198--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C      1970-01-01 00:00:00.000000000 +0000
    13323 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C   2013-09-13 19:01:43.203198197 +0000
     15199+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C   2013-10-01 16:06:44.012554285 +0000
    1332415200@@ -0,0 +1,15 @@
    1332515201+// PR c++/57831
     
    1333815214+};
    1333915215+template struct B< A >;
     15216diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/uninit-pred-4.C gcc-4.8.1/gcc/testsuite/g++.dg/uninit-pred-4.C
     15217--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/uninit-pred-4.C 1970-01-01 00:00:00.000000000 +0000
     15218+++ gcc-4.8.1/gcc/testsuite/g++.dg/uninit-pred-4.C      2013-10-01 16:06:44.012554285 +0000
     15219@@ -0,0 +1,16 @@
     15220+/* { dg-do compile } */
     15221+/* { dg-options "-Wuninitialized -Og" } */
     15222+
     15223+int pop ();
     15224+int pop_first_bucket;
     15225+
     15226+int my_pop ()
     15227+{
     15228+  int out;  // { dg-bogus "uninitialized" "uninitialized variable warning" }
     15229+
     15230+  while (pop_first_bucket)
     15231+    if (pop_first_bucket && (out = pop()))
     15232+      return out;
     15233+
     15234+  return 0;
     15235+}
     15236diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/warn/Wunused-var-21.C gcc-4.8.1/gcc/testsuite/g++.dg/warn/Wunused-var-21.C
     15237--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/warn/Wunused-var-21.C   1970-01-01 00:00:00.000000000 +0000
     15238+++ gcc-4.8.1/gcc/testsuite/g++.dg/warn/Wunused-var-21.C        2013-10-01 16:06:44.012554285 +0000
     15239@@ -0,0 +1,31 @@
     15240+// PR c++/58325
     15241+// { dg-do compile }
     15242+// { dg-options "-Wunused" }
     15243+
     15244+void
     15245+f1 ()
     15246+{
     15247+  int *volatile a = new int[1];
     15248+  delete[] a;
     15249+}
     15250+
     15251+void
     15252+f2 ()
     15253+{
     15254+  int *b = new int[1];
     15255+  delete[] b;
     15256+}
     15257+
     15258+void
     15259+f3 ()
     15260+{
     15261+  int *volatile c = new int;
     15262+  delete c;
     15263+}
     15264+
     15265+void
     15266+f4 ()
     15267+{
     15268+  int *d = new int;
     15269+  delete d;
     15270+}
     15271diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58088.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58088.c
     15272--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58088.c        1970-01-01 00:00:00.000000000 +0000
     15273+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58088.c     2013-10-01 16:06:44.000554285 +0000
     15274@@ -0,0 +1,5 @@
     15275+int
     15276+bar (int i)
     15277+{
     15278+  return 1 | ((i * 2) & 254);
     15279+}
    1334015280diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58164.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c
    1334115281--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58164.c        1970-01-01 00:00:00.000000000 +0000
    13342 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c     2013-09-13 19:01:43.186531574 +0000
     15282+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c     2013-10-01 16:06:44.000554285 +0000
    1334315283@@ -0,0 +1,8 @@
    1334415284+/* PR tree-optimization/58164 */
     
    1335215292diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x
    1335315293--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x   1970-01-01 00:00:00.000000000 +0000
    13354 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x        2013-09-13 19:01:43.186531574 +0000
     15294+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x        2013-10-01 16:06:44.000554285 +0000
    1335515295@@ -0,0 +1,5 @@
    1335615296+# Force bigger stack alignment for PowerPC EABI targets.
     
    1336115301diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57568.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c
    1336215302--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57568.c        1970-01-01 00:00:00.000000000 +0000
    13363 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c     2013-09-13 19:01:43.186531574 +0000
     15303+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c     2013-10-01 16:06:44.000554285 +0000
    1336415304@@ -0,0 +1,12 @@
    1336515305+/* PR target/57568 */
     
    1337715317diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57829.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c
    1337815318--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57829.c        1970-01-01 00:00:00.000000000 +0000
    13379 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c     2013-09-13 19:01:43.186531574 +0000
     15319+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c     2013-10-01 16:06:44.000554285 +0000
    1338015320@@ -0,0 +1,31 @@
    1338115321+/* PR rtl-optimization/57829 */
     
    1341215352diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58209.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c
    1341315353--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58209.c        1970-01-01 00:00:00.000000000 +0000
    13414 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c     2013-09-13 19:01:43.186531574 +0000
     15354+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c     2013-10-01 16:06:44.000554285 +0000
    1341515355@@ -0,0 +1,32 @@
    1341615356+/* PR tree-optimization/58209 */
     
    1344615386+  return 0;
    1344715387+}
     15388diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c
     15389--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c      1970-01-01 00:00:00.000000000 +0000
     15390+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c   2013-10-01 16:06:44.000554285 +0000
     15391@@ -0,0 +1,102 @@
     15392+/* PR tree-optimization/58277 */
     15393+
     15394+extern void abort (void);
     15395+static int a[2];
     15396+int b, c, d, *e, f, g, h, **i = &e, k, l = 1, n, o, p;
     15397+static int **volatile j = &e;
     15398+const int m;
     15399+char u;
     15400+
     15401+int
     15402+bar ()
     15403+{
     15404+  u = 0;
     15405+  return m;
     15406+}
     15407+
     15408+__attribute__((noinline, noclone)) void
     15409+baz ()
     15410+{
     15411+  asm ("");
     15412+}
     15413+
     15414+static int
     15415+foo ()
     15416+{
     15417+  int t1;
     15418+  g = bar ();
     15419+  if (l)
     15420+    ;
     15421+  else
     15422+    for (;; h++)
     15423+      {
     15424+       *i = 0;
     15425+       o = *e = 0;
     15426+       if (p)
     15427+         {
     15428+           f = 0;
     15429+           return 0;
     15430+         }
     15431+       for (;; k++)
     15432+         {
     15433+           int *t2 = 0;
     15434+           int *const *t3[] = {
     15435+             0, 0, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, &t2, &t2, &t2,
     15436+             &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0,
     15437+             0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, &t2,
     15438+             &t2, &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
     15439+             &t2, 0, 0, 0, &t2, 0, &t2, 0, 0, &t2, 0, 0, 0, 0,
     15440+             0, &t2, 0, 0, 0, 0, &t2, &t2, 0, 0, 0, 0, &t2, 0,
     15441+             0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
     15442+             &t2, &t2
     15443+           };
     15444+           int *const **t4[] = {&t3[0]};
     15445+           **i = 0;
     15446+           if (**j)
     15447+             break;
     15448+           u = 0;
     15449+         }
     15450+       *i = *j;
     15451+       t1 = 0;
     15452+       for (; t1 < 5; t1++)
     15453+         *i = *j;
     15454+      }
     15455+  *j = 0;
     15456+  return 1;
     15457+}
     15458+
     15459+int
     15460+main ()
     15461+{
     15462+  int t5;
     15463+  a[0] = 1;
     15464+  {
     15465+    int *t6[6] = {&d, &d};
     15466+    for (n = 1; n; n--)
     15467+      if (foo())
     15468+       {
     15469+         int *t7[] = {0};
     15470+         d = 0;
     15471+         for (; u < 1; u++)
     15472+           *i = *j;
     15473+         *i = 0;
     15474+         *i = 0;
     15475+         int t8[5] = {0};
     15476+         *i = &t8[0];
     15477+         int *const *t9 = &t6[0];
     15478+         int *const **t10 = &t9;
     15479+         *t10 = &t7[0];
     15480+       }
     15481+  }
     15482+  u = 0;
     15483+  for (; b; b++)
     15484+    for (t5 = 0; t5 < 10; t5++)
     15485+      c = a[a[a[a[a[a[a[a[c]]]]]]]];
     15486+
     15487+  baz ();
     15488+
     15489+  if (!a[a[a[a[a[a[a[a[a[a[a[a[a[a[a[u]]]]]]]]]]]]]]])
     15490+    abort ();
     15491+
     15492+  return 0;
     15493+}
     15494diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c
     15495--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c      1970-01-01 00:00:00.000000000 +0000
     15496+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c   2013-10-01 16:06:44.000554285 +0000
     15497@@ -0,0 +1,98 @@
     15498+/* PR tree-optimization/58277 */
     15499+
     15500+extern void abort (void);
     15501+static int a[1], b, c, e, i, j, k, m, q[] = { 1, 1 }, t;
     15502+int volatile d;
     15503+int **r;
     15504+static int ***volatile s = &r;
     15505+int f, g, o, x;
     15506+static int *volatile h = &f, *p;
     15507+char n;
     15508+
     15509+static void
     15510+fn1 ()
     15511+{
     15512+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
     15513+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
     15514+  b = a[a[b]];
     15515+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
     15516+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
     15517+}
     15518+
     15519+static int
     15520+fn2 ()
     15521+{
     15522+  n = 0;
     15523+  for (; g; t++)
     15524+    {
     15525+      for (;; m++)
     15526+       {
     15527+         d;
     15528+         int *u;
     15529+         int **v[] = {
     15530+           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     15531+           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     15532+           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     15533+           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     15534+           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     15535+           0, 0, 0, 0, 0, &u, 0, 0, 0, 0, &u, &u, &u, &u, &u, &u, &u, 0,
     15536+           &u, 0, &u, &u, &u, 0, &u, &u, 0, &u, &u, &u, &u, 0, &u, &u, &u,
     15537+           &u, &u, 0, &u, &u, 0, &u, 0, &u, &u, 0, &u, &u, &u, &u, &u, 0,
     15538+           &u, 0, 0, 0, &u, &u, &u, 0, 0, &u, &u, &u, 0, &u, 0, &u, &u
     15539+         };
     15540+         int ***w[] = { &v[0] };
     15541+         if (*p)
     15542+           break;
     15543+         return 0;
     15544+       }
     15545+      *h = 0;
     15546+    }
     15547+  return 1;
     15548+}
     15549+
     15550+static void
     15551+fn3 ()
     15552+{
     15553+  int *y[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
     15554+  for (; i; i++)
     15555+    x = 0;
     15556+  if (fn2 ())
     15557+    {
     15558+      int *z[6] = { };
     15559+      for (; n < 1; n++)
     15560+       *h = 0;
     15561+      int t1[7];
     15562+      for (; c; c++)
     15563+       o = t1[0];
     15564+      for (; e; e--)
     15565+       {
     15566+         int **t2 = &y[0];
     15567+         int ***t3 = &t2;
     15568+         *t3 = &z[0];
     15569+       }
     15570+    }
     15571+  *s = 0;
     15572+  for (n = 0;; n = 0)
     15573+    {
     15574+      int t4 = 0;
     15575+      if (q[n])
     15576+       break;
     15577+      *r = &t4;
     15578+    }
     15579+}
     15580+
     15581+int
     15582+main ()
     15583+{
     15584+  for (; j; j--)
     15585+    a[0] = 0;
     15586+  fn3 ();
     15587+  for (; k; k++)
     15588+    fn1 ();
     15589+  fn1 ();
     15590+
     15591+  if (n)
     15592+    abort ();
     15593+
     15594+  return 0;
     15595+}
     15596diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58364.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58364.c
     15597--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58364.c        1970-01-01 00:00:00.000000000 +0000
     15598+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58364.c     2013-10-01 16:06:44.000554285 +0000
     15599@@ -0,0 +1,17 @@
     15600+/* PR tree-optimization/58364 */
     15601+
     15602+int a = 1, b, c;
     15603+
     15604+int
     15605+foo (int x)
     15606+{
     15607+  return x < 0 ? 1 : x;
     15608+}
     15609+
     15610+int
     15611+main ()
     15612+{
     15613+  if (foo (a > c == (b = 0)))
     15614+    __builtin_abort ();
     15615+  return 0;
     15616+}
     15617diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58365.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58365.c
     15618--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58365.c        1970-01-01 00:00:00.000000000 +0000
     15619+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58365.c     2013-10-01 16:06:44.000554285 +0000
     15620@@ -0,0 +1,35 @@
     15621+/* PR rtl-optimization/58365 */
     15622+
     15623+extern void abort (void);
     15624+
     15625+struct S
     15626+{
     15627+  volatile int a;
     15628+  int b, c, d, e;
     15629+} f;
     15630+static struct S g, h;
     15631+int i = 1;
     15632+
     15633+char
     15634+foo (void)
     15635+{
     15636+  return i;
     15637+}
     15638+
     15639+static struct S
     15640+bar (void)
     15641+{
     15642+  if (foo ())
     15643+    return f;
     15644+  return g;
     15645+}
     15646+
     15647+int
     15648+main ()
     15649+{
     15650+  h = bar ();
     15651+  f.b = 1;
     15652+  if (h.b != 0)
     15653+    abort ();
     15654+  return 0;
     15655+}
     15656diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58385.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58385.c
     15657--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58385.c        1970-01-01 00:00:00.000000000 +0000
     15658+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58385.c     2013-10-01 16:06:44.004554285 +0000
     15659@@ -0,0 +1,21 @@
     15660+/* PR tree-optimization/58385 */
     15661+
     15662+extern void abort (void);
     15663+
     15664+int a, b = 1;
     15665+
     15666+int
     15667+foo ()
     15668+{
     15669+  b = 0;
     15670+  return 0;
     15671+}
     15672+
     15673+int
     15674+main ()
     15675+{
     15676+  ((0 || a) & foo () >= 0) <= 1 && 1;
     15677+  if (b)
     15678+    abort ();
     15679+  return 0;
     15680+}
     15681diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58564.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58564.c
     15682--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58564.c        1970-01-01 00:00:00.000000000 +0000
     15683+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58564.c     2013-10-01 16:06:44.004554285 +0000
     15684@@ -0,0 +1,14 @@
     15685+/* PR middle-end/58564 */
     15686+
     15687+extern void abort (void);
     15688+int a, b;
     15689+short *c, **d = &c;
     15690+
     15691+int
     15692+main ()
     15693+{
     15694+  b = (0, 0 > ((&c == d) & (1 && (a ^ 1)))) | 0U;
     15695+  if (b != 0)
     15696+    abort ();
     15697+  return 0;
     15698+}
     15699diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58574.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58574.c
     15700--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58574.c        1970-01-01 00:00:00.000000000 +0000
     15701+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58574.c     2013-10-01 16:06:44.004554285 +0000
     15702@@ -0,0 +1,219 @@
     15703+/* PR target/58574 */
     15704+
     15705+__attribute__((noinline, noclone)) double
     15706+foo (double x)
     15707+{
     15708+  double t;
     15709+  switch ((int) x)
     15710+    {
     15711+    case 0:
     15712+      t = 2 * x - 1;
     15713+      return 0.70878e-3 + (0.71234e-3 + (0.35779e-5 + (0.17403e-7 + (0.81710e-10 + (0.36885e-12 + 0.15917e-14 * t) * t) * t) * t) * t) * t;
     15714+    case 1:
     15715+      t = 2 * x - 3;
     15716+      return 0.21479e-2 + (0.72686e-3 + (0.36843e-5 + (0.18071e-7 + (0.85496e-10 + (0.38852e-12 + 0.16868e-14 * t) * t) * t) * t) * t) * t;
     15717+    case 2:
     15718+      t = 2 * x - 5;
     15719+      return 0.36165e-2 + (0.74182e-3 + (0.37948e-5 + (0.18771e-7 + (0.89484e-10 + (0.40935e-12 + 0.17872e-14 * t) * t) * t) * t) * t) * t;
     15720+    case 3:
     15721+      t = 2 * x - 7;
     15722+      return 0.51154e-2 + (0.75722e-3 + (0.39096e-5 + (0.19504e-7 + (0.93687e-10 + (0.43143e-12 + 0.18939e-14 * t) * t) * t) * t) * t) * t;
     15723+    case 4:
     15724+      t = 2 * x - 9;
     15725+      return 0.66457e-2 + (0.77310e-3 + (0.40289e-5 + (0.20271e-7 + (0.98117e-10 + (0.45484e-12 + 0.20076e-14 * t) * t) * t) * t) * t) * t;
     15726+    case 5:
     15727+      t = 2 * x - 11;
     15728+      return 0.82082e-2 + (0.78946e-3 + (0.41529e-5 + (0.21074e-7 + (0.10278e-9 + (0.47965e-12 + 0.21285e-14 * t) * t) * t) * t) * t) * t;
     15729+    case 6:
     15730+      t = 2 * x - 13;
     15731+      return 0.98039e-2 + (0.80633e-3 + (0.42819e-5 + (0.21916e-7 + (0.10771e-9 + (0.50595e-12 + 0.22573e-14 * t) * t) * t) * t) * t) * t;
     15732+    case 7:
     15733+      t = 2 * x - 15;
     15734+      return 0.11433e-1 + (0.82372e-3 + (0.44160e-5 + (0.22798e-7 + (0.11291e-9 + (0.53386e-12 + 0.23944e-14 * t) * t) * t) * t) * t) * t;
     15735+    case 8:
     15736+      t = 2 * x - 17;
     15737+      return 0.13099e-1 + (0.84167e-3 + (0.45555e-5 + (0.23723e-7 + (0.11839e-9 + (0.56346e-12 + 0.25403e-14 * t) * t) * t) * t) * t) * t;
     15738+    case 9:
     15739+      t = 2 * x - 19;
     15740+      return 0.14800e-1 + (0.86018e-3 + (0.47008e-5 + (0.24694e-7 + (0.12418e-9 + (0.59486e-12 + 0.26957e-14 * t) * t) * t) * t) * t) * t;
     15741+    case 10:
     15742+      t = 2 * x - 21;
     15743+      return 0.16540e-1 + (0.87928e-3 + (0.48520e-5 + (0.25711e-7 + (0.13030e-9 + (0.62820e-12 + 0.28612e-14 * t) * t) * t) * t) * t) * t;
     15744+    case 11:
     15745+      t = 2 * x - 23;
     15746+      return 0.18318e-1 + (0.89900e-3 + (0.50094e-5 + (0.26779e-7 + (0.13675e-9 + (0.66358e-12 + 0.30375e-14 * t) * t) * t) * t) * t) * t;
     15747+    case 12:
     15748+      t = 2 * x - 25;
     15749+      return 0.20136e-1 + (0.91936e-3 + (0.51734e-5 + (0.27900e-7 + (0.14357e-9 + (0.70114e-12 + 0.32252e-14 * t) * t) * t) * t) * t) * t;
     15750+    case 13:
     15751+      t = 2 * x - 27;
     15752+      return 0.21996e-1 + (0.94040e-3 + (0.53443e-5 + (0.29078e-7 + (0.15078e-9 + (0.74103e-12 + 0.34251e-14 * t) * t) * t) * t) * t) * t;
     15753+    case 14:
     15754+      t = 2 * x - 29;
     15755+      return 0.23898e-1 + (0.96213e-3 + (0.55225e-5 + (0.30314e-7 + (0.15840e-9 + (0.78340e-12 + 0.36381e-14 * t) * t) * t) * t) * t) * t;
     15756+    case 15:
     15757+      t = 2 * x - 31;
     15758+      return 0.25845e-1 + (0.98459e-3 + (0.57082e-5 + (0.31613e-7 + (0.16646e-9 + (0.82840e-12 + 0.38649e-14 * t) * t) * t) * t) * t) * t;
     15759+    case 16:
     15760+      t = 2 * x - 33;
     15761+      return 0.27837e-1 + (0.10078e-2 + (0.59020e-5 + (0.32979e-7 + (0.17498e-9 + (0.87622e-12 + 0.41066e-14 * t) * t) * t) * t) * t) * t;
     15762+    case 17:
     15763+      t = 2 * x - 35;
     15764+      return 0.29877e-1 + (0.10318e-2 + (0.61041e-5 + (0.34414e-7 + (0.18399e-9 + (0.92703e-12 + 0.43639e-14 * t) * t) * t) * t) * t) * t;
     15765+    case 18:
     15766+      t = 2 * x - 37;
     15767+      return 0.31965e-1 + (0.10566e-2 + (0.63151e-5 + (0.35924e-7 + (0.19353e-9 + (0.98102e-12 + 0.46381e-14 * t) * t) * t) * t) * t) * t;
     15768+    case 19:
     15769+      t = 2 * x - 39;
     15770+      return 0.34104e-1 + (0.10823e-2 + (0.65354e-5 + (0.37512e-7 + (0.20362e-9 + (0.10384e-11 + 0.49300e-14 * t) * t) * t) * t) * t) * t;
     15771+    case 20:
     15772+      t = 2 * x - 41;
     15773+      return 0.36295e-1 + (0.11089e-2 + (0.67654e-5 + (0.39184e-7 + (0.21431e-9 + (0.10994e-11 + 0.52409e-14 * t) * t) * t) * t) * t) * t;
     15774+    case 21:
     15775+      t = 2 * x - 43;
     15776+      return 0.38540e-1 + (0.11364e-2 + (0.70058e-5 + (0.40943e-7 + (0.22563e-9 + (0.11642e-11 + 0.55721e-14 * t) * t) * t) * t) * t) * t;
     15777+    case 22:
     15778+      t = 2 * x - 45;
     15779+      return 0.40842e-1 + (0.11650e-2 + (0.72569e-5 + (0.42796e-7 + (0.23761e-9 + (0.12332e-11 + 0.59246e-14 * t) * t) * t) * t) * t) * t;
     15780+    case 23:
     15781+      t = 2 * x - 47;
     15782+      return 0.43201e-1 + (0.11945e-2 + (0.75195e-5 + (0.44747e-7 + (0.25030e-9 + (0.13065e-11 + 0.63000e-14 * t) * t) * t) * t) * t) * t;
     15783+    case 24:
     15784+      t = 2 * x - 49;
     15785+      return 0.45621e-1 + (0.12251e-2 + (0.77941e-5 + (0.46803e-7 + (0.26375e-9 + (0.13845e-11 + 0.66996e-14 * t) * t) * t) * t) * t) * t;
     15786+    case 25:
     15787+      t = 2 * x - 51;
     15788+      return 0.48103e-1 + (0.12569e-2 + (0.80814e-5 + (0.48969e-7 + (0.27801e-9 + (0.14674e-11 + 0.71249e-14 * t) * t) * t) * t) * t) * t;
     15789+    case 26:
     15790+      t = 2 * x - 59;
     15791+      return 0.58702e-1 + (0.13962e-2 + (0.93714e-5 + (0.58882e-7 + (0.34414e-9 + (0.18552e-11 + 0.91160e-14 * t) * t) * t) * t) * t) * t;
     15792+    case 30:
     15793+      t = 2 * x - 79;
     15794+      return 0.90908e-1 + (0.18544e-2 + (0.13903e-4 + (0.95549e-7 + (0.59752e-9 + (0.33656e-11 + 0.16815e-13 * t) * t) * t) * t) * t) * t;
     15795+    case 40:
     15796+      t = 2 * x - 99;
     15797+      return 0.13443e0 + (0.25474e-2 + (0.21385e-4 + (0.15996e-6 + (0.10585e-8 + (0.61258e-11 + 0.30412e-13 * t) * t) * t) * t) * t) * t;
     15798+    case 50:
     15799+      t = 2 * x - 119;
     15800+      return 0.19540e0 + (0.36342e-2 + (0.34096e-4 + (0.27479e-6 + (0.18934e-8 + (0.11021e-10 + 0.52931e-13 * t) * t) * t) * t) * t) * t;
     15801+    case 60:
     15802+      t = 2 * x - 121;
     15803+      return 0.20281e0 + (0.37739e-2 + (0.35791e-4 + (0.29038e-6 + (0.20068e-8 + (0.11673e-10 + 0.55790e-13 * t) * t) * t) * t) * t) * t;
     15804+    case 61:
     15805+      t = 2 * x - 123;
     15806+      return 0.21050e0 + (0.39206e-2 + (0.37582e-4 + (0.30691e-6 + (0.21270e-8 + (0.12361e-10 + 0.58770e-13 * t) * t) * t) * t) * t) * t;
     15807+    case 62:
     15808+      t = 2 * x - 125;
     15809+      return 0.21849e0 + (0.40747e-2 + (0.39476e-4 + (0.32443e-6 + (0.22542e-8 + (0.13084e-10 + 0.61873e-13 * t) * t) * t) * t) * t) * t;
     15810+    case 63:
     15811+      t = 2 * x - 127;
     15812+      return 0.22680e0 + (0.42366e-2 + (0.41477e-4 + (0.34300e-6 + (0.23888e-8 + (0.13846e-10 + 0.65100e-13 * t) * t) * t) * t) * t) * t;
     15813+    case 64:
     15814+      t = 2 * x - 129;
     15815+      return 0.23545e0 + (0.44067e-2 + (0.43594e-4 + (0.36268e-6 + (0.25312e-8 + (0.14647e-10 + 0.68453e-13 * t) * t) * t) * t) * t) * t;
     15816+    case 65:
     15817+      t = 2 * x - 131;
     15818+      return 0.24444e0 + (0.45855e-2 + (0.45832e-4 + (0.38352e-6 + (0.26819e-8 + (0.15489e-10 + 0.71933e-13 * t) * t) * t) * t) * t) * t;
     15819+    case 66:
     15820+      t = 2 * x - 133;
     15821+      return 0.25379e0 + (0.47735e-2 + (0.48199e-4 + (0.40561e-6 + (0.28411e-8 + (0.16374e-10 + 0.75541e-13 * t) * t) * t) * t) * t) * t;
     15822+    case 67:
     15823+      t = 2 * x - 135;
     15824+      return 0.26354e0 + (0.49713e-2 + (0.50702e-4 + (0.42901e-6 + (0.30095e-8 + (0.17303e-10 + 0.79278e-13 * t) * t) * t) * t) * t) * t;
     15825+    case 68:
     15826+      t = 2 * x - 137;
     15827+      return 0.27369e0 + (0.51793e-2 + (0.53350e-4 + (0.45379e-6 + (0.31874e-8 + (0.18277e-10 + 0.83144e-13 * t) * t) * t) * t) * t) * t;
     15828+    case 69:
     15829+      t = 2 * x - 139;
     15830+      return 0.28426e0 + (0.53983e-2 + (0.56150e-4 + (0.48003e-6 + (0.33752e-8 + (0.19299e-10 + 0.87139e-13 * t) * t) * t) * t) * t) * t;
     15831+    case 70:
     15832+      t = 2 * x - 141;
     15833+      return 0.29529e0 + (0.56288e-2 + (0.59113e-4 + (0.50782e-6 + (0.35735e-8 + (0.20369e-10 + 0.91262e-13 * t) * t) * t) * t) * t) * t;
     15834+    case 71:
     15835+      t = 2 * x - 143;
     15836+      return 0.30679e0 + (0.58714e-2 + (0.62248e-4 + (0.53724e-6 + (0.37827e-8 + (0.21490e-10 + 0.95513e-13 * t) * t) * t) * t) * t) * t;
     15837+    case 72:
     15838+      t = 2 * x - 145;
     15839+      return 0.31878e0 + (0.61270e-2 + (0.65564e-4 + (0.56837e-6 + (0.40035e-8 + (0.22662e-10 + 0.99891e-13 * t) * t) * t) * t) * t) * t;
     15840+    case 73:
     15841+      t = 2 * x - 147;
     15842+      return 0.33130e0 + (0.63962e-2 + (0.69072e-4 + (0.60133e-6 + (0.42362e-8 + (0.23888e-10 + 0.10439e-12 * t) * t) * t) * t) * t) * t;
     15843+    case 74:
     15844+      t = 2 * x - 149;
     15845+      return 0.34438e0 + (0.66798e-2 + (0.72783e-4 + (0.63619e-6 + (0.44814e-8 + (0.25168e-10 + 0.10901e-12 * t) * t) * t) * t) * t) * t;
     15846+    case 75:
     15847+      t = 2 * x - 151;
     15848+      return 0.35803e0 + (0.69787e-2 + (0.76710e-4 + (0.67306e-6 + (0.47397e-8 + (0.26505e-10 + 0.11376e-12 * t) * t) * t) * t) * t) * t;
     15849+    case 76:
     15850+      t = 2 * x - 153;
     15851+      return 0.37230e0 + (0.72938e-2 + (0.80864e-4 + (0.71206e-6 + (0.50117e-8 + (0.27899e-10 + 0.11862e-12 * t) * t) * t) * t) * t) * t;
     15852+    case 77:
     15853+      t = 2 * x - 155;
     15854+      return 0.38722e0 + (0.76260e-2 + (0.85259e-4 + (0.75329e-6 + (0.52979e-8 + (0.29352e-10 + 0.12360e-12 * t) * t) * t) * t) * t) * t;
     15855+    case 78:
     15856+      t = 2 * x - 157;
     15857+      return 0.40282e0 + (0.79762e-2 + (0.89909e-4 + (0.79687e-6 + (0.55989e-8 + (0.30866e-10 + 0.12868e-12 * t) * t) * t) * t) * t) * t;
     15858+    case 79:
     15859+      t = 2 * x - 159;
     15860+      return 0.41914e0 + (0.83456e-2 + (0.94827e-4 + (0.84291e-6 + (0.59154e-8 + (0.32441e-10 + 0.13387e-12 * t) * t) * t) * t) * t) * t;
     15861+    case 80:
     15862+      t = 2 * x - 161;
     15863+      return 0.43621e0 + (0.87352e-2 + (0.10002e-3 + (0.89156e-6 + (0.62480e-8 + (0.34079e-10 + 0.13917e-12 * t) * t) * t) * t) * t) * t;
     15864+    case 81:
     15865+      t = 2 * x - 163;
     15866+      return 0.45409e0 + (0.91463e-2 + (0.10553e-3 + (0.94293e-6 + (0.65972e-8 + (0.35782e-10 + 0.14455e-12 * t) * t) * t) * t) * t) * t;
     15867+    case 82:
     15868+      t = 2 * x - 165;
     15869+      return 0.47282e0 + (0.95799e-2 + (0.11135e-3 + (0.99716e-6 + (0.69638e-8 + (0.37549e-10 + 0.15003e-12 * t) * t) * t) * t) * t) * t;
     15870+    case 83:
     15871+      t = 2 * x - 167;
     15872+      return 0.49243e0 + (0.10037e-1 + (0.11750e-3 + (0.10544e-5 + (0.73484e-8 + (0.39383e-10 + 0.15559e-12 * t) * t) * t) * t) * t) * t;
     15873+    case 84:
     15874+      t = 2 * x - 169;
     15875+      return 0.51298e0 + (0.10520e-1 + (0.12400e-3 + (0.11147e-5 + (0.77517e-8 + (0.41283e-10 + 0.16122e-12 * t) * t) * t) * t) * t) * t;
     15876+    case 85:
     15877+      t = 2 * x - 171;
     15878+      return 0.53453e0 + (0.11030e-1 + (0.13088e-3 + (0.11784e-5 + (0.81743e-8 + (0.43252e-10 + 0.16692e-12 * t) * t) * t) * t) * t) * t;
     15879+    case 86:
     15880+      t = 2 * x - 173;
     15881+      return 0.55712e0 + (0.11568e-1 + (0.13815e-3 + (0.12456e-5 + (0.86169e-8 + (0.45290e-10 + 0.17268e-12 * t) * t) * t) * t) * t) * t;
     15882+    case 87:
     15883+      t = 2 * x - 175;
     15884+      return 0.58082e0 + (0.12135e-1 + (0.14584e-3 + (0.13164e-5 + (0.90803e-8 + (0.47397e-10 + 0.17850e-12 * t) * t) * t) * t) * t) * t;
     15885+    case 88:
     15886+      t = 2 * x - 177;
     15887+      return 0.60569e0 + (0.12735e-1 + (0.15396e-3 + (0.13909e-5 + (0.95651e-8 + (0.49574e-10 + 0.18435e-12 * t) * t) * t) * t) * t) * t;
     15888+    case 89:
     15889+      t = 2 * x - 179;
     15890+      return 0.63178e0 + (0.13368e-1 + (0.16254e-3 + (0.14695e-5 + (0.10072e-7 + (0.51822e-10 + 0.19025e-12 * t) * t) * t) * t) * t) * t;
     15891+    case 90:
     15892+      t = 2 * x - 181;
     15893+      return 0.65918e0 + (0.14036e-1 + (0.17160e-3 + (0.15521e-5 + (0.10601e-7 + (0.54140e-10 + 0.19616e-12 * t) * t) * t) * t) * t) * t;
     15894+    case 91:
     15895+      t = 2 * x - 183;
     15896+      return 0.68795e0 + (0.14741e-1 + (0.18117e-3 + (0.16392e-5 + (0.11155e-7 + (0.56530e-10 + 0.20209e-12 * t) * t) * t) * t) * t) * t;
     15897+    case 92:
     15898+      t = 2 * x - 185;
     15899+      return 0.71818e0 + (0.15486e-1 + (0.19128e-3 + (0.17307e-5 + (0.11732e-7 + (0.58991e-10 + 0.20803e-12 * t) * t) * t) * t) * t) * t;
     15900+    case 93:
     15901+      t = 2 * x - 187;
     15902+      return 0.74993e0 + (0.16272e-1 + (0.20195e-3 + (0.18269e-5 + (0.12335e-7 + (0.61523e-10 + 0.21395e-12 * t) * t) * t) * t) * t) * t;
     15903+    }
     15904+  return 1.0;
     15905+}
     15906+
     15907+int
     15908+main ()
     15909+{
     15910+#ifdef __s390x__
     15911+  {
     15912+    register unsigned long r5 __asm ("r5");
     15913+    r5 = 0xdeadbeefUL;
     15914+    asm volatile ("":"+r" (r5));
     15915+  }
     15916+#endif
     15917+  double d = foo (78.4);
     15918+  if (d < 0.38 || d > 0.42)
     15919+    __builtin_abort ();
     15920+  return 0;
     15921+}
    1344815922diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c
    1344915923--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c  1970-01-01 00:00:00.000000000 +0000
    13450 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c       2013-09-13 19:01:43.186531574 +0000
     15924+++ gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c       2013-10-01 16:06:44.004554285 +0000
    1345115925@@ -0,0 +1,9 @@
    1345215926+/* PR sanitizer/56417 */
     
    1346115935diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c
    1346215936--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c      1970-01-01 00:00:00.000000000 +0000
    13463 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c   2013-09-13 19:01:43.963196204 +0000
     15937+++ gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c   2013-10-01 16:07:00.564553809 +0000
    1346415938@@ -0,0 +1,10 @@
    1346515939+/* { dg-options "-O2 -floop-parallelize-all -floop-nest-optimize" } */
     
    1347515949diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c
    1347615950--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c   1970-01-01 00:00:00.000000000 +0000
    13477 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c        2013-09-13 19:01:43.186531574 +0000
     15951+++ gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c        2013-10-01 16:06:44.004554285 +0000
    1347815952@@ -0,0 +1,9 @@
    1347915953+/* { dg-do compile } */
     
    1348815962diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c
    1348915963--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c       1970-01-01 00:00:00.000000000 +0000
    13490 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c    2013-09-13 19:01:43.186531574 +0000
     15964+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c    2013-10-01 16:06:44.004554285 +0000
    1349115965@@ -0,0 +1,10 @@
    1349215966+/* { dg-do compile } */
     
    1350215976diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c
    1350315977--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c       1970-01-01 00:00:00.000000000 +0000
    13504 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c    2013-09-13 19:01:43.186531574 +0000
     15978+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c    2013-10-01 16:06:44.004554285 +0000
    1350515979@@ -0,0 +1,15 @@
    1350615980+/* PR rtl-optimization/57130 */
     
    1352115995diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c
    1352215996--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c       1970-01-01 00:00:00.000000000 +0000
    13523 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c    2013-09-13 19:01:43.186531574 +0000
     15997+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c    2013-10-01 16:06:44.004554285 +0000
    1352415998@@ -0,0 +1,19 @@
    1352515999+/* PR tree-optimization/57980 */
     
    1354216016+  return v - f ();
    1354316017+}
     16018diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58010.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58010.c
     16019--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58010.c       1970-01-01 00:00:00.000000000 +0000
     16020+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58010.c    2013-10-01 16:06:44.004554285 +0000
     16021@@ -0,0 +1,15 @@
     16022+/* { dg-do compile } */
     16023+/* { dg-options "-O2 -funswitch-loops -ftree-vectorize" } */
     16024+
     16025+short a, b, c, d;
     16026+
     16027+void f(void)
     16028+{
     16029+  short e;
     16030+
     16031+  for(; e; e++)
     16032+    for(; b; b++);
     16033+
     16034+  for(d = 0; d < 4; d++)
     16035+    a ^= (e ^= 1) || c ? : e;
     16036+}
    1354416037diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c
    1354516038--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c     1970-01-01 00:00:00.000000000 +0000
    13546 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c  2013-09-13 19:01:43.186531574 +0000
     16039+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c  2013-10-01 16:06:44.004554285 +0000
    1354716040@@ -0,0 +1,37 @@
    1354816041+/* PR tree-optimization/58145 */
     
    1358516078diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c
    1358616079--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c     1970-01-01 00:00:00.000000000 +0000
    13587 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c  2013-09-13 19:01:43.186531574 +0000
     16080+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c  2013-10-01 16:06:44.004554285 +0000
    1358816081@@ -0,0 +1,51 @@
    1358916082+/* PR tree-optimization/58145 */
     
    1363816131+/* { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } */
    1363916132+/* { dg-final { cleanup-tree-dump "optimized" } } */
     16133diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58463.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58463.c
     16134--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58463.c       1970-01-01 00:00:00.000000000 +0000
     16135+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58463.c    2013-10-01 16:06:44.004554285 +0000
     16136@@ -0,0 +1,15 @@
     16137+/* { dg-do compile } */
     16138+/* { dg-options "-fdump-tree-ealias-details -O2" } */
     16139+
     16140+typedef struct
     16141+{
     16142+  int data16;
     16143+}
     16144+list_data;
     16145+void
     16146+fn1 (list_data * p1)
     16147+{
     16148+    p1->data16 = p1->data16 & 1 & p1->data16 >> 1;
     16149+}
     16150+
     16151+/* { dg-final { cleanup-tree-dump "ealias" } } */
     16152diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57343.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57343.c
     16153--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57343.c       1970-01-01 00:00:00.000000000 +0000
     16154+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57343.c    2013-10-01 16:06:44.004554285 +0000
     16155@@ -0,0 +1,22 @@
     16156+/* { dg-do run } */
     16157+
     16158+int c = 0;
     16159+
     16160+int
     16161+main ()
     16162+{
     16163+  int i, f = 1;
     16164+  for (i = 0; i < 5; i++)
     16165+    {
     16166+      --c;
     16167+      unsigned char h = c * 100;
     16168+      if (h == 0)
     16169+       {
     16170+         f = 0;
     16171+         break;
     16172+       }
     16173+    }
     16174+  if (f != 1)
     16175+    __builtin_abort ();
     16176+  return 0;
     16177+}
     16178diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57381.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57381.c
     16179--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57381.c       1970-01-01 00:00:00.000000000 +0000
     16180+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57381.c    2013-10-01 16:06:44.004554285 +0000
     16181@@ -0,0 +1,25 @@
     16182+/* { dg-do compile } */
     16183+/* { dg-require-effective-target int32plus } */
     16184+
     16185+struct S0 { int  f0, f1, f2; };
     16186+
     16187+struct S1 {
     16188+    int  f0;
     16189+    volatile struct S0 f2;
     16190+};
     16191+
     16192+static struct S1 s = {0x47BED265,{0x06D4EB3E,5,0U}};
     16193+
     16194+int foo(struct S0 p)
     16195+{
     16196+  for (s.f2.f2 = 0; (s.f2.f2 <= 12); s.f2.f2++)
     16197+    {
     16198+      volatile int *l_61[5][2][2] = {{{&s.f2.f0,&s.f2.f0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,&s.f2.f0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,(void*)0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,&s.f2.f0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,&s.f2.f0},{(void*)0,&s.f2.f0}}};
     16199+
     16200+      volatile int **l_68 = &l_61[0][0][1];
     16201+      volatile int *l_76 = &s.f2.f0;
     16202+      (*l_68) = l_61[0][0][0];
     16203+      if ((*l_76 = (p.f2 % 5))) ;
     16204+    }
     16205+  return p.f0;
     16206+}
     16207diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57417.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57417.c
     16208--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57417.c       1970-01-01 00:00:00.000000000 +0000
     16209+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57417.c    2013-10-01 16:06:44.004554285 +0000
     16210@@ -0,0 +1,12 @@
     16211+/* { dg-do compile } */
     16212+
     16213+int a, b;
     16214+volatile int *c;
     16215+
     16216+void foo ()
     16217+{
     16218+  volatile int d[1];
     16219+  b = 0;
     16220+  for (;; a--)
     16221+    c = &d[b];
     16222+}
     16223diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57521.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57521.c
     16224--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57521.c       1970-01-01 00:00:00.000000000 +0000
     16225+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57521.c    2013-10-01 16:06:44.004554285 +0000
     16226@@ -0,0 +1,51 @@
     16227+/* { dg-do run } */
     16228+/* { dg-options "-ftree-loop-if-convert" } */
     16229+
     16230+void abort (void);
     16231+
     16232+int a, b, c, d, o = 1, p;
     16233+short e;
     16234+
     16235+int
     16236+fn1 (int * p1)
     16237+{
     16238+  int f, g, h, j = 0, k = 0, l = 0;
     16239+  unsigned int i;
     16240+  int *m[1] = { &l };
     16241+  for (; b >= 0; b--)
     16242+    {
     16243+      if (*p1)
     16244+       if (j >= 0)
     16245+         {
     16246+           int n = 1;
     16247+           e = 1;
     16248+           h = a ? a : 1 % n;
     16249+           g = h > 0 ? 0 : h + 1;
     16250+           k = c + g;
     16251+         }
     16252+       else
     16253+         continue;
     16254+      else
     16255+       {
     16256+
     16257+         f = d > 0 ? 0 : d + 1;
     16258+         i = f;
     16259+         j = 1 + i;
     16260+       }
     16261+      l++;
     16262+    }
     16263+  return k;
     16264+}
     16265+
     16266+int
     16267+main ()
     16268+{
     16269+  for (;; p++)
     16270+    {
     16271+      fn1 (&o);
     16272+      break;
     16273+    }
     16274+  if (e != 1)
     16275+    abort ();
     16276+  return 0;
     16277+}
     16278diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57656.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57656.c
     16279--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57656.c       1970-01-01 00:00:00.000000000 +0000
     16280+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57656.c    2013-10-01 16:06:44.004554285 +0000
     16281@@ -0,0 +1,13 @@
     16282+/* { dg-do run } */
     16283+/* { dg-options "-fstrict-overflow" } */
     16284+
     16285+int main (void)
     16286+{
     16287+  int a = -1;
     16288+  int b = __INT_MAX__;
     16289+  int c = 2;
     16290+  int t = 1 - ((a - b) / c);  // t = 1 - ( __INT_MIN__ / 2 )
     16291+  if (t != (1 - (-1 - __INT_MAX__) / 2))
     16292+    __builtin_abort();
     16293+  return 0;
     16294+}
     16295diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57685.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57685.c
     16296--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57685.c       1970-01-01 00:00:00.000000000 +0000
     16297+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57685.c    2013-10-01 16:06:44.004554285 +0000
     16298@@ -0,0 +1,15 @@
     16299+/* { dg-do compile } */
     16300+
     16301+unsigned f(void)
     16302+{
     16303+  unsigned a;
     16304+  int b, c, d, e;
     16305+
     16306+  for(c = 27; c < 40; c++)
     16307+    b |= d |= b;
     16308+
     16309+  if(b)
     16310+    a = e;
     16311+
     16312+  return a;
     16313+}
    1364016314diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c
    1364116315--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c       1970-01-01 00:00:00.000000000 +0000
    13642 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c    2013-09-13 19:01:43.189864898 +0000
     16316+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c    2013-10-01 16:06:44.004554285 +0000
    1364316317@@ -0,0 +1,33 @@
    1364416318+/* { dg-do run } */
     
    1367516349+  return 0;
    1367616350+}
     16351diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58223.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58223.c
     16352--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58223.c       1970-01-01 00:00:00.000000000 +0000
     16353+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58223.c    2013-10-01 16:06:44.004554285 +0000
     16354@@ -0,0 +1,16 @@
     16355+/* { dg-do run } */
     16356+
     16357+extern void abort (void);
     16358+int a[2], b;
     16359+
     16360+int main ()
     16361+{
     16362+  for (b = 0; b < 2; b++)
     16363+    {
     16364+      a[0] = 1;
     16365+      a[b] = 0;
     16366+    }
     16367+  if (a[0] != 1)
     16368+    abort ();
     16369+  return 0;
     16370+}
     16371diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58228.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58228.c
     16372--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58228.c       1970-01-01 00:00:00.000000000 +0000
     16373+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58228.c    2013-10-01 16:06:44.004554285 +0000
     16374@@ -0,0 +1,15 @@
     16375+/* { dg-do run } */
     16376+
     16377+extern void abort (void);
     16378+int a[8][8] = {{1}};
     16379+int b, c, d, e;
     16380+
     16381+int main ()
     16382+{
     16383+  for (c = 0; c < 8; c++)
     16384+    for (b = 0; b < 2; b++)
     16385+      a[b + 4][c] = a[c][0];
     16386+  if (a[4][4] != 1)
     16387+    abort ();
     16388+  return 0;
     16389+}
     16390diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58246.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58246.c
     16391--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58246.c       1970-01-01 00:00:00.000000000 +0000
     16392+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58246.c    2013-10-01 16:06:44.004554285 +0000
     16393@@ -0,0 +1,21 @@
     16394+/* { dg-do run } */
     16395+
     16396+extern void abort (void);
     16397+
     16398+int a, b;
     16399+
     16400+int main ()
     16401+{
     16402+  int t[2] = {1,1};
     16403+
     16404+  for (a = 0; a < 2; a++)
     16405+    {
     16406+      b ^= t[a];
     16407+      t[a] = t[1] = 0;
     16408+    }
     16409+
     16410+  if (b != 1)
     16411+    abort ();
     16412+
     16413+  return 0;
     16414+}
     16415diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c gcc-4.8.1/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c
     16416--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c     2012-01-30 15:51:23.000000000 +0000
     16417+++ gcc-4.8.1/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c  2013-10-01 16:06:44.004554285 +0000
     16418@@ -14,8 +14,8 @@
     16419     }
     16420 }
     16421 
     16422-/* We should apply loop distribution and generate a memset (0).  */
     16423+/* We should not apply loop distribution and not generate a memset (0).  */
     16424 
     16425-/* { dg-final { scan-tree-dump "distributed: split to 2" "ldist" } } */
     16426-/* { dg-final { scan-tree-dump-times "generated memset zero" 1 "ldist" } } */
     16427+/* { dg-final { scan-tree-dump "Loop 1 is the same" "ldist" } } */
     16428+/* { dg-final { scan-tree-dump-times "generated memset zero" 0 "ldist" } } */
     16429 /* { dg-final { cleanup-tree-dump "ldist" } } */
    1367716430diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c
    1367816431--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c     1970-01-01 00:00:00.000000000 +0000
    13679 +++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c  2013-09-13 19:01:43.189864898 +0000
     16432+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c  2013-10-01 16:06:44.004554285 +0000
    1368016433@@ -0,0 +1,18 @@
    1368116434+/* { dg-do compile } */
     
    1369916452diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c
    1370016453--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c       1970-01-01 00:00:00.000000000 +0000
    13701 +++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c    2013-09-13 19:01:43.189864898 +0000
     16454+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c    2013-10-01 16:06:44.004554285 +0000
    1370216455@@ -0,0 +1,30 @@
    1370316456+/* { dg-do compile } */
     
    1373316486diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c
    1373416487--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c        1970-01-01 00:00:00.000000000 +0000
    13735 +++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c     2013-09-13 19:01:43.189864898 +0000
     16488+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c     2013-10-01 16:06:44.004554285 +0000
    1373616489@@ -0,0 +1,12 @@
    1373716490+/* { dg-require-effective-target arm_thumb1_ok } */
     
    1374916502diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
    1375016503--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c    2013-02-08 10:13:37.000000000 +0000
    13751 +++ gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c 2013-09-13 19:01:43.189864898 +0000
     16504+++ gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c 2013-10-01 16:06:44.004554285 +0000
    1375216505@@ -72,11 +72,11 @@
    1375316506 
     
    1378716540diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c
    1378816541--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-1.c        2010-11-10 22:02:23.000000000 +0000
    13789 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c     2013-09-13 19:01:43.189864898 +0000
     16542+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c     2013-10-01 16:06:44.004554285 +0000
    1379016543@@ -1,11 +1,11 @@
    1379116544 /* { dg-do compile } */
     
    1386616619diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-2.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c
    1386716620--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-2.c        2011-07-09 19:25:11.000000000 +0000
    13868 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c     2013-09-13 19:01:43.189864898 +0000
     16621+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c     2013-10-01 16:06:44.008554285 +0000
    1386916622@@ -1,11 +1,11 @@
    1387016623 /* { dg-do compile { target { ! { ia32 }  } } } */
     
    1394516698diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c
    1394616699--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c  1970-01-01 00:00:00.000000000 +0000
    13947 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c       2013-09-13 19:01:43.189864898 +0000
     16700+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c       2013-10-01 16:06:44.008554285 +0000
    1394816701@@ -0,0 +1,31 @@
    1394916702+/* PR target/57623 */
     
    1398016733diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c
    1398116734--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c  1970-01-01 00:00:00.000000000 +0000
    13982 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c       2013-09-13 19:01:43.189864898 +0000
     16735+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c       2013-10-01 16:06:44.004554285 +0000
    1398316736@@ -0,0 +1,31 @@
    1398416737+/* PR target/57623 */
     
    1401516768diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/movabs-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c
    1401616769--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/movabs-1.c     1970-01-01 00:00:00.000000000 +0000
    14017 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c  2013-09-13 19:01:43.189864898 +0000
     16770+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c  2013-10-01 16:06:44.008554285 +0000
    1401816771@@ -0,0 +1,10 @@
    1401916772+/* { dg-do assemble } */
     
    1402916782diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c
    1403016783--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c      1970-01-01 00:00:00.000000000 +0000
    14031 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c   2013-09-13 19:01:43.189864898 +0000
     16784+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c   2013-10-01 16:06:44.008554285 +0000
    1403216785@@ -0,0 +1,60 @@
    1403316786+/* PR rtl-optimization/57459 */
     
    1409316846diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c
    1409416847--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c      1970-01-01 00:00:00.000000000 +0000
    14095 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c   2013-09-13 19:01:43.193198223 +0000
     16848+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c   2013-10-01 16:06:44.008554285 +0000
    1409616849@@ -0,0 +1,10 @@
    1409716850+/* { dg-do compile } */
     
    1410716860diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c
    1410816861--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c      1970-01-01 00:00:00.000000000 +0000
    14109 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c   2013-09-13 19:01:43.193198223 +0000
     16862+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c   2013-10-01 16:06:44.008554285 +0000
    1411016863@@ -0,0 +1,41 @@
    1411116864+/* PR target/57736 */
     
    1415216905diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c
    1415316906--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c      1970-01-01 00:00:00.000000000 +0000
    14154 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c   2013-09-13 19:01:43.193198223 +0000
     16907+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c   2013-10-01 16:06:44.008554285 +0000
    1415516908@@ -0,0 +1,13 @@
    1415616909+/* PR target/57777 */
     
    1416916922diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c
    1417016923--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c      1970-01-01 00:00:00.000000000 +0000
    14171 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c   2013-09-13 19:01:43.193198223 +0000
     16924+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c   2013-10-01 16:06:44.008554285 +0000
    1417216925@@ -0,0 +1,5 @@
    1417316926+/* PR target/58218 */
     
    1417816931diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/20020118-1.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c
    1417916932--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/20020118-1.c        2009-04-28 08:38:37.000000000 +0000
    14180 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c     2013-09-13 19:01:43.193198223 +0000
     16933+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c     2013-10-01 16:06:44.008554285 +0000
    1418116934@@ -1,6 +1,8 @@
    1418216935 /* { dg-do run { target powerpc*-*-* } }*/
     
    1419016943diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/altivec-consts.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
    1419116944--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/altivec-consts.c    2009-01-13 17:52:32.000000000 +0000
    14192 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c 2013-09-13 19:01:43.193198223 +0000
     16945+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c 2013-10-01 16:06:44.008554285 +0000
    1419316946@@ -11,31 +11,24 @@
    1419416947 typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
     
    1451417267diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
    1451517268--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c 1970-01-01 00:00:00.000000000 +0000
    14516 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c      2013-09-13 19:01:43.193198223 +0000
     17269+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c      2013-10-01 16:06:44.008554285 +0000
    1451717270@@ -0,0 +1,253 @@
    1451817271+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
     
    1477517528diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
    1477617529--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c       2009-01-13 03:11:48.000000000 +0000
    14777 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c    2013-09-13 19:01:43.193198223 +0000
     17530+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c    2013-10-01 16:06:44.008554285 +0000
    1477817531@@ -4,4 +4,4 @@
    1477917532 /* { dg-options "-m64" } */
     
    1478417537diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c
    1478517538--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c   2012-04-24 15:51:58.000000000 +0000
    14786 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c        2013-09-13 19:01:43.193198223 +0000
     17539+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c        2013-10-01 16:06:44.008554285 +0000
    1478717540@@ -1,4 +1,5 @@
    1478817541 /* { dg-do compile } */
     
    1479117544 
    1479217545 /* Compile-only test to ensure that expressions can be passed to
     17546diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr58330.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr58330.c
     17547--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr58330.c   1970-01-01 00:00:00.000000000 +0000
     17548+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr58330.c        2013-10-01 16:06:44.008554285 +0000
     17549@@ -0,0 +1,11 @@
     17550+/* { dg-do compile { target { powerpc*-*-* } } } */
     17551+/* { dg-require-effective-target lp64 } */
     17552+/* { dg-options "-O -mno-popcntb" } */
     17553+/* { dg-final { scan-assembler-not "stwbrx" } } */
     17554+
     17555+void
     17556+write_reverse (unsigned long *addr, unsigned long val)
     17557+{
     17558+  unsigned long reverse = __builtin_bswap64 (val);
     17559+  __atomic_store_n (addr, reverse, __ATOMIC_RELAXED);
     17560+}
    1479317561diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/tfmode_off.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c
    1479417562--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/tfmode_off.c        2012-11-07 21:03:08.000000000 +0000
    14795 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c     2013-09-13 19:01:43.193198223 +0000
     17563+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c     2013-10-01 16:06:44.008554285 +0000
    1479617564@@ -1,5 +1,6 @@
    1479717565 /* { dg-do assemble } */
     
    1480317571diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-1.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c
    1480417572--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-1.c      1970-01-01 00:00:00.000000000 +0000
    14805 +++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c   2013-09-13 19:01:43.196531548 +0000
     17573+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c   2013-10-01 16:06:44.008554285 +0000
    1480617574@@ -0,0 +1,19 @@
    1480717575+/* Verify that the fmac insn is used for the expression 'a * b + a' and
     
    1482617594diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-2.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c
    1482717595--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-2.c      1970-01-01 00:00:00.000000000 +0000
    14828 +++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c   2013-09-13 19:01:43.196531548 +0000
     17596+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c   2013-10-01 16:06:44.008554285 +0000
    1482917597@@ -0,0 +1,18 @@
    1483017598+/* Verify that the fmac insn is used for the expression 'a * b + a' and
     
    1484617614+  return a * a + a;
    1484717615+}
     17616diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/torture/pr58314.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/torture/pr58314.c
     17617--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/torture/pr58314.c        1970-01-01 00:00:00.000000000 +0000
     17618+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/torture/pr58314.c     2013-10-01 16:06:44.008554285 +0000
     17619@@ -0,0 +1,102 @@
     17620+/* { dg-do compile { target "sh*-*-*" } } */
     17621+/* { dg-options "-Os" } */
     17622+
     17623+typedef unsigned short __u16;
     17624+typedef unsigned int __u32;
     17625+
     17626+typedef signed short s16;
     17627+
     17628+
     17629+static inline __attribute__((always_inline)) __attribute__((__const__)) __u16 __arch_swab16(__u16 x)
     17630+{
     17631+ __asm__(
     17632+  "swap.b              %1, %0"
     17633+  : "=r" (x)
     17634+  : "r" (x));
     17635+ return x;
     17636+}
     17637+
     17638+void u16_add_cpu(__u16 *var)
     17639+{
     17640+  *var = __arch_swab16(*var);
     17641+}
     17642+
     17643+typedef struct xfs_mount {
     17644+ int m_attr_magicpct;
     17645+} xfs_mount_t;
     17646+
     17647+typedef struct xfs_da_args {
     17648+ struct xfs_mount *t_mountp;
     17649+ int index;
     17650+} xfs_da_args_t;
     17651+
     17652+typedef struct xfs_dabuf {
     17653+ void *data;
     17654+} xfs_dabuf_t;
     17655+
     17656+typedef struct xfs_attr_leaf_map {
     17657+ __u16 base;
     17658+ __u16 size;
     17659+} xfs_attr_leaf_map_t;
     17660+typedef struct xfs_attr_leaf_hdr {
     17661+ __u16 count;
     17662+ xfs_attr_leaf_map_t freemap[3];
     17663+} xfs_attr_leaf_hdr_t;
     17664+
     17665+typedef struct xfs_attr_leaf_entry {
     17666+  __u16 nameidx;
     17667+} xfs_attr_leaf_entry_t;
     17668+
     17669+typedef struct xfs_attr_leafblock {
     17670+ xfs_attr_leaf_hdr_t hdr;
     17671+ xfs_attr_leaf_entry_t entries[1];
     17672+} xfs_attr_leafblock_t;
     17673+
     17674+int
     17675+xfs_attr_leaf_remove(xfs_attr_leafblock_t *leaf, xfs_da_args_t *args)
     17676+{
     17677+ xfs_attr_leaf_hdr_t *hdr;
     17678+ xfs_attr_leaf_map_t *map;
     17679+ xfs_attr_leaf_entry_t *entry;
     17680+ int before, after, smallest, entsize;
     17681+ int tablesize, tmp, i;
     17682+ xfs_mount_t *mp;
     17683+ hdr = &leaf->hdr;
     17684+ mp = args->t_mountp;
     17685+
     17686+ entry = &leaf->entries[args->index];
     17687+
     17688+ tablesize = __arch_swab16(hdr->count);
     17689+
     17690+ map = &hdr->freemap[0];
     17691+ tmp = map->size;
     17692+ before = after = -1;
     17693+ smallest = 3 - 1;
     17694+ entsize = xfs_attr_leaf_entsize(leaf, args->index);
     17695+
     17696+ for (i = 0; i < 2; map++, i++) {
     17697+
     17698+  if (map->base == tablesize)
     17699+    u16_add_cpu(&map->base);
     17700+
     17701+  if (__arch_swab16(map->base)  + __arch_swab16(map->size)  == __arch_swab16(entry->nameidx))
     17702+   before = i;
     17703+  else if (map->base == entsize)
     17704+   after = i;
     17705+  else if (__arch_swab16(map->size) < tmp)
     17706+   smallest = i;
     17707+ }
     17708+
     17709+ if (before >= 0)
     17710+  {
     17711+   map = &hdr->freemap[after];
     17712+   map->base = entry->nameidx;
     17713+
     17714+  }
     17715+
     17716+  map = &hdr->freemap[smallest];
     17717+
     17718+  map->base = __arch_swab16(entry->nameidx);
     17719+
     17720+ return(tmp < mp->m_attr_magicpct);
     17721+}
    1484817722diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_6.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90
    1484917723--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_6.f90   1970-01-01 00:00:00.000000000 +0000
    14850 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90        2013-09-13 19:01:43.203198197 +0000
     17724+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90        2013-10-01 16:06:44.012554285 +0000
    1485117725@@ -0,0 +1,36 @@
    1485217726+! { dg-do compile }
     
    1488817762diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_7.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90
    1488917763--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_7.f90   1970-01-01 00:00:00.000000000 +0000
    14890 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90        2013-09-13 19:01:43.203198197 +0000
     17764+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90        2013-10-01 16:06:44.012554285 +0000
    1489117765@@ -0,0 +1,29 @@
    1489217766+! { dg-compile }
     
    1492117795diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/dot_product_2.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90
    1492217796--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/dot_product_2.f90  1970-01-01 00:00:00.000000000 +0000
    14923 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90       2013-09-13 19:01:43.203198197 +0000
     17797+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90       2013-10-01 16:06:44.016554284 +0000
    1492417798@@ -0,0 +1,38 @@
    1492517799+! { dg-do compile }
     
    1496317837diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/inline_sum_5.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90
    1496417838--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/inline_sum_5.f90   1970-01-01 00:00:00.000000000 +0000
    14965 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90        2013-09-13 19:01:43.203198197 +0000
     17839+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90        2013-10-01 16:06:44.016554284 +0000
    1496617840@@ -0,0 +1,33 @@
    1496717841+! { dg-do run }
     
    1500017874diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/select_type_34.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90
    1500117875--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/select_type_34.f90 1970-01-01 00:00:00.000000000 +0000
    15002 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90      2013-09-13 19:01:43.203198197 +0000
     17876+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90      2013-10-01 16:06:44.016554284 +0000
    1500317877@@ -0,0 +1,10 @@
    1500417878+! { dg-do compile }
     
    1501417888diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90
    1501517889--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90   1970-01-01 00:00:00.000000000 +0000
    15016 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90        2013-09-13 19:01:43.203198197 +0000
     17890+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90        2013-10-01 16:06:44.016554284 +0000
    1501717891@@ -0,0 +1,20 @@
    1501817892+! { dg-do compile }
     
    1503817912diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/typebound_override_4.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90
    1503917913--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/typebound_override_4.f90   1970-01-01 00:00:00.000000000 +0000
    15040 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90        2013-09-13 19:01:43.203198197 +0000
     17914+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90        2013-10-01 16:06:44.016554284 +0000
    1504117915@@ -0,0 +1,34 @@
    1504217916+! { dg-do compile }
     
    1507617950diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90
    1507717951--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90 1970-01-01 00:00:00.000000000 +0000
    15078 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90      2013-09-13 19:01:43.203198197 +0000
     17952+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90      2013-10-01 16:06:44.016554284 +0000
    1507917953@@ -0,0 +1,15 @@
    1508017954+! { dg-do compile }
     
    1509317967+
    1509417968+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
     17969diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90 gcc-4.8.1/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90
     17970--- gcc-4.8.1.orig/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90   1970-01-01 00:00:00.000000000 +0000
     17971+++ gcc-4.8.1/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90        2013-10-01 16:06:44.016554284 +0000
     17972@@ -0,0 +1,33 @@
     17973+module testmod
     17974+  implicit none
     17975+
     17976+  contains
     17977+
     17978+  subroutine foo(n)
     17979+    integer, intent(in) :: n
     17980+    real :: r(0:n,-n:n), a(0:n,-n:n), dj
     17981+    integer :: k, j
     17982+
     17983+    ! initialize with some dummy values
     17984+    do j = -n, n
     17985+      a(:, j) = j
     17986+      r(:,j) = j + 1
     17987+    end do
     17988+
     17989+    ! here be dragons
     17990+    do k = 0, n
     17991+      dj = r(k, k - 2) * a(k, k - 2)
     17992+      r(k,k) = a(k, k - 1) * dj
     17993+    enddo
     17994+
     17995+    if (r(0,0) .ne. -2.) call abort
     17996+
     17997+  end subroutine
     17998+
     17999+end module
     18000+
     18001+program test
     18002+  use testmod
     18003+  implicit none
     18004+  call foo(5)
     18005+end program
     18006diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/array_bounds_test2.adb gcc-4.8.1/gcc/testsuite/gnat.dg/array_bounds_test2.adb
     18007--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/array_bounds_test2.adb 1970-01-01 00:00:00.000000000 +0000
     18008+++ gcc-4.8.1/gcc/testsuite/gnat.dg/array_bounds_test2.adb      2013-10-01 16:06:44.016554284 +0000
     18009@@ -0,0 +1,25 @@
     18010+--  { dg-do run }
     18011+
     18012+with Ada.Unchecked_Deallocation;
     18013+
     18014+procedure Array_Bounds_Test2 is
     18015+
     18016+  type String_Ptr_T is access String;
     18017+  procedure Free is new Ada.Unchecked_Deallocation (String, String_Ptr_T);
     18018+  String_Data : String_Ptr_T := new String'("Hello World");
     18019+
     18020+  function Peek return String_Ptr_T is
     18021+  begin
     18022+    return String_Data;
     18023+  end Peek;
     18024+
     18025+begin
     18026+  declare
     18027+    Corrupted_String : String := Peek.all;
     18028+  begin
     18029+    Free(String_Data);
     18030+    if Corrupted_String'First /= 1 then
     18031+      raise Program_Error;
     18032+    end if;
     18033+  end;
     18034+end;
     18035diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/in_out_parameter4.adb gcc-4.8.1/gcc/testsuite/gnat.dg/in_out_parameter4.adb
     18036--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/in_out_parameter4.adb  1970-01-01 00:00:00.000000000 +0000
     18037+++ gcc-4.8.1/gcc/testsuite/gnat.dg/in_out_parameter4.adb       2013-10-01 16:06:44.016554284 +0000
     18038@@ -0,0 +1,30 @@
     18039+-- { dg-do run }
     18040+-- { dg-options "-gnat12 -gnatVa" }
     18041+
     18042+procedure In_Out_Parameter4 is
     18043+
     18044+   type Enum is (E_Undetermined, E_Down, E_Up);
     18045+   subtype Status_T is Enum range E_Down .. E_Up;
     18046+
     18047+   function Recurse (Val : in out Integer) return Status_T is
     18048+
     18049+     Result : Status_T;
     18050+
     18051+     procedure Dummy (I : in out Integer) is begin null; end;
     18052+
     18053+   begin
     18054+     if Val > 500 then
     18055+       Val := Val - 1;
     18056+       Result := Recurse (Val);
     18057+       return Result;
     18058+     else
     18059+       return E_UP;
     18060+     end if;
     18061+   end;
     18062+
     18063+   Val : Integer := 501;
     18064+   S : Status_T;
     18065+
     18066+begin
     18067+   S := Recurse (Val);
     18068+end;
    1509518069diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb
    1509618070--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb        1970-01-01 00:00:00.000000000 +0000
    15097 +++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb     2013-09-13 19:01:43.203198197 +0000
     18071+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb     2013-10-01 16:06:44.016554284 +0000
    1509818072@@ -0,0 +1,24 @@
    1509918073+-- { dg-do run }
     
    1512318097diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb
    1512418098--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb    1970-01-01 00:00:00.000000000 +0000
    15125 +++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb 2013-09-13 19:01:43.206531521 +0000
     18099+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb 2013-10-01 16:06:44.016554284 +0000
    1512618100@@ -0,0 +1,8 @@
    1512718101+package body Loop_Optimization16_Pkg is
     
    1513518109diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads
    1513618110--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads    1970-01-01 00:00:00.000000000 +0000
    15137 +++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads 2013-09-13 19:01:43.206531521 +0000
     18111+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads 2013-10-01 16:06:44.016554284 +0000
    1513818112@@ -0,0 +1,7 @@
    1513918113+package Loop_Optimization16_Pkg is
     
    1514418118+
    1514518119+end Loop_Optimization16_Pkg;
     18120diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.adb gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.adb
     18121--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.adb      1970-01-01 00:00:00.000000000 +0000
     18122+++ gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.adb   2013-10-01 16:06:44.016554284 +0000
     18123@@ -0,0 +1,31 @@
     18124+with Opt28_Pkg; use Opt28_Pkg;
     18125+
     18126+package body Opt28 is
     18127+
     18128+  function Full_Filename (Filename : String) return String is
     18129+    Path : constant String := "PATH";
     18130+    Posix_Path : constant Posix_String := To_Posix (Path);
     18131+  begin
     18132+
     18133+    declare
     18134+      M : constant Posix_String := Value_Of (Posix_Path);
     18135+      N : constant Posix_String (1 .. M'Length) := M;
     18136+      Var : constant String := To_String (Str => N);
     18137+      Start_Pos : Natural := 1;
     18138+      End_Pos   : Natural := 1;
     18139+    begin
     18140+      while Start_Pos <= Var'Length loop
     18141+        End_Pos := Position (Var (Start_Pos .. Var'Length));
     18142+
     18143+        if Is_File (To_Posix (Var (Start_Pos .. End_Pos - 1) & Filename)) then
     18144+          return Var (Start_Pos .. End_Pos - 1) & Filename;
     18145+        else
     18146+          Start_Pos := End_Pos + 1;
     18147+        end if;
     18148+      end loop;
     18149+    end;
     18150+
     18151+    return "";
     18152+  end;
     18153+
     18154+end Opt28;
     18155diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.ads gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.ads
     18156--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.ads      1970-01-01 00:00:00.000000000 +0000
     18157+++ gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.ads   2013-10-01 16:06:44.016554284 +0000
     18158@@ -0,0 +1,8 @@
     18159+-- { dg-do compile }
     18160+-- { dg-options "-O2" }
     18161+
     18162+package Opt28 is
     18163+
     18164+  function Full_Filename (Filename : String) return String;
     18165+
     18166+end Opt28;
     18167diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28_pkg.ads gcc-4.8.1/gcc/testsuite/gnat.dg/opt28_pkg.ads
     18168--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28_pkg.ads  1970-01-01 00:00:00.000000000 +0000
     18169+++ gcc-4.8.1/gcc/testsuite/gnat.dg/opt28_pkg.ads       2013-10-01 16:06:44.016554284 +0000
     18170@@ -0,0 +1,11 @@
     18171+package Opt28_Pkg is
     18172+
     18173+  type Posix_String is array (Positive range <>) of aliased Character;
     18174+
     18175+  function To_Posix (Str : String) return Posix_String;
     18176+  function To_String (Str : Posix_String) return String;
     18177+  function Is_File (Str : Posix_String) return Boolean;
     18178+  function Value_Of (Name : Posix_String) return Posix_String;
     18179+  function Position (In_Line : String) return Natural;
     18180+
     18181+end Opt28_Pkg;
    1514618182diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go
    1514718183--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go  2012-09-29 18:16:01.000000000 +0000
    15148 +++ gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go       2013-09-13 19:01:43.206531521 +0000
     18184+++ gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go       2013-10-01 16:06:44.016554284 +0000
    1514918185@@ -594,6 +594,19 @@
    1515018186        "}\n" +
     
    1519218228diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug086.go gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go
    1519318229--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug086.go       2012-09-29 18:16:01.000000000 +0000
    15194 +++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go    2013-09-13 19:01:43.206531521 +0000
     18230+++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go    2013-10-01 16:06:44.016554284 +0000
    1519518231@@ -6,12 +6,12 @@
    1519618232 
     
    1521018246diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug410.go gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go
    1521118247--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug410.go       2012-09-29 18:16:01.000000000 +0000
    15212 +++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go    2013-09-13 19:01:43.206531521 +0000
     18248+++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go    2013-10-01 16:06:44.016554284 +0000
    1521318249@@ -18,7 +18,7 @@
    1521418250     for s := range arr {
     
    1522218258diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go
    1522318259--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go 2012-09-29 18:16:01.000000000 +0000
    15224 +++ gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go      2013-09-13 19:01:43.206531521 +0000
     18260+++ gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go      2013-10-01 16:06:44.016554284 +0000
    1522518261@@ -23,7 +23,7 @@
    1522618262 
     
    1544118477diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
    1544218478--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm      2010-07-02 09:49:53.000000000 +0000
    15443 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm   2013-09-13 19:01:43.206531521 +0000
     18479+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm   2013-10-01 16:06:44.016554284 +0000
    1544418480@@ -2,12 +2,15 @@
    1544518481 
     
    1548418520diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/method-12.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm
    1548518521--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/method-12.mm        2011-06-06 22:46:58.000000000 +0000
    15486 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm     2013-09-13 19:01:43.209864846 +0000
     18522+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm     2013-10-01 16:06:44.016554284 +0000
    1548718523@@ -2,6 +2,7 @@
    1548818524 /* Author: Ziemowit Laski <zlaski@apple.com>  */
     
    1551418550diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
    1551518551--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm  2010-09-15 00:08:59.000000000 +0000
    15516 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm       2013-09-13 19:01:43.209864846 +0000
     18552+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm       2013-10-01 16:06:44.016554284 +0000
    1551718553@@ -1,12 +1,19 @@
    1551818554 /* Check that typedefs of ObjC classes preserve
     
    1553918575diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
    1554018576--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm 2010-10-22 10:30:29.000000000 +0000
    15541 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm      2013-09-13 19:01:43.209864846 +0000
     18577+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm      2013-10-01 16:06:44.016554284 +0000
    1554218578@@ -6,16 +6,16 @@
    1554318579 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1556218598diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
    1556318599--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm     2011-06-06 22:46:58.000000000 +0000
    15564 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm  2013-09-13 19:01:43.209864846 +0000
     18600+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm  2013-10-01 16:06:44.016554284 +0000
    1556518601@@ -5,17 +5,23 @@
    1556618602 /* { dg-options "-fconstant-string-class=Foo" } */
     
    1559118627diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/syntax-error-1.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
    1559218628--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/syntax-error-1.mm   2010-10-05 19:23:33.000000000 +0000
    15593 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm        2013-09-13 19:01:43.209864846 +0000
     18629+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm        2013-10-01 16:06:44.020554284 +0000
    1559418630@@ -1,7 +1,13 @@
    1559518631 /* Graceful handling of a syntax error.  */
     
    1562318659diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
    1562418660--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm     2011-06-06 22:46:58.000000000 +0000
    15625 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm  2013-09-13 19:01:43.209864846 +0000
     18661+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm  2013-10-01 16:06:44.020554284 +0000
    1562618662@@ -6,10 +6,10 @@
    1562718663 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1563918675diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
    1564018676--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm     2011-06-06 22:46:58.000000000 +0000
    15641 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm  2013-09-13 19:01:43.209864846 +0000
     18677+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm  2013-10-01 16:06:44.020554284 +0000
    1564218678@@ -7,10 +7,10 @@
    1564318679 /* { dg-options "-fconstant-string-class=XStr" } */
     
    1565518691diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
    1565618692--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm      2011-06-06 22:46:58.000000000 +0000
    15657 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm   2013-09-13 19:01:43.209864846 +0000
     18693+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm   2013-10-01 16:06:44.020554284 +0000
    1565818694@@ -5,10 +5,10 @@
    1565918695 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1567118707diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/encode-7-next-64bit.m gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m
    1567218708--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/encode-7-next-64bit.m  2011-06-06 22:46:58.000000000 +0000
    15673 +++ gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m       2013-09-13 19:01:43.213198171 +0000
     18709+++ gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m       2013-10-01 16:06:44.020554284 +0000
    1567418710@@ -4,24 +4,25 @@
    1567518711 /* { dg-require-effective-target lp64 } */
     
    1585118887diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m
    1585218888--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m   2011-02-18 00:07:38.000000000 +0000
    15853 +++ gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m        2013-09-13 19:01:43.213198171 +0000
     18889+++ gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m        2013-10-01 16:06:44.020554284 +0000
    1585418890@@ -7,20 +7,19 @@
    1585518891 /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1587918915diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m
    1588018916--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m     2011-06-06 22:46:58.000000000 +0000
    15881 +++ gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m  2013-09-13 19:01:43.213198171 +0000
     18917+++ gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m  2013-10-01 16:06:44.020554284 +0000
    1588218918@@ -4,14 +4,21 @@
    1588318919 /* { dg-do compile } */
     
    1592418960diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/no-extra-load.m gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m
    1592518961--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/no-extra-load.m        2010-03-25 22:25:05.000000000 +0000
    15926 +++ gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m     2013-09-13 19:01:43.213198171 +0000
     18962+++ gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m     2013-10-01 16:06:44.020554284 +0000
    1592718963@@ -1,7 +1,7 @@
    1592818964 /* { dg-do compile { target *-*-darwin* } } */
     
    1593618972diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-4.m gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m
    1593718973--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-4.m       2011-01-09 16:24:46.000000000 +0000
    15938 +++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m    2013-09-13 19:01:43.213198171 +0000
     18974+++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m    2013-10-01 16:06:44.020554284 +0000
    1593918975@@ -1,17 +1,13 @@
    1594018976 /* Test for valid objc objects used in a for-each statement. */
     
    1596218998diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-5.m gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m
    1596318999--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-5.m       2011-01-09 16:24:46.000000000 +0000
    15964 +++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m    2013-09-13 19:01:43.213198171 +0000
     19000+++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m    2013-10-01 16:06:44.020554284 +0000
    1596519001@@ -2,8 +2,10 @@
    1596619002 /* { dg-do compile { target *-*-darwin* } } */
     
    1597719013diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m
    1597819014--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m      2011-06-06 22:46:58.000000000 +0000
    15979 +++ gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m   2013-09-13 19:01:43.213198171 +0000
     19015+++ gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m   2013-10-01 16:06:44.020554284 +0000
    1598019016@@ -3,14 +3,24 @@
    1598119017 
     
    1601719053diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/proto-lossage-7.m gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m
    1601819054--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/proto-lossage-7.m      2010-09-15 00:08:59.000000000 +0000
    16019 +++ gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m   2013-09-13 19:01:43.213198171 +0000
     19055+++ gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m   2013-10-01 16:06:44.020554284 +0000
    1602019056@@ -1,12 +1,19 @@
    1602119057 /* Check that typedefs of ObjC classes preserve
     
    1604219078diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-cfstring-5.m gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m
    1604319079--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-cfstring-5.m     2010-10-22 10:30:29.000000000 +0000
    16044 +++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m  2013-09-13 19:01:43.216531495 +0000
     19080+++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m  2013-10-01 16:06:44.020554284 +0000
    1604519081@@ -6,16 +6,16 @@
    1604619082 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1606519101diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-str-12b.m gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m
    1606619102--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-str-12b.m        2011-01-11 10:14:48.000000000 +0000
    16067 +++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m     2013-09-13 19:01:43.216531495 +0000
     19103+++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m     2013-10-01 16:06:44.020554284 +0000
    1606819104@@ -5,17 +5,23 @@
    1606919105 /* { dg-options "-fconstant-string-class=Foo" } */
     
    1609419130diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m
    1609519131--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m     2011-02-18 00:07:38.000000000 +0000
    16096 +++ gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m  2013-09-13 19:01:43.216531495 +0000
     19132+++ gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m  2013-10-01 16:06:44.020554284 +0000
    1609719133@@ -4,9 +4,9 @@
    1609819134 /* { dg-do compile { target { *-*-darwin* } } } */
     
    1610919145diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-10.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m
    1611019146--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-10.m 2011-06-06 22:46:58.000000000 +0000
    16111 +++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m      2013-09-13 19:01:43.216531495 +0000
     19147+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m      2013-10-01 16:06:44.020554284 +0000
    1611219148@@ -6,10 +6,10 @@
    1611319149 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1612519161diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-11.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m
    1612619162--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-11.m 2011-06-06 22:46:58.000000000 +0000
    16127 +++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m      2013-09-13 19:01:43.216531495 +0000
     19163+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m      2013-10-01 16:06:44.020554284 +0000
    1612819164@@ -7,10 +7,10 @@
    1612919165 /* { dg-options "-fconstant-string-class=XStr" } */
     
    1614119177diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-9.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m
    1614219178--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-9.m  2011-06-06 22:46:58.000000000 +0000
    16143 +++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m       2013-09-13 19:01:43.216531495 +0000
     19179+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m       2013-10-01 16:06:44.020554284 +0000
    1614419180@@ -5,10 +5,10 @@
    1614519181 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1615719193diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-1.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m
    1615819194--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-1.m  2011-06-06 22:46:58.000000000 +0000
    16159 +++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m       2013-09-13 19:01:43.216531495 +0000
     19195+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m       2013-10-01 16:06:44.020554284 +0000
    1616019196@@ -5,13 +5,12 @@
    1616119197 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1617619212diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-2.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m
    1617719213--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-2.m  2011-02-18 00:07:38.000000000 +0000
    16178 +++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m       2013-09-13 19:01:43.216531495 +0000
     19214+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m       2013-10-01 16:06:44.020554284 +0000
    1617919215@@ -5,12 +5,12 @@
    1618019216 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
     
    1619419230diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-3.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m
    1619519231--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-3.m  2011-06-06 22:46:58.000000000 +0000
    16196 +++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m       2013-09-13 19:01:43.216531495 +0000
     19232+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m       2013-10-01 16:06:44.020554284 +0000
    1619719233@@ -2,15 +2,23 @@
    1619819234 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
     
    1622319259diff -Naur gcc-4.8.1.orig/gcc/tlink.c gcc-4.8.1/gcc/tlink.c
    1622419260--- gcc-4.8.1.orig/gcc/tlink.c  2013-01-10 20:38:27.000000000 +0000
    16225 +++ gcc-4.8.1/gcc/tlink.c       2013-09-13 19:01:43.219864820 +0000
     19261+++ gcc-4.8.1/gcc/tlink.c       2013-10-01 16:06:44.024554284 +0000
    1622619262@@ -817,18 +817,18 @@
    1622719263 void
     
    1626919305   else
    1627019306     {
     19307diff -Naur gcc-4.8.1.orig/gcc/tree-affine.c gcc-4.8.1/gcc/tree-affine.c
     19308--- gcc-4.8.1.orig/gcc/tree-affine.c    2013-01-10 20:38:27.000000000 +0000
     19309+++ gcc-4.8.1/gcc/tree-affine.c 2013-10-01 16:06:44.024554284 +0000
     19310@@ -736,11 +736,10 @@
     19311 }
     19312 
     19313 /* If VAL != CST * DIV for any constant CST, returns false.
     19314-   Otherwise, if VAL != 0 (and hence CST != 0), and *MULT_SET is true,
     19315-   additionally compares CST and MULT, and if they are different,
     19316-   returns false.  Finally, if neither of these two cases occur,
     19317-   true is returned, and if CST != 0, CST is stored to MULT and
     19318-   MULT_SET is set to true.  */
     19319+   Otherwise, if *MULT_SET is true, additionally compares CST and MULT,
     19320+   and if they are different, returns false.  Finally, if neither of these
     19321+   two cases occur, true is returned, and CST is stored to MULT and MULT_SET
     19322+   is set to true.  */
     19323 
     19324 static bool
     19325 double_int_constant_multiple_p (double_int val, double_int div,
     19326@@ -749,7 +748,13 @@
     19327   double_int rem, cst;
     19328 
     19329   if (val.is_zero ())
     19330-    return true;
     19331+    {
     19332+      if (*mult_set && !mult->is_zero ())
     19333+       return false;
     19334+      *mult_set = true;
     19335+      *mult = double_int_zero;
     19336+      return true;
     19337+    }
     19338 
     19339   if (div.is_zero ())
     19340     return false;
    1627119341diff -Naur gcc-4.8.1.orig/gcc/tree-call-cdce.c gcc-4.8.1/gcc/tree-call-cdce.c
    1627219342--- gcc-4.8.1.orig/gcc/tree-call-cdce.c 2013-02-20 15:19:13.000000000 +0000
    16273 +++ gcc-4.8.1/gcc/tree-call-cdce.c      2013-09-13 19:01:43.219864820 +0000
     19343+++ gcc-4.8.1/gcc/tree-call-cdce.c      2013-10-01 16:06:44.024554284 +0000
    1627419344@@ -726,15 +726,28 @@
    1627519345      return false and do not do any transformation for
     
    1630619376 
    1630719377   join_tgt_bb = join_tgt_in_edge_from_call->dest;
     19378diff -Naur gcc-4.8.1.orig/gcc/tree-if-conv.c gcc-4.8.1/gcc/tree-if-conv.c
     19379--- gcc-4.8.1.orig/gcc/tree-if-conv.c   2013-01-10 20:38:27.000000000 +0000
     19380+++ gcc-4.8.1/gcc/tree-if-conv.c        2013-10-01 16:06:44.024554284 +0000
     19381@@ -797,20 +797,6 @@
     19382   return true;
     19383 }
     19384 
     19385-/* Return true when BB post-dominates all its predecessors.  */
     19386-
     19387-static bool
     19388-bb_postdominates_preds (basic_block bb)
     19389-{
     19390-  unsigned i;
     19391-
     19392-  for (i = 0; i < EDGE_COUNT (bb->preds); i++)
     19393-    if (!dominated_by_p (CDI_POST_DOMINATORS, EDGE_PRED (bb, i)->src, bb))
     19394-      return false;
     19395-
     19396-  return true;
     19397-}
     19398-
     19399 /* Return true when BB is if-convertible.  This routine does not check
     19400    basic block's statements and phis.
     19401 
     19402@@ -868,10 +854,23 @@
     19403        return false;
     19404       }
     19405 
     19406-  if (EDGE_COUNT (bb->preds) == 2
     19407-      && bb != loop->header
     19408-      && !bb_postdominates_preds (bb))
     19409-    return false;
     19410+  /* At least one incoming edge has to be non-critical as otherwise edge
     19411+     predicates are not equal to basic-block predicates of the edge
     19412+     source.  */
     19413+  if (EDGE_COUNT (bb->preds) > 1
     19414+      && bb != loop->header)
     19415+    {
     19416+      bool found = false;
     19417+      FOR_EACH_EDGE (e, ei, bb->preds)
     19418+       if (EDGE_COUNT (e->src->succs) == 1)
     19419+         found = true;
     19420+      if (!found)
     19421+       {
     19422+         if (dump_file && (dump_flags & TDF_DETAILS))
     19423+           fprintf (dump_file, "only critical predecessors\n");
     19424+         return false;
     19425+       }
     19426+    }
     19427 
     19428   return true;
     19429 }
     19430@@ -1084,7 +1083,6 @@
     19431     return false;
     19432 
     19433   calculate_dominance_info (CDI_DOMINATORS);
     19434-  calculate_dominance_info (CDI_POST_DOMINATORS);
     19435 
     19436   /* Allow statements that can be handled during if-conversion.  */
     19437   ifc_bbs = get_loop_body_in_if_conv_order (loop);
     19438@@ -1220,8 +1218,7 @@
     19439    if-conversion.  */
     19440 
     19441 static basic_block
     19442-find_phi_replacement_condition (struct loop *loop,
     19443-                               basic_block bb, tree *cond,
     19444+find_phi_replacement_condition (basic_block bb, tree *cond,
     19445                                gimple_stmt_iterator *gsi)
     19446 {
     19447   edge first_edge, second_edge;
     19448@@ -1231,34 +1228,10 @@
     19449   first_edge = EDGE_PRED (bb, 0);
     19450   second_edge = EDGE_PRED (bb, 1);
     19451 
     19452-  /* Use condition based on following criteria:
     19453-     1)
     19454-       S1: x = !c ? a : b;
     19455-
     19456-       S2: x = c ? b : a;
     19457-
     19458-       S2 is preferred over S1. Make 'b' first_bb and use its condition.
     19459-
     19460-     2) Do not make loop header first_bb.
     19461-
     19462-     3)
     19463-       S1: x = !(c == d)? a : b;
     19464-
     19465-       S21: t1 = c == d;
     19466-       S22: x = t1 ? b : a;
     19467-
     19468-       S3: x = (c == d) ? b : a;
     19469-
     19470-       S3 is preferred over S1 and S2*, Make 'b' first_bb and use
     19471-       its condition.
     19472-
     19473-     4) If  pred B is dominated by pred A then use pred B's condition.
     19474-        See PR23115.  */
     19475-
     19476-  /* Select condition that is not TRUTH_NOT_EXPR.  */
     19477+  /* Prefer an edge with a not negated predicate.
     19478+     ???  That's a very weak cost model.  */
     19479   tmp_cond = bb_predicate (first_edge->src);
     19480   gcc_assert (tmp_cond);
     19481-
     19482   if (TREE_CODE (tmp_cond) == TRUTH_NOT_EXPR)
     19483     {
     19484       edge tmp_edge;
     19485@@ -1268,11 +1241,9 @@
     19486       second_edge = tmp_edge;
     19487     }
     19488 
     19489-  /* Check if FIRST_BB is loop header or not and make sure that
     19490-     FIRST_BB does not dominate SECOND_BB.  */
     19491-  if (first_edge->src == loop->header
     19492-      || dominated_by_p (CDI_DOMINATORS,
     19493-                        second_edge->src, first_edge->src))
     19494+  /* Check if the edge we take the condition from is not critical.
     19495+     We know that at least one non-critical edge exists.  */
     19496+  if (EDGE_COUNT (first_edge->src->succs) > 1)
     19497     {
     19498       *cond = bb_predicate (second_edge->src);
     19499 
     19500@@ -1347,9 +1318,6 @@
     19501          arg_1 = gimple_phi_arg_def (phi, 1);
     19502        }
     19503 
     19504-      gcc_checking_assert (bb == bb->loop_father->header
     19505-                          || bb_postdominates_preds (bb));
     19506-
     19507       /* Build new RHS using selected condition and arguments.  */
     19508       rhs = fold_build_cond_expr (TREE_TYPE (res), unshare_expr (cond),
     19509                                  arg_0, arg_1);
     19510@@ -1395,7 +1363,7 @@
     19511       /* BB has two predecessors.  Using predecessor's aux field, set
     19512         appropriate condition for the PHI node replacement.  */
     19513       gsi = gsi_after_labels (bb);
     19514-      true_bb = find_phi_replacement_condition (loop, bb, &cond, &gsi);
     19515+      true_bb = find_phi_replacement_condition (bb, &cond, &gsi);
     19516 
     19517       while (!gsi_end_p (phi_gsi))
     19518        {
     19519@@ -1765,9 +1733,6 @@
     19520 
     19521   free (ifc_bbs);
     19522   ifc_bbs = NULL;
     19523-
     19524-  /* Post-dominators are corrupt now.  */
     19525-  free_dominance_info (CDI_POST_DOMINATORS);
     19526 }
     19527 
     19528 /* If-convert LOOP when it is legal.  For the moment this pass has no
     19529@@ -1830,8 +1795,6 @@
     19530   if (changed && flag_tree_loop_if_convert_stores)
     19531     todo |= TODO_update_ssa_only_virtuals;
     19532 
     19533-  free_dominance_info (CDI_POST_DOMINATORS);
     19534-
     19535 #ifdef ENABLE_CHECKING
     19536   {
     19537     basic_block bb;
     19538diff -Naur gcc-4.8.1.orig/gcc/tree-loop-distribution.c gcc-4.8.1/gcc/tree-loop-distribution.c
     19539--- gcc-4.8.1.orig/gcc/tree-loop-distribution.c 2013-04-04 11:00:45.000000000 +0000
     19540+++ gcc-4.8.1/gcc/tree-loop-distribution.c      2013-10-01 16:06:44.024554284 +0000
     19541@@ -518,17 +518,19 @@
     19542          || !bitmap_bit_p (remaining_stmts, v));
     19543 }
     19544 
     19545-/* Returns NULL when there is no anti-dependence among the successors
     19546-   of vertex V, otherwise returns the edge with the anti-dep.  */
     19547+/* Returns NULL when there is no anti-dependence or output-dependence
     19548+   among the successors of vertex V, otherwise returns the edge with the
     19549+   dependency.  */
     19550 
     19551 static struct graph_edge *
     19552-has_anti_dependence (struct vertex *v)
     19553+has_anti_or_output_dependence (struct vertex *v)
     19554 {
     19555   struct graph_edge *e;
     19556 
     19557   if (v->succ)
     19558     for (e = v->succ; e; e = e->succ_next)
     19559-      if (RDGE_TYPE (e) == anti_dd)
     19560+      if (RDGE_TYPE (e) == anti_dd
     19561+         || RDGE_TYPE (e) == output_dd)
     19562        return e;
     19563 
     19564   return NULL;
     19565@@ -580,11 +582,10 @@
     19566                || predecessor_has_mem_write (rdg, &(rdg->vertices[x]))
     19567                /* In anti dependences the read should occur before
     19568                   the write, this is why both the read and the write
     19569-                  should be placed in the same partition.  */
     19570-               || has_anti_dependence (&(rdg->vertices[x])))
     19571-             {
     19572-               bitmap_set_bit (upstream_mem_writes, x);
     19573-             }
     19574+                  should be placed in the same partition.  In output
     19575+                  dependences the writes order need to be preserved.  */
     19576+               || has_anti_or_output_dependence (&(rdg->vertices[x])))
     19577+             bitmap_set_bit (upstream_mem_writes, x);
     19578          }
     19579 
     19580        nodes.release ();
     19581@@ -613,7 +614,7 @@
     19582   use_operand_p use_p;
     19583   struct vertex *x = &(rdg->vertices[u]);
     19584   gimple stmt = RDGV_STMT (x);
     19585-  struct graph_edge *anti_dep = has_anti_dependence (x);
     19586+  struct graph_edge *anti_dep = has_anti_or_output_dependence (x);
     19587 
     19588   /* Keep in the same partition the destination of an antidependence,
     19589      because this is a store to the exact same location.  Putting this
    1630819590diff -Naur gcc-4.8.1.orig/gcc/tree-parloops.c gcc-4.8.1/gcc/tree-parloops.c
    1630919591--- gcc-4.8.1.orig/gcc/tree-parloops.c  2013-05-07 08:11:46.000000000 +0000
    16310 +++ gcc-4.8.1/gcc/tree-parloops.c       2013-09-13 19:01:43.219864820 +0000
     19592+++ gcc-4.8.1/gcc/tree-parloops.c       2013-10-01 16:06:44.024554284 +0000
    1631119593@@ -478,9 +478,12 @@
    1631219594       if (gsi == NULL)
     
    1634019622diff -Naur gcc-4.8.1.orig/gcc/tree-sra.c gcc-4.8.1/gcc/tree-sra.c
    1634119623--- gcc-4.8.1.orig/gcc/tree-sra.c       2013-05-23 13:25:23.000000000 +0000
    16342 +++ gcc-4.8.1/gcc/tree-sra.c    2013-09-13 19:01:43.223198144 +0000
     19624+++ gcc-4.8.1/gcc/tree-sra.c    2013-10-01 16:06:44.024554284 +0000
    1634319625@@ -1440,6 +1440,7 @@
    1634419626 {
     
    1636319645 
    1636419646 /* Construct a memory reference to a part of an aggregate BASE at the given
     19647diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-ccp.c gcc-4.8.1/gcc/tree-ssa-ccp.c
     19648--- gcc-4.8.1.orig/gcc/tree-ssa-ccp.c   2013-02-20 15:19:13.000000000 +0000
     19649+++ gcc-4.8.1/gcc/tree-ssa-ccp.c        2013-10-01 16:06:44.024554284 +0000
     19650@@ -1707,6 +1707,9 @@
     19651        insert_clobber_before_stack_restore (gimple_phi_result (stmt), var,
     19652                                             visited);
     19653       }
     19654+    else if (gimple_assign_ssa_name_copy_p (stmt))
     19655+      insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var,
     19656+                                          visited);
     19657     else
     19658       gcc_assert (is_gimple_debug (stmt));
     19659 }
     19660diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-dce.c gcc-4.8.1/gcc/tree-ssa-dce.c
     19661--- gcc-4.8.1.orig/gcc/tree-ssa-dce.c   2013-02-20 15:19:13.000000000 +0000
     19662+++ gcc-4.8.1/gcc/tree-ssa-dce.c        2013-10-01 16:06:44.024554284 +0000
     19663@@ -574,6 +574,11 @@
     19664                      in the references (gcc.c-torture/execute/pr42142.c).
     19665                      The simplest way is to check if the kill dominates
     19666                      the use.  */
     19667+                  /* But when both are in the same block we cannot
     19668+                     easily tell whether we came from a backedge
     19669+                     unless we decide to compute stmt UIDs
     19670+                     (see PR58246).  */
     19671+                  && (basic_block) data != gimple_bb (def_stmt)
     19672                   && dominated_by_p (CDI_DOMINATORS, (basic_block) data,
     19673                                      gimple_bb (def_stmt))
     19674                   && operand_equal_p (ref->ref, lhs, 0))
     19675diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-loop-niter.c gcc-4.8.1/gcc/tree-ssa-loop-niter.c
     19676--- gcc-4.8.1.orig/gcc/tree-ssa-loop-niter.c    2013-05-08 09:10:04.000000000 +0000
     19677+++ gcc-4.8.1/gcc/tree-ssa-loop-niter.c 2013-10-01 16:06:44.028554284 +0000
     19678@@ -552,10 +552,18 @@
     19679 {
     19680   double_int max;
     19681   mpz_t d;
     19682+  tree type = TREE_TYPE (c);
     19683   bool bnds_u_valid = ((no_overflow && exit_must_be_taken)
     19684                       || mpz_sgn (bnds->below) >= 0);
     19685 
     19686-  if (multiple_of_p (TREE_TYPE (c), c, s))
     19687+  if (integer_onep (s)
     19688+      || (TREE_CODE (c) == INTEGER_CST
     19689+         && TREE_CODE (s) == INTEGER_CST
     19690+         && tree_to_double_int (c).mod (tree_to_double_int (s),
     19691+                                        TYPE_UNSIGNED (type),
     19692+                                        EXACT_DIV_EXPR).is_zero ())
     19693+      || (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (c))
     19694+         && multiple_of_p (type, c, s)))
     19695     {
     19696       /* If C is an exact multiple of S, then its value will be reached before
     19697         the induction variable overflows (unless the loop is exited in some
     19698@@ -572,16 +580,15 @@
     19699      the whole # of iterations analysis will fail).  */
     19700   if (!no_overflow)
     19701     {
     19702-      max = double_int::mask (TYPE_PRECISION (TREE_TYPE (c))
     19703-                            - tree_low_cst (num_ending_zeros (s), 1));
     19704+      max = double_int::mask (TYPE_PRECISION (type)
     19705+                             - tree_low_cst (num_ending_zeros (s), 1));
     19706       mpz_set_double_int (bnd, max, true);
     19707       return;
     19708     }
     19709 
     19710   /* Now we know that the induction variable does not overflow, so the loop
     19711      iterates at most (range of type / S) times.  */
     19712-  mpz_set_double_int (bnd, double_int::mask (TYPE_PRECISION (TREE_TYPE (c))),
     19713-                     true);
     19714+  mpz_set_double_int (bnd, double_int::mask (TYPE_PRECISION (type)), true);
     19715 
     19716   /* If the induction variable is guaranteed to reach the value of C before
     19717      overflow, ... */
     19718@@ -1311,7 +1318,8 @@
     19719     }
     19720 
     19721   /* If the loop exits immediately, there is nothing to do.  */
     19722-  if (integer_zerop (fold_build2 (code, boolean_type_node, iv0->base, iv1->base)))
     19723+  tree tem = fold_binary (code, boolean_type_node, iv0->base, iv1->base);
     19724+  if (tem && integer_zerop (tem))
     19725     {
     19726       niter->niter = build_int_cst (unsigned_type_for (type), 0);
     19727       niter->max = double_int_zero;
     19728diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-reassoc.c gcc-4.8.1/gcc/tree-ssa-reassoc.c
     19729--- gcc-4.8.1.orig/gcc/tree-ssa-reassoc.c       2013-05-07 14:43:17.000000000 +0000
     19730+++ gcc-4.8.1/gcc/tree-ssa-reassoc.c    2013-10-01 16:06:44.028554284 +0000
     19731@@ -1774,7 +1774,14 @@
     19732       switch (code)
     19733        {
     19734        case BIT_NOT_EXPR:
     19735-         if (TREE_CODE (TREE_TYPE (exp)) == BOOLEAN_TYPE)
     19736+         if (TREE_CODE (TREE_TYPE (exp)) == BOOLEAN_TYPE
     19737+             /* Ensure the range is either +[-,0], +[0,0],
     19738+                -[-,0], -[0,0] or +[1,-], +[1,1], -[1,-] or
     19739+                -[1,1].  If it is e.g. +[-,-] or -[-,-]
     19740+                or similar expression of unconditional true or
     19741+                false, it should not be negated.  */
     19742+             && ((high && integer_zerop (high))
     19743+                 || (low && integer_onep (low))))
     19744            {
     19745              in_p = !in_p;
     19746              exp = arg0;
     19747diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-sccvn.c gcc-4.8.1/gcc/tree-ssa-sccvn.c
     19748--- gcc-4.8.1.orig/gcc/tree-ssa-sccvn.c 2013-05-24 09:14:16.000000000 +0000
     19749+++ gcc-4.8.1/gcc/tree-ssa-sccvn.c      2013-10-01 16:06:44.028554284 +0000
     19750@@ -1062,7 +1062,7 @@
     19751   addr_base = get_addr_base_and_unit_offset (TREE_OPERAND (op->op0, 0),
     19752                                             &addr_offset);
     19753   gcc_checking_assert (addr_base && TREE_CODE (addr_base) != MEM_REF);
     19754-  if (addr_base != op->op0)
     19755+  if (addr_base != TREE_OPERAND (op->op0, 0))
     19756     {
     19757       double_int off = tree_to_double_int (mem_op->op0);
     19758       off = off.sext (TYPE_PRECISION (TREE_TYPE (mem_op->op0)));
     19759@@ -2555,6 +2555,7 @@
     19760 set_ssa_val_to (tree from, tree to)
     19761 {
     19762   tree currval = SSA_VAL (from);
     19763+  HOST_WIDE_INT toff, coff;
     19764 
     19765   if (from != to)
     19766     {
     19767@@ -2590,7 +2591,17 @@
     19768       print_generic_expr (dump_file, to, 0);
     19769     }
     19770 
     19771-  if (currval != to  && !operand_equal_p (currval, to, OEP_PURE_SAME))
     19772+  if (currval != to
     19773+      && !operand_equal_p (currval, to, 0)
     19774+      /* ???  For addresses involving volatile objects or types operand_equal_p
     19775+         does not reliably detect ADDR_EXPRs as equal.  We know we are only
     19776+        getting invariant gimple addresses here, so can use
     19777+        get_addr_base_and_unit_offset to do this comparison.  */
     19778+      && !(TREE_CODE (currval) == ADDR_EXPR
     19779+          && TREE_CODE (to) == ADDR_EXPR
     19780+          && (get_addr_base_and_unit_offset (TREE_OPERAND (currval, 0), &coff)
     19781+              == get_addr_base_and_unit_offset (TREE_OPERAND (to, 0), &toff))
     19782+          && coff == toff))
     19783     {
     19784       VN_INFO (from)->valnum = to;
     19785       if (dump_file && (dump_flags & TDF_DETAILS))
     19786diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-strlen.c gcc-4.8.1/gcc/tree-ssa-strlen.c
     19787--- gcc-4.8.1.orig/gcc/tree-ssa-strlen.c        2013-05-13 07:48:39.000000000 +0000
     19788+++ gcc-4.8.1/gcc/tree-ssa-strlen.c     2013-10-01 16:06:44.028554284 +0000
     19789@@ -1890,6 +1890,28 @@
     19790                  int count_vdef = 100;
     19791                  do_invalidate (dombb, phi, visited, &count_vdef);
     19792                  BITMAP_FREE (visited);
     19793+                 if (count_vdef == 0)
     19794+                   {
     19795+                     /* If there were too many vdefs in between immediate
     19796+                        dominator and current bb, invalidate everything.
     19797+                        If stridx_to_strinfo has been unshared, we need
     19798+                        to free it, otherwise just set it to NULL.  */
     19799+                     if (!strinfo_shared ())
     19800+                       {
     19801+                         unsigned int i;
     19802+                         strinfo si;
     19803+
     19804+                         for (i = 1;
     19805+                              vec_safe_iterate (stridx_to_strinfo, i, &si);
     19806+                              ++i)
     19807+                           {
     19808+                             free_strinfo (si);
     19809+                             (*stridx_to_strinfo)[i] = NULL;
     19810+                           }
     19811+                       }
     19812+                     else
     19813+                       stridx_to_strinfo = NULL;
     19814+                   }
     19815                  break;
     19816                }
     19817            }
     19818diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-structalias.c gcc-4.8.1/gcc/tree-ssa-structalias.c
     19819--- gcc-4.8.1.orig/gcc/tree-ssa-structalias.c   2013-02-04 13:31:28.000000000 +0000
     19820+++ gcc-4.8.1/gcc/tree-ssa-structalias.c        2013-10-01 16:06:44.028554284 +0000
     19821@@ -2237,18 +2237,37 @@
     19822       {
     19823        unsigned j = si->node_mapping[i];
     19824        if (j != i)
     19825-         fprintf (dump_file, "%s node id %d (%s) mapped to SCC leader "
     19826-                  "node id %d (%s)\n",
     19827-                   bitmap_bit_p (graph->direct_nodes, i)
     19828-                   ? "Direct" : "Indirect", i, get_varinfo (i)->name,
     19829-                   j, get_varinfo (j)->name);
     19830+         {
     19831+           fprintf (dump_file, "%s node id %d ",
     19832+                    bitmap_bit_p (graph->direct_nodes, i)
     19833+                    ? "Direct" : "Indirect", i);
     19834+           if (i < FIRST_REF_NODE)
     19835+             fprintf (dump_file, "\"%s\"", get_varinfo (i)->name);
     19836+           else
     19837+             fprintf (dump_file, "\"*%s\"",
     19838+                      get_varinfo (i - FIRST_REF_NODE)->name);
     19839+           fprintf (dump_file, " mapped to SCC leader node id %d ", j);
     19840+           if (j < FIRST_REF_NODE)
     19841+             fprintf (dump_file, "\"%s\"\n", get_varinfo (j)->name);
     19842+           else
     19843+             fprintf (dump_file, "\"*%s\"\n",
     19844+                      get_varinfo (j - FIRST_REF_NODE)->name);
     19845+         }
     19846        else
     19847-         fprintf (dump_file,
     19848-                  "Equivalence classes for %s node id %d (%s): pointer %d"
     19849-                  ", location %d\n",
     19850-                  bitmap_bit_p (graph->direct_nodes, i)
     19851-                  ? "direct" : "indirect", i, get_varinfo (i)->name,
     19852-                  graph->pointer_label[i], graph->loc_label[i]);
     19853+         {
     19854+           fprintf (dump_file,
     19855+                    "Equivalence classes for %s node id %d ",
     19856+                    bitmap_bit_p (graph->direct_nodes, i)
     19857+                    ? "direct" : "indirect", i);
     19858+           if (i < FIRST_REF_NODE)
     19859+             fprintf (dump_file, "\"%s\"", get_varinfo (i)->name);
     19860+           else
     19861+             fprintf (dump_file, "\"*%s\"",
     19862+                      get_varinfo (i - FIRST_REF_NODE)->name);
     19863+           fprintf (dump_file,
     19864+                    ": pointer %d, location %d\n",
     19865+                    graph->pointer_label[i], graph->loc_label[i]);
     19866+         }
     19867       }
     19868 
     19869   /* Quickly eliminate our non-pointer variables.  */
    1636519870diff -Naur gcc-4.8.1.orig/gcc/tree-tailcall.c gcc-4.8.1/gcc/tree-tailcall.c
    1636619871--- gcc-4.8.1.orig/gcc/tree-tailcall.c  2013-03-06 23:26:42.000000000 +0000
    16367 +++ gcc-4.8.1/gcc/tree-tailcall.c       2013-09-13 19:01:43.223198144 +0000
     19872+++ gcc-4.8.1/gcc/tree-tailcall.c       2013-10-01 16:06:44.028554284 +0000
    1636819873@@ -328,8 +328,10 @@
    1636919874     case NEGATE_EXPR:
     
    1640219907 
    1640319908   nw->call_gsi = gsi;
     19909diff -Naur gcc-4.8.1.orig/gcc/tree-vect-data-refs.c gcc-4.8.1/gcc/tree-vect-data-refs.c
     19910--- gcc-4.8.1.orig/gcc/tree-vect-data-refs.c    2013-03-06 08:38:46.000000000 +0000
     19911+++ gcc-4.8.1/gcc/tree-vect-data-refs.c 2013-10-01 16:06:44.028554284 +0000
     19912@@ -2498,10 +2498,17 @@
     19913       return false;
     19914     }
     19915 
     19916-  /* Allow invariant loads in loops.  */
     19917+  /* Allow invariant loads in not nested loops.  */
     19918   if (loop_vinfo && integer_zerop (step))
     19919     {
     19920       GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) = NULL;
     19921+      if (nested_in_vect_loop_p (loop, stmt))
     19922+       {
     19923+         if (dump_enabled_p ())
     19924+           dump_printf_loc (MSG_NOTE, vect_location,
     19925+                            "zero step in inner loop of nest");
     19926+         return false;
     19927+       }
     19928       return DR_IS_READ (dr);
     19929     }
     19930 
     19931diff -Naur gcc-4.8.1.orig/gcc/tree-vect-loop.c gcc-4.8.1/gcc/tree-vect-loop.c
     19932--- gcc-4.8.1.orig/gcc/tree-vect-loop.c 2013-03-05 09:37:56.000000000 +0000
     19933+++ gcc-4.8.1/gcc/tree-vect-loop.c      2013-10-01 16:06:44.028554284 +0000
     19934@@ -4329,9 +4329,8 @@
     19935         if (!flow_bb_inside_loop_p (loop, gimple_bb (USE_STMT (use_p))))
     19936           phis.safe_push (USE_STMT (use_p));
     19937 
     19938-      /* We expect to have found an exit_phi because of loop-closed-ssa
     19939-         form.  */
     19940-      gcc_assert (!phis.is_empty ());
     19941+      /* While we expect to have found an exit_phi because of loop-closed-ssa
     19942+         form we can end up without one if the scalar cycle is dead.  */
     19943 
     19944       FOR_EACH_VEC_ELT (phis, i, exit_phi)
     19945         {
    1640419946diff -Naur gcc-4.8.1.orig/gcc/tree-vect-patterns.c gcc-4.8.1/gcc/tree-vect-patterns.c
    1640519947--- gcc-4.8.1.orig/gcc/tree-vect-patterns.c     2013-01-10 20:38:27.000000000 +0000
    16406 +++ gcc-4.8.1/gcc/tree-vect-patterns.c  2013-09-13 19:01:43.223198144 +0000
     19948+++ gcc-4.8.1/gcc/tree-vect-patterns.c  2013-10-01 16:06:44.032554284 +0000
    1640719949@@ -638,7 +638,10 @@
    1640819950           && vect_handle_widen_op_by_const (last_stmt, MULT_EXPR, oprnd1,
     
    1641919961diff -Naur gcc-4.8.1.orig/gcc/tree-vect-stmts.c gcc-4.8.1/gcc/tree-vect-stmts.c
    1642019962--- gcc-4.8.1.orig/gcc/tree-vect-stmts.c        2013-03-05 09:37:56.000000000 +0000
    16421 +++ gcc-4.8.1/gcc/tree-vect-stmts.c     2013-09-13 19:01:43.226531469 +0000
     19963+++ gcc-4.8.1/gcc/tree-vect-stmts.c     2013-10-01 16:06:44.032554284 +0000
    1642219964@@ -3796,6 +3796,7 @@
    1642319965   enum vect_def_type dt;
     
    1644519987   int ncopies;
    1644619988   int i, j, group_size;
     19989diff -Naur gcc-4.8.1.orig/gcc/tree-vrp.c gcc-4.8.1/gcc/tree-vrp.c
     19990--- gcc-4.8.1.orig/gcc/tree-vrp.c       2013-04-29 07:57:02.000000000 +0000
     19991+++ gcc-4.8.1/gcc/tree-vrp.c    2013-10-01 16:06:44.032554284 +0000
     19992@@ -5246,10 +5246,14 @@
     19993               && gimple_assign_rhs_code (op_def) == BIT_IOR_EXPR))
     19994     {
     19995       /* Recurse on each operand.  */
     19996-      retval |= register_edge_assert_for_1 (gimple_assign_rhs1 (op_def),
     19997-                                           code, e, bsi);
     19998-      retval |= register_edge_assert_for_1 (gimple_assign_rhs2 (op_def),
     19999-                                           code, e, bsi);
     20000+      tree op0 = gimple_assign_rhs1 (op_def);
     20001+      tree op1 = gimple_assign_rhs2 (op_def);
     20002+      if (TREE_CODE (op0) == SSA_NAME
     20003+         && has_single_use (op0))
     20004+       retval |= register_edge_assert_for_1 (op0, code, e, bsi);
     20005+      if (TREE_CODE (op1) == SSA_NAME
     20006+         && has_single_use (op1))
     20007+       retval |= register_edge_assert_for_1 (op1, code, e, bsi);
     20008     }
     20009   else if (gimple_assign_rhs_code (op_def) == BIT_NOT_EXPR
     20010           && TYPE_PRECISION (TREE_TYPE (gimple_assign_lhs (op_def))) == 1)
    1644720011diff -Naur gcc-4.8.1.orig/gcc/version.c gcc-4.8.1/gcc/version.c
    1644820012--- gcc-4.8.1.orig/gcc/version.c        2013-01-10 20:38:27.000000000 +0000
    16449 +++ gcc-4.8.1/gcc/version.c     2013-09-13 19:01:43.226531469 +0000
     20013+++ gcc-4.8.1/gcc/version.c     2013-10-01 16:06:44.032554284 +0000
    1645020014@@ -32,4 +32,4 @@
    1645120015    Makefile.  */
     
    1645320017 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
    1645420018-const char pkgversion_string[] = PKGVERSION;
    16455 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.8.1.20130828) ";
     20019+const char pkgversion_string[] = "(GCC for Cross-LFS 4.8.1.20131001) ";
    1645620020diff -Naur gcc-4.8.1.orig/libffi/doc/libffi.info gcc-4.8.1/libffi/doc/libffi.info
    1645720021--- gcc-4.8.1.orig/libffi/doc/libffi.info       2013-05-31 10:05:08.000000000 +0000
     
    1707720641diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ffi.c gcc-4.8.1/libffi/src/powerpc/ffi.c
    1707820642--- gcc-4.8.1.orig/libffi/src/powerpc/ffi.c     2013-02-06 17:32:41.000000000 +0000
    17079 +++ gcc-4.8.1/libffi/src/powerpc/ffi.c  2013-09-13 19:01:43.229864794 +0000
     20643+++ gcc-4.8.1/libffi/src/powerpc/ffi.c  2013-10-01 16:06:44.032554284 +0000
    1708020644@@ -127,6 +127,9 @@
    1708120645 
     
    1718420748diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.8.1/libffi/src/powerpc/linux64_closure.S
    1718520749--- gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S 2012-10-31 03:45:34.000000000 +0000
    17186 +++ gcc-4.8.1/libffi/src/powerpc/linux64_closure.S      2013-09-13 19:01:43.229864794 +0000
     20750+++ gcc-4.8.1/libffi/src/powerpc/linux64_closure.S      2013-10-01 16:06:44.032554284 +0000
    1718720751@@ -132,7 +132,11 @@
    1718820752        blr
     
    1725720821diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S gcc-4.8.1/libffi/src/powerpc/ppc_closure.S
    1725820822--- gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S     2012-03-04 21:11:09.000000000 +0000
    17259 +++ gcc-4.8.1/libffi/src/powerpc/ppc_closure.S  2013-09-13 19:01:43.229864794 +0000
     20823+++ gcc-4.8.1/libffi/src/powerpc/ppc_closure.S  2013-10-01 16:06:44.032554284 +0000
    1726020824@@ -159,25 +159,41 @@
    1726120825 #endif
     
    1737020934diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h
    1737120935--- gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h  2013-02-04 19:06:20.000000000 +0000
    17372 +++ gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h       2013-09-13 19:01:43.229864794 +0000
     20936+++ gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h       2013-10-01 16:06:44.032554284 +0000
    1737320937@@ -2,21 +2,26 @@
    1737420938    Copyright (C) 2009-2013 Free Software Foundation, Inc.
     
    1741420978diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c gcc-4.8.1/libgcc/config/aarch64/sync-cache.c
    1741520979--- gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c   2013-03-01 14:01:58.000000000 +0000
    17416 +++ gcc-4.8.1/libgcc/config/aarch64/sync-cache.c        2013-09-13 19:01:43.229864794 +0000
     20980+++ gcc-4.8.1/libgcc/config/aarch64/sync-cache.c        2013-10-01 16:06:44.032554284 +0000
    1741720981@@ -2,21 +2,26 @@
    1741820982    Copyright (C) 2012-2013 Free Software Foundation, Inc.
     
    1745821022diff -Naur gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S
    1745921023--- gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S  2013-02-12 14:55:16.000000000 +0000
    17460 +++ gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S       2013-09-13 19:01:43.233198118 +0000
     21024+++ gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S       2013-10-01 16:06:44.036554284 +0000
    1746121025@@ -1464,12 +1464,13 @@
    1746221026     ;; Add-Saturate 2^{-RP-1}
     
    1758621150diff -Naur gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c gcc-4.8.1/libgcc/config/i386/cpuinfo.c
    1758721151--- gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c 2013-03-08 01:02:29.000000000 +0000
    17588 +++ gcc-4.8.1/libgcc/config/i386/cpuinfo.c      2013-09-13 19:01:43.233198118 +0000
     21152+++ gcc-4.8.1/libgcc/config/i386/cpuinfo.c      2013-10-01 16:06:44.036554284 +0000
    1758921153@@ -14,9 +14,14 @@
    1759021154 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     
    1760721171diff -Naur gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h
    1760821172--- gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h     2013-02-04 19:06:20.000000000 +0000
    17609 +++ gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h  2013-09-13 19:01:43.233198118 +0000
     21173+++ gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h  2013-10-01 16:06:44.036554284 +0000
    1761021174@@ -2,21 +2,26 @@
    1761121175    Contributed by Andrew MacLeod  <amacleod@cygnus.com>
     
    1765121215diff -Naur gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S gcc-4.8.1/libgcc/config/mips/vr4120-div.S
    1765221216--- gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S      2013-02-04 19:06:20.000000000 +0000
    17653 +++ gcc-4.8.1/libgcc/config/mips/vr4120-div.S   2013-09-13 19:01:43.233198118 +0000
     21217+++ gcc-4.8.1/libgcc/config/mips/vr4120-div.S   2013-10-01 16:06:44.036554284 +0000
    1765421218@@ -3,18 +3,23 @@
    1765521219 
     
    1768921253diff -Naur gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c
    1769021254--- gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c   2013-02-04 19:06:20.000000000 +0000
    17691 +++ gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c        2013-09-13 19:01:43.233198118 +0000
     21255+++ gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c        2013-10-01 16:06:44.036554284 +0000
    1769221256@@ -42,10 +42,10 @@
    1769321257    represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a
     
    1770621270diff -Naur gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h gcc-4.8.1/libgcc/config/s390/linux-unwind.h
    1770721271--- gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h    2013-02-04 19:06:20.000000000 +0000
    17708 +++ gcc-4.8.1/libgcc/config/s390/linux-unwind.h 2013-09-13 19:01:43.233198118 +0000
     21272+++ gcc-4.8.1/libgcc/config/s390/linux-unwind.h 2013-10-01 16:06:44.036554284 +0000
    1770921273@@ -31,6 +31,8 @@
    1771021274 s390_fallback_frame_state (struct _Unwind_Context *context,
     
    1772721291diff -Naur gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h gcc-4.8.1/libgcc/config/tilepro/atomic.h
    1772821292--- gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h       2013-02-04 19:06:20.000000000 +0000
    17729 +++ gcc-4.8.1/libgcc/config/tilepro/atomic.h    2013-09-13 19:01:43.236531443 +0000
     21293+++ gcc-4.8.1/libgcc/config/tilepro/atomic.h    2013-10-01 16:06:44.036554284 +0000
    1773021294@@ -92,8 +92,6 @@
    1773121295    compare-and-exchange routine, so may be potentially less efficient.  */
     
    1783621400diff -Naur gcc-4.8.1.orig/libgcc/config.host gcc-4.8.1/libgcc/config.host
    1783721401--- gcc-4.8.1.orig/libgcc/config.host   2013-02-04 19:06:20.000000000 +0000
    17838 +++ gcc-4.8.1/libgcc/config.host        2013-09-13 19:01:43.236531443 +0000
     21402+++ gcc-4.8.1/libgcc/config.host        2013-10-01 16:06:44.036554284 +0000
    1783921403@@ -316,7 +316,7 @@
    1784021404        md_unwind_header=alpha/vms-unwind.h
     
    1786621430diff -Naur gcc-4.8.1.orig/libgcc/unwind-dw2.c gcc-4.8.1/libgcc/unwind-dw2.c
    1786721431--- gcc-4.8.1.orig/libgcc/unwind-dw2.c  2013-03-14 09:13:36.000000000 +0000
    17868 +++ gcc-4.8.1/libgcc/unwind-dw2.c       2013-09-13 19:01:43.236531443 +0000
     21432+++ gcc-4.8.1/libgcc/unwind-dw2.c       2013-10-01 16:06:44.036554284 +0000
    1786921433@@ -59,6 +59,35 @@
    1787021434 #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
     
    1807821642diff -Naur gcc-4.8.1.orig/libgfortran/config/fpu-387.h gcc-4.8.1/libgfortran/config/fpu-387.h
    1807921643--- gcc-4.8.1.orig/libgfortran/config/fpu-387.h 2013-01-14 18:20:58.000000000 +0000
    18080 +++ gcc-4.8.1/libgfortran/config/fpu-387.h      2013-09-13 19:01:43.236531443 +0000
     21644+++ gcc-4.8.1/libgfortran/config/fpu-387.h      2013-10-01 16:06:44.036554284 +0000
    1808121645@@ -73,7 +73,7 @@
    1808221646 
     
    1815521719diff -Naur gcc-4.8.1.orig/libgo/MERGE gcc-4.8.1/libgo/MERGE
    1815621720--- gcc-4.8.1.orig/libgo/MERGE  2013-01-30 01:37:13.000000000 +0000
    18157 +++ gcc-4.8.1/libgo/MERGE       2013-09-13 19:01:43.796529974 +0000
     21721+++ gcc-4.8.1/libgo/MERGE       2013-10-01 16:06:44.220554279 +0000
    1815821722@@ -1,4 +1,4 @@
    1815921723-229081515358
     
    1816421728diff -Naur gcc-4.8.1.orig/libgo/Makefile.am gcc-4.8.1/libgo/Makefile.am
    1816521729--- gcc-4.8.1.orig/libgo/Makefile.am    2013-02-20 20:04:36.000000000 +0000
    18166 +++ gcc-4.8.1/libgo/Makefile.am 2013-09-13 19:01:43.793196650 +0000
     21730+++ gcc-4.8.1/libgo/Makefile.am 2013-10-01 16:06:44.220554279 +0000
    1816721731@@ -211,40 +211,11 @@
    1816821732        encoding/pem.gox \
     
    1833921903        go/net/sockopt_posix.go \
    1834021904        $(go_net_sockopt_file) \
    18341 @@ -891,7 +888,8 @@
     21905@@ -891,15 +888,35 @@
    1834221906        $(go_os_stat_file) \
    1834321907        go/os/str.go \
     
    1834921913 go_path_files = \
    1835021914        go/path/match.go \
    18351 @@ -980,6 +978,7 @@
     21915        go/path/path.go
     21916 
     21917+if LIBGO_IS_X86_64
     21918+go_reflect_makefunc_file = \
     21919+       go/reflect/makefuncgo_amd64.go
     21920+go_reflect_makefunc_s_file = \
     21921+       go/reflect/makefunc_amd64.S
     21922+else
     21923+if LIBGO_IS_386
     21924+go_reflect_makefunc_file = \
     21925+       go/reflect/makefuncgo_386.go
     21926+go_reflect_makefunc_s_file = \
     21927+       go/reflect/makefunc_386.S
     21928+else
     21929+go_reflect_makefunc_file =
     21930+go_reflect_makefunc_s_file = \
     21931+       go/reflect/makefunc_dummy.c
     21932+endif
     21933+endif
     21934+
     21935 go_reflect_files = \
     21936        go/reflect/deepequal.go \
     21937        go/reflect/makefunc.go \
     21938+       $(go_reflect_makefunc_file) \
     21939        go/reflect/type.go \
     21940        go/reflect/value.go
     21941 
     21942@@ -980,6 +997,7 @@
    1835221943        go/log/syslog/syslog_c.c
    1835321944 
     
    1835721948        go/testing/example.go \
    1835821949        go/testing/testing.go
    18359 @@ -1102,7 +1101,8 @@
     21950@@ -1102,7 +1120,8 @@
    1836021951        go/crypto/rand/rand_unix.go \
    1836121952        go/crypto/rand/util.go
     
    1836721958        go/crypto/rsa/pkcs1v15.go \
    1836821959        go/crypto/rsa/rsa.go
    18369 @@ -1213,73 +1213,14 @@
     21960@@ -1213,73 +1232,14 @@
    1837021961        go/encoding/xml/typeinfo.go \
    1837121962        go/encoding/xml/xml.go
     
    1844122032 go_go_ast_files = \
    1844222033        go/go/ast/ast.go \
    18443 @@ -1318,24 +1259,6 @@
     22034@@ -1318,24 +1278,6 @@
    1844422035        go/go/token/position.go \
    1844522036        go/go/token/serialize.go \
     
    1846622057 go_hash_adler32_files = \
    1846722058        go/hash/adler32/adler32.go
    18468 @@ -1459,6 +1382,9 @@
     22059@@ -1459,6 +1401,9 @@
    1846922060 go_net_http_cgi_files = \
    1847022061        go/net/http/cgi/child.go \
     
    1847622067        go/net/http/fcgi/child.go \
    1847722068        go/net/http/fcgi/fcgi.go
    18478 @@ -1474,10 +1400,6 @@
     22069@@ -1474,10 +1419,6 @@
    1847922070        go/net/http/httputil/reverseproxy.go
    1848022071 
     
    1848722078        go/old/regexp/regexp.go
    1848822079 go_old_template_files = \
    18489 @@ -1519,6 +1441,7 @@
     22080@@ -1519,6 +1460,7 @@
    1849022081        go/net/rpc/jsonrpc/server.go
    1849122082 
     
    1849522086 go_runtime_pprof_files = \
    1849622087        go/runtime/pprof/pprof.go
    18497 @@ -1897,17 +1820,8 @@
     22088@@ -1838,6 +1780,7 @@
     22089        os.lo \
     22090        path.lo \
     22091        reflect-go.lo \
     22092+       reflect/makefunc.lo \
     22093        regexp.lo \
     22094        runtime-go.lo \
     22095        sort.lo \
     22096@@ -1897,17 +1840,8 @@
    1849822097        encoding/json.lo \
    1849922098        encoding/pem.lo \
     
    1851322112        go/ast.lo \
    1851422113        go/build.lo \
    18515 @@ -1917,12 +1831,12 @@
     22114@@ -1917,12 +1851,12 @@
    1851622115        go/printer.lo \
    1851722116        go/scanner.lo \
     
    1852722126        net/http/httptest.lo \
    1852822127        net/http/httputil.lo \
    18529 @@ -1946,7 +1860,6 @@
     22128@@ -1946,7 +1880,6 @@
    1853022129        net/smtp.lo \
    1853122130        net/textproto.lo \
     
    1853522134        old/template.lo \
    1853622135        os/exec.lo \
    18537 @@ -2731,69 +2644,6 @@
     22136@@ -2234,6 +2167,9 @@
     22137        $(BUILDPACKAGE)
     22138 reflect/check: $(CHECK_DEPS)
     22139        @$(CHECK)
     22140+reflect/makefunc.lo: $(go_reflect_makefunc_s_file)
     22141+       @$(MKDIR_P) reflect
     22142+       $(LTCOMPILE) -c -o $@ $<
     22143 .PHONY: reflect/check
     22144 
     22145 @go_include@ regexp.lo.dep
     22146@@ -2731,69 +2667,6 @@
    1853822147        @$(CHECK)
    1853922148 .PHONY: encoding/xml/check
     
    1860522214 exp/proxy.lo.dep: $(go_exp_proxy_files)
    1860622215        $(BUILDDEPS)
    18607 @@ -2803,15 +2653,6 @@
     22216@@ -2803,15 +2676,6 @@
    1860822217        @$(CHECK)
    1860922218 .PHONY: exp/proxy/check
     
    1862122230 exp/terminal.lo.dep: $(go_exp_terminal_files)
    1862222231        $(BUILDDEPS)
    18623 @@ -2821,24 +2662,6 @@
     22232@@ -2821,24 +2685,6 @@
    1862422233        @$(CHECK)
    1862522234 .PHONY: exp/terminal/check
     
    1864622255 html/template.lo.dep: $(go_html_template_files)
    1864722256        $(BUILDDEPS)
    18648 @@ -2929,15 +2752,6 @@
     22257@@ -2929,15 +2775,6 @@
    1864922258        @$(CHECK)
    1865022259 .PHONY: go/token/check
     
    1866222271 hash/adler32.lo.dep: $(go_hash_adler32_files)
    1866322272        $(BUILDDEPS)
    18664 @@ -3148,6 +2962,15 @@
     22273@@ -3148,6 +2985,15 @@
    1866522274        @$(CHECK)
    1866622275 .PHONY: net/http/cgi/check
     
    1867822287 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
    1867922288        $(BUILDDEPS)
    18680 @@ -3193,15 +3016,6 @@
     22289@@ -3193,15 +3039,6 @@
    1868122290        @$(CHECK)
    1868222291 .PHONY: net/rpc/jsonrpc/check
     
    1869422303 old/regexp.lo.dep: $(go_old_regexp_files)
    1869522304        $(BUILDDEPS)
    18696 @@ -3550,30 +3364,10 @@
     22305@@ -3550,30 +3387,10 @@
    1869722306 encoding/xml.gox: encoding/xml.lo
    1869822307        $(BUILDGOX)
     
    1872522334 html/template.gox: html/template.lo
    1872622335        $(BUILDGOX)
    18727 @@ -3594,8 +3388,6 @@
     22336@@ -3594,8 +3411,6 @@
    1872822337        $(BUILDGOX)
    1872922338 go/token.gox: go/token.lo
     
    1873422343 hash/adler32.gox: hash/adler32.lo
    1873522344        $(BUILDGOX)
    18736 @@ -3651,6 +3443,8 @@
     22345@@ -3651,6 +3466,8 @@
    1873722346 
    1873822347 net/http/cgi.gox: net/http/cgi.lo
     
    1874322352        $(BUILDGOX)
    1874422353 net/http/httptest.gox: net/http/httptest.lo
    18745 @@ -3663,8 +3457,6 @@
     22354@@ -3663,8 +3480,6 @@
    1874622355 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
    1874722356        $(BUILDGOX)
     
    1875222361        $(BUILDGOX)
    1875322362 old/template.gox: old/template.lo
    18754 @@ -3710,13 +3502,6 @@
     22363@@ -3710,13 +3525,6 @@
    1875522364 unicode/utf8.gox: unicode/utf8.lo
    1875622365        $(BUILDGOX)
     
    1876622375        bufio/check \
    1876722376        bytes/check \
    18768 @@ -3787,17 +3572,8 @@
     22377@@ -3787,17 +3595,8 @@
    1876922378        encoding/json/check \
    1877022379        encoding/pem/check \
     
    1878422393        go/ast/check \
    1878522394        $(go_build_check_omitted_since_it_calls_6g) \
    18786 @@ -3807,7 +3583,6 @@
     22395@@ -3807,7 +3606,6 @@
    1878722396        go/printer/check \
    1878822397        go/scanner/check \
     
    1879222401        hash/crc32/check \
    1879322402        hash/crc64/check \
    18794 @@ -3825,6 +3600,7 @@
     22403@@ -3825,6 +3623,7 @@
    1879522404        mime/multipart/check \
    1879622405        net/http/check \
     
    1880022409        net/http/httptest/check \
    1880122410        net/http/httputil/check \
    18802 @@ -3834,7 +3610,6 @@
     22411@@ -3834,7 +3633,6 @@
    1880322412        net/textproto/check \
    1880422413        net/url/check \
     
    1881022419diff -Naur gcc-4.8.1.orig/libgo/Makefile.in gcc-4.8.1/libgo/Makefile.in
    1881122420--- gcc-4.8.1.orig/libgo/Makefile.in    2013-02-20 20:04:36.000000000 +0000
    18812 +++ gcc-4.8.1/libgo/Makefile.in 2013-09-13 19:01:43.796529974 +0000
     22421+++ gcc-4.8.1/libgo/Makefile.in 2013-10-01 16:06:44.220554279 +0000
    1881322422@@ -101,9 +101,6 @@
    1881422423        "$(DESTDIR)$(toolexeclibgodebugdir)" \
     
    1882122430        "$(DESTDIR)$(toolexeclibgohashdir)" \
    1882222431        "$(DESTDIR)$(toolexeclibgohtmldir)" \
    18823 @@ -153,22 +150,20 @@
     22432@@ -137,38 +134,36 @@
     22433 am__DEPENDENCIES_2 = bufio.lo bytes.lo bytes/index.lo crypto.lo \
     22434        errors.lo expvar.lo flag.lo fmt.lo hash.lo html.lo image.lo \
     22435        io.lo log.lo math.lo mime.lo net.lo os.lo path.lo \
     22436-       reflect-go.lo regexp.lo runtime-go.lo sort.lo strconv.lo \
     22437-       strings.lo sync.lo syscall.lo syscall/errno.lo \
     22438-       syscall/signame.lo syscall/wait.lo testing.lo time-go.lo \
     22439-       unicode.lo archive/tar.lo archive/zip.lo compress/bzip2.lo \
     22440-       compress/flate.lo compress/gzip.lo compress/lzw.lo \
     22441-       compress/zlib.lo container/heap.lo container/list.lo \
     22442-       container/ring.lo crypto/aes.lo crypto/cipher.lo crypto/des.lo \
     22443-       crypto/dsa.lo crypto/ecdsa.lo crypto/elliptic.lo \
     22444-       crypto/hmac.lo crypto/md5.lo crypto/rand.lo crypto/rc4.lo \
     22445-       crypto/rsa.lo crypto/sha1.lo crypto/sha256.lo crypto/sha512.lo \
     22446-       crypto/subtle.lo crypto/tls.lo crypto/x509.lo \
     22447+       reflect-go.lo reflect/makefunc.lo regexp.lo runtime-go.lo \
     22448+       sort.lo strconv.lo strings.lo sync.lo syscall.lo \
     22449+       syscall/errno.lo syscall/signame.lo syscall/wait.lo testing.lo \
     22450+       time-go.lo unicode.lo archive/tar.lo archive/zip.lo \
     22451+       compress/bzip2.lo compress/flate.lo compress/gzip.lo \
     22452+       compress/lzw.lo compress/zlib.lo container/heap.lo \
     22453+       container/list.lo container/ring.lo crypto/aes.lo \
     22454+       crypto/cipher.lo crypto/des.lo crypto/dsa.lo crypto/ecdsa.lo \
     22455+       crypto/elliptic.lo crypto/hmac.lo crypto/md5.lo crypto/rand.lo \
     22456+       crypto/rc4.lo crypto/rsa.lo crypto/sha1.lo crypto/sha256.lo \
     22457+       crypto/sha512.lo crypto/subtle.lo crypto/tls.lo crypto/x509.lo \
     22458        crypto/x509/pkix.lo database/sql.lo database/sql/driver.lo \
     22459        debug/dwarf.lo debug/elf.lo debug/gosym.lo debug/macho.lo \
    1882422460        debug/pe.lo encoding/ascii85.lo encoding/asn1.lo \
    1882522461        encoding/base32.lo encoding/base64.lo encoding/binary.lo \
     
    1906222698        go/net/sockopt_posix.go \
    1906322699        $(go_net_sockopt_file) \
    19064 @@ -1096,7 +1080,8 @@
     22700@@ -1096,15 +1080,33 @@
    1906522701        $(go_os_stat_file) \
    1906622702        go/os/str.go \
     
    1907222708 go_path_files = \
    1907322709        go/path/match.go \
    19074 @@ -1168,6 +1153,7 @@
     22710        go/path/path.go
     22711 
     22712+@LIBGO_IS_386_FALSE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_file =
     22713+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_file = \
     22714+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@     go/reflect/makefuncgo_386.go
     22715+
     22716+@LIBGO_IS_X86_64_TRUE@go_reflect_makefunc_file = \
     22717+@LIBGO_IS_X86_64_TRUE@ go/reflect/makefuncgo_amd64.go
     22718+
     22719+@LIBGO_IS_386_FALSE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_s_file = \
     22720+@LIBGO_IS_386_FALSE@@LIBGO_IS_X86_64_FALSE@    go/reflect/makefunc_dummy.c
     22721+
     22722+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_s_file = \
     22723+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@     go/reflect/makefunc_386.S
     22724+
     22725+@LIBGO_IS_X86_64_TRUE@go_reflect_makefunc_s_file = \
     22726+@LIBGO_IS_X86_64_TRUE@ go/reflect/makefunc_amd64.S
     22727+
     22728 go_reflect_files = \
     22729        go/reflect/deepequal.go \
     22730        go/reflect/makefunc.go \
     22731+       $(go_reflect_makefunc_file) \
     22732        go/reflect/type.go \
     22733        go/reflect/value.go
     22734 
     22735@@ -1168,6 +1170,7 @@
    1907522736        go/log/syslog/syslog_c.c
    1907622737 
     
    1908022741        go/testing/example.go \
    1908122742        go/testing/testing.go
    19082 @@ -1286,7 +1272,8 @@
     22743@@ -1286,7 +1289,8 @@
    1908322744        go/crypto/rand/util.go
    1908422745 
     
    1909022751 go_crypto_rsa_files = \
    1909122752        go/crypto/rsa/pkcs1v15.go \
    19092 @@ -1418,85 +1405,16 @@
     22753@@ -1418,85 +1422,16 @@
    1909322754        go/encoding/xml/typeinfo.go \
    1909422755        go/encoding/xml/xml.go
     
    1917622837        go/go/ast/ast.go \
    1917722838        go/go/ast/commentmap.go \
    19178 @@ -1542,25 +1460,6 @@
     22839@@ -1542,25 +1477,6 @@
    1917922840        go/go/token/serialize.go \
    1918022841        go/go/token/token.go
     
    1920222863        go/hash/adler32/adler32.go
    1920322864 
    19204 @@ -1693,6 +1592,10 @@
     22865@@ -1693,6 +1609,10 @@
    1920522866        go/net/http/cgi/child.go \
    1920622867        go/net/http/cgi/host.go
     
    1921322874        go/net/http/fcgi/child.go \
    1921422875        go/net/http/fcgi/fcgi.go
    19215 @@ -1710,11 +1613,6 @@
     22876@@ -1710,11 +1630,6 @@
    1921622877        go/net/http/httputil/persist.go \
    1921722878        go/net/http/httputil/reverseproxy.go
     
    1922522886        go/old/regexp/regexp.go
    1922622887 
    19227 @@ -1757,6 +1655,7 @@
     22888@@ -1757,6 +1672,7 @@
    1922822889        go/net/rpc/jsonrpc/server.go
    1922922890 
     
    1923322894 
    1923422895 go_runtime_pprof_files = \
    19235 @@ -2006,17 +1905,8 @@
     22896@@ -1947,6 +1863,7 @@
     22897        os.lo \
     22898        path.lo \
     22899        reflect-go.lo \
     22900+       reflect/makefunc.lo \
     22901        regexp.lo \
     22902        runtime-go.lo \
     22903        sort.lo \
     22904@@ -2006,17 +1923,8 @@
    1923622905        encoding/json.lo \
    1923722906        encoding/pem.lo \
     
    1925122920        go/ast.lo \
    1925222921        go/build.lo \
    19253 @@ -2026,12 +1916,12 @@
     22922@@ -2026,12 +1934,12 @@
    1925422923        go/printer.lo \
    1925522924        go/scanner.lo \
     
    1926522934        net/http/httptest.lo \
    1926622935        net/http/httputil.lo \
    19267 @@ -2055,7 +1945,6 @@
     22936@@ -2055,7 +1963,6 @@
    1926822937        net/smtp.lo \
    1926922938        net/textproto.lo \
     
    1927322942        old/template.lo \
    1927422943        os/exec.lo \
    19275 @@ -2186,10 +2075,6 @@
     22944@@ -2186,10 +2093,6 @@
    1927622945        f=`echo $< | sed -e 's/.lo$$/.o/'`; \
    1927722946        $(OBJCOPY) -j .go_export $$f $@.tmp && mv -f $@.tmp $@
     
    1928422953        bufio/check \
    1928522954        bytes/check \
    19286 @@ -2260,17 +2145,8 @@
     22955@@ -2260,17 +2163,8 @@
    1928722956        encoding/json/check \
    1928822957        encoding/pem/check \
     
    1930222971        go/ast/check \
    1930322972        $(go_build_check_omitted_since_it_calls_6g) \
    19304 @@ -2280,7 +2156,6 @@
     22973@@ -2280,7 +2174,6 @@
    1930522974        go/printer/check \
    1930622975        go/scanner/check \
     
    1931022979        hash/crc32/check \
    1931122980        hash/crc64/check \
    19312 @@ -2298,6 +2173,7 @@
     22981@@ -2298,6 +2191,7 @@
    1931322982        mime/multipart/check \
    1931422983        net/http/check \
     
    1931822987        net/http/httptest/check \
    1931922988        net/http/httputil/check \
    19320 @@ -2307,7 +2183,6 @@
     22989@@ -2307,7 +2201,6 @@
    1932122990        net/textproto/check \
    1932222991        net/url/check \
     
    1932622995        old/template/check \
    1932722996        os/exec/check \
    19328 @@ -2519,7 +2394,6 @@
     22997@@ -2519,7 +2412,6 @@
    1932922998 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strplus.Plo@am__quote@
    1933022999 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strslice.Plo@am__quote@
     
    1933423003 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-eface.Plo@am__quote@
    1933523004 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-error.Plo@am__quote@
    19336 @@ -2549,6 +2423,10 @@
     23005@@ -2549,6 +2441,10 @@
    1933723006 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mheap.Plo@am__quote@
    1933823007 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mprof.Plo@am__quote@
     
    1934523014 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parfor.Plo@am__quote@
    1934623015 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@
    19347 @@ -2959,13 +2837,6 @@
     23016@@ -2959,13 +2855,6 @@
    1934823017 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1934923018 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-traceback.lo `test -f 'runtime/go-traceback.c' || echo '$(srcdir)/'`runtime/go-traceback.c
     
    1935923028 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-type-complex.lo -MD -MP -MF $(DEPDIR)/go-type-complex.Tpo -c -o go-type-complex.lo `test -f 'runtime/go-type-complex.c' || echo '$(srcdir)/'`runtime/go-type-complex.c
    1936023029 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/go-type-complex.Tpo $(DEPDIR)/go-type-complex.Plo
    19361 @@ -3176,6 +3047,27 @@
     23030@@ -3176,6 +3065,27 @@
    1936223031 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1936323032 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o msize.lo `test -f 'runtime/msize.c' || echo '$(srcdir)/'`runtime/msize.c
     
    1938723056 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT panic.lo -MD -MP -MF $(DEPDIR)/panic.Tpo -c -o panic.lo `test -f 'runtime/panic.c' || echo '$(srcdir)/'`runtime/panic.c
    1938823057 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/panic.Tpo $(DEPDIR)/panic.Plo
    19389 @@ -3519,66 +3411,6 @@
     23058@@ -3519,66 +3429,6 @@
    1939023059        test -n "$$files" || exit 0; \
    1939123060        echo " ( cd '$(DESTDIR)$(toolexeclibgoexpdir)' && rm -f" $$files ")"; \
     
    1945423123        @$(NORMAL_INSTALL)
    1945523124        test -z "$(toolexeclibgogodir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgogodir)"
    19456 @@ -4160,7 +3992,7 @@
     23125@@ -4160,7 +4010,7 @@
    1945723126                config.h
    1945823127 installdirs: installdirs-recursive
     
    1946323132        done
    1946423133 install: install-recursive
    19465 @@ -4231,9 +4063,6 @@
     23134@@ -4231,9 +4081,6 @@
    1946623135        install-toolexeclibgodatabasesqlDATA \
    1946723136        install-toolexeclibgodebugDATA \
     
    1947323142        install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \
    1947423143        install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
    19475 @@ -4299,11 +4128,8 @@
     23144@@ -4299,11 +4146,8 @@
    1947623145        uninstall-toolexeclibgodatabasesqlDATA \
    1947723146        uninstall-toolexeclibgodebugDATA \
     
    1948723156        uninstall-toolexeclibgoimageDATA \
    1948823157        uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
    19489 @@ -4348,9 +4174,6 @@
     23158@@ -4348,9 +4192,6 @@
    1949023159        install-toolexeclibgodatabasesqlDATA \
    1949123160        install-toolexeclibgodebugDATA \
     
    1949723166        install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \
    1949823167        install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
    19499 @@ -4380,11 +4203,8 @@
     23168@@ -4380,11 +4221,8 @@
    1950023169        uninstall-toolexeclibgodatabasesqlDATA \
    1950123170        uninstall-toolexeclibgodebugDATA \
     
    1951123180        uninstall-toolexeclibgoimageDATA \
    1951223181        uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
    19513 @@ -4417,6 +4237,10 @@
     23182@@ -4417,6 +4255,10 @@
    1951423183        ./goc2c $< > $@.tmp
    1951523184        mv -f $@.tmp $@
     
    1952223191        ./goc2c $< > $@.tmp
    1952323192        mv -f $@.tmp $@
    19524 @@ -5172,69 +4996,6 @@
     23193@@ -4675,6 +4517,9 @@
     23194        $(BUILDPACKAGE)
     23195 reflect/check: $(CHECK_DEPS)
     23196        @$(CHECK)
     23197+reflect/makefunc.lo: $(go_reflect_makefunc_s_file)
     23198+       @$(MKDIR_P) reflect
     23199+       $(LTCOMPILE) -c -o $@ $<
     23200 .PHONY: reflect/check
     23201 
     23202 @go_include@ regexp.lo.dep
     23203@@ -5172,69 +5017,6 @@
    1952523204        @$(CHECK)
    1952623205 .PHONY: encoding/xml/check
     
    1959223271 exp/proxy.lo.dep: $(go_exp_proxy_files)
    1959323272        $(BUILDDEPS)
    19594 @@ -5244,15 +5005,6 @@
     23273@@ -5244,15 +5026,6 @@
    1959523274        @$(CHECK)
    1959623275 .PHONY: exp/proxy/check
     
    1960823287 exp/terminal.lo.dep: $(go_exp_terminal_files)
    1960923288        $(BUILDDEPS)
    19610 @@ -5262,24 +5014,6 @@
     23289@@ -5262,24 +5035,6 @@
    1961123290        @$(CHECK)
    1961223291 .PHONY: exp/terminal/check
     
    1963323312 html/template.lo.dep: $(go_html_template_files)
    1963423313        $(BUILDDEPS)
    19635 @@ -5370,15 +5104,6 @@
     23314@@ -5370,15 +5125,6 @@
    1963623315        @$(CHECK)
    1963723316 .PHONY: go/token/check
     
    1964923328 hash/adler32.lo.dep: $(go_hash_adler32_files)
    1965023329        $(BUILDDEPS)
    19651 @@ -5589,6 +5314,15 @@
     23330@@ -5589,6 +5335,15 @@
    1965223331        @$(CHECK)
    1965323332 .PHONY: net/http/cgi/check
     
    1966523344 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
    1966623345        $(BUILDDEPS)
    19667 @@ -5634,15 +5368,6 @@
     23346@@ -5634,15 +5389,6 @@
    1966823347        @$(CHECK)
    1966923348 .PHONY: net/rpc/jsonrpc/check
     
    1968123360 old/regexp.lo.dep: $(go_old_regexp_files)
    1968223361        $(BUILDDEPS)
    19683 @@ -5983,30 +5708,10 @@
     23362@@ -5983,30 +5729,10 @@
    1968423363 encoding/xml.gox: encoding/xml.lo
    1968523364        $(BUILDGOX)
     
    1971223391 html/template.gox: html/template.lo
    1971323392        $(BUILDGOX)
    19714 @@ -6027,8 +5732,6 @@
     23393@@ -6027,8 +5753,6 @@
    1971523394        $(BUILDGOX)
    1971623395 go/token.gox: go/token.lo
     
    1972123400 hash/adler32.gox: hash/adler32.lo
    1972223401        $(BUILDGOX)
    19723 @@ -6084,6 +5787,8 @@
     23402@@ -6084,6 +5808,8 @@
    1972423403 
    1972523404 net/http/cgi.gox: net/http/cgi.lo
     
    1973023409        $(BUILDGOX)
    1973123410 net/http/httptest.gox: net/http/httptest.lo
    19732 @@ -6096,8 +5801,6 @@
     23411@@ -6096,8 +5822,6 @@
    1973323412 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
    1973423413        $(BUILDGOX)
     
    1974123420diff -Naur gcc-4.8.1.orig/libgo/configure gcc-4.8.1/libgo/configure
    1974223421--- gcc-4.8.1.orig/libgo/configure      2013-02-11 19:03:04.000000000 +0000
    19743 +++ gcc-4.8.1/libgo/configure   2013-09-13 19:01:43.243198092 +0000
     23422+++ gcc-4.8.1/libgo/configure   2013-10-01 16:06:44.040554284 +0000
    1974423423@@ -2496,7 +2496,7 @@
    1974523424 ac_config_headers="$ac_config_headers config.h"
     
    1975323432diff -Naur gcc-4.8.1.orig/libgo/configure.ac gcc-4.8.1/libgo/configure.ac
    1975423433--- gcc-4.8.1.orig/libgo/configure.ac   2013-02-11 19:03:04.000000000 +0000
    19755 +++ gcc-4.8.1/libgo/configure.ac        2013-09-13 19:01:43.243198092 +0000
     23434+++ gcc-4.8.1/libgo/configure.ac        2013-10-01 16:06:44.040554284 +0000
    1975623435@@ -11,7 +11,7 @@
    1975723436 AC_CONFIG_SRCDIR(Makefile.am)
     
    1976523444diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/common.go gcc-4.8.1/libgo/go/archive/tar/common.go
    1976623445--- gcc-4.8.1.orig/libgo/go/archive/tar/common.go       2012-10-23 04:31:11.000000000 +0000
    19767 +++ gcc-4.8.1/libgo/go/archive/tar/common.go    2013-09-13 19:01:43.243198092 +0000
     23446+++ gcc-4.8.1/libgo/go/archive/tar/common.go    2013-10-01 16:06:44.040554284 +0000
    1976823447@@ -9,12 +9,14 @@
    1976923448 // References:
     
    1997923658diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader.go gcc-4.8.1/libgo/go/archive/tar/reader.go
    1998023659--- gcc-4.8.1.orig/libgo/go/archive/tar/reader.go       2012-11-21 07:03:38.000000000 +0000
    19981 +++ gcc-4.8.1/libgo/go/archive/tar/reader.go    2013-09-13 19:01:43.246531416 +0000
     23660+++ gcc-4.8.1/libgo/go/archive/tar/reader.go    2013-10-01 16:06:44.040554284 +0000
    1998223661@@ -14,6 +14,7 @@
    1998323662        "io/ioutil"
     
    2021223891diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go gcc-4.8.1/libgo/go/archive/tar/reader_test.go
    2021323892--- gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go  2012-02-01 19:26:59.000000000 +0000
    20214 +++ gcc-4.8.1/libgo/go/archive/tar/reader_test.go       2013-09-13 19:01:43.246531416 +0000
     23893+++ gcc-4.8.1/libgo/go/archive/tar/reader_test.go       2013-10-01 16:06:44.040554284 +0000
    2021523894@@ -10,6 +10,8 @@
    2021623895        "fmt"
     
    2034624025diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go gcc-4.8.1/libgo/go/archive/tar/tar_test.go
    2034724026--- gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go     2012-11-21 07:03:38.000000000 +0000
    20348 +++ gcc-4.8.1/libgo/go/archive/tar/tar_test.go  2013-09-13 19:01:43.246531416 +0000
     24027+++ gcc-4.8.1/libgo/go/archive/tar/tar_test.go  2013-10-01 16:06:44.040554284 +0000
    2034924028@@ -14,13 +14,13 @@
    2035024029 )
     
    2054724226diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar
    2054824227--- gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar        1970-01-01 00:00:00.000000000 +0000
    20549 +++ gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar     2013-09-13 19:01:43.246531416 +0000
     24228+++ gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar     2013-10-01 16:06:44.040554284 +0000
    2055024229@@ -0,0 +1,10 @@
    2055124230+a/PaxHeaders.6887/12345678910111213141516171819202122232425262728293031323334353637383940414243444540000644000175000017500000000044612036615200022461 xustar0000000000000000204 path=a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
     
    2056224241diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar
    2056324242--- gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar      1970-01-01 00:00:00.000000000 +0000
    20564 +++ gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar   2013-09-13 19:01:43.246531416 +0000
     24243+++ gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar   2013-10-01 16:06:44.040554284 +0000
    2056524244@@ -0,0 +1,2 @@
    2056624245+file.txt0000644000076500000240000000000612104402656045134 0ustar00shanestaff00000000000000longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longnamehello
     
    2056924248diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer.go gcc-4.8.1/libgo/go/archive/tar/writer.go
    2057024249--- gcc-4.8.1.orig/libgo/go/archive/tar/writer.go       2012-11-21 07:03:38.000000000 +0000
    20571 +++ gcc-4.8.1/libgo/go/archive/tar/writer.go    2013-09-13 19:01:43.246531416 +0000
     24250+++ gcc-4.8.1/libgo/go/archive/tar/writer.go    2013-10-01 16:06:44.040554284 +0000
    2057224251@@ -8,10 +8,14 @@
    2057324252 // - catch more errors (no first header, etc.)
     
    2074424423diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go gcc-4.8.1/libgo/go/archive/tar/writer_test.go
    2074524424--- gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go  2012-03-30 21:27:11.000000000 +0000
    20746 +++ gcc-4.8.1/libgo/go/archive/tar/writer_test.go       2013-09-13 19:01:43.246531416 +0000
     24425+++ gcc-4.8.1/libgo/go/archive/tar/writer_test.go       2013-10-01 16:06:44.040554284 +0000
    2074724426@@ -9,6 +9,7 @@
    2074824427        "fmt"
     
    2084524524diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader.go gcc-4.8.1/libgo/go/archive/zip/reader.go
    2084624525--- gcc-4.8.1.orig/libgo/go/archive/zip/reader.go       2012-11-21 07:03:38.000000000 +0000
    20847 +++ gcc-4.8.1/libgo/go/archive/zip/reader.go    2013-09-13 19:01:43.249864741 +0000
     24526+++ gcc-4.8.1/libgo/go/archive/zip/reader.go    2013-10-01 16:06:44.040554284 +0000
    2084824527@@ -353,6 +353,11 @@
    2084924528        if err != nil {
     
    2086924548diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go gcc-4.8.1/libgo/go/archive/zip/reader_test.go
    2087024549--- gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go  2012-10-23 04:31:11.000000000 +0000
    20871 +++ gcc-4.8.1/libgo/go/archive/zip/reader_test.go       2013-09-13 19:01:43.249864741 +0000
     24550+++ gcc-4.8.1/libgo/go/archive/zip/reader_test.go       2013-10-01 16:06:44.040554284 +0000
    2087224551@@ -64,6 +64,24 @@
    2087324552                },
     
    2090624585diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/struct.go gcc-4.8.1/libgo/go/archive/zip/struct.go
    2090724586--- gcc-4.8.1.orig/libgo/go/archive/zip/struct.go       2012-10-23 04:31:11.000000000 +0000
    20908 +++ gcc-4.8.1/libgo/go/archive/zip/struct.go    2013-09-13 19:01:43.249864741 +0000
     24587+++ gcc-4.8.1/libgo/go/archive/zip/struct.go    2013-10-01 16:06:44.040554284 +0000
    2090924588@@ -64,8 +64,15 @@
    2091024589        zip64ExtraId = 0x0001 // zip64 Extended Information Extra Field
     
    2092624605diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/testdata/test-trailing-junk.zip gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip
    2092724606--- gcc-4.8.1.orig/libgo/go/archive/zip/testdata/test-trailing-junk.zip 1970-01-01 00:00:00.000000000 +0000
    20928 +++ gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip      2013-09-13 19:01:43.249864741 +0000
     24607+++ gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip      2013-10-01 16:06:44.040554284 +0000
    2092924608@@ -0,0 +1,10 @@
    2093024609+PKa%=À×íÃ
     
    2096524644diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/writer.go gcc-4.8.1/libgo/go/archive/zip/writer.go
    2096624645--- gcc-4.8.1.orig/libgo/go/archive/zip/writer.go       2012-11-21 07:03:38.000000000 +0000
    20967 +++ gcc-4.8.1/libgo/go/archive/zip/writer.go    2013-09-13 19:01:43.249864741 +0000
     24646+++ gcc-4.8.1/libgo/go/archive/zip/writer.go    2013-10-01 16:06:44.040554284 +0000
    2096824647@@ -163,6 +163,9 @@
    2096924648 
     
    2097824657diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio.go gcc-4.8.1/libgo/go/bufio/bufio.go
    2097924658--- gcc-4.8.1.orig/libgo/go/bufio/bufio.go      2013-01-29 20:52:43.000000000 +0000
    20980 +++ gcc-4.8.1/libgo/go/bufio/bufio.go   2013-09-13 19:01:43.249864741 +0000
     24659+++ gcc-4.8.1/libgo/go/bufio/bufio.go   2013-10-01 16:06:44.040554284 +0000
    2098124660@@ -274,11 +274,10 @@
    2098224661                        return b.buf, ErrBufferFull
     
    2101024689diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go gcc-4.8.1/libgo/go/bufio/bufio_test.go
    2101124690--- gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go 2013-01-29 20:52:43.000000000 +0000
    21012 +++ gcc-4.8.1/libgo/go/bufio/bufio_test.go      2013-09-13 19:01:43.249864741 +0000
     24691+++ gcc-4.8.1/libgo/go/bufio/bufio_test.go      2013-10-01 16:06:44.044554284 +0000
    2101324692@@ -7,6 +7,7 @@
    2101424693 import (
     
    2109024769diff -Naur gcc-4.8.1.orig/libgo/go/bufio/example_test.go gcc-4.8.1/libgo/go/bufio/example_test.go
    2109124770--- gcc-4.8.1.orig/libgo/go/bufio/example_test.go       1970-01-01 00:00:00.000000000 +0000
    21092 +++ gcc-4.8.1/libgo/go/bufio/example_test.go    2013-09-13 19:01:43.253198066 +0000
     24771+++ gcc-4.8.1/libgo/go/bufio/example_test.go    2013-10-01 16:06:44.044554284 +0000
    2109324772@@ -0,0 +1,74 @@
    2109424773+// Copyright 2013 The Go Authors. All rights reserved.
     
    2116824847diff -Naur gcc-4.8.1.orig/libgo/go/bufio/export_test.go gcc-4.8.1/libgo/go/bufio/export_test.go
    2116924848--- gcc-4.8.1.orig/libgo/go/bufio/export_test.go        1970-01-01 00:00:00.000000000 +0000
    21170 +++ gcc-4.8.1/libgo/go/bufio/export_test.go     2013-09-13 19:01:43.253198066 +0000
     24849+++ gcc-4.8.1/libgo/go/bufio/export_test.go     2013-10-01 16:06:44.044554284 +0000
    2117124850@@ -0,0 +1,27 @@
    2117224851+// Copyright 2013 The Go Authors. All rights reserved.
     
    2119924878diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan.go gcc-4.8.1/libgo/go/bufio/scan.go
    2120024879--- gcc-4.8.1.orig/libgo/go/bufio/scan.go       1970-01-01 00:00:00.000000000 +0000
    21201 +++ gcc-4.8.1/libgo/go/bufio/scan.go    2013-09-13 19:01:43.253198066 +0000
     24880+++ gcc-4.8.1/libgo/go/bufio/scan.go    2013-10-01 16:06:44.044554284 +0000
    2120224881@@ -0,0 +1,346 @@
    2120324882+// Copyright 2013 The Go Authors. All rights reserved.
     
    2154925228diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan_test.go gcc-4.8.1/libgo/go/bufio/scan_test.go
    2155025229--- gcc-4.8.1.orig/libgo/go/bufio/scan_test.go  1970-01-01 00:00:00.000000000 +0000
    21551 +++ gcc-4.8.1/libgo/go/bufio/scan_test.go       2013-09-13 19:01:43.253198066 +0000
     25230+++ gcc-4.8.1/libgo/go/bufio/scan_test.go       2013-10-01 16:06:44.044554284 +0000
    2155225231@@ -0,0 +1,406 @@
    2155325232+// Copyright 2013 The Go Authors. All rights reserved.
     
    2195925638diff -Naur gcc-4.8.1.orig/libgo/go/builtin/builtin.go gcc-4.8.1/libgo/go/builtin/builtin.go
    2196025639--- gcc-4.8.1.orig/libgo/go/builtin/builtin.go  2012-12-22 01:15:33.000000000 +0000
    21961 +++ gcc-4.8.1/libgo/go/builtin/builtin.go       2013-09-13 19:01:43.253198066 +0000
     25640+++ gcc-4.8.1/libgo/go/builtin/builtin.go       2013-10-01 16:06:44.044554284 +0000
    2196225641@@ -13,6 +13,12 @@
    2196325642 // bool is the set of boolean values, true and false.
     
    2200025679diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer.go gcc-4.8.1/libgo/go/bytes/buffer.go
    2200125680--- gcc-4.8.1.orig/libgo/go/bytes/buffer.go     2013-01-29 20:52:43.000000000 +0000
    22002 +++ gcc-4.8.1/libgo/go/bytes/buffer.go  2013-09-13 19:01:43.253198066 +0000
     25681+++ gcc-4.8.1/libgo/go/bytes/buffer.go  2013-10-01 16:06:44.044554284 +0000
    2200325682@@ -87,6 +87,13 @@
    2200425683                var buf []byte
     
    2210725786diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go gcc-4.8.1/libgo/go/bytes/buffer_test.go
    2210825787--- gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go        2013-01-29 20:52:43.000000000 +0000
    22109 +++ gcc-4.8.1/libgo/go/bytes/buffer_test.go     2013-09-13 19:01:43.253198066 +0000
     25788+++ gcc-4.8.1/libgo/go/bytes/buffer_test.go     2013-10-01 16:06:44.044554284 +0000
    2211025789@@ -475,3 +475,53 @@
    2211125790                t.Errorf("ReadByte = %q; want %q", c, 'm')
     
    2216425843diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes.go gcc-4.8.1/libgo/go/bytes/bytes.go
    2216525844--- gcc-4.8.1.orig/libgo/go/bytes/bytes.go      2013-01-29 20:52:43.000000000 +0000
    22166 +++ gcc-4.8.1/libgo/go/bytes/bytes.go   2013-09-13 19:01:43.256531390 +0000
     25845+++ gcc-4.8.1/libgo/go/bytes/bytes.go   2013-10-01 16:06:44.044554284 +0000
    2216725846@@ -37,10 +37,6 @@
    2216825847        return 0
     
    2222825907diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go gcc-4.8.1/libgo/go/bytes/bytes_decl.go
    2222925908--- gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go 2010-08-26 23:31:13.000000000 +0000
    22230 +++ gcc-4.8.1/libgo/go/bytes/bytes_decl.go      2013-09-13 19:01:43.256531390 +0000
     25909+++ gcc-4.8.1/libgo/go/bytes/bytes_decl.go      2013-10-01 16:06:44.044554284 +0000
    2223125910@@ -4,5 +4,13 @@
    2223225911 
     
    2224525924diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go gcc-4.8.1/libgo/go/bytes/bytes_test.go
    2224625925--- gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go 2013-01-29 20:52:43.000000000 +0000
    22247 +++ gcc-4.8.1/libgo/go/bytes/bytes_test.go      2013-09-13 19:01:43.256531390 +0000
     25926+++ gcc-4.8.1/libgo/go/bytes/bytes_test.go      2013-10-01 16:06:44.044554284 +0000
    2224825927@@ -61,6 +61,10 @@
    2224925928        {[]byte("ab"), []byte("x"), -1},
     
    2241326092diff -Naur gcc-4.8.1.orig/libgo/go/bytes/equal_test.go gcc-4.8.1/libgo/go/bytes/equal_test.go
    2241426093--- gcc-4.8.1.orig/libgo/go/bytes/equal_test.go 1970-01-01 00:00:00.000000000 +0000
    22415 +++ gcc-4.8.1/libgo/go/bytes/equal_test.go      2013-09-13 19:01:43.256531390 +0000
     26094+++ gcc-4.8.1/libgo/go/bytes/equal_test.go      2013-10-01 16:06:44.044554284 +0000
    2241626095@@ -0,0 +1,47 @@
    2241726096+// Copyright 2013 The Go Authors. All rights reserved.
     
    2246426143diff -Naur gcc-4.8.1.orig/libgo/go/bytes/example_test.go gcc-4.8.1/libgo/go/bytes/example_test.go
    2246526144--- gcc-4.8.1.orig/libgo/go/bytes/example_test.go       2013-01-29 20:52:43.000000000 +0000
    22466 +++ gcc-4.8.1/libgo/go/bytes/example_test.go    2013-09-13 19:01:43.256531390 +0000
     26145+++ gcc-4.8.1/libgo/go/bytes/example_test.go    2013-10-01 16:06:44.044554284 +0000
    2246726146@@ -66,3 +66,20 @@
    2246826147                // Found it!
     
    2248826167diff -Naur gcc-4.8.1.orig/libgo/go/bytes/export_test.go gcc-4.8.1/libgo/go/bytes/export_test.go
    2248926168--- gcc-4.8.1.orig/libgo/go/bytes/export_test.go        2012-01-12 01:31:45.000000000 +0000
    22490 +++ gcc-4.8.1/libgo/go/bytes/export_test.go     2013-09-13 19:01:43.256531390 +0000
     26169+++ gcc-4.8.1/libgo/go/bytes/export_test.go     2013-10-01 16:06:44.044554284 +0000
    2249126170@@ -7,3 +7,7 @@
    2249226171 // Export func for testing
     
    2249926178diff -Naur gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go gcc-4.8.1/libgo/go/compress/bzip2/huffman.go
    2250026179--- gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go   2011-12-03 02:17:34.000000000 +0000
    22501 +++ gcc-4.8.1/libgo/go/compress/bzip2/huffman.go        2013-09-13 19:01:43.256531390 +0000
     26180+++ gcc-4.8.1/libgo/go/compress/bzip2/huffman.go        2013-10-01 16:06:44.044554284 +0000
    2250226181@@ -54,8 +54,6 @@
    2250326182                        nodeIndex = node.right
     
    2251126190diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go gcc-4.8.1/libgo/go/compress/flate/deflate_test.go
    2251226191--- gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go      2013-01-29 20:52:43.000000000 +0000
    22513 +++ gcc-4.8.1/libgo/go/compress/flate/deflate_test.go   2013-09-13 19:01:43.259864715 +0000
     26192+++ gcc-4.8.1/libgo/go/compress/flate/deflate_test.go   2013-10-01 16:06:44.044554284 +0000
    2251426193@@ -158,7 +158,6 @@
    2251526194                }
     
    2252226201diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go gcc-4.8.1/libgo/go/compress/flate/inflate.go
    2252326202--- gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go   2013-01-29 20:52:43.000000000 +0000
    22524 +++ gcc-4.8.1/libgo/go/compress/flate/inflate.go        2013-09-13 19:01:43.259864715 +0000
     26203+++ gcc-4.8.1/libgo/go/compress/flate/inflate.go        2013-10-01 16:06:44.044554284 +0000
    2252526204@@ -263,7 +263,6 @@
    2252626205                }
     
    2254926228diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/token.go gcc-4.8.1/libgo/go/compress/flate/token.go
    2255026229--- gcc-4.8.1.orig/libgo/go/compress/flate/token.go     2009-12-22 05:56:33.000000000 +0000
    22551 +++ gcc-4.8.1/libgo/go/compress/flate/token.go  2013-09-13 19:01:43.259864715 +0000
     26230+++ gcc-4.8.1/libgo/go/compress/flate/token.go  2013-10-01 16:06:44.044554284 +0000
    2255226231@@ -99,5 +99,4 @@
    2255326232        default:
     
    2255826237diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go gcc-4.8.1/libgo/go/compress/gzip/gunzip.go
    2255926238--- gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go     2012-03-02 16:38:43.000000000 +0000
    22560 +++ gcc-4.8.1/libgo/go/compress/gzip/gunzip.go  2013-09-13 19:01:43.259864715 +0000
     26239+++ gcc-4.8.1/libgo/go/compress/gzip/gunzip.go  2013-10-01 16:06:44.044554284 +0000
    2256126240@@ -120,7 +120,6 @@
    2256226241                        return string(z.buf[0:i]), nil
     
    2256926248diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go gcc-4.8.1/libgo/go/compress/gzip/gzip.go
    2257026249--- gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go       2012-03-02 16:38:43.000000000 +0000
    22571 +++ gcc-4.8.1/libgo/go/compress/gzip/gzip.go    2013-09-13 19:01:43.259864715 +0000
     26250+++ gcc-4.8.1/libgo/go/compress/gzip/gzip.go    2013-10-01 16:06:44.048554283 +0000
    2257226251@@ -28,7 +28,7 @@
    2257326252        Header
     
    2261026289diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go
    2261126290--- gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go  2012-03-02 16:38:43.000000000 +0000
    22612 +++ gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go       2013-09-13 19:01:43.259864715 +0000
     26291+++ gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go       2013-10-01 16:06:44.048554283 +0000
    2261326292@@ -157,3 +157,43 @@
    2261426293                }
     
    2265726336diff -Naur gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go gcc-4.8.1/libgo/go/compress/lzw/reader.go
    2265826337--- gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go      2011-12-12 23:40:51.000000000 +0000
    22659 +++ gcc-4.8.1/libgo/go/compress/lzw/reader.go   2013-09-13 19:01:43.259864715 +0000
     26338+++ gcc-4.8.1/libgo/go/compress/lzw/reader.go   2013-10-01 16:06:44.048554283 +0000
    2266026339@@ -121,7 +121,6 @@
    2266126340                }
     
    2278026459diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap.go gcc-4.8.1/libgo/go/container/heap/heap.go
    2278126460--- gcc-4.8.1.orig/libgo/go/container/heap/heap.go      2012-10-23 04:31:11.000000000 +0000
    22782 +++ gcc-4.8.1/libgo/go/container/heap/heap.go   2013-09-13 19:01:43.263198039 +0000
     26461+++ gcc-4.8.1/libgo/go/container/heap/heap.go   2013-10-01 16:06:44.048554283 +0000
    2278326462@@ -4,13 +4,13 @@
    2278426463 
     
    2280826487diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go gcc-4.8.1/libgo/go/container/heap/heap_test.go
    2280926488--- gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go 2012-10-23 04:31:11.000000000 +0000
    22810 +++ gcc-4.8.1/libgo/go/container/heap/heap_test.go      2013-09-13 19:01:43.263198039 +0000
     26489+++ gcc-4.8.1/libgo/go/container/heap/heap_test.go      2013-10-01 16:06:44.048554283 +0000
    2281126490@@ -2,10 +2,9 @@
    2281226491 // Use of this source code is governed by a BSD-style
     
    2282326502diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go gcc-4.8.1/libgo/go/crypto/cipher/cbc.go
    2282426503--- gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go        2012-11-21 07:03:38.000000000 +0000
    22825 +++ gcc-4.8.1/libgo/go/crypto/cipher/cbc.go     2013-09-13 19:01:43.263198039 +0000
     26504+++ gcc-4.8.1/libgo/go/crypto/cipher/cbc.go     2013-10-01 16:06:44.048554283 +0000
    2282626505@@ -42,6 +42,12 @@
    2282726506 func (x *cbcEncrypter) BlockSize() int { return x.blockSize }
     
    2285226531diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go
    2285326532--- gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go        1970-01-01 00:00:00.000000000 +0000
    22854 +++ gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go     2013-09-13 19:01:43.263198039 +0000
     26533+++ gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go     2013-10-01 16:06:44.048554283 +0000
    2285526534@@ -0,0 +1,36 @@
    2285626535+// Copyright 2013 The Go Authors.  All rights reserved.
     
    2289226571diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go gcc-4.8.1/libgo/go/crypto/cipher/example_test.go
    2289326572--- gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go       2012-12-22 01:15:33.000000000 +0000
    22894 +++ gcc-4.8.1/libgo/go/crypto/cipher/example_test.go    2013-09-13 19:01:43.263198039 +0000
     26573+++ gcc-4.8.1/libgo/go/crypto/cipher/example_test.go    2013-10-01 16:06:44.048554283 +0000
    2289526574@@ -233,7 +233,7 @@
    2289626575        }
     
    2291326592diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go gcc-4.8.1/libgo/go/crypto/dsa/dsa.go
    2291426593--- gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go   2012-03-02 20:01:37.000000000 +0000
    22915 +++ gcc-4.8.1/libgo/go/crypto/dsa/dsa.go        2013-09-13 19:01:43.366531102 +0000
     26594+++ gcc-4.8.1/libgo/go/crypto/dsa/dsa.go        2013-10-01 16:06:44.048554283 +0000
    2291626595@@ -144,8 +144,6 @@
    2291726596                params.G = g
     
    2292526604diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go
    2292626605--- gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go      2011-12-07 01:11:29.000000000 +0000
    22927 +++ gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go   2013-09-13 19:01:43.366531102 +0000
     26606+++ gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go   2013-10-01 16:06:44.048554283 +0000
    2292826607@@ -63,8 +63,9 @@
    2292926608 }
     
    2294026619diff -Naur gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go
    2294126620--- gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go       2012-10-23 04:31:11.000000000 +0000
    22942 +++ gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go    2013-09-13 19:01:43.366531102 +0000
     26621+++ gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go    2013-10-01 16:06:44.048554283 +0000
    2294326622@@ -49,7 +49,7 @@
    2294426623        return
     
    2295226631diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go gcc-4.8.1/libgo/go/crypto/md5/gen.go
    2295326632--- gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go   2012-11-21 07:03:38.000000000 +0000
    22954 +++ gcc-4.8.1/libgo/go/crypto/md5/gen.go        2013-09-13 19:01:43.366531102 +0000
     26633+++ gcc-4.8.1/libgo/go/crypto/md5/gen.go        2013-10-01 16:06:44.048554283 +0000
    2295526634@@ -161,6 +161,11 @@
    2295626635 }
     
    2300026679diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go gcc-4.8.1/libgo/go/crypto/md5/md5_test.go
    2300126680--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go      2012-11-21 07:03:38.000000000 +0000
    23002 +++ gcc-4.8.1/libgo/go/crypto/md5/md5_test.go   2013-09-13 19:01:43.369864426 +0000
     26681+++ gcc-4.8.1/libgo/go/crypto/md5/md5_test.go   2013-10-01 16:06:44.048554283 +0000
    2300326682@@ -2,10 +2,9 @@
    2300426683 // Use of this source code is governed by a BSD-style
     
    2304126720diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go gcc-4.8.1/libgo/go/crypto/md5/md5block.go
    2304226721--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go      2013-02-07 21:40:10.000000000 +0000
    23043 +++ gcc-4.8.1/libgo/go/crypto/md5/md5block.go   2013-09-13 19:01:43.366531102 +0000
     26722+++ gcc-4.8.1/libgo/go/crypto/md5/md5block.go   2013-10-01 16:06:44.048554283 +0000
    2304426723@@ -1,3 +1,8 @@
    2304526724+// DO NOT EDIT.
     
    2305326732diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go
    2305426733--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go 1970-01-01 00:00:00.000000000 +0000
    23055 +++ gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go      2013-09-13 19:01:43.366531102 +0000
     26734+++ gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go      2013-10-01 16:06:44.048554283 +0000
    2305626735@@ -0,0 +1,9 @@
    2305726736+// Copyright 2013 The Go Authors.  All rights reserved.
     
    2306626745diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rand/util.go gcc-4.8.1/libgo/go/crypto/rand/util.go
    2306726746--- gcc-4.8.1.orig/libgo/go/crypto/rand/util.go 2013-01-29 20:52:43.000000000 +0000
    23068 +++ gcc-4.8.1/libgo/go/crypto/rand/util.go      2013-09-13 19:01:43.369864426 +0000
     26747+++ gcc-4.8.1/libgo/go/crypto/rand/util.go      2013-10-01 16:06:44.048554283 +0000
    2306926748@@ -98,12 +98,13 @@
    2307026749                        return
     
    2309326772diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go gcc-4.8.1/libgo/go/crypto/rc4/rc4.go
    2309426773--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go   2011-12-03 02:17:34.000000000 +0000
    23095 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4.go        2013-09-13 19:01:43.369864426 +0000
     26774+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4.go        2013-10-01 16:06:44.048554283 +0000
    2309626775@@ -13,7 +13,7 @@
    2309726776 
     
    2313526814diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go
    2313626815--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go       1970-01-01 00:00:00.000000000 +0000
    23137 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go    2013-09-13 19:01:43.369864426 +0000
     26816+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go    2013-10-01 16:06:44.048554283 +0000
    2313826817@@ -0,0 +1,18 @@
    2313926818+// Copyright 2013 The Go Authors. All rights reserved.
     
    2315726836diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go
    2315826837--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go       1970-01-01 00:00:00.000000000 +0000
    23159 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go    2013-09-13 19:01:43.369864426 +0000
     26838+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go    2013-10-01 16:06:44.048554283 +0000
    2316026839@@ -0,0 +1,20 @@
    2316126840+// Copyright 2013 The Go Authors. All rights reserved.
     
    2318126860diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go
    2318226861--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go      2011-01-21 18:19:03.000000000 +0000
    23183 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go   2013-09-13 19:01:43.369864426 +0000
     26862+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go   2013-10-01 16:06:44.048554283 +0000
    2318426863@@ -5,6 +5,8 @@
    2318526864 package rc4
     
    2333027009diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go gcc-4.8.1/libgo/go/crypto/rsa/rsa.go
    2333127010--- gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go   2013-01-29 20:52:43.000000000 +0000
    23332 +++ gcc-4.8.1/libgo/go/crypto/rsa/rsa.go        2013-09-13 19:01:43.369864426 +0000
     27011+++ gcc-4.8.1/libgo/go/crypto/rsa/rsa.go        2013-10-01 16:06:44.048554283 +0000
    2333327012@@ -150,6 +150,20 @@
    2333427013 NextSetOfPrimes:
     
    2337727056diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go
    2337827057--- gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go      2013-01-29 20:52:43.000000000 +0000
    23379 +++ gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go   2013-09-13 19:01:43.373197751 +0000
     27058+++ gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go   2013-10-01 16:06:44.048554283 +0000
    2338027059@@ -28,11 +28,11 @@
    2338127060 }
     
    2344327122diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go
    2344427123--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go    2012-11-21 07:03:38.000000000 +0000
    23445 +++ gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go 2013-09-13 19:01:43.373197751 +0000
     27124+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go 2013-10-01 16:06:44.052554283 +0000
    2344627125@@ -4,10 +4,9 @@
    2344727126 
     
    2348327162diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go
    2348427163--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go    2012-11-21 07:03:38.000000000 +0000
    23485 +++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go 2013-09-13 19:01:43.373197751 +0000
     27164+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go 2013-10-01 16:06:44.048554283 +0000
    2348627165@@ -2,6 +2,8 @@
    2348727166 // Use of this source code is governed by a BSD-style
     
    2349527174diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go
    2349627175--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go       1970-01-01 00:00:00.000000000 +0000
    23497 +++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go    2013-09-13 19:01:43.373197751 +0000
     27176+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go    2013-10-01 16:06:44.048554283 +0000
    2349827177@@ -0,0 +1,9 @@
    2349927178+// Copyright 2013 The Go Authors.  All rights reserved.
     
    2350827187diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/common.go gcc-4.8.1/libgo/go/crypto/tls/common.go
    2350927188--- gcc-4.8.1.orig/libgo/go/crypto/tls/common.go        2013-01-29 20:52:43.000000000 +0000
    23510 +++ gcc-4.8.1/libgo/go/crypto/tls/common.go     2013-09-13 19:01:43.373197751 +0000
     27189+++ gcc-4.8.1/libgo/go/crypto/tls/common.go     2013-10-01 16:06:44.052554283 +0000
    2351127190@@ -204,7 +204,24 @@
    2351227191        // connections using that key are compromised.
     
    2353727216diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go
    2353827217--- gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go 2012-03-02 16:38:43.000000000 +0000
    23539 +++ gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go      2013-09-13 19:01:43.373197751 +0000
     27218+++ gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go      2013-10-01 16:06:44.052554283 +0000
    2354027219@@ -16,36 +16,80 @@
    2354127220        "crypto/x509/pkix"
     
    2362927308diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go
    2363027309--- gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go      2013-01-29 20:52:43.000000000 +0000
    23631 +++ gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go   2013-09-13 19:01:43.376531076 +0000
     27310+++ gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go   2013-10-01 16:06:44.052554283 +0000
    2363227311@@ -33,22 +33,7 @@
    2363327312 
     
    2365627335diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go
    2365727336--- gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go        2012-11-21 07:03:38.000000000 +0000
    23658 +++ gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go     2013-09-13 19:01:43.376531076 +0000
     27337+++ gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go     2013-10-01 16:06:44.052554283 +0000
    2365927338@@ -51,6 +51,4 @@
    2366027339        default:
     
    2366627345diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go gcc-4.8.1/libgo/go/crypto/x509/verify.go
    2366727346--- gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go       2013-01-29 20:52:43.000000000 +0000
    23668 +++ gcc-4.8.1/libgo/go/crypto/x509/verify.go    2013-09-13 19:01:43.376531076 +0000
     27347+++ gcc-4.8.1/libgo/go/crypto/x509/verify.go    2013-10-01 16:06:44.052554283 +0000
    2366927348@@ -5,6 +5,7 @@
    2367027349 package x509
     
    2374927428diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go gcc-4.8.1/libgo/go/crypto/x509/verify_test.go
    2375027429--- gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go  2013-01-29 20:52:43.000000000 +0000
    23751 +++ gcc-4.8.1/libgo/go/crypto/x509/verify_test.go       2013-09-13 19:01:43.376531076 +0000
     27430+++ gcc-4.8.1/libgo/go/crypto/x509/verify_test.go       2013-10-01 16:06:44.052554283 +0000
    2375227431@@ -158,6 +158,19 @@
    2375327432                        {"Ryan Hurst", "GlobalSign PersonalSign 2 CA - G2"},
     
    2386327542diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go gcc-4.8.1/libgo/go/crypto/x509/x509.go
    2386427543--- gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go 2012-11-21 07:03:38.000000000 +0000
    23865 +++ gcc-4.8.1/libgo/go/crypto/x509/x509.go      2013-09-13 19:01:43.376531076 +0000
     27544+++ gcc-4.8.1/libgo/go/crypto/x509/x509.go      2013-10-01 16:06:44.052554283 +0000
    2386627545@@ -19,6 +19,8 @@
    2386727546        "errors"
     
    2399327672diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go gcc-4.8.1/libgo/go/crypto/x509/x509_test.go
    2399427673--- gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go    2012-12-22 01:15:33.000000000 +0000
    23995 +++ gcc-4.8.1/libgo/go/crypto/x509/x509_test.go 2013-09-13 19:01:43.379864400 +0000
     27674+++ gcc-4.8.1/libgo/go/crypto/x509/x509_test.go 2013-10-01 16:06:44.052554283 +0000
    2399627675@@ -19,6 +19,7 @@
    2399727676        "encoding/hex"
     
    2408727766diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert.go gcc-4.8.1/libgo/go/database/sql/convert.go
    2408827767--- gcc-4.8.1.orig/libgo/go/database/sql/convert.go     2012-10-23 04:31:11.000000000 +0000
    24089 +++ gcc-4.8.1/libgo/go/database/sql/convert.go  2013-09-13 19:01:43.379864400 +0000
     27768+++ gcc-4.8.1/libgo/go/database/sql/convert.go  2013-10-01 16:06:44.052554283 +0000
    2409027769@@ -14,12 +14,18 @@
    2409127770        "strconv"
     
    2424827927diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go gcc-4.8.1/libgo/go/database/sql/convert_test.go
    2424927928--- gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go        2012-03-02 16:38:43.000000000 +0000
    24250 +++ gcc-4.8.1/libgo/go/database/sql/convert_test.go     2013-09-13 19:01:43.379864400 +0000
     27929+++ gcc-4.8.1/libgo/go/database/sql/convert_test.go     2013-10-01 16:06:44.052554283 +0000
    2425127930@@ -22,6 +22,8 @@
    2425227931        wantint   int64
     
    2432628005diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go gcc-4.8.1/libgo/go/database/sql/driver/driver.go
    2432728006--- gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go       2012-03-30 21:27:11.000000000 +0000
    24328 +++ gcc-4.8.1/libgo/go/database/sql/driver/driver.go    2013-09-13 19:01:43.379864400 +0000
     28007+++ gcc-4.8.1/libgo/go/database/sql/driver/driver.go    2013-10-01 16:06:44.052554283 +0000
    2432928008@@ -10,8 +10,8 @@
    2433028009 
     
    2439328072diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go gcc-4.8.1/libgo/go/database/sql/fakedb_test.go
    2439428073--- gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go 2012-12-22 01:15:33.000000000 +0000
    24395 +++ gcc-4.8.1/libgo/go/database/sql/fakedb_test.go      2013-09-13 19:01:43.383197725 +0000
     28074+++ gcc-4.8.1/libgo/go/database/sql/fakedb_test.go      2013-10-01 16:06:44.052554283 +0000
    2439628075@@ -13,6 +13,7 @@
    2439728076        "strconv"
     
    2451128190diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql.go gcc-4.8.1/libgo/go/database/sql/sql.go
    2451228191--- gcc-4.8.1.orig/libgo/go/database/sql/sql.go 2013-01-29 20:52:43.000000000 +0000
    24513 +++ gcc-4.8.1/libgo/go/database/sql/sql.go      2013-09-13 19:01:43.383197725 +0000
     28192+++ gcc-4.8.1/libgo/go/database/sql/sql.go      2013-10-01 16:06:44.052554283 +0000
    2451428193@@ -4,6 +4,9 @@
    2451528194 
     
    2573429413diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go gcc-4.8.1/libgo/go/database/sql/sql_test.go
    2573529414--- gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go    2012-12-22 01:15:33.000000000 +0000
    25736 +++ gcc-4.8.1/libgo/go/database/sql/sql_test.go 2013-09-13 19:01:43.386531049 +0000
     29415+++ gcc-4.8.1/libgo/go/database/sql/sql_test.go 2013-10-01 16:06:44.052554283 +0000
    2573729416@@ -5,11 +5,11 @@
    2573829417 package sql
     
    2630529984diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go gcc-4.8.1/libgo/go/debug/dwarf/buf.go
    2630629985--- gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go  2012-03-09 06:35:00.000000000 +0000
    26307 +++ gcc-4.8.1/libgo/go/debug/dwarf/buf.go       2013-09-13 19:01:43.386531049 +0000
     29986+++ gcc-4.8.1/libgo/go/debug/dwarf/buf.go       2013-10-01 16:06:44.056554283 +0000
    2630829987@@ -13,17 +13,45 @@
    2630929988 
     
    2639030069diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go gcc-4.8.1/libgo/go/debug/dwarf/entry.go
    2639130070--- gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go        2012-03-09 06:35:00.000000000 +0000
    26392 +++ gcc-4.8.1/libgo/go/debug/dwarf/entry.go     2013-09-13 19:01:43.386531049 +0000
     30071+++ gcc-4.8.1/libgo/go/debug/dwarf/entry.go     2013-10-01 16:06:44.056554283 +0000
    2639330072@@ -40,7 +40,7 @@
    2639430073        } else {
     
    2645630135diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go gcc-4.8.1/libgo/go/debug/dwarf/line.go
    2645730136--- gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go 2012-09-06 05:28:02.000000000 +0000
    26458 +++ gcc-4.8.1/libgo/go/debug/dwarf/line.go      2013-09-13 19:01:43.386531049 +0000
     30137+++ gcc-4.8.1/libgo/go/debug/dwarf/line.go      2013-10-01 16:06:44.056554283 +0000
    2645930138@@ -112,7 +112,7 @@
    2646030139 func (d *Data) readAddressRanges(off Offset, base uint64, u *unit) error {
     
    2646830147diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go gcc-4.8.1/libgo/go/debug/dwarf/type.go
    2646930148--- gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go 2012-03-09 06:35:00.000000000 +0000
    26470 +++ gcc-4.8.1/libgo/go/debug/dwarf/type.go      2013-09-13 19:01:43.386531049 +0000
     30149+++ gcc-4.8.1/libgo/go/debug/dwarf/type.go      2013-10-01 16:06:44.056554283 +0000
    2647130150@@ -435,7 +435,9 @@
    2647230151                                        goto Error
     
    2648230161diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go gcc-4.8.1/libgo/go/debug/dwarf/unit.go
    2648330162--- gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go 2012-03-09 06:35:00.000000000 +0000
    26484 +++ gcc-4.8.1/libgo/go/debug/dwarf/unit.go      2013-09-13 19:01:43.386531049 +0000
     30163+++ gcc-4.8.1/libgo/go/debug/dwarf/unit.go      2013-10-01 16:06:44.056554283 +0000
    2648530164@@ -10,17 +10,31 @@
    2648630165 // Each unit has its own abbreviation table and address size.
     
    2657930258diff -Naur gcc-4.8.1.orig/libgo/go/debug/elf/file.go gcc-4.8.1/libgo/go/debug/elf/file.go
    2658030259--- gcc-4.8.1.orig/libgo/go/debug/elf/file.go   2012-12-22 01:15:33.000000000 +0000
    26581 +++ gcc-4.8.1/libgo/go/debug/elf/file.go        2013-09-13 19:01:43.389864374 +0000
     30260+++ gcc-4.8.1/libgo/go/debug/elf/file.go        2013-10-01 16:06:44.056554283 +0000
    2658230261@@ -422,6 +422,10 @@
    2658330262                return nil, nil, errors.New("cannot load string table section")
     
    2663730316diff -Naur gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go gcc-4.8.1/libgo/go/debug/gosym/symtab.go
    2663830317--- gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go       2013-01-29 20:52:43.000000000 +0000
    26639 +++ gcc-4.8.1/libgo/go/debug/gosym/symtab.go    2013-09-13 19:01:43.389864374 +0000
     30318+++ gcc-4.8.1/libgo/go/debug/gosym/symtab.go    2013-10-01 16:06:44.056554283 +0000
    2664030319@@ -99,31 +99,116 @@
    2664130320 }
     
    2679530474diff -Naur gcc-4.8.1.orig/libgo/go/debug/macho/file.go gcc-4.8.1/libgo/go/debug/macho/file.go
    2679630475--- gcc-4.8.1.orig/libgo/go/debug/macho/file.go 2012-03-07 01:16:20.000000000 +0000
    26797 +++ gcc-4.8.1/libgo/go/debug/macho/file.go      2013-09-13 19:01:43.389864374 +0000
     30476+++ gcc-4.8.1/libgo/go/debug/macho/file.go      2013-10-01 16:06:44.056554283 +0000
    2679830477@@ -142,6 +142,8 @@
    2679930478  * Mach-O reader
     
    2680730486diff -Naur gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go
    2680830487--- gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go 2012-05-04 15:01:11.000000000 +0000
    26809 +++ gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go      2013-09-13 19:01:43.389864374 +0000
     30488+++ gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go      2013-10-01 16:06:44.056554283 +0000
    2681030489@@ -296,5 +296,4 @@
    2681130490                nn, d.readErr = d.r.Read(d.buf[d.nbuf:])
     
    2681630495diff -Naur gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go gcc-4.8.1/libgo/go/encoding/asn1/marshal.go
    2681730496--- gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go    2012-11-21 07:03:38.000000000 +0000
    26818 +++ gcc-4.8.1/libgo/go/encoding/asn1/marshal.go 2013-09-13 19:01:43.389864374 +0000
     30497+++ gcc-4.8.1/libgo/go/encoding/asn1/marshal.go 2013-10-01 16:06:44.056554283 +0000
    2681930498@@ -460,7 +460,6 @@
    2682030499                default:
     
    2682730506diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go gcc-4.8.1/libgo/go/encoding/base32/base32.go
    2682830507--- gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go   2012-10-23 04:31:11.000000000 +0000
    26829 +++ gcc-4.8.1/libgo/go/encoding/base32/base32.go        2013-09-13 19:01:43.389864374 +0000
     30508+++ gcc-4.8.1/libgo/go/encoding/base32/base32.go        2013-10-01 16:06:44.056554283 +0000
    2683030509@@ -6,8 +6,10 @@
    2683130510 package base32
     
    2700430683diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go gcc-4.8.1/libgo/go/encoding/base32/base32_test.go
    2700530684--- gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go      2012-02-09 08:19:58.000000000 +0000
    27006 +++ gcc-4.8.1/libgo/go/encoding/base32/base32_test.go   2013-09-13 19:01:43.393197699 +0000
     30685+++ gcc-4.8.1/libgo/go/encoding/base32/base32_test.go   2013-10-01 16:06:44.056554283 +0000
    2700730686@@ -8,6 +8,7 @@
    2700830687        "bytes"
     
    2715330832diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go gcc-4.8.1/libgo/go/encoding/base64/base64.go
    2715430833--- gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go   2012-10-23 04:31:11.000000000 +0000
    27155 +++ gcc-4.8.1/libgo/go/encoding/base64/base64.go        2013-09-13 19:01:43.393197699 +0000
     30834+++ gcc-4.8.1/libgo/go/encoding/base64/base64.go        2013-10-01 16:06:44.056554283 +0000
    2715630835@@ -6,8 +6,10 @@
    2715730836 package base64
     
    2728530964diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go gcc-4.8.1/libgo/go/encoding/base64/base64_test.go
    2728630965--- gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go      2012-06-25 16:20:03.000000000 +0000
    27287 +++ gcc-4.8.1/libgo/go/encoding/base64/base64_test.go   2013-09-13 19:01:43.393197699 +0000
     30966+++ gcc-4.8.1/libgo/go/encoding/base64/base64_test.go   2013-10-01 16:06:44.056554283 +0000
    2728830967@@ -9,6 +9,7 @@
    2728930968        "errors"
     
    2740531084diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go gcc-4.8.1/libgo/go/encoding/binary/binary.go
    2740631085--- gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go   2012-12-12 23:13:29.000000000 +0000
    27407 +++ gcc-4.8.1/libgo/go/encoding/binary/binary.go        2013-09-13 19:01:43.393197699 +0000
     31086+++ gcc-4.8.1/libgo/go/encoding/binary/binary.go        2013-10-01 16:06:44.056554283 +0000
    2740831087@@ -167,9 +167,9 @@
    2740931088        default:
     
    2752631205diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go gcc-4.8.1/libgo/go/encoding/binary/binary_test.go
    2752731206--- gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go      2013-02-10 06:02:38.000000000 +0000
    27528 +++ gcc-4.8.1/libgo/go/encoding/binary/binary_test.go   2013-09-13 19:01:43.393197699 +0000
     31207+++ gcc-4.8.1/libgo/go/encoding/binary/binary_test.go   2013-10-01 16:06:44.060554283 +0000
    2752931208@@ -9,6 +9,7 @@
    2753031209        "io"
     
    2756131240diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go gcc-4.8.1/libgo/go/encoding/binary/varint.go
    2756231241--- gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go   2012-11-21 07:03:38.000000000 +0000
    27563 +++ gcc-4.8.1/libgo/go/encoding/binary/varint.go        2013-09-13 19:01:43.393197699 +0000
     31242+++ gcc-4.8.1/libgo/go/encoding/binary/varint.go        2013-10-01 16:06:44.060554283 +0000
    2756431243@@ -120,7 +120,6 @@
    2756531244                x |= uint64(b&0x7f) << s
     
    2757231251diff -Naur gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go gcc-4.8.1/libgo/go/encoding/csv/reader.go
    2757331252--- gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go      2012-03-30 21:27:11.000000000 +0000
    27574 +++ gcc-4.8.1/libgo/go/encoding/csv/reader.go   2013-09-13 19:01:43.396531023 +0000
     31253+++ gcc-4.8.1/libgo/go/encoding/csv/reader.go   2013-10-01 16:06:44.060554283 +0000
    2757531254@@ -171,7 +171,6 @@
    2757631255                }
     
    2759931278diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go gcc-4.8.1/libgo/go/encoding/gob/codec_test.go
    2760031279--- gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go  2012-10-23 04:31:11.000000000 +0000
    27601 +++ gcc-4.8.1/libgo/go/encoding/gob/codec_test.go       2013-09-13 19:01:43.396531023 +0000
     31280+++ gcc-4.8.1/libgo/go/encoding/gob/codec_test.go       2013-10-01 16:06:44.060554283 +0000
    2760231281@@ -1191,10 +1191,8 @@
    2760331282                        if v1 != nil || v2 != nil {
     
    2761531294diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go gcc-4.8.1/libgo/go/encoding/gob/decode.go
    2761631295--- gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go      2012-12-22 01:15:33.000000000 +0000
    27617 +++ gcc-4.8.1/libgo/go/encoding/gob/decode.go   2013-09-13 19:01:43.396531023 +0000
     31296+++ gcc-4.8.1/libgo/go/encoding/gob/decode.go   2013-10-01 16:06:44.060554283 +0000
    2761831297@@ -1066,7 +1066,6 @@
    2761931298        case reflect.Struct:
     
    2762631305diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go
    2762731306--- gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go      2013-01-29 20:52:43.000000000 +0000
    27628 +++ gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go   2013-09-13 19:01:43.396531023 +0000
     31307+++ gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go   2013-10-01 16:06:44.060554283 +0000
    2762931308@@ -1,4 +1,4 @@
    2763031309-// Copyright 20011 The Go Authors. All rights reserved.
     
    2764431323diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go gcc-4.8.1/libgo/go/encoding/gob/timing_test.go
    2764531324--- gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go 2012-12-12 23:13:29.000000000 +0000
    27646 +++ gcc-4.8.1/libgo/go/encoding/gob/timing_test.go      2013-09-13 19:01:43.396531023 +0000
     31325+++ gcc-4.8.1/libgo/go/encoding/gob/timing_test.go      2013-10-01 16:06:44.060554283 +0000
    2764731326@@ -50,49 +50,51 @@
    2764831327 }
     
    2772131400diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/type.go gcc-4.8.1/libgo/go/encoding/gob/type.go
    2772231401--- gcc-4.8.1.orig/libgo/go/encoding/gob/type.go        2012-10-23 04:31:11.000000000 +0000
    27723 +++ gcc-4.8.1/libgo/go/encoding/gob/type.go     2013-09-13 19:01:43.399864348 +0000
     31402+++ gcc-4.8.1/libgo/go/encoding/gob/type.go     2013-10-01 16:06:44.060554283 +0000
    2772431403@@ -526,7 +526,6 @@
    2772531404        default:
     
    2773231411diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode.go gcc-4.8.1/libgo/go/encoding/json/decode.go
    2773331412--- gcc-4.8.1.orig/libgo/go/encoding/json/decode.go     2013-01-30 01:37:13.000000000 +0000
    27734 +++ gcc-4.8.1/libgo/go/encoding/json/decode.go  2013-09-13 19:01:43.399864348 +0000
     31413+++ gcc-4.8.1/libgo/go/encoding/json/decode.go  2013-10-01 16:06:44.060554283 +0000
    2773531414@@ -33,6 +33,10 @@
    2773631415 // the value pointed at by the pointer.  If the pointer is nil, Unmarshal
     
    2781931498diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go gcc-4.8.1/libgo/go/encoding/json/decode_test.go
    2782031499--- gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go        2013-01-30 01:37:13.000000000 +0000
    27821 +++ gcc-4.8.1/libgo/go/encoding/json/decode_test.go     2013-09-13 19:01:43.399864348 +0000
     31500+++ gcc-4.8.1/libgo/go/encoding/json/decode_test.go     2013-10-01 16:06:44.060554283 +0000
    2782231501@@ -11,6 +11,7 @@
    2782331502        "reflect"
     
    2794031619diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode.go gcc-4.8.1/libgo/go/encoding/json/encode.go
    2794131620--- gcc-4.8.1.orig/libgo/go/encoding/json/encode.go     2013-01-29 20:52:43.000000000 +0000
    27942 +++ gcc-4.8.1/libgo/go/encoding/json/encode.go  2013-09-13 19:01:43.399864348 +0000
     31621+++ gcc-4.8.1/libgo/go/encoding/json/encode.go  2013-10-01 16:06:44.060554283 +0000
    2794331622@@ -3,7 +3,8 @@
    2794431623 // license that can be found in the LICENSE file.
     
    2808931768diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go gcc-4.8.1/libgo/go/encoding/json/encode_test.go
    2809031769--- gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go        2013-01-29 20:52:43.000000000 +0000
    28091 +++ gcc-4.8.1/libgo/go/encoding/json/encode_test.go     2013-09-13 19:01:43.403197672 +0000
     31770+++ gcc-4.8.1/libgo/go/encoding/json/encode_test.go     2013-10-01 16:06:44.060554283 +0000
    2809231771@@ -206,3 +206,107 @@
    2809331772                t.Errorf("got %q, want %q", got, want)
     
    2820031879diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go gcc-4.8.1/libgo/go/encoding/json/scanner_test.go
    2820131880--- gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go       2013-01-29 20:52:43.000000000 +0000
    28202 +++ gcc-4.8.1/libgo/go/encoding/json/scanner_test.go    2013-09-13 19:01:43.403197672 +0000
     31881+++ gcc-4.8.1/libgo/go/encoding/json/scanner_test.go    2013-10-01 16:06:44.060554283 +0000
    2820331882@@ -277,9 +277,6 @@
    2820431883        if f > n {
     
    2821331892diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go gcc-4.8.1/libgo/go/encoding/xml/marshal.go
    2821431893--- gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go     2013-01-29 20:52:43.000000000 +0000
    28215 +++ gcc-4.8.1/libgo/go/encoding/xml/marshal.go  2013-09-13 19:01:43.403197672 +0000
     31894+++ gcc-4.8.1/libgo/go/encoding/xml/marshal.go  2013-10-01 16:06:44.060554283 +0000
    2821631895@@ -81,8 +81,7 @@
    2821731896 func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
     
    2841232091diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go
    2841332092--- gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go        2013-01-29 20:52:43.000000000 +0000
    28414 +++ gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go     2013-09-13 19:01:43.403197672 +0000
     32093+++ gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go     2013-10-01 16:06:44.060554283 +0000
    2841532094@@ -7,6 +7,7 @@
    2841632095 import (
     
    2854832227diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read.go gcc-4.8.1/libgo/go/encoding/xml/read.go
    2854932228--- gcc-4.8.1.orig/libgo/go/encoding/xml/read.go        2013-01-29 20:52:43.000000000 +0000
    28550 +++ gcc-4.8.1/libgo/go/encoding/xml/read.go     2013-09-13 19:01:43.403197672 +0000
     32229+++ gcc-4.8.1/libgo/go/encoding/xml/read.go     2013-10-01 16:06:44.060554283 +0000
    2855132230@@ -263,7 +263,7 @@
    2855232231                                strv := finfo.value(sv)
     
    2858332262diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go gcc-4.8.1/libgo/go/encoding/xml/read_test.go
    2858432263--- gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go   2013-01-29 20:52:43.000000000 +0000
    28585 +++ gcc-4.8.1/libgo/go/encoding/xml/read_test.go        2013-09-13 19:01:43.406530997 +0000
     32264+++ gcc-4.8.1/libgo/go/encoding/xml/read_test.go        2013-10-01 16:06:44.064554283 +0000
    2858632265@@ -6,6 +6,7 @@
    2858732266 
     
    2881932498diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go
    2882032499--- gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go    2013-01-29 20:52:43.000000000 +0000
    28821 +++ gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go 2013-09-13 19:01:43.406530997 +0000
     32500+++ gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go 2013-10-01 16:06:44.064554283 +0000
    2882232501@@ -70,20 +70,19 @@
    2882332502                                if t.Kind() == reflect.Ptr {
     
    2889032569diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go gcc-4.8.1/libgo/go/encoding/xml/xml.go
    2889132570--- gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go 2012-11-21 07:03:38.000000000 +0000
    28892 +++ gcc-4.8.1/libgo/go/encoding/xml/xml.go      2013-09-13 19:01:43.406530997 +0000
     32571+++ gcc-4.8.1/libgo/go/encoding/xml/xml.go      2013-10-01 16:06:44.064554283 +0000
    2889332572@@ -169,6 +169,11 @@
    2889432573        // the CharsetReader's result values must be non-nil.
     
    2901632695diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go gcc-4.8.1/libgo/go/encoding/xml/xml_test.go
    2901732696--- gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go    2012-11-21 07:03:38.000000000 +0000
    29018 +++ gcc-4.8.1/libgo/go/encoding/xml/xml_test.go 2013-09-13 19:01:43.406530997 +0000
     32697+++ gcc-4.8.1/libgo/go/encoding/xml/xml_test.go 2013-10-01 16:06:44.064554283 +0000
    2901932698@@ -5,6 +5,7 @@
    2902032699 package xml
     
    137325141004diff -Naur gcc-4.8.1.orig/libgo/go/fmt/doc.go gcc-4.8.1/libgo/go/fmt/doc.go
    137326141005--- gcc-4.8.1.orig/libgo/go/fmt/doc.go  2013-01-29 20:52:43.000000000 +0000
    137327 +++ gcc-4.8.1/libgo/go/fmt/doc.go       2013-09-13 19:01:43.629863745 +0000
     141006+++ gcc-4.8.1/libgo/go/fmt/doc.go       2013-10-01 16:06:44.148554281 +0000
    137328141007@@ -74,7 +74,8 @@
    137329141008                -       pad with spaces on the right rather than the left (left-justify the field)
     
    137355141034diff -Naur gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go gcc-4.8.1/libgo/go/fmt/fmt_test.go
    137356141035--- gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go     2013-01-29 20:52:43.000000000 +0000
    137357 +++ gcc-4.8.1/libgo/go/fmt/fmt_test.go  2013-09-13 19:01:43.629863745 +0000
     141036+++ gcc-4.8.1/libgo/go/fmt/fmt_test.go  2013-10-01 16:06:44.148554281 +0000
    137358141037@@ -9,7 +9,7 @@
    137359141038        . "fmt"
     
    137469141148diff -Naur gcc-4.8.1.orig/libgo/go/fmt/print.go gcc-4.8.1/libgo/go/fmt/print.go
    137470141149--- gcc-4.8.1.orig/libgo/go/fmt/print.go        2013-01-29 20:52:43.000000000 +0000
    137471 +++ gcc-4.8.1/libgo/go/fmt/print.go     2013-09-13 19:01:43.629863745 +0000
     141150+++ gcc-4.8.1/libgo/go/fmt/print.go     2013-10-01 16:06:44.148554281 +0000
    137472141151@@ -47,7 +47,7 @@
    137473141152 }
     
    137571141250diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter.go gcc-4.8.1/libgo/go/go/ast/filter.go
    137572141251--- gcc-4.8.1.orig/libgo/go/go/ast/filter.go    2012-11-21 07:03:38.000000000 +0000
    137573 +++ gcc-4.8.1/libgo/go/go/ast/filter.go 2013-09-13 19:01:43.633197069 +0000
     141252+++ gcc-4.8.1/libgo/go/go/ast/filter.go 2013-10-01 16:06:44.148554281 +0000
    137574141253@@ -284,6 +284,27 @@
    137575141254        FilterImportDuplicates
     
    137620141299diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go gcc-4.8.1/libgo/go/go/ast/filter_test.go
    137621141300--- gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go       1970-01-01 00:00:00.000000000 +0000
    137622 +++ gcc-4.8.1/libgo/go/go/ast/filter_test.go    2013-09-13 19:01:43.633197069 +0000
     141301+++ gcc-4.8.1/libgo/go/go/ast/filter_test.go    2013-10-01 16:06:44.148554281 +0000
    137623141302@@ -0,0 +1,86 @@
    137624141303+// Copyright 2013 The Go Authors. All rights reserved.
     
    137710141389diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/print.go gcc-4.8.1/libgo/go/go/ast/print.go
    137711141390--- gcc-4.8.1.orig/libgo/go/go/ast/print.go     2012-10-23 04:31:11.000000000 +0000
    137712 +++ gcc-4.8.1/libgo/go/go/ast/print.go  2013-09-13 19:01:43.633197069 +0000
     141391+++ gcc-4.8.1/libgo/go/go/ast/print.go  2013-10-01 16:06:44.148554281 +0000
    137713141392@@ -34,7 +34,7 @@
    137714141393 //
     
    137722141401diff -Naur gcc-4.8.1.orig/libgo/go/go/build/build.go gcc-4.8.1/libgo/go/go/build/build.go
    137723141402--- gcc-4.8.1.orig/libgo/go/go/build/build.go   2013-01-30 01:37:13.000000000 +0000
    137724 +++ gcc-4.8.1/libgo/go/go/build/build.go        2013-09-13 19:01:43.633197069 +0000
     141403+++ gcc-4.8.1/libgo/go/go/build/build.go        2013-10-01 16:06:44.148554281 +0000
    137725141404@@ -27,15 +27,31 @@
    137726141405 
     
    137993141672diff -Naur gcc-4.8.1.orig/libgo/go/go/build/deps_test.go gcc-4.8.1/libgo/go/go/build/deps_test.go
    137994141673--- gcc-4.8.1.orig/libgo/go/go/build/deps_test.go       2012-11-21 07:03:38.000000000 +0000
    137995 +++ gcc-4.8.1/libgo/go/go/build/deps_test.go    2013-09-13 19:01:43.633197069 +0000
     141674+++ gcc-4.8.1/libgo/go/go/build/deps_test.go    2013-10-01 16:06:44.148554281 +0000
    137996141675@@ -5,10 +5,9 @@
    137997141676 // This file exercises the import parser but also checks that
     
    138044141723diff -Naur gcc-4.8.1.orig/libgo/go/go/build/doc.go gcc-4.8.1/libgo/go/go/build/doc.go
    138045141724--- gcc-4.8.1.orig/libgo/go/go/build/doc.go     2013-01-29 20:52:43.000000000 +0000
    138046 +++ gcc-4.8.1/libgo/go/go/build/doc.go  2013-09-13 19:01:43.633197069 +0000
     141725+++ gcc-4.8.1/libgo/go/go/build/doc.go  2013-10-01 16:06:44.148554281 +0000
    138047141726@@ -91,14 +91,22 @@
    138048141727 //
     
    138074141753diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/doc.go gcc-4.8.1/libgo/go/go/doc/doc.go
    138075141754--- gcc-4.8.1.orig/libgo/go/go/doc/doc.go       2012-02-09 08:19:58.000000000 +0000
    138076 +++ gcc-4.8.1/libgo/go/go/doc/doc.go    2013-09-13 19:01:43.633197069 +0000
     141755+++ gcc-4.8.1/libgo/go/go/doc/doc.go    2013-10-01 16:06:44.148554281 +0000
    138077141756@@ -17,7 +17,10 @@
    138078141757        ImportPath string
     
    138116141795diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example.go gcc-4.8.1/libgo/go/go/doc/example.go
    138117141796--- gcc-4.8.1.orig/libgo/go/go/doc/example.go   2013-01-29 20:52:43.000000000 +0000
    138118 +++ gcc-4.8.1/libgo/go/go/doc/example.go        2013-09-13 19:01:43.636530394 +0000
     141797+++ gcc-4.8.1/libgo/go/go/doc/example.go        2013-10-01 16:06:44.148554281 +0000
    138119141798@@ -18,6 +18,7 @@
    138120141799        "unicode/utf8"
     
    138161141840diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example_test.go gcc-4.8.1/libgo/go/go/doc/example_test.go
    138162141841--- gcc-4.8.1.orig/libgo/go/go/doc/example_test.go      2013-01-29 20:52:43.000000000 +0000
    138163 +++ gcc-4.8.1/libgo/go/go/doc/example_test.go   2013-09-13 19:01:43.636530394 +0000
     141842+++ gcc-4.8.1/libgo/go/go/doc/example_test.go   2013-10-01 16:06:44.148554281 +0000
    138164141843@@ -18,6 +18,7 @@
    138165141844 package foo_test
     
    138272141951diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/filter.go gcc-4.8.1/libgo/go/go/doc/filter.go
    138273141952--- gcc-4.8.1.orig/libgo/go/go/doc/filter.go    2012-02-01 19:26:59.000000000 +0000
    138274 +++ gcc-4.8.1/libgo/go/go/doc/filter.go 2013-09-13 19:01:43.636530394 +0000
     141953+++ gcc-4.8.1/libgo/go/go/doc/filter.go 2013-10-01 16:06:44.148554281 +0000
    138275141954@@ -94,7 +94,7 @@
    138276141955 }
     
    138284141963diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/reader.go gcc-4.8.1/libgo/go/go/doc/reader.go
    138285141964--- gcc-4.8.1.orig/libgo/go/go/doc/reader.go    2012-11-21 07:03:38.000000000 +0000
    138286 +++ gcc-4.8.1/libgo/go/go/doc/reader.go 2013-09-13 19:01:43.636530394 +0000
     141965+++ gcc-4.8.1/libgo/go/go/doc/reader.go 2013-10-01 16:06:44.152554280 +0000
    138287141966@@ -148,7 +148,7 @@
    138288141967        // package properties
     
    138420142099diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.0.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden
    138421142100--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.0.golden  2012-02-01 19:26:59.000000000 +0000
    138422 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden       2013-09-13 19:01:43.636530394 +0000
     142101+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden       2013-10-01 16:06:44.152554280 +0000
    138423142102@@ -8,6 +8,25 @@
    138424142103        testdata/a0.go
     
    138451142130diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.1.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden
    138452142131--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.1.golden  2012-02-01 19:26:59.000000000 +0000
    138453 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden       2013-09-13 19:01:43.636530394 +0000
     142132+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden       2013-10-01 16:06:44.152554280 +0000
    138454142133@@ -8,6 +8,25 @@
    138455142134        testdata/a0.go
     
    138482142161diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.2.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden
    138483142162--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.2.golden  2012-02-09 08:19:58.000000000 +0000
    138484 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden       2013-09-13 19:01:43.636530394 +0000
     142163+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden       2013-10-01 16:06:44.152554280 +0000
    138485142164@@ -8,6 +8,25 @@
    138486142165        testdata/a0.go
     
    138513142192diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go gcc-4.8.1/libgo/go/go/doc/testdata/a0.go
    138514142193--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go       2012-01-25 21:54:22.000000000 +0000
    138515 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a0.go    2013-09-13 19:01:43.636530394 +0000
     142194+++ gcc-4.8.1/libgo/go/go/doc/testdata/a0.go    2013-10-01 16:06:44.152554280 +0000
    138516142195@@ -6,3 +6,35 @@
    138517142196 package a
     
    138552142231diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go gcc-4.8.1/libgo/go/go/doc/testdata/a1.go
    138553142232--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go       2012-01-25 21:54:22.000000000 +0000
    138554 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a1.go    2013-09-13 19:01:43.636530394 +0000
     142233+++ gcc-4.8.1/libgo/go/go/doc/testdata/a1.go    2013-10-01 16:06:44.152554280 +0000
    138555142234@@ -6,3 +6,7 @@
    138556142235 package a
     
    138563142242diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt gcc-4.8.1/libgo/go/go/doc/testdata/template.txt
    138564142243--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt        2012-01-25 21:54:22.000000000 +0000
    138565 +++ gcc-4.8.1/libgo/go/go/doc/testdata/template.txt     2013-09-13 19:01:43.639863718 +0000
     142244+++ gcc-4.8.1/libgo/go/go/doc/testdata/template.txt     2013-10-01 16:06:44.152554280 +0000
    138566142245@@ -60,6 +60,9 @@
    138567142246 {{end}}{{end}}{{end}}{{/*
     
    138580142259diff -Naur gcc-4.8.1.orig/libgo/go/go/format/format.go gcc-4.8.1/libgo/go/go/format/format.go
    138581142260--- gcc-4.8.1.orig/libgo/go/go/format/format.go 2012-12-22 01:15:33.000000000 +0000
    138582 +++ gcc-4.8.1/libgo/go/go/format/format.go      2013-09-13 19:01:43.639863718 +0000
     142261+++ gcc-4.8.1/libgo/go/go/format/format.go      2013-10-01 16:06:44.152554280 +0000
    138583142262@@ -69,15 +69,14 @@
    138584142263        return config.Fprint(dst, fset, node)
     
    138603142282diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/error_test.go gcc-4.8.1/libgo/go/go/parser/error_test.go
    138604142283--- gcc-4.8.1.orig/libgo/go/go/parser/error_test.go     2013-01-29 20:52:43.000000000 +0000
    138605 +++ gcc-4.8.1/libgo/go/go/parser/error_test.go  2013-09-13 19:01:43.639863718 +0000
     142284+++ gcc-4.8.1/libgo/go/go/parser/error_test.go  2013-10-01 16:06:44.152554280 +0000
    138606142285@@ -89,8 +89,6 @@
    138607142286                        prev = pos
     
    138630142309diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/interface.go gcc-4.8.1/libgo/go/go/parser/interface.go
    138631142310--- gcc-4.8.1.orig/libgo/go/go/parser/interface.go      2012-11-21 07:03:38.000000000 +0000
    138632 +++ gcc-4.8.1/libgo/go/go/parser/interface.go   2013-09-13 19:01:43.639863718 +0000
     142311+++ gcc-4.8.1/libgo/go/go/parser/interface.go   2013-10-01 16:06:44.152554280 +0000
    138633142312@@ -52,12 +52,13 @@
    138634142313 type Mode uint
     
    138748142427diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser.go gcc-4.8.1/libgo/go/go/parser/parser.go
    138749142428--- gcc-4.8.1.orig/libgo/go/go/parser/parser.go 2013-01-29 20:52:43.000000000 +0000
    138750 +++ gcc-4.8.1/libgo/go/go/parser/parser.go      2013-09-13 19:01:43.639863718 +0000
     142429+++ gcc-4.8.1/libgo/go/go/parser/parser.go      2013-10-01 16:06:44.152554280 +0000
    138751142430@@ -48,7 +48,8 @@
    138752142431        syncCnt int       // number of calls to syncXXX without progress
     
    138934142613diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go gcc-4.8.1/libgo/go/go/parser/parser_test.go
    138935142614--- gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go    2012-10-23 04:31:11.000000000 +0000
    138936 +++ gcc-4.8.1/libgo/go/go/parser/parser_test.go 2013-09-13 19:01:43.643197043 +0000
     142615+++ gcc-4.8.1/libgo/go/go/parser/parser_test.go 2013-10-01 16:06:44.152554280 +0000
    138937142616@@ -68,7 +68,7 @@
    138938142617 
     
    138964142643diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/short_test.go gcc-4.8.1/libgo/go/go/parser/short_test.go
    138965142644--- gcc-4.8.1.orig/libgo/go/go/parser/short_test.go     2013-01-29 20:52:43.000000000 +0000
    138966 +++ gcc-4.8.1/libgo/go/go/parser/short_test.go  2013-09-13 19:01:43.643197043 +0000
     142645+++ gcc-4.8.1/libgo/go/go/parser/short_test.go  2013-10-01 16:06:44.152554280 +0000
    138967142646@@ -71,6 +71,9 @@
    138968142647        `package p; func f() { _ = (<-<- /* ERROR "expected 'chan'" */ chan int)(nil) };`,
     
    138977142656diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/nodes.go gcc-4.8.1/libgo/go/go/printer/nodes.go
    138978142657--- gcc-4.8.1.orig/libgo/go/go/printer/nodes.go 2013-01-29 20:52:43.000000000 +0000
    138979 +++ gcc-4.8.1/libgo/go/go/printer/nodes.go      2013-09-13 19:01:43.643197043 +0000
     142658+++ gcc-4.8.1/libgo/go/go/printer/nodes.go      2013-10-01 16:06:44.152554280 +0000
    138980142659@@ -271,12 +271,12 @@
    138981142660                        // if there are multiple parameter names for this par
     
    138995142674diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/printer.go gcc-4.8.1/libgo/go/go/printer/printer.go
    138996142675--- gcc-4.8.1.orig/libgo/go/go/printer/printer.go       2013-01-29 20:52:43.000000000 +0000
    138997 +++ gcc-4.8.1/libgo/go/go/printer/printer.go    2013-09-13 19:01:43.643197043 +0000
     142676+++ gcc-4.8.1/libgo/go/go/printer/printer.go    2013-10-01 16:06:44.152554280 +0000
    138998142677@@ -395,35 +395,6 @@
    138999142678        }
     
    139054142733diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden
    139055142734--- gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden     2013-01-29 20:52:43.000000000 +0000
    139056 +++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden  2013-09-13 19:01:43.643197043 +0000
     142735+++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden  2013-10-01 16:06:44.152554280 +0000
    139057142736@@ -912,3 +912,28 @@
    139058142737 func _(x chan<- (chan int))
     
    139086142765diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input
    139087142766--- gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input      2013-01-29 20:52:43.000000000 +0000
    139088 +++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input   2013-09-13 19:01:43.646530368 +0000
     142767+++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input   2013-10-01 16:06:44.152554280 +0000
    139089142768@@ -921,3 +921,28 @@
    139090142769 func _(x chan<-(chan int))
     
    139118142797diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go gcc-4.8.1/libgo/go/go/scanner/scanner.go
    139119142798--- gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go       2012-10-23 04:31:11.000000000 +0000
    139120 +++ gcc-4.8.1/libgo/go/go/scanner/scanner.go    2013-09-13 19:01:43.646530368 +0000
     142799+++ gcc-4.8.1/libgo/go/go/scanner/scanner.go    2013-10-01 16:06:44.152554280 +0000
    139121142800@@ -48,6 +48,8 @@
    139122142801        ErrorCount int // number of errors encountered
     
    139162142841diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go gcc-4.8.1/libgo/go/go/scanner/scanner_test.go
    139163142842--- gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go  2012-10-23 04:31:11.000000000 +0000
    139164 +++ gcc-4.8.1/libgo/go/go/scanner/scanner_test.go       2013-09-13 19:01:43.646530368 +0000
     142843+++ gcc-4.8.1/libgo/go/go/scanner/scanner_test.go       2013-10-01 16:06:44.152554280 +0000
    139165142844@@ -695,7 +695,10 @@
    139166142845        {"0X", token.INT, 0, "illegal hexadecimal number"},
     
    139177142856diff -Naur gcc-4.8.1.orig/libgo/go/go/token/token.go gcc-4.8.1/libgo/go/go/token/token.go
    139178142857--- gcc-4.8.1.orig/libgo/go/go/token/token.go   2012-01-25 20:56:26.000000000 +0000
    139179 +++ gcc-4.8.1/libgo/go/go/token/token.go        2013-09-13 19:01:43.646530368 +0000
     142858+++ gcc-4.8.1/libgo/go/go/token/token.go        2013-10-01 16:06:44.152554280 +0000
    139180142859@@ -243,8 +243,8 @@
    139181142860 // A set of constants for precedence-based expression parsing.
     
    146882150561diff -Naur gcc-4.8.1.orig/libgo/go/html/template/doc.go gcc-4.8.1/libgo/go/html/template/doc.go
    146883150562--- gcc-4.8.1.orig/libgo/go/html/template/doc.go        2012-03-30 21:27:11.000000000 +0000
    146884 +++ gcc-4.8.1/libgo/go/html/template/doc.go     2013-09-13 19:01:43.659863666 +0000
     150563+++ gcc-4.8.1/libgo/go/html/template/doc.go     2013-10-01 16:06:44.160554280 +0000
    146885150564@@ -119,7 +119,7 @@
    146886150565 Non-string values can be used in JavaScript contexts.
     
    146894150573diff -Naur gcc-4.8.1.orig/libgo/go/html/template/template.go gcc-4.8.1/libgo/go/html/template/template.go
    146895150574--- gcc-4.8.1.orig/libgo/go/html/template/template.go   2013-01-29 20:52:43.000000000 +0000
    146896 +++ gcc-4.8.1/libgo/go/html/template/template.go        2013-09-13 19:01:43.659863666 +0000
     150575+++ gcc-4.8.1/libgo/go/html/template/template.go        2013-10-01 16:06:44.160554280 +0000
    146897150576@@ -45,18 +45,24 @@
    146898150577        return m
     
    146930150609diff -Naur gcc-4.8.1.orig/libgo/go/html/template/transition.go gcc-4.8.1/libgo/go/html/template/transition.go
    146931150610--- gcc-4.8.1.orig/libgo/go/html/template/transition.go 2011-12-07 01:11:29.000000000 +0000
    146932 +++ gcc-4.8.1/libgo/go/html/template/transition.go      2013-09-13 19:01:43.659863666 +0000
     150611+++ gcc-4.8.1/libgo/go/html/template/transition.go      2013-10-01 16:06:44.160554280 +0000
    146933150612@@ -71,7 +71,6 @@
    146934150613                }
     
    146957150636diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader.go gcc-4.8.1/libgo/go/image/gif/reader.go
    146958150637--- gcc-4.8.1.orig/libgo/go/image/gif/reader.go 2012-02-09 08:19:58.000000000 +0000
    146959 +++ gcc-4.8.1/libgo/go/image/gif/reader.go      2013-09-13 19:01:43.659863666 +0000
     150638+++ gcc-4.8.1/libgo/go/image/gif/reader.go      2013-10-01 16:06:44.160554280 +0000
    146960150639@@ -17,6 +17,11 @@
    146961150640        "io"
     
    147150150829diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go gcc-4.8.1/libgo/go/image/gif/reader_test.go
    147151150830--- gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go    1970-01-01 00:00:00.000000000 +0000
    147152 +++ gcc-4.8.1/libgo/go/image/gif/reader_test.go 2013-09-13 19:01:43.659863666 +0000
     150831+++ gcc-4.8.1/libgo/go/image/gif/reader_test.go 2013-10-01 16:06:44.160554280 +0000
    147153150832@@ -0,0 +1,138 @@
    147154150833+package gif
     
    147292150971diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go gcc-4.8.1/libgo/go/image/jpeg/reader.go
    147293150972--- gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go        2013-01-29 20:52:43.000000000 +0000
    147294 +++ gcc-4.8.1/libgo/go/image/jpeg/reader.go     2013-09-13 19:01:43.659863666 +0000
     150973+++ gcc-4.8.1/libgo/go/image/jpeg/reader.go     2013-10-01 16:06:44.160554280 +0000
    147295150974@@ -245,10 +245,38 @@
    147296150975                if err != nil {
     
    147336151015diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go gcc-4.8.1/libgo/go/image/jpeg/reader_test.go
    147337151016--- gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go   2013-01-29 20:52:43.000000000 +0000
    147338 +++ gcc-4.8.1/libgo/go/image/jpeg/reader_test.go        2013-09-13 19:01:43.659863666 +0000
     151017+++ gcc-4.8.1/libgo/go/image/jpeg/reader_test.go        2013-10-01 16:06:44.160554280 +0000
    147339151018@@ -8,8 +8,11 @@
    147340151019        "bytes"
     
    147418151097diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go gcc-4.8.1/libgo/go/image/jpeg/scan.go
    147419151098--- gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go  2012-11-21 07:03:38.000000000 +0000
    147420 +++ gcc-4.8.1/libgo/go/image/jpeg/scan.go       2013-09-13 19:01:43.663196991 +0000
     151099+++ gcc-4.8.1/libgo/go/image/jpeg/scan.go       2013-10-01 16:06:44.160554280 +0000
    147421151100@@ -109,9 +109,11 @@
    147422151101        myy := (d.height + 8*v0 - 1) / (8 * v0)
     
    147436151115diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go gcc-4.8.1/libgo/go/image/jpeg/writer_test.go
    147437151116--- gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go   2012-11-21 07:03:38.000000000 +0000
    147438 +++ gcc-4.8.1/libgo/go/image/jpeg/writer_test.go        2013-09-13 19:01:43.663196991 +0000
     151117+++ gcc-4.8.1/libgo/go/image/jpeg/writer_test.go        2013-10-01 16:06:44.160554280 +0000
    147439151118@@ -148,29 +148,38 @@
    147440151119                        t.Error(tc.filename, err)
     
    147493151172diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader.go gcc-4.8.1/libgo/go/image/png/reader.go
    147494151173--- gcc-4.8.1.orig/libgo/go/image/png/reader.go 2012-11-21 07:03:38.000000000 +0000
    147495 +++ gcc-4.8.1/libgo/go/image/png/reader.go      2013-09-13 19:01:43.663196991 +0000
     151174+++ gcc-4.8.1/libgo/go/image/png/reader.go      2013-10-01 16:06:44.160554280 +0000
    147496151175@@ -652,10 +652,11 @@
    147497151176                        }
     
    147510151189diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader_test.go gcc-4.8.1/libgo/go/image/png/reader_test.go
    147511151190--- gcc-4.8.1.orig/libgo/go/image/png/reader_test.go    2012-10-23 04:31:11.000000000 +0000
    147512 +++ gcc-4.8.1/libgo/go/image/png/reader_test.go 2013-09-13 19:01:43.663196991 +0000
     151191+++ gcc-4.8.1/libgo/go/image/png/reader_test.go 2013-10-01 16:06:44.160554280 +0000
    147513151192@@ -38,6 +38,14 @@
    147514151193        "basn6a16",
     
    147616151295diff -Naur gcc-4.8.1.orig/libgo/go/image/png/writer.go gcc-4.8.1/libgo/go/image/png/writer.go
    147617151296--- gcc-4.8.1.orig/libgo/go/image/png/writer.go 2012-10-23 04:31:11.000000000 +0000
    147618 +++ gcc-4.8.1/libgo/go/image/png/writer.go      2013-09-13 19:01:43.663196991 +0000
     151297+++ gcc-4.8.1/libgo/go/image/png/writer.go      2013-10-01 16:06:44.160554280 +0000
    147619151298@@ -436,7 +436,7 @@
    147620151299        // also rejected.
     
    147628151307diff -Naur gcc-4.8.1.orig/libgo/go/io/io.go gcc-4.8.1/libgo/go/io/io.go
    147629151308--- gcc-4.8.1.orig/libgo/go/io/io.go    2012-12-22 01:15:33.000000000 +0000
    147630 +++ gcc-4.8.1/libgo/go/io/io.go 2013-09-13 19:01:43.666530315 +0000
     151309+++ gcc-4.8.1/libgo/go/io/io.go 2013-10-01 16:06:44.160554280 +0000
    147631151310@@ -34,6 +34,11 @@
    147632151311 // middle of reading a fixed-size block or data structure.
     
    147756151435diff -Naur gcc-4.8.1.orig/libgo/go/io/io_test.go gcc-4.8.1/libgo/go/io/io_test.go
    147757151436--- gcc-4.8.1.orig/libgo/go/io/io_test.go       2012-12-22 01:15:33.000000000 +0000
    147758 +++ gcc-4.8.1/libgo/go/io/io_test.go    2013-09-13 19:01:43.666530315 +0000
     151437+++ gcc-4.8.1/libgo/go/io/io_test.go    2013-10-01 16:06:44.160554280 +0000
    147759151438@@ -6,6 +6,8 @@
    147760151439 
     
    147849151528diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go gcc-4.8.1/libgo/go/io/ioutil/ioutil.go
    147850151529--- gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go 2013-01-29 20:52:43.000000000 +0000
    147851 +++ gcc-4.8.1/libgo/go/io/ioutil/ioutil.go      2013-09-13 19:01:43.666530315 +0000
     151530+++ gcc-4.8.1/libgo/go/io/ioutil/ioutil.go      2013-10-01 16:06:44.160554280 +0000
    147852151531@@ -144,7 +144,6 @@
    147853151532                        return
     
    147860151539diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go
    147861151540--- gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go    2012-01-23 23:55:31.000000000 +0000
    147862 +++ gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go 2013-09-13 19:01:43.666530315 +0000
     151541+++ gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go 2013-10-01 16:06:44.160554280 +0000
    147863151542@@ -2,10 +2,9 @@
    147864151543 // Use of this source code is governed by a BSD-style
     
    147875151554diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go
    147876151555--- gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go  2011-03-24 23:46:17.000000000 +0000
    147877 +++ gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go       2013-09-13 19:01:43.666530315 +0000
     151556+++ gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go       2013-10-01 16:06:44.160554280 +0000
    147878151557@@ -2,10 +2,9 @@
    147879151558 // Use of this source code is governed by a BSD-style
     
    147890151569diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go gcc-4.8.1/libgo/go/log/syslog/syslog.go
    147891151570--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go        2013-01-29 20:52:43.000000000 +0000
    147892 +++ gcc-4.8.1/libgo/go/log/syslog/syslog.go     2013-09-13 19:01:43.666530315 +0000
     151571+++ gcc-4.8.1/libgo/go/log/syslog/syslog.go     2013-10-01 16:06:44.164554280 +0000
    147893151572@@ -6,7 +6,11 @@
    147894151573 
     
    148144151823diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go
    148145151824--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go   2012-12-17 21:07:27.000000000 +0000
    148146 +++ gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go        2013-09-13 19:01:43.666530315 +0000
     151825+++ gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go        2013-10-01 16:06:44.164554280 +0000
    148147151826@@ -23,17 +23,17 @@
    148148151827 
     
    148169151848diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go gcc-4.8.1/libgo/go/log/syslog/syslog_test.go
    148170151849--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go   2013-01-29 20:52:43.000000000 +0000
    148171 +++ gcc-4.8.1/libgo/go/log/syslog/syslog_test.go        2013-09-13 19:01:43.666530315 +0000
     151850+++ gcc-4.8.1/libgo/go/log/syslog/syslog_test.go        2013-10-01 16:06:44.164554280 +0000
    148172151851@@ -7,38 +7,169 @@
    148173151852 package syslog
     
    148503152182diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go
    148504152183--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go   2012-03-02 20:01:37.000000000 +0000
    148505 +++ gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go        2013-09-13 19:01:43.669863640 +0000
     152184+++ gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go        2013-10-01 16:06:44.164554280 +0000
    148506152185@@ -17,11 +17,9 @@
    148507152186 func unixSyslog() (conn serverConn, err error) {
     
    148519152198diff -Naur gcc-4.8.1.orig/libgo/go/math/big/int.go gcc-4.8.1/libgo/go/math/big/int.go
    148520152199--- gcc-4.8.1.orig/libgo/go/math/big/int.go     2013-01-29 20:52:43.000000000 +0000
    148521 +++ gcc-4.8.1/libgo/go/math/big/int.go  2013-09-13 19:01:43.669863640 +0000
     152200+++ gcc-4.8.1/libgo/go/math/big/int.go  2013-10-01 16:06:44.164554280 +0000
    148522152201@@ -53,7 +53,7 @@
    148523152202 
     
    148566152245diff -Naur gcc-4.8.1.orig/libgo/go/math/big/nat.go gcc-4.8.1/libgo/go/math/big/nat.go
    148567152246--- gcc-4.8.1.orig/libgo/go/math/big/nat.go     2012-12-22 01:15:33.000000000 +0000
    148568 +++ gcc-4.8.1/libgo/go/math/big/nat.go  2013-09-13 19:01:43.669863640 +0000
     152247+++ gcc-4.8.1/libgo/go/math/big/nat.go  2013-10-01 16:06:44.164554280 +0000
    148569152248@@ -1021,8 +1021,6 @@
    148570152249        default:
     
    148578152257diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat.go gcc-4.8.1/libgo/go/math/big/rat.go
    148579152258--- gcc-4.8.1.orig/libgo/go/math/big/rat.go     2013-01-29 20:52:43.000000000 +0000
    148580 +++ gcc-4.8.1/libgo/go/math/big/rat.go  2013-09-13 19:01:43.669863640 +0000
     152259+++ gcc-4.8.1/libgo/go/math/big/rat.go  2013-10-01 16:06:44.164554280 +0000
    148581152260@@ -163,16 +163,16 @@
    148582152261        return
     
    148605152284diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat_test.go gcc-4.8.1/libgo/go/math/big/rat_test.go
    148606152285--- gcc-4.8.1.orig/libgo/go/math/big/rat_test.go        2013-01-29 20:52:43.000000000 +0000
    148607 +++ gcc-4.8.1/libgo/go/math/big/rat_test.go     2013-09-13 19:01:43.669863640 +0000
     152286+++ gcc-4.8.1/libgo/go/math/big/rat_test.go     2013-10-01 16:06:44.164554280 +0000
    148608152287@@ -500,12 +500,10 @@
    148609152288        }
     
    148745152424diff -Naur gcc-4.8.1.orig/libgo/go/math/hypot.go gcc-4.8.1/libgo/go/math/hypot.go
    148746152425--- gcc-4.8.1.orig/libgo/go/math/hypot.go       2012-10-23 04:31:11.000000000 +0000
    148747 +++ gcc-4.8.1/libgo/go/math/hypot.go    2013-09-13 19:01:43.669863640 +0000
     152426+++ gcc-4.8.1/libgo/go/math/hypot.go    2013-10-01 16:06:44.164554280 +0000
    148748152427@@ -12,8 +12,10 @@
    148749152428 // unnecessary overflow and underflow.
     
    148761152440diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/exp.go gcc-4.8.1/libgo/go/math/rand/exp.go
    148762152441--- gcc-4.8.1.orig/libgo/go/math/rand/exp.go    2011-12-07 01:11:29.000000000 +0000
    148763 +++ gcc-4.8.1/libgo/go/math/rand/exp.go 2013-09-13 19:01:43.673196964 +0000
     152442+++ gcc-4.8.1/libgo/go/math/rand/exp.go 2013-10-01 16:06:44.164554280 +0000
    148764152443@@ -43,7 +43,6 @@
    148765152444                        return x
     
    148772152451diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/normal.go gcc-4.8.1/libgo/go/math/rand/normal.go
    148773152452--- gcc-4.8.1.orig/libgo/go/math/rand/normal.go 2011-12-07 01:11:29.000000000 +0000
    148774 +++ gcc-4.8.1/libgo/go/math/rand/normal.go      2013-09-13 19:01:43.673196964 +0000
     152453+++ gcc-4.8.1/libgo/go/math/rand/normal.go      2013-10-01 16:06:44.164554280 +0000
    148775152454@@ -63,7 +63,6 @@
    148776152455                        return x
     
    148783152462diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/zipf.go gcc-4.8.1/libgo/go/math/rand/zipf.go
    148784152463--- gcc-4.8.1.orig/libgo/go/math/rand/zipf.go   2011-12-07 01:11:29.000000000 +0000
    148785 +++ gcc-4.8.1/libgo/go/math/rand/zipf.go        2013-09-13 19:01:43.673196964 +0000
     152464+++ gcc-4.8.1/libgo/go/math/rand/zipf.go        2013-10-01 16:06:44.164554280 +0000
    148786152465@@ -34,7 +34,6 @@
    148787152466 
     
    148808152487diff -Naur gcc-4.8.1.orig/libgo/go/math/sqrt.go gcc-4.8.1/libgo/go/math/sqrt.go
    148809152488--- gcc-4.8.1.orig/libgo/go/math/sqrt.go        2012-02-09 08:19:58.000000000 +0000
    148810 +++ gcc-4.8.1/libgo/go/math/sqrt.go     2013-09-13 19:01:43.673196964 +0000
     152489+++ gcc-4.8.1/libgo/go/math/sqrt.go     2013-10-01 16:06:44.164554280 +0000
    148811152490@@ -4,14 +4,6 @@
    148812152491 
     
    148826152505diff -Naur gcc-4.8.1.orig/libgo/go/math/tanh.go gcc-4.8.1/libgo/go/math/tanh.go
    148827152506--- gcc-4.8.1.orig/libgo/go/math/tanh.go        2012-10-23 04:31:11.000000000 +0000
    148828 +++ gcc-4.8.1/libgo/go/math/tanh.go     2013-09-13 19:01:43.673196964 +0000
     152507+++ gcc-4.8.1/libgo/go/math/tanh.go     2013-10-01 16:06:44.164554280 +0000
    148829152508@@ -65,7 +65,7 @@
    148830152509        4.84406305325125486048E3,
     
    148838152517diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go gcc-4.8.1/libgo/go/mime/multipart/multipart.go
    148839152518--- gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go 2012-12-12 23:13:29.000000000 +0000
    148840 +++ gcc-4.8.1/libgo/go/mime/multipart/multipart.go      2013-09-13 19:01:43.673196964 +0000
     152519+++ gcc-4.8.1/libgo/go/mime/multipart/multipart.go      2013-10-01 16:06:44.164554280 +0000
    148841152520@@ -28,7 +28,12 @@
    148842152521 type Part struct {
     
    148868152547diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go
    148869152548--- gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go   2012-12-12 23:13:29.000000000 +0000
    148870 +++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go        2013-09-13 19:01:43.673196964 +0000
     152549+++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go        2013-10-01 16:06:44.164554280 +0000
    148871152550@@ -3,6 +3,10 @@
    148872152551 // license that can be found in the LICENSE file.
     
    148942152621diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go
    148943152622--- gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go      2012-12-12 23:13:29.000000000 +0000
    148944 +++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go   2013-09-13 19:01:43.673196964 +0000
     152623+++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go   2013-10-01 16:06:44.164554280 +0000
    148945152624@@ -5,11 +5,18 @@
    148946152625 package multipart
     
    149130152809diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_unix.go gcc-4.8.1/libgo/go/mime/type_unix.go
    149131152810--- gcc-4.8.1.orig/libgo/go/mime/type_unix.go   2013-01-29 20:52:43.000000000 +0000
    149132 +++ gcc-4.8.1/libgo/go/mime/type_unix.go        2013-09-13 19:01:43.673196964 +0000
     152811+++ gcc-4.8.1/libgo/go/mime/type_unix.go        2013-10-01 16:06:44.168554280 +0000
    149133152812@@ -23,15 +23,11 @@
    149134152813        if err != nil {
     
    149163152842diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_windows.go gcc-4.8.1/libgo/go/mime/type_windows.go
    149164152843--- gcc-4.8.1.orig/libgo/go/mime/type_windows.go        2012-10-23 04:31:11.000000000 +0000
    149165 +++ gcc-4.8.1/libgo/go/mime/type_windows.go     2013-09-13 19:01:43.676530289 +0000
     152844+++ gcc-4.8.1/libgo/go/mime/type_windows.go     2013-10-01 16:06:44.168554280 +0000
    149166152845@@ -58,7 +58,6 @@
    149167152846 
     
    149174152853diff -Naur gcc-4.8.1.orig/libgo/go/net/cgo_unix.go gcc-4.8.1/libgo/go/net/cgo_unix.go
    149175152854--- gcc-4.8.1.orig/libgo/go/net/cgo_unix.go     2012-12-22 01:15:33.000000000 +0000
    149176 +++ gcc-4.8.1/libgo/go/net/cgo_unix.go  2013-09-13 19:01:43.676530289 +0000
     152855+++ gcc-4.8.1/libgo/go/net/cgo_unix.go  2013-10-01 16:06:44.168554280 +0000
    149177152856@@ -103,6 +103,7 @@
    149178152857        var hints syscall.Addrinfo
     
    149194152873diff -Naur gcc-4.8.1.orig/libgo/go/net/conn_test.go gcc-4.8.1/libgo/go/net/conn_test.go
    149195152874--- gcc-4.8.1.orig/libgo/go/net/conn_test.go    2012-12-22 01:15:33.000000000 +0000
    149196 +++ gcc-4.8.1/libgo/go/net/conn_test.go 2013-09-13 19:01:43.676530289 +0000
     152875+++ gcc-4.8.1/libgo/go/net/conn_test.go 2013-10-01 16:06:44.168554280 +0000
    149197152876@@ -2,10 +2,12 @@
    149198152877 // Use of this source code is governed by a BSD-style
     
    149338153017diff -Naur gcc-4.8.1.orig/libgo/go/net/dial.go gcc-4.8.1/libgo/go/net/dial.go
    149339153018--- gcc-4.8.1.orig/libgo/go/net/dial.go 2013-01-29 20:52:43.000000000 +0000
    149340 +++ gcc-4.8.1/libgo/go/net/dial.go      2013-09-13 19:01:43.676530289 +0000
     153019+++ gcc-4.8.1/libgo/go/net/dial.go      2013-10-01 16:06:44.168554280 +0000
    149341153020@@ -5,10 +5,55 @@
    149342153021 package net
     
    149658153337diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_gen.go gcc-4.8.1/libgo/go/net/dial_gen.go
    149659153338--- gcc-4.8.1.orig/libgo/go/net/dial_gen.go     1970-01-01 00:00:00.000000000 +0000
    149660 +++ gcc-4.8.1/libgo/go/net/dial_gen.go  2013-09-13 19:01:43.676530289 +0000
     153339+++ gcc-4.8.1/libgo/go/net/dial_gen.go  2013-10-01 16:06:44.168554280 +0000
    149661153340@@ -0,0 +1,73 @@
    149662153341+// Copyright 2012 The Go Authors.  All rights reserved.
     
    149735153414diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_test.go gcc-4.8.1/libgo/go/net/dial_test.go
    149736153415--- gcc-4.8.1.orig/libgo/go/net/dial_test.go    2013-01-29 20:52:43.000000000 +0000
    149737 +++ gcc-4.8.1/libgo/go/net/dial_test.go 2013-09-13 19:01:43.676530289 +0000
     153416+++ gcc-4.8.1/libgo/go/net/dial_test.go 2013-10-01 16:06:44.168554280 +0000
    149738153417@@ -9,6 +9,7 @@
    149739153418        "fmt"
     
    149879153558diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_bsd.go gcc-4.8.1/libgo/go/net/fd_bsd.go
    149880153559--- gcc-4.8.1.orig/libgo/go/net/fd_bsd.go       2013-02-06 22:40:18.000000000 +0000
    149881 +++ gcc-4.8.1/libgo/go/net/fd_bsd.go    2013-09-13 19:01:43.679863614 +0000
     153560+++ gcc-4.8.1/libgo/go/net/fd_bsd.go    2013-10-01 16:06:44.168554280 +0000
    149882153561@@ -33,6 +33,8 @@
    149883153562        return p, nil
     
    150092153771diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_plan9.go gcc-4.8.1/libgo/go/net/fd_plan9.go
    150093153772--- gcc-4.8.1.orig/libgo/go/net/fd_plan9.go     2013-01-29 20:52:43.000000000 +0000
    150094 +++ gcc-4.8.1/libgo/go/net/fd_plan9.go  2013-09-13 19:01:43.679863614 +0000
     153773+++ gcc-4.8.1/libgo/go/net/fd_plan9.go  2013-10-01 16:06:44.168554280 +0000
    150095153774@@ -23,28 +23,22 @@
    150096153775 func sysInit() {
     
    150191153870diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go gcc-4.8.1/libgo/go/net/fd_poll_runtime.go
    150192153871--- gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go      1970-01-01 00:00:00.000000000 +0000
    150193 +++ gcc-4.8.1/libgo/go/net/fd_poll_runtime.go   2013-09-13 19:01:43.679863614 +0000
     153872+++ gcc-4.8.1/libgo/go/net/fd_poll_runtime.go   2013-10-01 16:06:44.168554280 +0000
    150194153873@@ -0,0 +1,119 @@
    150195153874+// Copyright 2013 The Go Authors. All rights reserved.
     
    150314153993diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go gcc-4.8.1/libgo/go/net/fd_poll_unix.go
    150315153994--- gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go 1970-01-01 00:00:00.000000000 +0000
    150316 +++ gcc-4.8.1/libgo/go/net/fd_poll_unix.go      2013-09-13 19:01:43.679863614 +0000
     153995+++ gcc-4.8.1/libgo/go/net/fd_poll_unix.go      2013-10-01 16:06:44.168554280 +0000
    150317153996@@ -0,0 +1,360 @@
    150318153997+// Copyright 2013 The Go Authors. All rights reserved.
     
    150678154357diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix.go gcc-4.8.1/libgo/go/net/fd_unix.go
    150679154358--- gcc-4.8.1.orig/libgo/go/net/fd_unix.go      2013-02-06 22:40:18.000000000 +0000
    150680 +++ gcc-4.8.1/libgo/go/net/fd_unix.go   2013-09-13 19:01:43.679863614 +0000
     154359+++ gcc-4.8.1/libgo/go/net/fd_unix.go   2013-10-01 16:06:44.168554280 +0000
    150681154360@@ -9,7 +9,6 @@
    150682154361 import (
     
    151244154923diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go gcc-4.8.1/libgo/go/net/fd_unix_test.go
    151245154924--- gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go 2012-12-12 23:13:29.000000000 +0000
    151246 +++ gcc-4.8.1/libgo/go/net/fd_unix_test.go      2013-09-13 19:01:43.679863614 +0000
     154925+++ gcc-4.8.1/libgo/go/net/fd_unix_test.go      2013-10-01 16:06:44.168554280 +0000
    151247154926@@ -12,54 +12,6 @@
    151248154927        "testing"
     
    151302154981diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_windows.go gcc-4.8.1/libgo/go/net/fd_windows.go
    151303154982--- gcc-4.8.1.orig/libgo/go/net/fd_windows.go   2013-01-29 20:52:43.000000000 +0000
    151304 +++ gcc-4.8.1/libgo/go/net/fd_windows.go        2013-09-13 19:01:43.683196938 +0000
     154983+++ gcc-4.8.1/libgo/go/net/fd_windows.go        2013-10-01 16:06:44.168554280 +0000
    151305154984@@ -37,6 +37,7 @@
    151306154985        }
     
    151409155088diff -Naur gcc-4.8.1.orig/libgo/go/net/file_plan9.go gcc-4.8.1/libgo/go/net/file_plan9.go
    151410155089--- gcc-4.8.1.orig/libgo/go/net/file_plan9.go   2012-12-12 23:13:29.000000000 +0000
    151411 +++ gcc-4.8.1/libgo/go/net/file_plan9.go        2013-09-13 19:01:43.683196938 +0000
     155090+++ gcc-4.8.1/libgo/go/net/file_plan9.go        2013-10-01 16:06:44.168554280 +0000
    151412155091@@ -5,16 +5,139 @@
    151413155092 package net
     
    151562155241diff -Naur gcc-4.8.1.orig/libgo/go/net/file_test.go gcc-4.8.1/libgo/go/net/file_test.go
    151563155242--- gcc-4.8.1.orig/libgo/go/net/file_test.go    2013-01-29 20:52:43.000000000 +0000
    151564 +++ gcc-4.8.1/libgo/go/net/file_test.go 2013-09-13 19:01:43.683196938 +0000
     155243+++ gcc-4.8.1/libgo/go/net/file_test.go 2013-10-01 16:06:44.168554280 +0000
    151565155244@@ -89,7 +89,7 @@
    151566155245 
     
    151574155253diff -Naur gcc-4.8.1.orig/libgo/go/net/file_windows.go gcc-4.8.1/libgo/go/net/file_windows.go
    151575155254--- gcc-4.8.1.orig/libgo/go/net/file_windows.go 2011-12-03 02:17:34.000000000 +0000
    151576 +++ gcc-4.8.1/libgo/go/net/file_windows.go      2013-09-13 19:01:43.683196938 +0000
     155255+++ gcc-4.8.1/libgo/go/net/file_windows.go      2013-10-01 16:06:44.168554280 +0000
    151577155256@@ -9,16 +9,28 @@
    151578155257        "syscall"
     
    151606155285diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/host_test.go gcc-4.8.1/libgo/go/net/http/cgi/host_test.go
    151607155286--- gcc-4.8.1.orig/libgo/go/net/http/cgi/host_test.go   2013-01-29 20:52:43.000000000 +0000
    151608 +++ gcc-4.8.1/libgo/go/net/http/cgi/host_test.go        2013-09-13 19:01:43.683196938 +0000
     155287+++ gcc-4.8.1/libgo/go/net/http/cgi/host_test.go        2013-10-01 16:06:44.168554280 +0000
    151609155288@@ -19,7 +19,6 @@
    151610155289        "runtime"
     
    151630155309diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/posix_test.go gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go
    151631155310--- gcc-4.8.1.orig/libgo/go/net/http/cgi/posix_test.go  1970-01-01 00:00:00.000000000 +0000
    151632 +++ gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go       2013-09-13 19:01:43.683196938 +0000
     155311+++ gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go       2013-10-01 16:06:44.168554280 +0000
    151633155312@@ -0,0 +1,21 @@
    151634155313+// Copyright 2013 The Go Authors. All rights reserved.
     
    151655155334diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/testdata/test.cgi gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi
    151656155335--- gcc-4.8.1.orig/libgo/go/net/http/cgi/testdata/test.cgi      2012-12-12 23:13:29.000000000 +0000
    151657 +++ gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi   2013-09-13 19:01:43.683196938 +0000
     155336+++ gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi   2013-10-01 16:06:44.168554280 +0000
    151658155337@@ -24,7 +24,8 @@
    151659155338 print "\r\n";
     
    151668155347diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client.go gcc-4.8.1/libgo/go/net/http/client.go
    151669155348--- gcc-4.8.1.orig/libgo/go/net/http/client.go  2012-12-22 01:15:33.000000000 +0000
    151670 +++ gcc-4.8.1/libgo/go/net/http/client.go       2013-09-13 19:01:43.683196938 +0000
     155349+++ gcc-4.8.1/libgo/go/net/http/client.go       2013-10-01 16:06:44.168554280 +0000
    151671155350@@ -19,12 +19,16 @@
    151672155351        "strings"
     
    151692155371diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client_test.go gcc-4.8.1/libgo/go/net/http/client_test.go
    151693155372--- gcc-4.8.1.orig/libgo/go/net/http/client_test.go     2012-12-22 01:15:33.000000000 +0000
    151694 +++ gcc-4.8.1/libgo/go/net/http/client_test.go  2013-09-13 19:01:43.686530263 +0000
     155373+++ gcc-4.8.1/libgo/go/net/http/client_test.go  2013-10-01 16:06:44.168554280 +0000
    151695155374@@ -51,10 +51,10 @@
    151696155375                        return b, err
     
    151882155561diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go
    151883155562--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go   1970-01-01 00:00:00.000000000 +0000
    151884 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go        2013-09-13 19:01:43.686530263 +0000
     155563+++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go        2013-10-01 16:06:44.172554280 +0000
    151885155564@@ -0,0 +1,497 @@
    151886155565+// Copyright 2012 The Go Authors. All rights reserved.
     
    152383156062diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar_test.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go
    152384156063--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar_test.go      1970-01-01 00:00:00.000000000 +0000
    152385 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go   2013-09-13 19:01:43.686530263 +0000
     156064+++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go   2013-10-01 16:06:44.172554280 +0000
    152386156065@@ -0,0 +1,1267 @@
    152387156066+// Copyright 2013 The Go Authors. All rights reserved.
     
    153654157333diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go
    153655157334--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go      1970-01-01 00:00:00.000000000 +0000
    153656 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go   2013-09-13 19:01:43.686530263 +0000
     157335+++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go   2013-10-01 16:06:44.172554280 +0000
    153657157336@@ -0,0 +1,159 @@
    153658157337+// Copyright 2012 The Go Authors. All rights reserved.
     
    153817157496diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode_test.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go
    153818157497--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode_test.go 1970-01-01 00:00:00.000000000 +0000
    153819 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go      2013-09-13 19:01:43.686530263 +0000
     157498+++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go      2013-10-01 16:06:44.172554280 +0000
    153820157499@@ -0,0 +1,161 @@
    153821157500+// Copyright 2012 The Go Authors. All rights reserved.
     
    153982157661diff -Naur gcc-4.8.1.orig/libgo/go/net/http/example_test.go gcc-4.8.1/libgo/go/net/http/example_test.go
    153983157662--- gcc-4.8.1.orig/libgo/go/net/http/example_test.go    2012-10-03 05:27:36.000000000 +0000
    153984 +++ gcc-4.8.1/libgo/go/net/http/example_test.go 2013-09-13 19:01:43.686530263 +0000
     157663+++ gcc-4.8.1/libgo/go/net/http/example_test.go 2013-10-01 16:06:44.172554280 +0000
    153985157664@@ -51,6 +51,20 @@
    153986157665 }
     
    154007157686diff -Naur gcc-4.8.1.orig/libgo/go/net/http/export_test.go gcc-4.8.1/libgo/go/net/http/export_test.go
    154008157687--- gcc-4.8.1.orig/libgo/go/net/http/export_test.go     2012-12-12 23:13:29.000000000 +0000
    154009 +++ gcc-4.8.1/libgo/go/net/http/export_test.go  2013-09-13 19:01:43.689863587 +0000
     157688+++ gcc-4.8.1/libgo/go/net/http/export_test.go  2013-10-01 16:06:44.172554280 +0000
    154010157689@@ -16,10 +16,16 @@
    154011157690        return newLoggingConn(baseName, c)
     
    154046157725diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go gcc-4.8.1/libgo/go/net/http/fcgi/child.go
    154047157726--- gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go      2012-03-02 16:38:43.000000000 +0000
    154048 +++ gcc-4.8.1/libgo/go/net/http/fcgi/child.go   2013-09-13 19:01:43.689863587 +0000
     157727+++ gcc-4.8.1/libgo/go/net/http/fcgi/child.go   2013-10-01 16:06:44.172554280 +0000
    154049157728@@ -10,10 +10,12 @@
    154050157729        "errors"
     
    154176157855diff -Naur gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go gcc-4.8.1/libgo/go/net/http/filetransport_test.go
    154177157856--- gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go      2011-12-12 18:45:08.000000000 +0000
    154178 +++ gcc-4.8.1/libgo/go/net/http/filetransport_test.go   2013-09-13 19:01:43.689863587 +0000
     157857+++ gcc-4.8.1/libgo/go/net/http/filetransport_test.go   2013-10-01 16:06:44.172554280 +0000
    154179157858@@ -2,11 +2,10 @@
    154180157859 // Use of this source code is governed by a BSD-style
     
    154211157890diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fs_test.go gcc-4.8.1/libgo/go/net/http/fs_test.go
    154212157891--- gcc-4.8.1.orig/libgo/go/net/http/fs_test.go 2013-01-29 20:52:43.000000000 +0000
    154213 +++ gcc-4.8.1/libgo/go/net/http/fs_test.go      2013-09-13 19:01:43.689863587 +0000
     157892+++ gcc-4.8.1/libgo/go/net/http/fs_test.go      2013-10-01 16:06:44.172554280 +0000
    154214157893@@ -54,6 +54,7 @@
    154215157894 }
     
    154355158034diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header.go gcc-4.8.1/libgo/go/net/http/header.go
    154356158035--- gcc-4.8.1.orig/libgo/go/net/http/header.go  2013-01-29 20:52:43.000000000 +0000
    154357 +++ gcc-4.8.1/libgo/go/net/http/header.go       2013-09-13 19:01:43.689863587 +0000
     158036+++ gcc-4.8.1/libgo/go/net/http/header.go       2013-10-01 16:06:44.172554280 +0000
    154358158037@@ -103,21 +103,41 @@
    154359158038        values []string
     
    154429158108diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header_test.go gcc-4.8.1/libgo/go/net/http/header_test.go
    154430158109--- gcc-4.8.1.orig/libgo/go/net/http/header_test.go     2012-12-12 23:13:29.000000000 +0000
    154431 +++ gcc-4.8.1/libgo/go/net/http/header_test.go  2013-09-13 19:01:43.689863587 +0000
     158110+++ gcc-4.8.1/libgo/go/net/http/header_test.go  2013-10-01 16:06:44.172554280 +0000
    154432158111@@ -175,38 +175,33 @@
    154433158112        }
     
    154493158172diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go gcc-4.8.1/libgo/go/net/http/httptest/server.go
    154494158173--- gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go 2012-12-12 23:13:29.000000000 +0000
    154495 +++ gcc-4.8.1/libgo/go/net/http/httptest/server.go      2013-09-13 19:01:43.689863587 +0000
     158174+++ gcc-4.8.1/libgo/go/net/http/httptest/server.go      2013-10-01 16:06:44.172554280 +0000
    154496158175@@ -21,7 +21,11 @@
    154497158176 type Server struct {
     
    154577158256diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/dump_test.go gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go
    154578158257--- gcc-4.8.1.orig/libgo/go/net/http/httputil/dump_test.go      2012-03-06 17:57:23.000000000 +0000
    154579 +++ gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go   2013-09-13 19:01:43.693196912 +0000
     158258+++ gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go   2013-10-01 16:06:44.172554280 +0000
    154580158259@@ -68,7 +68,7 @@
    154581158260 
     
    154598158277diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go
    154599158278--- gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go   2012-10-23 04:31:11.000000000 +0000
    154600 +++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go        2013-09-13 19:01:43.693196912 +0000
     158279+++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go        2013-10-01 16:06:44.172554280 +0000
    154601158280@@ -81,6 +81,19 @@
    154602158281        }
     
    154659158338diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy_test.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go
    154660158339--- gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy_test.go      2012-10-23 04:31:11.000000000 +0000
    154661 +++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go   2013-09-13 19:01:43.693196912 +0000
     158340+++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go   2013-10-01 16:06:44.176554280 +0000
    154662158341@@ -29,6 +29,9 @@
    154663158342                if c := r.Header.Get("Connection"); c != "" {
     
    154680158359diff -Naur gcc-4.8.1.orig/libgo/go/net/http/jar.go gcc-4.8.1/libgo/go/net/http/jar.go
    154681158360--- gcc-4.8.1.orig/libgo/go/net/http/jar.go     2012-11-21 07:03:38.000000000 +0000
    154682 +++ gcc-4.8.1/libgo/go/net/http/jar.go  2013-09-13 19:01:43.693196912 +0000
     158361+++ gcc-4.8.1/libgo/go/net/http/jar.go  2013-10-01 16:06:44.176554280 +0000
    154683158362@@ -12,6 +12,8 @@
    154684158363 //
     
    154692158371diff -Naur gcc-4.8.1.orig/libgo/go/net/http/npn_test.go gcc-4.8.1/libgo/go/net/http/npn_test.go
    154693158372--- gcc-4.8.1.orig/libgo/go/net/http/npn_test.go        1970-01-01 00:00:00.000000000 +0000
    154694 +++ gcc-4.8.1/libgo/go/net/http/npn_test.go     2013-09-13 19:01:43.693196912 +0000
     158373+++ gcc-4.8.1/libgo/go/net/http/npn_test.go     2013-10-01 16:06:44.176554280 +0000
    154695158374@@ -0,0 +1,118 @@
    154696158375+// Copyright 2013 The Go Authors. All rights reserved.
     
    154814158493diff -Naur gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go gcc-4.8.1/libgo/go/net/http/pprof/pprof.go
    154815158494--- gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go     2012-12-22 01:15:33.000000000 +0000
    154816 +++ gcc-4.8.1/libgo/go/net/http/pprof/pprof.go  2013-09-13 19:01:43.693196912 +0000
     158495+++ gcc-4.8.1/libgo/go/net/http/pprof/pprof.go  2013-10-01 16:06:44.176554280 +0000
    154817158496@@ -172,7 +172,7 @@
    154818158497 // listing the available profiles.
     
    154826158505diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request.go gcc-4.8.1/libgo/go/net/http/request.go
    154827158506--- gcc-4.8.1.orig/libgo/go/net/http/request.go 2013-01-29 20:52:43.000000000 +0000
    154828 +++ gcc-4.8.1/libgo/go/net/http/request.go      2013-09-13 19:01:43.693196912 +0000
     158507+++ gcc-4.8.1/libgo/go/net/http/request.go      2013-10-01 16:06:44.176554280 +0000
    154829158508@@ -48,7 +48,7 @@
    154830158509        ErrUnexpectedTrailer    = &ProtocolError{"trailer header without chunked transfer encoding"}
     
    154914158593diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request_test.go gcc-4.8.1/libgo/go/net/http/request_test.go
    154915158594--- gcc-4.8.1.orig/libgo/go/net/http/request_test.go    2013-01-29 20:52:43.000000000 +0000
    154916 +++ gcc-4.8.1/libgo/go/net/http/request_test.go 2013-09-13 19:01:43.693196912 +0000
     158595+++ gcc-4.8.1/libgo/go/net/http/request_test.go 2013-10-01 16:06:44.176554280 +0000
    154917158596@@ -262,7 +262,39 @@
    154918158597                        t.Fatal(err)
     
    155049158728diff -Naur gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go gcc-4.8.1/libgo/go/net/http/requestwrite_test.go
    155050158729--- gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go       2012-01-25 21:54:22.000000000 +0000
    155051 +++ gcc-4.8.1/libgo/go/net/http/requestwrite_test.go    2013-09-13 19:01:43.696530237 +0000
     158730+++ gcc-4.8.1/libgo/go/net/http/requestwrite_test.go    2013-10-01 16:06:44.176554280 +0000
    155052158731@@ -93,13 +93,13 @@
    155053158732 
     
    155268158947diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response.go gcc-4.8.1/libgo/go/net/http/response.go
    155269158948--- gcc-4.8.1.orig/libgo/go/net/http/response.go        2012-12-12 23:13:29.000000000 +0000
    155270 +++ gcc-4.8.1/libgo/go/net/http/response.go     2013-09-13 19:01:43.696530237 +0000
     158949+++ gcc-4.8.1/libgo/go/net/http/response.go     2013-10-01 16:06:44.176554280 +0000
    155271158950@@ -46,6 +46,9 @@
    155272158951        // The http Client and Transport guarantee that Body is always
     
    155292158971diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response_test.go gcc-4.8.1/libgo/go/net/http/response_test.go
    155293158972--- gcc-4.8.1.orig/libgo/go/net/http/response_test.go   2013-01-29 20:52:43.000000000 +0000
    155294 +++ gcc-4.8.1/libgo/go/net/http/response_test.go        2013-09-13 19:01:43.696530237 +0000
     158973+++ gcc-4.8.1/libgo/go/net/http/response_test.go        2013-10-01 16:06:44.176554280 +0000
    155295158974@@ -112,8 +112,8 @@
    155296158975                        ProtoMinor: 0,
     
    155413159092diff -Naur gcc-4.8.1.orig/libgo/go/net/http/serve_test.go gcc-4.8.1/libgo/go/net/http/serve_test.go
    155414159093--- gcc-4.8.1.orig/libgo/go/net/http/serve_test.go      2013-01-29 20:52:43.000000000 +0000
    155415 +++ gcc-4.8.1/libgo/go/net/http/serve_test.go   2013-09-13 19:01:43.699863561 +0000
     159094+++ gcc-4.8.1/libgo/go/net/http/serve_test.go   2013-10-01 16:06:44.176554280 +0000
    155416159095@@ -10,6 +10,7 @@
    155417159096        "bufio"
     
    156273159952diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server.go gcc-4.8.1/libgo/go/net/http/server.go
    156274159953--- gcc-4.8.1.orig/libgo/go/net/http/server.go  2013-01-29 20:52:43.000000000 +0000
    156275 +++ gcc-4.8.1/libgo/go/net/http/server.go       2013-09-13 19:01:43.696530237 +0000
     159954+++ gcc-4.8.1/libgo/go/net/http/server.go       2013-10-01 16:06:44.176554280 +0000
    156276159955@@ -4,9 +4,6 @@
    156277159956 
     
    157047160726diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server_test.go gcc-4.8.1/libgo/go/net/http/server_test.go
    157048160727--- gcc-4.8.1.orig/libgo/go/net/http/server_test.go     2012-10-23 04:31:11.000000000 +0000
    157049 +++ gcc-4.8.1/libgo/go/net/http/server_test.go  2013-09-13 19:01:43.699863561 +0000
     160728+++ gcc-4.8.1/libgo/go/net/http/server_test.go  2013-10-01 16:06:44.176554280 +0000
    157050160729@@ -2,9 +2,11 @@
    157051160730 // Use of this source code is governed by a BSD-style
     
    157103160782diff -Naur gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go gcc-4.8.1/libgo/go/net/http/sniff_test.go
    157104160783--- gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go      2012-03-06 17:57:23.000000000 +0000
    157105 +++ gcc-4.8.1/libgo/go/net/http/sniff_test.go   2013-09-13 19:01:43.699863561 +0000
     160784+++ gcc-4.8.1/libgo/go/net/http/sniff_test.go   2013-10-01 16:06:44.176554280 +0000
    157106160785@@ -54,6 +54,7 @@
    157107160786 }
     
    157144160823diff -Naur gcc-4.8.1.orig/libgo/go/net/http/status.go gcc-4.8.1/libgo/go/net/http/status.go
    157145160824--- gcc-4.8.1.orig/libgo/go/net/http/status.go  2012-03-06 17:57:23.000000000 +0000
    157146 +++ gcc-4.8.1/libgo/go/net/http/status.go       2013-09-13 19:01:43.699863561 +0000
     160825+++ gcc-4.8.1/libgo/go/net/http/status.go       2013-10-01 16:06:44.176554280 +0000
    157147160826@@ -51,6 +51,13 @@
    157148160827        StatusServiceUnavailable      = 503
     
    157173160852diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transfer.go gcc-4.8.1/libgo/go/net/http/transfer.go
    157174160853--- gcc-4.8.1.orig/libgo/go/net/http/transfer.go        2013-01-29 20:52:43.000000000 +0000
    157175 +++ gcc-4.8.1/libgo/go/net/http/transfer.go     2013-09-13 19:01:43.699863561 +0000
     160854+++ gcc-4.8.1/libgo/go/net/http/transfer.go     2013-10-01 16:06:44.176554280 +0000
    157176160855@@ -194,10 +194,11 @@
    157177160856                        ncopy, err = io.Copy(w, t.Body)
     
    157287160966diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport.go gcc-4.8.1/libgo/go/net/http/transport.go
    157288160967--- gcc-4.8.1.orig/libgo/go/net/http/transport.go       2013-01-29 20:52:43.000000000 +0000
    157289 +++ gcc-4.8.1/libgo/go/net/http/transport.go    2013-09-13 19:01:43.703196886 +0000
     160968+++ gcc-4.8.1/libgo/go/net/http/transport.go    2013-10-01 16:06:44.176554280 +0000
    157290160969@@ -17,7 +17,6 @@
    157291160970        "errors"
     
    157819161498diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport_test.go gcc-4.8.1/libgo/go/net/http/transport_test.go
    157820161499--- gcc-4.8.1.orig/libgo/go/net/http/transport_test.go  2013-01-29 20:52:43.000000000 +0000
    157821 +++ gcc-4.8.1/libgo/go/net/http/transport_test.go       2013-09-13 19:01:43.703196886 +0000
     161500+++ gcc-4.8.1/libgo/go/net/http/transport_test.go       2013-10-01 16:06:44.180554280 +0000
    157822161501@@ -7,6 +7,7 @@
    157823161502 package http_test
     
    158498162177diff -Naur gcc-4.8.1.orig/libgo/go/net/http/z_last_test.go gcc-4.8.1/libgo/go/net/http/z_last_test.go
    158499162178--- gcc-4.8.1.orig/libgo/go/net/http/z_last_test.go     1970-01-01 00:00:00.000000000 +0000
    158500 +++ gcc-4.8.1/libgo/go/net/http/z_last_test.go  2013-09-13 19:01:43.703196886 +0000
     162179+++ gcc-4.8.1/libgo/go/net/http/z_last_test.go  2013-10-01 16:06:44.180554280 +0000
    158501162180@@ -0,0 +1,98 @@
    158502162181+// Copyright 2013 The Go Authors. All rights reserved.
     
    158600162279diff -Naur gcc-4.8.1.orig/libgo/go/net/interface.go gcc-4.8.1/libgo/go/net/interface.go
    158601162280--- gcc-4.8.1.orig/libgo/go/net/interface.go    2012-03-30 21:27:11.000000000 +0000
    158602 +++ gcc-4.8.1/libgo/go/net/interface.go 2013-09-13 19:01:43.706530210 +0000
     162281+++ gcc-4.8.1/libgo/go/net/interface.go 2013-10-01 16:06:44.180554280 +0000
    158603162282@@ -2,8 +2,6 @@
    158604162283 // Use of this source code is governed by a BSD-style
     
    158655162334diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_bsd.go gcc-4.8.1/libgo/go/net/interface_bsd.go
    158656162335--- gcc-4.8.1.orig/libgo/go/net/interface_bsd.go        2013-01-29 20:52:43.000000000 +0000
    158657 +++ gcc-4.8.1/libgo/go/net/interface_bsd.go     2013-09-13 19:01:43.703196886 +0000
     162336+++ gcc-4.8.1/libgo/go/net/interface_bsd.go     2013-10-01 16:06:44.180554280 +0000
    158658162337@@ -4,8 +4,6 @@
    158659162338 
     
    158844162523diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_darwin.go gcc-4.8.1/libgo/go/net/interface_darwin.go
    158845162524--- gcc-4.8.1.orig/libgo/go/net/interface_darwin.go     2012-02-09 08:19:58.000000000 +0000
    158846 +++ gcc-4.8.1/libgo/go/net/interface_darwin.go  2013-09-13 19:01:43.703196886 +0000
     162525+++ gcc-4.8.1/libgo/go/net/interface_darwin.go  2013-10-01 16:06:44.180554280 +0000
    158847162526@@ -2,8 +2,6 @@
    158848162527 // Use of this source code is governed by a BSD-style
     
    158925162604diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go gcc-4.8.1/libgo/go/net/interface_freebsd.go
    158926162605--- gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go    2012-02-09 08:19:58.000000000 +0000
    158927 +++ gcc-4.8.1/libgo/go/net/interface_freebsd.go 2013-09-13 19:01:43.706530210 +0000
     162606+++ gcc-4.8.1/libgo/go/net/interface_freebsd.go 2013-10-01 16:06:44.180554280 +0000
    158928162607@@ -2,8 +2,6 @@
    158929162608 // Use of this source code is governed by a BSD-style
     
    159006162685diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_linux.go gcc-4.8.1/libgo/go/net/interface_linux.go
    159007162686--- gcc-4.8.1.orig/libgo/go/net/interface_linux.go      2012-04-20 20:11:28.000000000 +0000
    159008 +++ gcc-4.8.1/libgo/go/net/interface_linux.go   2013-09-13 19:01:43.706530210 +0000
     162687+++ gcc-4.8.1/libgo/go/net/interface_linux.go   2013-10-01 16:06:44.180554280 +0000
    159009162688@@ -2,8 +2,6 @@
    159010162689 // Use of this source code is governed by a BSD-style
     
    159199162878diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go gcc-4.8.1/libgo/go/net/interface_netbsd.go
    159200162879--- gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go     2012-01-13 05:11:45.000000000 +0000
    159201 +++ gcc-4.8.1/libgo/go/net/interface_netbsd.go  2013-09-13 19:01:43.706530210 +0000
     162880+++ gcc-4.8.1/libgo/go/net/interface_netbsd.go  2013-10-01 16:06:44.180554280 +0000
    159202162881@@ -2,13 +2,11 @@
    159203162882 // Use of this source code is governed by a BSD-style
     
    159220162899diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go gcc-4.8.1/libgo/go/net/interface_openbsd.go
    159221162900--- gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go    2011-12-03 02:17:34.000000000 +0000
    159222 +++ gcc-4.8.1/libgo/go/net/interface_openbsd.go 2013-09-13 19:01:43.706530210 +0000
     162901+++ gcc-4.8.1/libgo/go/net/interface_openbsd.go 2013-10-01 16:06:44.180554280 +0000
    159223162902@@ -2,13 +2,11 @@
    159224162903 // Use of this source code is governed by a BSD-style
     
    159241162920diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_stub.go gcc-4.8.1/libgo/go/net/interface_stub.go
    159242162921--- gcc-4.8.1.orig/libgo/go/net/interface_stub.go       2012-03-30 22:09:55.000000000 +0000
    159243 +++ gcc-4.8.1/libgo/go/net/interface_stub.go    2013-09-13 19:01:43.706530210 +0000
     162922+++ gcc-4.8.1/libgo/go/net/interface_stub.go    2013-10-01 16:06:44.180554280 +0000
    159244162923@@ -4,8 +4,6 @@
    159245162924 
     
    159277162956diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_test.go gcc-4.8.1/libgo/go/net/interface_test.go
    159278162957--- gcc-4.8.1.orig/libgo/go/net/interface_test.go       2013-01-29 20:52:43.000000000 +0000
    159279 +++ gcc-4.8.1/libgo/go/net/interface_test.go    2013-09-13 19:01:43.706530210 +0000
     162958+++ gcc-4.8.1/libgo/go/net/interface_test.go    2013-10-01 16:06:44.180554280 +0000
    159280162959@@ -5,18 +5,50 @@
    159281162960 package net
     
    159453163132diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_windows.go gcc-4.8.1/libgo/go/net/interface_windows.go
    159454163133--- gcc-4.8.1.orig/libgo/go/net/interface_windows.go    2012-03-30 22:09:55.000000000 +0000
    159455 +++ gcc-4.8.1/libgo/go/net/interface_windows.go 2013-09-13 19:01:43.706530210 +0000
     163134+++ gcc-4.8.1/libgo/go/net/interface_windows.go 2013-10-01 16:06:44.180554280 +0000
    159456163135@@ -2,8 +2,6 @@
    159457163136 // Use of this source code is governed by a BSD-style
     
    159527163206diff -Naur gcc-4.8.1.orig/libgo/go/net/ip.go gcc-4.8.1/libgo/go/net/ip.go
    159528163207--- gcc-4.8.1.orig/libgo/go/net/ip.go   2013-01-29 20:52:43.000000000 +0000
    159529 +++ gcc-4.8.1/libgo/go/net/ip.go        2013-09-13 19:01:43.709863535 +0000
     163208+++ gcc-4.8.1/libgo/go/net/ip.go        2013-10-01 16:06:44.180554280 +0000
    159530163209@@ -36,7 +36,6 @@
    159531163210 type IPNet struct {
     
    159750163429diff -Naur gcc-4.8.1.orig/libgo/go/net/ip_test.go gcc-4.8.1/libgo/go/net/ip_test.go
    159751163430--- gcc-4.8.1.orig/libgo/go/net/ip_test.go      2012-12-12 23:13:29.000000000 +0000
    159752 +++ gcc-4.8.1/libgo/go/net/ip_test.go   2013-09-13 19:01:43.713196859 +0000
     163431+++ gcc-4.8.1/libgo/go/net/ip_test.go   2013-10-01 16:06:44.180554280 +0000
    159753163432@@ -5,23 +5,12 @@
    159754163433 package net
     
    160066163745diff -Naur gcc-4.8.1.orig/libgo/go/net/ipraw_test.go gcc-4.8.1/libgo/go/net/ipraw_test.go
    160067163746--- gcc-4.8.1.orig/libgo/go/net/ipraw_test.go   2013-01-29 20:52:43.000000000 +0000
    160068 +++ gcc-4.8.1/libgo/go/net/ipraw_test.go        2013-09-13 19:01:43.709863535 +0000
     163747+++ gcc-4.8.1/libgo/go/net/ipraw_test.go        2013-10-01 16:06:44.180554280 +0000
    160069163748@@ -2,32 +2,36 @@
    160070163749 // Use of this source code is governed by a BSD-style
     
    160586164265diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock.go gcc-4.8.1/libgo/go/net/iprawsock.go
    160587164266--- gcc-4.8.1.orig/libgo/go/net/iprawsock.go    2012-12-12 23:13:29.000000000 +0000
    160588 +++ gcc-4.8.1/libgo/go/net/iprawsock.go 2013-09-13 19:01:43.709863535 +0000
     164267+++ gcc-4.8.1/libgo/go/net/iprawsock.go 2013-10-01 16:06:44.180554280 +0000
    160589164268@@ -2,8 +2,6 @@
    160590164269 // Use of this source code is governed by a BSD-style
     
    160623164302diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go gcc-4.8.1/libgo/go/net/iprawsock_plan9.go
    160624164303--- gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go      2012-12-12 23:13:29.000000000 +0000
    160625 +++ gcc-4.8.1/libgo/go/net/iprawsock_plan9.go   2013-09-13 19:01:43.709863535 +0000
     164304+++ gcc-4.8.1/libgo/go/net/iprawsock_plan9.go   2013-10-01 16:06:44.180554280 +0000
    160626164305@@ -2,8 +2,6 @@
    160627164306 // Use of this source code is governed by a BSD-style
     
    160653164332diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go gcc-4.8.1/libgo/go/net/iprawsock_posix.go
    160654164333--- gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go      2012-12-12 23:13:29.000000000 +0000
    160655 +++ gcc-4.8.1/libgo/go/net/iprawsock_posix.go   2013-09-13 19:01:43.709863535 +0000
     164334+++ gcc-4.8.1/libgo/go/net/iprawsock_posix.go   2013-10-01 16:06:44.180554280 +0000
    160656164335@@ -4,8 +4,6 @@
    160657164336 
     
    160741164420diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock.go gcc-4.8.1/libgo/go/net/ipsock.go
    160742164421--- gcc-4.8.1.orig/libgo/go/net/ipsock.go       2012-12-12 23:13:29.000000000 +0000
    160743 +++ gcc-4.8.1/libgo/go/net/ipsock.go    2013-09-13 19:01:43.709863535 +0000
     164422+++ gcc-4.8.1/libgo/go/net/ipsock.go    2013-10-01 16:06:44.180554280 +0000
    160744164423@@ -68,40 +68,94 @@
    160745164424 func (e InvalidAddrError) Timeout() bool   { return false }
     
    160901164580diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go gcc-4.8.1/libgo/go/net/ipsock_plan9.go
    160902164581--- gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go 2012-12-12 23:13:29.000000000 +0000
    160903 +++ gcc-4.8.1/libgo/go/net/ipsock_plan9.go      2013-09-13 19:01:43.713196859 +0000
     164582+++ gcc-4.8.1/libgo/go/net/ipsock_plan9.go      2013-10-01 16:06:44.180554280 +0000
    160904164583@@ -9,6 +9,7 @@
    160905164584 import (
     
    161024164703diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go gcc-4.8.1/libgo/go/net/lookup_plan9.go
    161025164704--- gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go 2012-11-21 07:03:38.000000000 +0000
    161026 +++ gcc-4.8.1/libgo/go/net/lookup_plan9.go      2013-09-13 19:01:43.713196859 +0000
     164705+++ gcc-4.8.1/libgo/go/net/lookup_plan9.go      2013-10-01 16:06:44.184554280 +0000
    161027164706@@ -7,7 +7,6 @@
    161028164707 import (
     
    161064164743diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_windows.go gcc-4.8.1/libgo/go/net/lookup_windows.go
    161065164744--- gcc-4.8.1.orig/libgo/go/net/lookup_windows.go       2012-11-21 07:03:38.000000000 +0000
    161066 +++ gcc-4.8.1/libgo/go/net/lookup_windows.go    2013-09-13 19:01:43.713196859 +0000
     164745+++ gcc-4.8.1/libgo/go/net/lookup_windows.go    2013-10-01 16:06:44.184554280 +0000
    161067164746@@ -6,21 +6,17 @@
    161068164747 
     
    161417165096diff -Naur gcc-4.8.1.orig/libgo/go/net/multicast_test.go gcc-4.8.1/libgo/go/net/multicast_test.go
    161418165097--- gcc-4.8.1.orig/libgo/go/net/multicast_test.go       1970-01-01 00:00:00.000000000 +0000
    161419 +++ gcc-4.8.1/libgo/go/net/multicast_test.go    2013-09-13 19:01:43.713196859 +0000
     165098+++ gcc-4.8.1/libgo/go/net/multicast_test.go    2013-10-01 16:06:44.184554280 +0000
    161420165099@@ -0,0 +1,184 @@
    161421165100+// Copyright 2011 The Go Authors. All rights reserved.
     
    161605165284diff -Naur gcc-4.8.1.orig/libgo/go/net/net.go gcc-4.8.1/libgo/go/net/net.go
    161606165285--- gcc-4.8.1.orig/libgo/go/net/net.go  2012-12-12 23:13:29.000000000 +0000
    161607 +++ gcc-4.8.1/libgo/go/net/net.go       2013-09-13 19:01:43.713196859 +0000
     165286+++ gcc-4.8.1/libgo/go/net/net.go       2013-10-01 16:06:44.184554280 +0000
    161608165287@@ -276,11 +276,23 @@
    161609165288 
     
    161635165314diff -Naur gcc-4.8.1.orig/libgo/go/net/net_test.go gcc-4.8.1/libgo/go/net/net_test.go
    161636165315--- gcc-4.8.1.orig/libgo/go/net/net_test.go     2013-01-29 20:52:43.000000000 +0000
    161637 +++ gcc-4.8.1/libgo/go/net/net_test.go  2013-09-13 19:01:43.716530184 +0000
     165316+++ gcc-4.8.1/libgo/go/net/net_test.go  2013-10-01 16:06:44.184554280 +0000
    161638165317@@ -173,6 +173,10 @@
    161639165318 }
     
    161699165378diff -Naur gcc-4.8.1.orig/libgo/go/net/packetconn_test.go gcc-4.8.1/libgo/go/net/packetconn_test.go
    161700165379--- gcc-4.8.1.orig/libgo/go/net/packetconn_test.go      2012-12-22 01:15:33.000000000 +0000
    161701 +++ gcc-4.8.1/libgo/go/net/packetconn_test.go   2013-09-13 19:01:43.716530184 +0000
     165380+++ gcc-4.8.1/libgo/go/net/packetconn_test.go   2013-10-01 16:06:44.184554280 +0000
    161702165381@@ -2,10 +2,12 @@
    161703165382 // Use of this source code is governed by a BSD-style
     
    161937165616diff -Naur gcc-4.8.1.orig/libgo/go/net/port_test.go gcc-4.8.1/libgo/go/net/port_test.go
    161938165617--- gcc-4.8.1.orig/libgo/go/net/port_test.go    2011-03-07 23:37:12.000000000 +0000
    161939 +++ gcc-4.8.1/libgo/go/net/port_test.go 2013-09-13 19:01:43.716530184 +0000
     165618+++ gcc-4.8.1/libgo/go/net/port_test.go 2013-10-01 16:06:44.184554280 +0000
    161940165619@@ -46,7 +46,7 @@
    161941165620        for i := 0; i < len(porttests); i++ {
     
    161949165628diff -Naur gcc-4.8.1.orig/libgo/go/net/protoconn_test.go gcc-4.8.1/libgo/go/net/protoconn_test.go
    161950165629--- gcc-4.8.1.orig/libgo/go/net/protoconn_test.go       2013-01-29 20:52:43.000000000 +0000
    161951 +++ gcc-4.8.1/libgo/go/net/protoconn_test.go    2013-09-13 19:01:43.716530184 +0000
     165630+++ gcc-4.8.1/libgo/go/net/protoconn_test.go    2013-10-01 16:06:44.184554280 +0000
    161952165631@@ -2,152 +2,161 @@
    161953165632 // Use of this source code is governed by a BSD-style
     
    162491166170diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/client.go gcc-4.8.1/libgo/go/net/rpc/client.go
    162492166171--- gcc-4.8.1.orig/libgo/go/net/rpc/client.go   2012-11-21 07:03:38.000000000 +0000
    162493 +++ gcc-4.8.1/libgo/go/net/rpc/client.go        2013-09-13 19:01:43.716530184 +0000
     166172+++ gcc-4.8.1/libgo/go/net/rpc/client.go        2013-10-01 16:06:44.184554280 +0000
    162494166173@@ -71,7 +71,7 @@
    162495166174 
     
    162527166206diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/all_test.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go
    162528166207--- gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/all_test.go 2012-10-23 04:31:11.000000000 +0000
    162529 +++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go      2013-09-13 19:01:43.716530184 +0000
     166208+++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go      2013-10-01 16:06:44.184554280 +0000
    162530166209@@ -9,6 +9,7 @@
    162531166210        "errors"
     
    162561166240diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go
    162562166241--- gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go   2011-12-07 01:11:29.000000000 +0000
    162563 +++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go        2013-09-13 19:01:43.719863509 +0000
     166242+++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go        2013-10-01 16:06:44.184554280 +0000
    162564166243@@ -83,7 +83,7 @@
    162565166244 
     
    162573166252diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go gcc-4.8.1/libgo/go/net/rpc/server_test.go
    162574166253--- gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go      2012-12-12 23:13:29.000000000 +0000
    162575 +++ gcc-4.8.1/libgo/go/net/rpc/server_test.go   2013-09-13 19:01:43.719863509 +0000
     166254+++ gcc-4.8.1/libgo/go/net/rpc/server_test.go   2013-10-01 16:06:44.184554280 +0000
    162576166255@@ -399,12 +399,10 @@
    162577166256 
     
    162664166343diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go gcc-4.8.1/libgo/go/net/sendfile_freebsd.go
    162665166344--- gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go     2012-12-12 23:13:29.000000000 +0000
    162666 +++ gcc-4.8.1/libgo/go/net/sendfile_freebsd.go  2013-09-13 19:01:43.719863509 +0000
     166345+++ gcc-4.8.1/libgo/go/net/sendfile_freebsd.go  2013-10-01 16:06:44.184554280 +0000
    162667166346@@ -83,7 +83,7 @@
    162668166347                        break
     
    162676166355diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go gcc-4.8.1/libgo/go/net/sendfile_linux.go
    162677166356--- gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go       2012-12-12 23:13:29.000000000 +0000
    162678 +++ gcc-4.8.1/libgo/go/net/sendfile_linux.go    2013-09-13 19:01:43.719863509 +0000
     166357+++ gcc-4.8.1/libgo/go/net/sendfile_linux.go    2013-10-01 16:06:44.184554280 +0000
    162679166358@@ -59,7 +59,7 @@
    162680166359                        break
     
    162688166367diff -Naur gcc-4.8.1.orig/libgo/go/net/server_test.go gcc-4.8.1/libgo/go/net/server_test.go
    162689166368--- gcc-4.8.1.orig/libgo/go/net/server_test.go  2013-01-29 20:52:43.000000000 +0000
    162690 +++ gcc-4.8.1/libgo/go/net/server_test.go       2013-09-13 19:01:43.719863509 +0000
     166369+++ gcc-4.8.1/libgo/go/net/server_test.go       2013-10-01 16:06:44.184554280 +0000
    162691166370@@ -9,6 +9,7 @@
    162692166371        "io"
     
    162902166581diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/auth.go gcc-4.8.1/libgo/go/net/smtp/auth.go
    162903166582--- gcc-4.8.1.orig/libgo/go/net/smtp/auth.go    2012-01-25 21:54:22.000000000 +0000
    162904 +++ gcc-4.8.1/libgo/go/net/smtp/auth.go 2013-09-13 19:01:43.719863509 +0000
     166583+++ gcc-4.8.1/libgo/go/net/smtp/auth.go 2013-10-01 16:06:44.188554279 +0000
    162905166584@@ -54,7 +54,16 @@
    162906166585 
     
    162923166602diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go gcc-4.8.1/libgo/go/net/smtp/smtp_test.go
    162924166603--- gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go       2012-12-22 01:15:33.000000000 +0000
    162925 +++ gcc-4.8.1/libgo/go/net/smtp/smtp_test.go    2013-09-13 19:01:43.719863509 +0000
     166604+++ gcc-4.8.1/libgo/go/net/smtp/smtp_test.go    2013-10-01 16:06:44.188554279 +0000
    162926166605@@ -57,6 +57,41 @@
    162927166606        }
     
    162968166647diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_bsd.go gcc-4.8.1/libgo/go/net/sock_bsd.go
    162969166648--- gcc-4.8.1.orig/libgo/go/net/sock_bsd.go     2012-03-02 16:38:43.000000000 +0000
    162970 +++ gcc-4.8.1/libgo/go/net/sock_bsd.go  2013-09-13 19:01:43.719863509 +0000
     166649+++ gcc-4.8.1/libgo/go/net/sock_bsd.go  2013-10-01 16:06:44.188554279 +0000
    162971166650@@ -4,8 +4,6 @@
    162972166651 
     
    163021166700diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go gcc-4.8.1/libgo/go/net/sock_cloexec.go
    163022166701--- gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go 2013-01-29 20:52:43.000000000 +0000
    163023 +++ gcc-4.8.1/libgo/go/net/sock_cloexec.go      2013-09-13 19:01:43.723196833 +0000
     166702+++ gcc-4.8.1/libgo/go/net/sock_cloexec.go      2013-10-01 16:06:44.188554279 +0000
    163024166703@@ -44,20 +44,20 @@
    163025166704 func accept(fd int) (int, syscall.Sockaddr, error) {
     
    163050166729diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_linux.go gcc-4.8.1/libgo/go/net/sock_linux.go
    163051166730--- gcc-4.8.1.orig/libgo/go/net/sock_linux.go   2012-03-02 16:38:43.000000000 +0000
    163052 +++ gcc-4.8.1/libgo/go/net/sock_linux.go        2013-09-13 19:01:43.723196833 +0000
     166731+++ gcc-4.8.1/libgo/go/net/sock_linux.go        2013-10-01 16:06:44.188554279 +0000
    163053166732@@ -2,8 +2,6 @@
    163054166733 // Use of this source code is governed by a BSD-style
     
    163103166782diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_posix.go gcc-4.8.1/libgo/go/net/sock_posix.go
    163104166783--- gcc-4.8.1.orig/libgo/go/net/sock_posix.go   2013-01-29 20:52:43.000000000 +0000
    163105 +++ gcc-4.8.1/libgo/go/net/sock_posix.go        2013-09-13 19:01:43.723196833 +0000
     166784+++ gcc-4.8.1/libgo/go/net/sock_posix.go        2013-10-01 16:06:44.188554279 +0000
    163106166785@@ -4,8 +4,6 @@
    163107166786 
     
    163176166855diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_solaris.go gcc-4.8.1/libgo/go/net/sock_solaris.go
    163177166856--- gcc-4.8.1.orig/libgo/go/net/sock_solaris.go 2012-04-25 04:26:12.000000000 +0000
    163178 +++ gcc-4.8.1/libgo/go/net/sock_solaris.go      2013-09-13 19:01:43.723196833 +0000
     166857+++ gcc-4.8.1/libgo/go/net/sock_solaris.go      2013-10-01 16:06:44.188554279 +0000
    163179166858@@ -16,32 +16,3 @@
    163180166859        // The kernel does not track the limit.
     
    163212166891diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_unix.go gcc-4.8.1/libgo/go/net/sock_unix.go
    163213166892--- gcc-4.8.1.orig/libgo/go/net/sock_unix.go    1970-01-01 00:00:00.000000000 +0000
    163214 +++ gcc-4.8.1/libgo/go/net/sock_unix.go 2013-09-13 19:01:43.723196833 +0000
     166893+++ gcc-4.8.1/libgo/go/net/sock_unix.go 2013-10-01 16:06:44.188554279 +0000
    163215166894@@ -0,0 +1,36 @@
    163216166895+// Copyright 2009 The Go Authors.  All rights reserved.
     
    163252166931diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_windows.go gcc-4.8.1/libgo/go/net/sock_windows.go
    163253166932--- gcc-4.8.1.orig/libgo/go/net/sock_windows.go 2013-01-29 20:52:43.000000000 +0000
    163254 +++ gcc-4.8.1/libgo/go/net/sock_windows.go      2013-09-13 19:01:43.723196833 +0000
     166933+++ gcc-4.8.1/libgo/go/net/sock_windows.go      2013-10-01 16:06:44.188554279 +0000
    163255166934@@ -2,14 +2,13 @@
    163256166935 // Use of this source code is governed by a BSD-style
     
    163304166983diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go gcc-4.8.1/libgo/go/net/sockopt_posix.go
    163305166984--- gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go        2012-12-12 23:13:29.000000000 +0000
    163306 +++ gcc-4.8.1/libgo/go/net/sockopt_posix.go     2013-09-13 19:01:43.723196833 +0000
     166985+++ gcc-4.8.1/libgo/go/net/sockopt_posix.go     2013-10-01 16:06:44.188554279 +0000
    163307166986@@ -11,7 +11,6 @@
    163308166987 import (
     
    163340167019diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go gcc-4.8.1/libgo/go/net/sockopt_windows.go
    163341167020--- gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go      2012-03-30 21:27:11.000000000 +0000
    163342 +++ gcc-4.8.1/libgo/go/net/sockopt_windows.go   2013-09-13 19:01:43.723196833 +0000
     167021+++ gcc-4.8.1/libgo/go/net/sockopt_windows.go   2013-10-01 16:06:44.188554279 +0000
    163343167022@@ -9,6 +9,7 @@
    163344167023 import (
     
    163373167052diff -Naur gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go gcc-4.8.1/libgo/go/net/sys_cloexec.go
    163374167053--- gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go  2013-01-29 20:52:43.000000000 +0000
    163375 +++ gcc-4.8.1/libgo/go/net/sys_cloexec.go       2013-09-13 19:01:43.723196833 +0000
     167054+++ gcc-4.8.1/libgo/go/net/sys_cloexec.go       2013-10-01 16:06:44.188554279 +0000
    163376167055@@ -35,14 +35,14 @@
    163377167056 // descriptor as nonblocking and close-on-exec.
     
    163394167073diff -Naur gcc-4.8.1.orig/libgo/go/net/tcp_test.go gcc-4.8.1/libgo/go/net/tcp_test.go
    163395167074--- gcc-4.8.1.orig/libgo/go/net/tcp_test.go     2013-01-29 20:52:43.000000000 +0000
    163396 +++ gcc-4.8.1/libgo/go/net/tcp_test.go  2013-09-13 19:01:43.726530158 +0000
     167075+++ gcc-4.8.1/libgo/go/net/tcp_test.go  2013-10-01 16:06:44.192554279 +0000
    163397167076@@ -5,29 +5,58 @@
    163398167077 package net
     
    163609167288diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock.go gcc-4.8.1/libgo/go/net/tcpsock.go
    163610167289--- gcc-4.8.1.orig/libgo/go/net/tcpsock.go      2012-12-12 23:13:29.000000000 +0000
    163611 +++ gcc-4.8.1/libgo/go/net/tcpsock.go   2013-09-13 19:01:43.723196833 +0000
     167290+++ gcc-4.8.1/libgo/go/net/tcpsock.go   2013-10-01 16:06:44.188554279 +0000
    163612167291@@ -2,8 +2,6 @@
    163613167292 // Use of this source code is governed by a BSD-style
     
    163645167324diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go gcc-4.8.1/libgo/go/net/tcpsock_plan9.go
    163646167325--- gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go        2012-12-12 23:13:29.000000000 +0000
    163647 +++ gcc-4.8.1/libgo/go/net/tcpsock_plan9.go     2013-09-13 19:01:43.726530158 +0000
     167326+++ gcc-4.8.1/libgo/go/net/tcpsock_plan9.go     2013-10-01 16:06:44.188554279 +0000
    163648167327@@ -2,8 +2,6 @@
    163649167328 // Use of this source code is governed by a BSD-style
     
    163710167389diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go gcc-4.8.1/libgo/go/net/tcpsock_posix.go
    163711167390--- gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go        2013-01-29 20:52:43.000000000 +0000
    163712 +++ gcc-4.8.1/libgo/go/net/tcpsock_posix.go     2013-09-13 19:01:43.726530158 +0000
     167391+++ gcc-4.8.1/libgo/go/net/tcpsock_posix.go     2013-10-01 16:06:44.188554279 +0000
    163713167392@@ -4,8 +4,6 @@
    163714167393 
     
    163858167537diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader.go gcc-4.8.1/libgo/go/net/textproto/reader.go
    163859167538--- gcc-4.8.1.orig/libgo/go/net/textproto/reader.go     2012-11-21 07:03:38.000000000 +0000
    163860 +++ gcc-4.8.1/libgo/go/net/textproto/reader.go  2013-09-13 19:01:43.726530158 +0000
     167539+++ gcc-4.8.1/libgo/go/net/textproto/reader.go  2013-10-01 16:06:44.192554279 +0000
    163861167540@@ -128,6 +128,17 @@
    163862167541                return line, nil
     
    163904167583diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go gcc-4.8.1/libgo/go/net/textproto/reader_test.go
    163905167584--- gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go        2012-11-21 07:03:38.000000000 +0000
    163906 +++ gcc-4.8.1/libgo/go/net/textproto/reader_test.go     2013-09-13 19:01:43.726530158 +0000
     167585+++ gcc-4.8.1/libgo/go/net/textproto/reader_test.go     2013-10-01 16:06:44.192554279 +0000
    163907167586@@ -290,6 +290,7 @@
    163908167587 `, "\n", "\r\n", -1)
     
    163923167602diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go gcc-4.8.1/libgo/go/net/textproto/textproto.go
    163924167603--- gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go  2012-10-23 04:31:11.000000000 +0000
    163925 +++ gcc-4.8.1/libgo/go/net/textproto/textproto.go       2013-09-13 19:01:43.726530158 +0000
     167604+++ gcc-4.8.1/libgo/go/net/textproto/textproto.go       2013-10-01 16:06:44.192554279 +0000
    163926167605@@ -147,3 +147,8 @@
    163927167606 func isASCIISpace(b byte) bool {
     
    163935167614diff -Naur gcc-4.8.1.orig/libgo/go/net/timeout_test.go gcc-4.8.1/libgo/go/net/timeout_test.go
    163936167615--- gcc-4.8.1.orig/libgo/go/net/timeout_test.go 2013-01-29 20:52:43.000000000 +0000
    163937 +++ gcc-4.8.1/libgo/go/net/timeout_test.go      2013-09-13 19:01:43.729863482 +0000
     167616+++ gcc-4.8.1/libgo/go/net/timeout_test.go      2013-10-01 16:06:44.192554279 +0000
    163938167617@@ -420,6 +420,11 @@
    163939167618 }
     
    164045167724diff -Naur gcc-4.8.1.orig/libgo/go/net/udp_test.go gcc-4.8.1/libgo/go/net/udp_test.go
    164046167725--- gcc-4.8.1.orig/libgo/go/net/udp_test.go     2013-01-29 20:52:43.000000000 +0000
    164047 +++ gcc-4.8.1/libgo/go/net/udp_test.go  2013-09-13 19:01:43.729863482 +0000
     167726+++ gcc-4.8.1/libgo/go/net/udp_test.go  2013-10-01 16:06:44.192554279 +0000
    164048167727@@ -5,29 +5,45 @@
    164049167728 package net
     
    164226167905diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock.go gcc-4.8.1/libgo/go/net/udpsock.go
    164227167906--- gcc-4.8.1.orig/libgo/go/net/udpsock.go      2012-12-12 23:13:29.000000000 +0000
    164228 +++ gcc-4.8.1/libgo/go/net/udpsock.go   2013-09-13 19:01:43.729863482 +0000
     167907+++ gcc-4.8.1/libgo/go/net/udpsock.go   2013-10-01 16:06:44.192554279 +0000
    164229167908@@ -2,8 +2,6 @@
    164230167909 // Use of this source code is governed by a BSD-style
     
    164262167941diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go gcc-4.8.1/libgo/go/net/udpsock_plan9.go
    164263167942--- gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go        2012-12-12 23:13:29.000000000 +0000
    164264 +++ gcc-4.8.1/libgo/go/net/udpsock_plan9.go     2013-09-13 19:01:43.729863482 +0000
     167943+++ gcc-4.8.1/libgo/go/net/udpsock_plan9.go     2013-10-01 16:06:44.192554279 +0000
    164265167944@@ -2,8 +2,6 @@
    164266167945 // Use of this source code is governed by a BSD-style
     
    164369168048diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go gcc-4.8.1/libgo/go/net/udpsock_posix.go
    164370168049--- gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go        2013-01-29 20:52:43.000000000 +0000
    164371 +++ gcc-4.8.1/libgo/go/net/udpsock_posix.go     2013-09-13 19:01:43.729863482 +0000
     168050+++ gcc-4.8.1/libgo/go/net/udpsock_posix.go     2013-10-01 16:06:44.192554279 +0000
    164372168051@@ -4,8 +4,6 @@
    164373168052 
     
    164474168153diff -Naur gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go gcc-4.8.1/libgo/go/net/unicast_posix_test.go
    164475168154--- gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go   2013-01-29 20:52:43.000000000 +0000
    164476 +++ gcc-4.8.1/libgo/go/net/unicast_posix_test.go        2013-09-13 19:01:43.729863482 +0000
     168155+++ gcc-4.8.1/libgo/go/net/unicast_posix_test.go        2013-10-01 16:06:44.192554279 +0000
    164477168156@@ -45,7 +45,7 @@
    164478168157 // same port.
     
    164579168258diff -Naur gcc-4.8.1.orig/libgo/go/net/unix_test.go gcc-4.8.1/libgo/go/net/unix_test.go
    164580168259--- gcc-4.8.1.orig/libgo/go/net/unix_test.go    1970-01-01 00:00:00.000000000 +0000
    164581 +++ gcc-4.8.1/libgo/go/net/unix_test.go 2013-09-13 19:01:43.733196807 +0000
     168260+++ gcc-4.8.1/libgo/go/net/unix_test.go 2013-10-01 16:06:44.192554279 +0000
    164582168261@@ -0,0 +1,246 @@
    164583168262+// Copyright 2013 The Go Authors.  All rights reserved.
     
    164829168508diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock.go gcc-4.8.1/libgo/go/net/unixsock.go
    164830168509--- gcc-4.8.1.orig/libgo/go/net/unixsock.go     2011-12-03 02:17:34.000000000 +0000
    164831 +++ gcc-4.8.1/libgo/go/net/unixsock.go  2013-09-13 19:01:43.729863482 +0000
     168510+++ gcc-4.8.1/libgo/go/net/unixsock.go  2013-10-01 16:06:44.192554279 +0000
    164832168511@@ -2,8 +2,6 @@
    164833168512 // Use of this source code is governed by a BSD-style
     
    164865168544diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go gcc-4.8.1/libgo/go/net/unixsock_plan9.go
    164866168545--- gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go       2012-12-22 01:15:33.000000000 +0000
    164867 +++ gcc-4.8.1/libgo/go/net/unixsock_plan9.go    2013-09-13 19:01:43.733196807 +0000
     168546+++ gcc-4.8.1/libgo/go/net/unixsock_plan9.go    2013-10-01 16:06:44.192554279 +0000
    164868168547@@ -2,8 +2,6 @@
    164869168548 // Use of this source code is governed by a BSD-style
     
    164909168588diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go gcc-4.8.1/libgo/go/net/unixsock_posix.go
    164910168589--- gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go       2012-12-22 01:15:33.000000000 +0000
    164911 +++ gcc-4.8.1/libgo/go/net/unixsock_posix.go    2013-09-13 19:01:43.733196807 +0000
     168590+++ gcc-4.8.1/libgo/go/net/unixsock_posix.go    2013-10-01 16:06:44.192554279 +0000
    164912168591@@ -4,8 +4,6 @@
    164913168592 
     
    165071168750diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url.go gcc-4.8.1/libgo/go/net/url/url.go
    165072168751--- gcc-4.8.1.orig/libgo/go/net/url/url.go      2013-01-29 20:52:43.000000000 +0000
    165073 +++ gcc-4.8.1/libgo/go/net/url/url.go   2013-09-13 19:01:43.733196807 +0000
     168752+++ gcc-4.8.1/libgo/go/net/url/url.go   2013-10-01 16:06:44.192554279 +0000
    165074168753@@ -220,6 +220,13 @@
    165075168754 //
     
    165304168983diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url_test.go gcc-4.8.1/libgo/go/net/url/url_test.go
    165305168984--- gcc-4.8.1.orig/libgo/go/net/url/url_test.go 2013-01-29 20:52:43.000000000 +0000
    165306 +++ gcc-4.8.1/libgo/go/net/url/url_test.go      2013-09-13 19:01:43.733196807 +0000
     168985+++ gcc-4.8.1/libgo/go/net/url/url_test.go      2013-10-01 16:06:44.192554279 +0000
    165307168986@@ -251,6 +251,15 @@
    165308168987                },
     
    167063170742diff -Naur gcc-4.8.1.orig/libgo/go/os/doc.go gcc-4.8.1/libgo/go/os/doc.go
    167064170743--- gcc-4.8.1.orig/libgo/go/os/doc.go   2012-11-21 07:03:38.000000000 +0000
    167065 +++ gcc-4.8.1/libgo/go/os/doc.go        2013-09-13 19:01:43.736530132 +0000
     170744+++ gcc-4.8.1/libgo/go/os/doc.go        2013-10-01 16:06:44.196554279 +0000
    167066170745@@ -79,6 +79,8 @@
    167067170746 // SysUsage returns system-dependent resource usage information about
     
    167075170754diff -Naur gcc-4.8.1.orig/libgo/go/os/env_unix_test.go gcc-4.8.1/libgo/go/os/env_unix_test.go
    167076170755--- gcc-4.8.1.orig/libgo/go/os/env_unix_test.go 1970-01-01 00:00:00.000000000 +0000
    167077 +++ gcc-4.8.1/libgo/go/os/env_unix_test.go      2013-09-13 19:01:43.736530132 +0000
     170756+++ gcc-4.8.1/libgo/go/os/env_unix_test.go      2013-10-01 16:06:44.196554279 +0000
    167078170757@@ -0,0 +1,30 @@
    167079170758+// Copyright 2013 The Go Authors. All rights reserved.
     
    167109170788diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec.go gcc-4.8.1/libgo/go/os/exec/exec.go
    167110170789--- gcc-4.8.1.orig/libgo/go/os/exec/exec.go     2012-11-21 07:03:38.000000000 +0000
    167111 +++ gcc-4.8.1/libgo/go/os/exec/exec.go  2013-09-13 19:01:43.736530132 +0000
     170790+++ gcc-4.8.1/libgo/go/os/exec/exec.go  2013-10-01 16:06:44.196554279 +0000
    167112170791@@ -235,6 +235,8 @@
    167113170792 // Start starts the specified command but does not wait for it to complete.
     
    167121170800diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go gcc-4.8.1/libgo/go/os/exec/exec_test.go
    167122170801--- gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go        2013-01-29 20:52:43.000000000 +0000
    167123 +++ gcc-4.8.1/libgo/go/os/exec/exec_test.go     2013-09-13 19:01:43.736530132 +0000
     170802+++ gcc-4.8.1/libgo/go/os/exec/exec_test.go     2013-10-01 16:06:44.196554279 +0000
    167124170803@@ -14,17 +14,23 @@
    167125170804        "net/http"
     
    167409171088diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go gcc-4.8.1/libgo/go/os/exec/lp_plan9.go
    167410171089--- gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go 2012-03-02 20:01:37.000000000 +0000
    167411 +++ gcc-4.8.1/libgo/go/os/exec/lp_plan9.go      2013-09-13 19:01:43.739863456 +0000
     171090+++ gcc-4.8.1/libgo/go/os/exec/lp_plan9.go      2013-10-01 16:06:44.196554279 +0000
    167412171091@@ -8,7 +8,6 @@
    167413171092        "errors"
     
    167429171108diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go gcc-4.8.1/libgo/go/os/exec/lp_unix.go
    167430171109--- gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go  2012-03-02 20:01:37.000000000 +0000
    167431 +++ gcc-4.8.1/libgo/go/os/exec/lp_unix.go       2013-09-13 19:01:43.739863456 +0000
     171110+++ gcc-4.8.1/libgo/go/os/exec/lp_unix.go       2013-10-01 16:06:44.196554279 +0000
    167432171111@@ -42,6 +42,9 @@
    167433171112                return "", &Error{file, err}
     
    167442171121diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix_test.go gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go
    167443171122--- gcc-4.8.1.orig/libgo/go/os/exec/lp_unix_test.go     1970-01-01 00:00:00.000000000 +0000
    167444 +++ gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go  2013-09-13 19:01:43.739863456 +0000
     171123+++ gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go  2013-10-01 16:06:44.196554279 +0000
    167445171124@@ -0,0 +1,55 @@
    167446171125+// Copyright 2013 The Go Authors.  All rights reserved.
     
    167501171180diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go gcc-4.8.1/libgo/go/os/exec/lp_windows.go
    167502171181--- gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go       2012-03-02 20:01:37.000000000 +0000
    167503 +++ gcc-4.8.1/libgo/go/os/exec/lp_windows.go    2013-09-13 19:01:43.739863456 +0000
     171182+++ gcc-4.8.1/libgo/go/os/exec/lp_windows.go    2013-10-01 16:06:44.196554279 +0000
    167504171183@@ -72,7 +72,7 @@
    167505171184                return
     
    167550171229diff -Naur gcc-4.8.1.orig/libgo/go/os/exec_posix.go gcc-4.8.1/libgo/go/os/exec_posix.go
    167551171230--- gcc-4.8.1.orig/libgo/go/os/exec_posix.go    2012-10-23 04:31:11.000000000 +0000
    167552 +++ gcc-4.8.1/libgo/go/os/exec_posix.go 2013-09-13 19:01:43.739863456 +0000
     171231+++ gcc-4.8.1/libgo/go/os/exec_posix.go 2013-10-01 16:06:44.196554279 +0000
    167553171232@@ -118,9 +118,9 @@
    167554171233        case status.Exited():
     
    167565171244diff -Naur gcc-4.8.1.orig/libgo/go/os/file_plan9.go gcc-4.8.1/libgo/go/os/file_plan9.go
    167566171245--- gcc-4.8.1.orig/libgo/go/os/file_plan9.go    2012-12-12 23:13:29.000000000 +0000
    167567 +++ gcc-4.8.1/libgo/go/os/file_plan9.go 2013-09-13 19:01:43.739863456 +0000
     171246+++ gcc-4.8.1/libgo/go/os/file_plan9.go 2013-10-01 16:06:44.196554279 +0000
    167568171247@@ -104,7 +104,6 @@
    167569171248                append = true
     
    167617171296diff -Naur gcc-4.8.1.orig/libgo/go/os/file_posix.go gcc-4.8.1/libgo/go/os/file_posix.go
    167618171297--- gcc-4.8.1.orig/libgo/go/os/file_posix.go    2012-12-22 01:15:33.000000000 +0000
    167619 +++ gcc-4.8.1/libgo/go/os/file_posix.go 2013-09-13 19:01:43.739863456 +0000
     171298+++ gcc-4.8.1/libgo/go/os/file_posix.go 2013-10-01 16:06:44.196554279 +0000
    167620171299@@ -46,8 +46,6 @@
    167621171300                        return string(b[0:n]), nil
     
    167629171308diff -Naur gcc-4.8.1.orig/libgo/go/os/file_unix.go gcc-4.8.1/libgo/go/os/file_unix.go
    167630171309--- gcc-4.8.1.orig/libgo/go/os/file_unix.go     2013-01-29 20:52:43.000000000 +0000
    167631 +++ gcc-4.8.1/libgo/go/os/file_unix.go  2013-09-13 19:01:43.739863456 +0000
     171310+++ gcc-4.8.1/libgo/go/os/file_unix.go  2013-10-01 16:06:44.196554279 +0000
    167632171311@@ -209,7 +209,6 @@
    167633171312 
     
    167640171319diff -Naur gcc-4.8.1.orig/libgo/go/os/getwd.go gcc-4.8.1/libgo/go/os/getwd.go
    167641171320--- gcc-4.8.1.orig/libgo/go/os/getwd.go 2012-03-02 20:01:37.000000000 +0000
    167642 +++ gcc-4.8.1/libgo/go/os/getwd.go      2013-09-13 19:01:43.743196781 +0000
     171321+++ gcc-4.8.1/libgo/go/os/getwd.go      2013-10-01 16:06:44.196554279 +0000
    167643171322@@ -5,9 +5,15 @@
    167644171323 package os
     
    167698171377diff -Naur gcc-4.8.1.orig/libgo/go/os/os_test.go gcc-4.8.1/libgo/go/os/os_test.go
    167699171378--- gcc-4.8.1.orig/libgo/go/os/os_test.go       2013-01-29 20:52:43.000000000 +0000
    167700 +++ gcc-4.8.1/libgo/go/os/os_test.go    2013-09-13 19:01:43.743196781 +0000
     171379+++ gcc-4.8.1/libgo/go/os/os_test.go    2013-10-01 16:06:44.196554279 +0000
    167701171380@@ -39,7 +39,6 @@
    167702171381                sd = &sysDir{
     
    167709171388diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal.go gcc-4.8.1/libgo/go/os/signal/signal.go
    167710171389--- gcc-4.8.1.orig/libgo/go/os/signal/signal.go 2012-03-02 16:38:43.000000000 +0000
    167711 +++ gcc-4.8.1/libgo/go/os/signal/signal.go      2013-09-13 19:01:43.743196781 +0000
     171390+++ gcc-4.8.1/libgo/go/os/signal/signal.go      2013-10-01 16:06:44.196554279 +0000
    167712171391@@ -5,7 +5,7 @@
    167713171392 // Package signal implements access to incoming signals.
     
    167850171529diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go gcc-4.8.1/libgo/go/os/signal/signal_stub.go
    167851171530--- gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go    2012-03-02 20:01:37.000000000 +0000
    167852 +++ gcc-4.8.1/libgo/go/os/signal/signal_stub.go 2013-09-13 19:01:43.743196781 +0000
     171531+++ gcc-4.8.1/libgo/go/os/signal/signal_stub.go 2013-10-01 16:06:44.196554279 +0000
    167853171532@@ -8,4 +8,10 @@
    167854171533 
     
    167865171544diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go gcc-4.8.1/libgo/go/os/signal/signal_test.go
    167866171545--- gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go    2013-01-29 20:52:43.000000000 +0000
    167867 +++ gcc-4.8.1/libgo/go/os/signal/signal_test.go 2013-09-13 19:01:43.743196781 +0000
     171546+++ gcc-4.8.1/libgo/go/os/signal/signal_test.go 2013-10-01 16:06:44.196554279 +0000
    167868171547@@ -7,15 +7,17 @@
    167869171548 package signal
     
    168024171703diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go gcc-4.8.1/libgo/go/os/signal/signal_unix.go
    168025171704--- gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go    2012-03-02 16:38:43.000000000 +0000
    168026 +++ gcc-4.8.1/libgo/go/os/signal/signal_unix.go 2013-09-13 19:01:43.743196781 +0000
     171705+++ gcc-4.8.1/libgo/go/os/signal/signal_unix.go 2013-10-01 16:06:44.196554279 +0000
    168027171706@@ -12,6 +12,7 @@
    168028171707 )
     
    168068171747diff -Naur gcc-4.8.1.orig/libgo/go/os/stat.go gcc-4.8.1/libgo/go/os/stat.go
    168069171748--- gcc-4.8.1.orig/libgo/go/os/stat.go  2012-04-22 20:07:23.000000000 +0000
    168070 +++ gcc-4.8.1/libgo/go/os/stat.go       2013-09-13 19:01:43.746530105 +0000
     171749+++ gcc-4.8.1/libgo/go/os/stat.go       2013-10-01 16:06:44.200554279 +0000
    168071171750@@ -9,9 +9,9 @@
    168072171751        "time"
     
    168084171763diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atim.go gcc-4.8.1/libgo/go/os/stat_atim.go
    168085171764--- gcc-4.8.1.orig/libgo/go/os/stat_atim.go     2012-11-05 17:36:40.000000000 +0000
    168086 +++ gcc-4.8.1/libgo/go/os/stat_atim.go  2013-09-13 19:01:43.743196781 +0000
     171765+++ gcc-4.8.1/libgo/go/os/stat_atim.go  2013-10-01 16:06:44.196554279 +0000
    168087171766@@ -9,9 +9,9 @@
    168088171767        "time"
     
    168100171779diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go gcc-4.8.1/libgo/go/os/stat_atimespec.go
    168101171780--- gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go        2013-01-24 18:12:23.000000000 +0000
    168102 +++ gcc-4.8.1/libgo/go/os/stat_atimespec.go     2013-09-13 19:01:43.743196781 +0000
     171781+++ gcc-4.8.1/libgo/go/os/stat_atimespec.go     2013-10-01 16:06:44.196554279 +0000
    168103171782@@ -9,9 +9,9 @@
    168104171783        "time"
     
    168116171795diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_plan9.go gcc-4.8.1/libgo/go/os/stat_plan9.go
    168117171796--- gcc-4.8.1.orig/libgo/go/os/stat_plan9.go    2012-12-12 23:13:29.000000000 +0000
    168118 +++ gcc-4.8.1/libgo/go/os/stat_plan9.go 2013-09-13 19:01:43.746530105 +0000
     171797+++ gcc-4.8.1/libgo/go/os/stat_plan9.go 2013-10-01 16:06:44.200554279 +0000
    168119171798@@ -9,9 +9,9 @@
    168120171799        "time"
     
    168132171811diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_solaris.go gcc-4.8.1/libgo/go/os/stat_solaris.go
    168133171812--- gcc-4.8.1.orig/libgo/go/os/stat_solaris.go  2012-04-22 20:07:23.000000000 +0000
    168134 +++ gcc-4.8.1/libgo/go/os/stat_solaris.go       2013-09-13 19:01:43.746530105 +0000
     171813+++ gcc-4.8.1/libgo/go/os/stat_solaris.go       2013-10-01 16:06:44.200554279 +0000
    168135171814@@ -9,9 +9,9 @@
    168136171815        "time"
     
    168148171827diff -Naur gcc-4.8.1.orig/libgo/go/os/types.go gcc-4.8.1/libgo/go/os/types.go
    168149171828--- gcc-4.8.1.orig/libgo/go/os/types.go 2012-11-21 07:03:38.000000000 +0000
    168150 +++ gcc-4.8.1/libgo/go/os/types.go      2013-09-13 19:01:43.746530105 +0000
     171829+++ gcc-4.8.1/libgo/go/os/types.go      2013-10-01 16:06:44.200554279 +0000
    168151171830@@ -99,21 +99,8 @@
    168152171831        return m & ModePerm
     
    168182171861diff -Naur gcc-4.8.1.orig/libgo/go/os/types_notwin.go gcc-4.8.1/libgo/go/os/types_notwin.go
    168183171862--- gcc-4.8.1.orig/libgo/go/os/types_notwin.go  1970-01-01 00:00:00.000000000 +0000
    168184 +++ gcc-4.8.1/libgo/go/os/types_notwin.go       2013-09-13 19:01:43.746530105 +0000
     171863+++ gcc-4.8.1/libgo/go/os/types_notwin.go       2013-10-01 16:06:44.200554279 +0000
    168185171864@@ -0,0 +1,25 @@
    168186171865+// Copyright 2009 The Go Authors. All rights reserved.
     
    168211171890diff -Naur gcc-4.8.1.orig/libgo/go/os/types_windows.go gcc-4.8.1/libgo/go/os/types_windows.go
    168212171891--- gcc-4.8.1.orig/libgo/go/os/types_windows.go 1970-01-01 00:00:00.000000000 +0000
    168213 +++ gcc-4.8.1/libgo/go/os/types_windows.go      2013-09-13 19:01:43.746530105 +0000
     171892+++ gcc-4.8.1/libgo/go/os/types_windows.go      2013-10-01 16:06:44.200554279 +0000
    168214171893@@ -0,0 +1,104 @@
    168215171894+// Copyright 2009 The Go Authors. All rights reserved.
     
    168319171998diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/example_unix_test.go gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go
    168320171999--- gcc-4.8.1.orig/libgo/go/path/filepath/example_unix_test.go  1970-01-01 00:00:00.000000000 +0000
    168321 +++ gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go       2013-09-13 19:01:43.746530105 +0000
     172000+++ gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go       2013-10-01 16:06:44.200554279 +0000
    168322172001@@ -0,0 +1,39 @@
    168323172002+// Copyright 2013 The Go Authors. All rights reserved.
     
    168362172041diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go gcc-4.8.1/libgo/go/path/filepath/match_test.go
    168363172042--- gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go 2012-03-30 22:09:55.000000000 +0000
    168364 +++ gcc-4.8.1/libgo/go/path/filepath/match_test.go      2013-09-13 19:01:43.746530105 +0000
     172043+++ gcc-4.8.1/libgo/go/path/filepath/match_test.go      2013-10-01 16:06:44.200554279 +0000
    168365172044@@ -2,10 +2,9 @@
    168366172045 // Use of this source code is governed by a BSD-style
     
    168377172056diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path.go gcc-4.8.1/libgo/go/path/filepath/path.go
    168378172057--- gcc-4.8.1.orig/libgo/go/path/filepath/path.go       2012-11-21 07:03:38.000000000 +0000
    168379 +++ gcc-4.8.1/libgo/go/path/filepath/path.go    2013-09-13 19:01:43.746530105 +0000
     172058+++ gcc-4.8.1/libgo/go/path/filepath/path.go    2013-10-01 16:06:44.200554279 +0000
    168380172059@@ -176,10 +176,7 @@
    168381172060 // usually found in PATH or GOPATH environment variables.
     
    168410172089diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go gcc-4.8.1/libgo/go/path/filepath/path_plan9.go
    168411172090--- gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go 2012-10-23 04:31:11.000000000 +0000
    168412 +++ gcc-4.8.1/libgo/go/path/filepath/path_plan9.go      2013-09-13 19:01:43.746530105 +0000
     172091+++ gcc-4.8.1/libgo/go/path/filepath/path_plan9.go      2013-10-01 16:06:44.200554279 +0000
    168413172092@@ -21,3 +21,10 @@
    168414172093 func HasPrefix(p, prefix string) bool {
     
    168424172103diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go gcc-4.8.1/libgo/go/path/filepath/path_test.go
    168425172104--- gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go  2012-12-12 23:13:29.000000000 +0000
    168426 +++ gcc-4.8.1/libgo/go/path/filepath/path_test.go       2013-09-13 19:01:43.749863430 +0000
     172105+++ gcc-4.8.1/libgo/go/path/filepath/path_test.go       2013-10-01 16:06:44.200554279 +0000
    168427172106@@ -91,7 +91,6 @@
    168428172107 }
     
    168510172189diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go gcc-4.8.1/libgo/go/path/filepath/path_unix.go
    168511172190--- gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go  2012-10-23 04:31:11.000000000 +0000
    168512 +++ gcc-4.8.1/libgo/go/path/filepath/path_unix.go       2013-09-13 19:01:43.749863430 +0000
     172191+++ gcc-4.8.1/libgo/go/path/filepath/path_unix.go       2013-10-01 16:06:44.200554279 +0000
    168513172192@@ -23,3 +23,10 @@
    168514172193 func HasPrefix(p, prefix string) bool {
     
    168524172203diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go gcc-4.8.1/libgo/go/path/filepath/path_windows.go
    168525172204--- gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go       2012-10-23 04:31:11.000000000 +0000
    168526 +++ gcc-4.8.1/libgo/go/path/filepath/path_windows.go    2013-09-13 19:01:43.749863430 +0000
     172205+++ gcc-4.8.1/libgo/go/path/filepath/path_windows.go    2013-10-01 16:06:44.200554279 +0000
    168527172206@@ -70,3 +70,36 @@
    168528172207        }
     
    168564172243diff -Naur gcc-4.8.1.orig/libgo/go/path/path_test.go gcc-4.8.1/libgo/go/path/path_test.go
    168565172244--- gcc-4.8.1.orig/libgo/go/path/path_test.go   2012-12-12 23:13:29.000000000 +0000
    168566 +++ gcc-4.8.1/libgo/go/path/path_test.go        2013-09-13 19:01:43.749863430 +0000
     172245+++ gcc-4.8.1/libgo/go/path/path_test.go        2013-10-01 16:06:44.200554279 +0000
    168567172246@@ -64,7 +64,6 @@
    168568172247 }
     
    168610172289diff -Naur gcc-4.8.1.orig/libgo/go/reflect/all_test.go gcc-4.8.1/libgo/go/reflect/all_test.go
    168611172290--- gcc-4.8.1.orig/libgo/go/reflect/all_test.go 2012-12-12 23:13:29.000000000 +0000
    168612 +++ gcc-4.8.1/libgo/go/reflect/all_test.go      2013-09-13 19:01:43.749863430 +0000
     172291+++ gcc-4.8.1/libgo/go/reflect/all_test.go      2013-10-01 16:06:44.200554279 +0000
    168613172292@@ -13,7 +13,8 @@
    168614172293        "math/rand"
     
    168621172300        "testing"
    168622172301        "time"
     172302@@ -1429,11 +1430,13 @@
     172303        }
     172304 }
     172305 
     172306-/*
     172307-
     172308-Not yet implemented for gccgo.
     172309-
     172310 func TestMakeFunc(t *testing.T) {
     172311+       switch runtime.GOARCH {
     172312+       case "amd64", "386":
     172313+       default:
     172314+               t.Skip("MakeFunc not implemented for " + runtime.GOARCH)
     172315+       }
     172316+
     172317        f := dummy
     172318        fv := MakeFunc(TypeOf(f), func(in []Value) []Value { return in })
     172319        ValueOf(&f).Elem().Set(fv)
     172320@@ -1451,8 +1454,6 @@
     172321        }
     172322 }
     172323 
     172324-*/
     172325-
     172326 type Point struct {
     172327        x, y int
     172328 }
    168623172329@@ -1464,7 +1465,7 @@
    168624172330 
     
    168630172336 }
    168631172337 
    168632 @@ -1480,23 +1481,23 @@
     172338@@ -1480,24 +1481,93 @@
    168633172339        if !ok {
    168634172340                t.Fatalf("method by name failed")
     
    168660172366+       if i != 325 {
    168661172367+               t.Errorf("Pointer Type MethodByName returned %d; want 325", i)
    168662         }
    168663  
    168664         // Curried method of value.
    168665 @@ -1505,7 +1506,76 @@
    168666         if tt := v.Type(); tt != tfunc {
    168667                 t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
    168668         }
    168669 -       i = v.Call([]Value{ValueOf(10)})[0].Int()
     172368+       }
     172369+
     172370+       // Curried method of value.
     172371+       tfunc := TypeOf((func(int) int)(nil))
     172372+       v := ValueOf(p).Method(1)
     172373+       if tt := v.Type(); tt != tfunc {
     172374+               t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
     172375+       }
    168670172376+       i = v.Call([]Value{ValueOf(14)})[0].Int()
    168671172377+       if i != 350 {
     
    168718172424+       if tt := v.Type(); tt != tfunc {
    168719172425+               t.Errorf("Interface MethodByName Type is %s; want %s", tt, tfunc)
    168720 +       }
     172426        }
    168721172427+       i = v.Call([]Value{ValueOf(19)})[0].Int()
    168722172428+       if i != 475 {
     
    168730172436+       p := Point{3, 4}
    168731172437+       var i int64
    168732 +
    168733 +       // Curried method of value.
    168734 +       tfunc := TypeOf((func(int) int)(nil))
    168735 +       v := ValueOf(p).Method(1)
    168736 +       if tt := v.Type(); tt != tfunc {
    168737 +               t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
    168738 +       }
     172438 
     172439        // Curried method of value.
     172440        tfunc := TypeOf((func(int) int)(nil))
     172441@@ -1505,7 +1575,7 @@
     172442        if tt := v.Type(); tt != tfunc {
     172443                t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
     172444        }
     172445-       i = v.Call([]Value{ValueOf(10)})[0].Int()
    168739172446+       i = ValueOf(v.Interface()).Call([]Value{ValueOf(10)})[0].Int()
    168740172447        if i != 250 {
     
    168778172485 
    168779172486        // Curried method of interface value.
    168780 @@ -1550,18 +1620,207 @@
     172487@@ -1550,20 +1620,209 @@
    168781172488        if tt := v.Type(); tt != tfunc {
    168782172489                t.Errorf("Interface Method Type is %s; want %s", tt, tfunc)
     
    168799172506+       if i != 375 {
    168800172507+               t.Errorf("Interface MethodByName returned %d; want 375", i)
    168801 +       }
    168802 +}
    168803 +
     172508        }
     172509 }
     172510 
    168804172511+*/
    168805172512+
     
    168894172601+                       t.Errorf("%s(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
    168895172602+               }
    168896         }
     172603+       }
    168897172604+       */
    168898172605+
     
    168989172696+       vnil := ValueOf(&tnil).Elem()
    168990172697+       shouldPanic(func() { vnil.Method(0) })
    168991  }
    168992  
     172698+}
     172699+
    168993172700 func TestInterfaceSet(t *testing.T) {
     172701        p := &Point{3, 4}
     172702 
    168994172703@@ -1891,6 +2150,7 @@
    168995172704 func (*outer) m() {}
     
    169078172787 }
    169079172788 
    169080 @@ -2755,8 +3037,10 @@
     172789@@ -2124,6 +2406,15 @@
     172790        }
     172791 }
     172792 
     172793+func TestFuncArg(t *testing.T) {
     172794+       f1 := func(i int, f func(int) int) int { return f(i) }
     172795+       f2 := func(i int) int { return i + 1 }
     172796+       r := ValueOf(f1).Call([]Value{ValueOf(100), ValueOf(f2)})
     172797+       if r[0].Int() != 101 {
     172798+               t.Errorf("function returned %d, want 101", r[0].Int())
     172799+       }
     172800+}
     172801+
     172802 var tagGetTests = []struct {
     172803        Tag   StructTag
     172804        Key   string
     172805@@ -2755,8 +3046,10 @@
    169081172806        type T int
    169082172807        st := SliceOf(TypeOf(T(1)))
     
    169089172814        s := fmt.Sprint(v.Interface())
    169090172815        want := "[0 1 2 3 4 5 6 7 8 9]"
    169091 @@ -2769,13 +3053,63 @@
     172816@@ -2769,13 +3062,63 @@
    169092172817        checkSameType(t, Zero(SliceOf(TypeOf(T1(1)))).Interface(), []T1{})
    169093172818 }
     
    169153172878        sv1, _ := v.Recv()
    169154172879        sv2, _ := v.Recv()
    169155 @@ -2790,13 +3124,63 @@
     172880@@ -2790,13 +3133,63 @@
    169156172881        checkSameType(t, Zero(ChanOf(BothDir, TypeOf(T1(1)))).Interface(), (chan T1)(nil))
    169157172882 }
     
    169217172942        s := fmt.Sprint(v.Interface())
    169218172943        want := "map[a:1]"
    169219 @@ -2806,6 +3190,81 @@
     172944@@ -2806,6 +3199,81 @@
    169220172945 
    169221172946        // check that type already in binary is found
     
    169301173026diff -Naur gcc-4.8.1.orig/libgo/go/reflect/deepequal.go gcc-4.8.1/libgo/go/reflect/deepequal.go
    169302173027--- gcc-4.8.1.orig/libgo/go/reflect/deepequal.go        2012-11-21 07:03:38.000000000 +0000
    169303 +++ gcc-4.8.1/libgo/go/reflect/deepequal.go     2013-09-13 19:01:43.753196755 +0000
     173028+++ gcc-4.8.1/libgo/go/reflect/deepequal.go     2013-10-01 16:06:44.200554279 +0000
    169304173029@@ -118,8 +118,6 @@
    169305173030                // Normal equality suffices
     
    169313173038diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc.go gcc-4.8.1/libgo/go/reflect/makefunc.go
    169314173039--- gcc-4.8.1.orig/libgo/go/reflect/makefunc.go 2012-10-23 04:31:11.000000000 +0000
    169315 +++ gcc-4.8.1/libgo/go/reflect/makefunc.go      2013-09-13 19:01:43.753196755 +0000
    169316 @@ -10,6 +10,14 @@
     173040+++ gcc-4.8.1/libgo/go/reflect/makefunc.go      2013-10-01 16:06:44.200554279 +0000
     173041@@ -7,9 +7,18 @@
     173042 package reflect
     173043 
     173044 import (
     173045+       "runtime"
    169317173046        "unsafe"
    169318173047 )
     
    169329173058 // that wraps the function fn. When called, that new function
    169330173059 // does the following:
    169331 @@ -37,45 +45,35 @@
     173060@@ -37,45 +46,54 @@
    169332173061                panic("reflect: call of MakeFunc with non-Func type")
    169333173062        }
    169334173063 
    169335173064-       ft := (*funcType)(unsafe.Pointer(typ.common()))
    169336 +       t := typ.common()
    169337 +       ftyp := (*funcType)(unsafe.Pointer(t))
    169338  
     173065-
    169339173066-       // We will build a function that uses the C stdarg routines to
    169340173067-       // pull out the arguments.  Since the stdarg routines require
     
    169362173089-               result = Kind(ft.out[0].kind)
    169363173090-               resultSize = ft.out[0].size
    169364 -       default:
     173091+       switch runtime.GOARCH {
     173092+       case "amd64", "386":
     173093        default:
    169365173094-               result = Struct
    169366 -       }
    169367 +       _, _ = t, ftyp
    169368  
    169369         panic("reflect MakeFunc not implemented")
     173095+               panic("reflect.MakeFunc not implemented for " + runtime.GOARCH)
     173096        }
     173097 
     173098-       panic("reflect MakeFunc not implemented")
     173099+       t := typ.common()
     173100+       ftyp := (*funcType)(unsafe.Pointer(t))
     173101+
     173102+       // Indirect Go func value (dummy) to obtain
     173103+       // actual code address. (A Go func value is a pointer
     173104+       // to a C function pointer. http://golang.org/s/go11func.)
     173105+       dummy := makeFuncStub
     173106+       code := **(**uintptr)(unsafe.Pointer(&dummy))
     173107+
     173108+       impl := &makeFuncImpl{code: code, typ: ftyp, fn: fn}
     173109+
     173110+       return Value{t, unsafe.Pointer(impl), flag(Func) << flagKindShift}
    169370173111+}
     173112+
     173113+// makeFuncStub is an assembly function that is the code half of
     173114+// the function returned from MakeFunc. It expects a *callReflectFunc
     173115+// as its context register, and its job is to invoke callReflect(ctxt, frame)
     173116+// where ctxt is the context register and frame is a pointer to the first
     173117+// word in the passed-in argument frame.
     173118+func makeFuncStub()
    169371173119+
    169372173120+// makeMethodValue converts v from the rcvr+method index representation
     
    169401173149+       panic("reflect makeMethodValue not implemented")
    169402173150 }
     173151diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc_386.S gcc-4.8.1/libgo/go/reflect/makefunc_386.S
     173152--- gcc-4.8.1.orig/libgo/go/reflect/makefunc_386.S      1970-01-01 00:00:00.000000000 +0000
     173153+++ gcc-4.8.1/libgo/go/reflect/makefunc_386.S   2013-10-01 16:06:44.200554279 +0000
     173154@@ -0,0 +1,111 @@
     173155+# Copyright 2013 The Go Authors. All rights reserved.
     173156+# Use of this source code is governed by a BSD-style
     173157+# license that can be found in the LICENSE file.
     173158+
     173159+# MakeFunc 386 assembly code.
     173160+
     173161+       .global reflect.makeFuncStub
     173162+
     173163+#ifdef __ELF__
     173164+       .type reflect.makeFuncStub,@function
     173165+#endif
     173166+
     173167+reflect.makeFuncStub:
     173168+       .cfi_startproc
     173169+
     173170+       # Go does not provide any equivalent to the regparm function
     173171+       # attribute, so on Go we do not need to worry about passing
     173172+       # parameters in registers.  We just pass a pointer to the
     173173+       # arguments on the stack.
     173174+       #
     173175+       # We do need to pick up the return values, though, so we pass
     173176+       # a pointer to a struct that looks like this.
     173177+       # struct {
     173178+       #   esp uint32          // 0x0
     173179+       #   eax uint32          // 0x4
     173180+       #   st0 uint64          // 0x8
     173181+       # }
     173182+
     173183+       pushl   %ebp
     173184+       .cfi_def_cfa_offset 8
     173185+       .cfi_offset %ebp, -8
     173186+       movl    %esp, %ebp
     173187+       .cfi_def_cfa_register %ebp
     173188+
     173189+       pushl   %ebx            # In case this is PIC.
     173190+
     173191+       subl    $36, %esp       # Enough for args and to align stack.
     173192+       .cfi_offset %ebx, -12
     173193+
     173194+#ifdef __PIC__
     173195+       call    __x86.get_pc_thunk.bx
     173196+       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
     173197+#endif
     173198+
     173199+       leal    8(%ebp), %eax   # Set esp field in struct.
     173200+       movl    %eax, -24(%ebp)
     173201+
     173202+#ifdef __PIC__
     173203+       call    __go_get_closure@PLT
     173204+#else
     173205+       call    __go_get_closure
     173206+#endif
     173207+
     173208+       movl    %eax, 4(%esp)
     173209+
     173210+       leal    -24(%ebp), %eax
     173211+       movl    %eax, (%esp)
     173212+
     173213+#ifdef __PIC__
     173214+       call    reflect.MakeFuncStubGo@PLT
     173215+#else
     173216+       call    reflect.MakeFuncStubGo
     173217+#endif
     173218+
     173219+       # Set return registers.
     173220+
     173221+       movl    -20(%ebp), %eax
     173222+       fldl    -16(%ebp)
     173223+
     173224+#ifdef __SSE2__
     173225+       # In case we are compiling with -msseregparm.  This won't work
     173226+       # correctly if only SSE1 is supported, but that seems unlikely.
     173227+       movsd   -16(%ebp), %xmm0
     173228+#endif
     173229+
     173230+       addl    $36, %esp
     173231+       popl    %ebx
     173232+       .cfi_restore %ebx
     173233+       popl    %ebp
     173234+       .cfi_restore %ebp
     173235+       .cfi_def_cfa %esp, 4
     173236+
     173237+       ret
     173238+       .cfi_endproc
     173239+
     173240+#ifdef __ELF__
     173241+       .size   reflect.makeFuncStub, . - reflect.makeFuncStub
     173242+#endif
     173243+
     173244+#ifdef __PIC__
     173245+       .section        .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
     173246+       .globl  __x86.get_pc_thunk.bx
     173247+       .hidden __x86.get_pc_thunk.bx
     173248+#ifdef __ELF__
     173249+       .type   __x86.get_pc_thunk.bx, @function
     173250+#endif
     173251+__x86.get_pc_thunk.bx:
     173252+       .cfi_startproc
     173253+       movl    (%esp), %ebx
     173254+       ret
     173255+       .cfi_endproc
     173256+#ifdef __ELF__
     173257+       .size   __x86.get_pc_thunk.bx, . - __x86.get_pc_thunk.bx
     173258+#endif
     173259+#endif
     173260+
     173261+#ifdef __ELF__
     173262+       .section        .note.GNU-stack,"",@progbits
     173263+       .section        .note.GNU-split-stack,"",@progbits
     173264+       .section        .note.GNU-no-split-stack,"",@progbits
     173265+#endif
     173266diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc_amd64.S gcc-4.8.1/libgo/go/reflect/makefunc_amd64.S
     173267--- gcc-4.8.1.orig/libgo/go/reflect/makefunc_amd64.S    1970-01-01 00:00:00.000000000 +0000
     173268+++ gcc-4.8.1/libgo/go/reflect/makefunc_amd64.S 2013-10-01 16:06:44.200554279 +0000
     173269@@ -0,0 +1,107 @@
     173270+# Copyright 2013 The Go Authors. All rights reserved.
     173271+# Use of this source code is governed by a BSD-style
     173272+# license that can be found in the LICENSE file.
     173273+
     173274+# MakeFunc amd64 assembly code.
     173275+
     173276+       .global reflect.makeFuncStub
     173277+
     173278+#ifdef __ELF__
     173279+       .type   reflect.makeFuncStub,@function
     173280+#endif
     173281+
     173282+reflect.makeFuncStub:
     173283+       .cfi_startproc
     173284+
     173285+       # Store all the parameter registers in a struct that looks
     173286+       # like:
     173287+       # struct {
     173288+       #   rax uint64          // 0x0
     173289+       #   rdi uint64          // 0x8
     173290+       #   rsi uint64          // 0x10
     173291+       #   rdx uint64          // 0x18
     173292+       #   rcx uint64          // 0x20
     173293+       #   r8 uint64           // 0x28
     173294+       #   r9 uint64           // 0x30
     173295+       #   rsp uint64          // 0x38 Pointer to arguments on stack.
     173296+       #   xmm0 [2]uint64      // 0x40
     173297+       #   xmm1 [2]uint64      // 0x50
     173298+       #   xmm2 [2]uint64      // 0x60
     173299+       #   xmm3 [2]uint64      // 0x70
     173300+       #   xmm4 [2]uint64      // 0x80
     173301+       #   xmm5 [2]uint64      // 0x90
     173302+       #   xmm6 [2]uint64      // 0xa0
     173303+       #   xmm7 [2]uint64      // 0xb0
     173304+       # };
     173305+
     173306+       pushq   %rbp
     173307+       .cfi_def_cfa_offset 16
     173308+       .cfi_offset %rbp, -16
     173309+       movq    %rsp, %rbp
     173310+       .cfi_def_cfa_register %rbp
     173311+
     173312+       subq    $0xc0, %rsp             # Space for struct on stack.
     173313+
     173314+       movq    %rax, 0x0(%rsp)
     173315+       movq    %rdi, 0x8(%rsp)
     173316+       movq    %rsi, 0x10(%rsp)
     173317+       movq    %rdx, 0x18(%rsp)
     173318+       movq    %rcx, 0x20(%rsp)
     173319+       movq    %r8, 0x28(%rsp)
     173320+       movq    %r9, 0x30(%rsp)
     173321+       leaq    16(%rbp), %rax
     173322+       movq    %rax, 0x38(%rsp)
     173323+       movdqa  %xmm0, 0x40(%rsp)
     173324+       movdqa  %xmm1, 0x50(%rsp)
     173325+       movdqa  %xmm2, 0x60(%rsp)
     173326+       movdqa  %xmm3, 0x70(%rsp)
     173327+       movdqa  %xmm4, 0x80(%rsp)
     173328+       movdqa  %xmm5, 0x90(%rsp)
     173329+       movdqa  %xmm6, 0xa0(%rsp)
     173330+       movdqa  %xmm7, 0xb0(%rsp)
     173331+
     173332+       # Get function type.
     173333+#ifdef __PIC__
     173334+       call    __go_get_closure@PLT
     173335+#else
     173336+       call    __go_get_closure
     173337+#endif
     173338+       movq    %rax, %rsi
     173339+
     173340+       movq    %rsp, %rdi
     173341+
     173342+#ifdef __PIC__
     173343+       call    reflect.MakeFuncStubGo@PLT
     173344+#else
     173345+       call    reflect.MakeFuncStubGo
     173346+#endif
     173347+
     173348+       # The structure will be updated with any return values.  Load
     173349+       # all possible return registers before returning to the caller.
     173350+
     173351+       movq    0x0(%rsp), %rax
     173352+       movq    0x18(%rsp), %rdx
     173353+       movq    0x8(%rsp), %rdi
     173354+       movq    0x10(%rsp), %rsi
     173355+       movdqa  0x40(%rsp), %xmm0
     173356+       movdqa  0x50(%rsp), %xmm1
     173357+
     173358+       # long double values are returned on the floating point stack,
     173359+       # but we don't worry about that since Go doesn't have a long
     173360+       # double type.
     173361+
     173362+       leave
     173363+       .cfi_def_cfa %rsp, 8
     173364+
     173365+       ret
     173366+
     173367+       .cfi_endproc
     173368+#ifdef __ELF__
     173369+       .size   reflect.makeFuncStub, . - reflect.makeFuncStub
     173370+#endif
     173371+
     173372+#ifdef __ELF__
     173373+       .section        .note.GNU-stack,"",@progbits
     173374+       .section        .note.GNU-split-stack,"",@progbits
     173375+       .section        .note.GNU-no-split-stack,"",@progbits
     173376+#endif
     173377diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc_dummy.c gcc-4.8.1/libgo/go/reflect/makefunc_dummy.c
     173378--- gcc-4.8.1.orig/libgo/go/reflect/makefunc_dummy.c    1970-01-01 00:00:00.000000000 +0000
     173379+++ gcc-4.8.1/libgo/go/reflect/makefunc_dummy.c 2013-10-01 16:06:44.200554279 +0000
     173380@@ -0,0 +1,12 @@
     173381+// Copyright 2013 The Go Authors.  All rights reserved.
     173382+// Use of this source code is governed by a BSD-style
     173383+// license that can be found in the LICENSE file.
     173384+
     173385+// +build !amd64
     173386+
     173387+// Dummy function for processors without makefunc support.
     173388+
     173389+void makeFuncStub () __asm__ ("reflect.makeFuncStub");
     173390+void makeFuncStub ()
     173391+{
     173392+}
     173393diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_386.go gcc-4.8.1/libgo/go/reflect/makefuncgo_386.go
     173394--- gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_386.go   1970-01-01 00:00:00.000000000 +0000
     173395+++ gcc-4.8.1/libgo/go/reflect/makefuncgo_386.go        2013-10-01 16:06:44.200554279 +0000
     173396@@ -0,0 +1,135 @@
     173397+// Copyright 2013 The Go Authors.  All rights reserved.
     173398+// Use of this source code is governed by a BSD-style
     173399+// license that can be found in the LICENSE file.
     173400+
     173401+// MakeFunc 386 implementation.
     173402+
     173403+package reflect
     173404+
     173405+import "unsafe"
     173406+
     173407+// The assembler stub will pass a pointer to this structure.  We
     173408+// assume that no parameters are passed in registers--that is, we do
     173409+// not support the -mregparm option.  On return we will set the
     173410+// registers that might hold result values.
     173411+type i386Regs struct {
     173412+       esp uint32
     173413+       eax uint32 // Value to return in %eax.
     173414+       st0 uint64 // Value to return in %st(0).
     173415+}
     173416+
     173417+// MakeFuncStubGo implements the 386 calling convention for MakeFunc.
     173418+// This should not be called.  It is exported so that assembly code
     173419+// can call it.
     173420+
     173421+func MakeFuncStubGo(regs *i386Regs, c *makeFuncImpl) {
     173422+       ftyp := c.typ
     173423+
     173424+       // See if the result requires a struct.  If it does, the first
     173425+       // parameter is a pointer to the struct.
     173426+       retStruct := false
     173427+       retEmpty := false
     173428+       switch len(ftyp.out) {
     173429+       case 0:
     173430+               retEmpty = true
     173431+       case 1:
     173432+               if ftyp.out[0].size == 0 {
     173433+                       retEmpty = true
     173434+               } else {
     173435+                       switch ftyp.out[0].Kind() {
     173436+                       case Complex64, Complex128, Array, Interface, Slice, String, Struct:
     173437+                               retStruct = true
     173438+                       }
     173439+               }
     173440+       default:
     173441+               size := uintptr(0)
     173442+               for _, typ := range ftyp.out {
     173443+                       size += typ.size
     173444+               }
     173445+               if size == 0 {
     173446+                       retEmpty = true
     173447+               } else {
     173448+                       retStruct = true
     173449+               }
     173450+       }
     173451+
     173452+       in := make([]Value, 0, len(ftyp.in))
     173453+       ap := uintptr(regs.esp)
     173454+
     173455+       var retPtr unsafe.Pointer
     173456+       if retStruct {
     173457+               retPtr = *(*unsafe.Pointer)(unsafe.Pointer(ap))
     173458+               ap += ptrSize
     173459+       }
     173460+
     173461+       for _, rt := range ftyp.in {
     173462+               ap = align(ap, ptrSize)
     173463+
     173464+               // We have to copy the argument onto the heap in case
     173465+               // the function hangs on the reflect.Value we pass it.
     173466+               p := unsafe_New(rt)
     173467+               memmove(p, unsafe.Pointer(ap), rt.size)
     173468+
     173469+               v := Value{rt, p, flag(rt.Kind()<<flagKindShift) | flagIndir}
     173470+               in = append(in, v)
     173471+               ap += rt.size
     173472+       }
     173473+
     173474+       // Call the real function.
     173475+
     173476+       out := c.fn(in)
     173477+
     173478+       if len(out) != len(ftyp.out) {
     173479+               panic("reflect: wrong return count from function created by MakeFunc")
     173480+       }
     173481+
     173482+       for i, typ := range ftyp.out {
     173483+               v := out[i]
     173484+               if v.typ != typ {
     173485+                       panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
     173486+                               " returned wrong type: have " +
     173487+                               out[i].typ.String() + " for " + typ.String())
     173488+               }
     173489+               if v.flag&flagRO != 0 {
     173490+                       panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
     173491+                               " returned value obtained from unexported field")
     173492+               }
     173493+       }
     173494+
     173495+       if retEmpty {
     173496+               return
     173497+       }
     173498+
     173499+       if retStruct {
     173500+               off := uintptr(0)
     173501+               for i, typ := range ftyp.out {
     173502+                       v := out[i]
     173503+                       off = align(off, uintptr(typ.fieldAlign))
     173504+                       addr := unsafe.Pointer(uintptr(retPtr) + off)
     173505+                       if v.flag&flagIndir == 0 && (v.kind() == Ptr || v.kind() == UnsafePointer) {
     173506+                               storeIword(addr, iword(v.val), typ.size)
     173507+                       } else {
     173508+                               memmove(addr, v.val, typ.size)
     173509+                       }
     173510+                       off += typ.size
     173511+               }
     173512+               regs.eax = uint32(uintptr(retPtr))
     173513+               return
     173514+       }
     173515+
     173516+       if len(ftyp.out) != 1 {
     173517+               panic("inconsistency")
     173518+       }
     173519+
     173520+       v := out[0]
     173521+       w := v.iword()
     173522+       if v.Kind() != Ptr && v.Kind() != UnsafePointer {
     173523+               w = loadIword(unsafe.Pointer(w), v.typ.size)
     173524+       }
     173525+       switch v.Kind() {
     173526+       case Float32, Float64:
     173527+               regs.st0 = uint64(uintptr(w))
     173528+       default:
     173529+               regs.eax = uint32(uintptr(w))
     173530+       }
     173531+}
     173532diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_amd64.go gcc-4.8.1/libgo/go/reflect/makefuncgo_amd64.go
     173533--- gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_amd64.go 1970-01-01 00:00:00.000000000 +0000
     173534+++ gcc-4.8.1/libgo/go/reflect/makefuncgo_amd64.go      2013-10-01 16:06:44.200554279 +0000
     173535@@ -0,0 +1,493 @@
     173536+// Copyright 2013 The Go Authors.  All rights reserved.
     173537+// Use of this source code is governed by a BSD-style
     173538+// license that can be found in the LICENSE file.
     173539+
     173540+// MakeFunc amd64 implementation.
     173541+
     173542+package reflect
     173543+
     173544+import "unsafe"
     173545+
     173546+// The assembler stub will pass a pointer to this structure.
     173547+// This will come in holding all the registers that might hold
     173548+// function parameters.  On return we will set the registers that
     173549+// might hold result values.
     173550+type amd64Regs struct {
     173551+       rax  uint64
     173552+       rdi  uint64
     173553+       rsi  uint64
     173554+       rdx  uint64
     173555+       rcx  uint64
     173556+       r8   uint64
     173557+       r9   uint64
     173558+       rsp  uint64
     173559+       xmm0 [2]uint64
     173560+       xmm1 [2]uint64
     173561+       xmm2 [2]uint64
     173562+       xmm3 [2]uint64
     173563+       xmm4 [2]uint64
     173564+       xmm5 [2]uint64
     173565+       xmm6 [2]uint64
     173566+       xmm7 [2]uint64
     173567+}
     173568+
     173569+// Argument classifications.  The amd64 ELF ABI uses several more, but
     173570+// these are the only ones that arise for Go types.
     173571+type amd64Class int
     173572+
     173573+const (
     173574+       amd64Integer amd64Class = iota
     173575+       amd64SSE
     173576+       amd64NoClass
     173577+       amd64Memory
     173578+)
     173579+
     173580+// amd64Classify returns the one or two register classes needed to
     173581+// pass the value of type.  Go types never need more than two
     173582+// registers.  amd64Memory means the value is stored in memory.
     173583+// amd64NoClass means the register is not used.
     173584+func amd64Classify(typ *rtype) (amd64Class, amd64Class) {
     173585+       switch typ.Kind() {
     173586+       default:
     173587+               panic("internal error--unknown kind in amd64Classify")
     173588+
     173589+       case Bool, Int, Int8, Int16, Int32, Int64,
     173590+               Uint, Uint8, Uint16, Uint32, Uint64,
     173591+               Uintptr, Chan, Func, Map, Ptr, UnsafePointer:
     173592+
     173593+               return amd64Integer, amd64NoClass
     173594+
     173595+       case Float32, Float64, Complex64:
     173596+               return amd64SSE, amd64NoClass
     173597+
     173598+       case Complex128:
     173599+               return amd64SSE, amd64SSE
     173600+
     173601+       case Array:
     173602+               if typ.size == 0 {
     173603+                       return amd64NoClass, amd64NoClass
     173604+               } else if typ.size > 16 {
     173605+                       return amd64Memory, amd64NoClass
     173606+               }
     173607+               atyp := (*arrayType)(unsafe.Pointer(typ))
     173608+               eclass1, eclass2 := amd64Classify(atyp.elem)
     173609+               if eclass1 == amd64Memory {
     173610+                       return amd64Memory, amd64NoClass
     173611+               }
     173612+               if eclass2 == amd64NoClass && typ.size > 8 {
     173613+                       eclass2 = eclass1
     173614+               }
     173615+               return eclass1, eclass2
     173616+
     173617+       case Interface:
     173618+               return amd64Integer, amd64Integer
     173619+
     173620+       case Slice:
     173621+               return amd64Memory, amd64NoClass
     173622+
     173623+       case String:
     173624+               return amd64Integer, amd64Integer
     173625+
     173626+       case Struct:
     173627+               if typ.size == 0 {
     173628+                       return amd64NoClass, amd64NoClass
     173629+               } else if typ.size > 16 {
     173630+                       return amd64Memory, amd64NoClass
     173631+               }
     173632+               var first, second amd64Class
     173633+               f := amd64NoClass
     173634+               onFirst := true
     173635+               styp := (*structType)(unsafe.Pointer(typ))
     173636+               for _, field := range styp.fields {
     173637+                       if onFirst && field.offset >= 8 {
     173638+                               first = f
     173639+                               f = amd64NoClass
     173640+                               onFirst = false
     173641+                       }
     173642+                       fclass1, fclass2 := amd64Classify(field.typ)
     173643+                       f = amd64MergeClasses(f, fclass1)
     173644+                       if fclass2 != amd64NoClass {
     173645+                               if !onFirst {
     173646+                                       panic("amd64Classify inconsistent")
     173647+                               }
     173648+                               first = f
     173649+                               f = fclass2
     173650+                               onFirst = false
     173651+                       }
     173652+               }
     173653+               if onFirst {
     173654+                       first = f
     173655+                       second = amd64NoClass
     173656+               } else {
     173657+                       second = f
     173658+               }
     173659+               if first == amd64Memory || second == amd64Memory {
     173660+                       return amd64Memory, amd64NoClass
     173661+               }
     173662+               return first, second
     173663+       }
     173664+}
     173665+
     173666+// amd64MergeClasses merges two register classes as described in the
     173667+// amd64 ELF ABI.
     173668+func amd64MergeClasses(c1, c2 amd64Class) amd64Class {
     173669+       switch {
     173670+       case c1 == c2:
     173671+               return c1
     173672+       case c1 == amd64NoClass:
     173673+               return c2
     173674+       case c2 == amd64NoClass:
     173675+               return c1
     173676+       case c1 == amd64Memory || c2 == amd64Memory:
     173677+               return amd64Memory
     173678+       case c1 == amd64Integer || c2 == amd64Integer:
     173679+               return amd64Integer
     173680+       default:
     173681+               return amd64SSE
     173682+       }
     173683+}
     173684+
     173685+// MakeFuncStubGo implements the amd64 calling convention for
     173686+// MakeFunc.  This should not be called.  It is exported so that
     173687+// assembly code can call it.
     173688+
     173689+func MakeFuncStubGo(regs *amd64Regs, c *makeFuncImpl) {
     173690+       ftyp := c.typ
     173691+
     173692+       // See if the result requires a struct.  If it does, the first
     173693+       // parameter is a pointer to the struct.
     173694+       var ret1, ret2 amd64Class
     173695+       switch len(ftyp.out) {
     173696+       case 0:
     173697+               ret1, ret2 = amd64NoClass, amd64NoClass
     173698+       case 1:
     173699+               ret1, ret2 = amd64Classify(ftyp.out[0])
     173700+       default:
     173701+               off := uintptr(0)
     173702+               f := amd64NoClass
     173703+               onFirst := true
     173704+               for _, rt := range ftyp.out {
     173705+                       off = align(off, uintptr(rt.fieldAlign))
     173706+
     173707+                       if onFirst && off >= 8 {
     173708+                               ret1 = f
     173709+                               f = amd64NoClass
     173710+                               onFirst = false
     173711+                       }
     173712+
     173713+                       off += rt.size
     173714+                       if off > 16 {
     173715+                               break
     173716+                       }
     173717+
     173718+                       fclass1, fclass2 := amd64Classify(rt)
     173719+                       f = amd64MergeClasses(f, fclass1)
     173720+                       if fclass2 != amd64NoClass {
     173721+                               if !onFirst {
     173722+                                       panic("amd64Classify inconsistent")
     173723+                               }
     173724+                               ret1 = f
     173725+                               f = fclass2
     173726+                               onFirst = false
     173727+                       }
     173728+               }
     173729+               if off > 16 {
     173730+                       ret1, ret2 = amd64Memory, amd64NoClass
     173731+               } else {
     173732+                       if onFirst {
     173733+                               ret1, ret2 = f, amd64NoClass
     173734+                       } else {
     173735+                               ret2 = f
     173736+                       }
     173737+               }
     173738+               if ret1 == amd64Memory || ret2 == amd64Memory {
     173739+                       ret1, ret2 = amd64Memory, amd64NoClass
     173740+               }
     173741+       }
     173742+
     173743+       in := make([]Value, 0, len(ftyp.in))
     173744+       intreg := 0
     173745+       ssereg := 0
     173746+       ap := uintptr(regs.rsp)
     173747+
     173748+       maxIntregs := 6 // When we support Windows, this would be 4.
     173749+       maxSSEregs := 8
     173750+
     173751+       if ret1 == amd64Memory {
     173752+               // We are returning a value in memory, which means
     173753+               // that the first argument is a hidden parameter
     173754+               // pointing to that return area.
     173755+               intreg++
     173756+       }
     173757+
     173758+argloop:
     173759+       for _, rt := range ftyp.in {
     173760+               c1, c2 := amd64Classify(rt)
     173761+
     173762+               fl := flag(rt.Kind()) << flagKindShift
     173763+               if c2 == amd64NoClass {
     173764+
     173765+                       // Argument is passed in a single register or
     173766+                       // in memory.
     173767+
     173768+                       switch c1 {
     173769+                       case amd64NoClass:
     173770+                               v := Value{rt, nil, fl | flagIndir}
     173771+                               in = append(in, v)
     173772+                               continue argloop
     173773+                       case amd64Integer:
     173774+                               if intreg < maxIntregs {
     173775+                                       reg := amd64IntregVal(regs, intreg)
     173776+                                       iw := unsafe.Pointer(reg)
     173777+                                       if k := rt.Kind(); k != Ptr && k != UnsafePointer {
     173778+                                               iw = unsafe.Pointer(&reg)
     173779+                                               fl |= flagIndir
     173780+                                       }
     173781+                                       v := Value{rt, iw, fl}
     173782+                                       in = append(in, v)
     173783+                                       intreg++
     173784+                                       continue argloop
     173785+                               }
     173786+                       case amd64SSE:
     173787+                               if ssereg < maxSSEregs {
     173788+                                       reg := amd64SSEregVal(regs, ssereg)
     173789+                                       v := Value{rt, unsafe.Pointer(&reg), fl | flagIndir}
     173790+                                       in = append(in, v)
     173791+                                       ssereg++
     173792+                                       continue argloop
     173793+                               }
     173794+                       }
     173795+
     173796+                       in, ap = amd64Memarg(in, ap, rt)
     173797+                       continue argloop
     173798+               }
     173799+
     173800+               // Argument is passed in two registers.
     173801+
     173802+               nintregs := 0
     173803+               nsseregs := 0
     173804+               switch c1 {
     173805+               case amd64Integer:
     173806+                       nintregs++
     173807+               case amd64SSE:
     173808+                       nsseregs++
     173809+               default:
     173810+                       panic("inconsistent")
     173811+               }
     173812+               switch c2 {
     173813+               case amd64Integer:
     173814+                       nintregs++
     173815+               case amd64SSE:
     173816+                       nsseregs++
     173817+               default:
     173818+                       panic("inconsistent")
     173819+               }
     173820+
     173821+               // If the whole argument does not fit in registers, it
     173822+               // is passed in memory.
     173823+
     173824+               if intreg+nintregs > maxIntregs || ssereg+nsseregs > maxSSEregs {
     173825+                       in, ap = amd64Memarg(in, ap, rt)
     173826+                       continue argloop
     173827+               }
     173828+
     173829+               var word1, word2 uintptr
     173830+               switch c1 {
     173831+               case amd64Integer:
     173832+                       word1 = amd64IntregVal(regs, intreg)
     173833+                       intreg++
     173834+               case amd64SSE:
     173835+                       word1 = amd64SSEregVal(regs, ssereg)
     173836+                       ssereg++
     173837+               }
     173838+               switch c2 {
     173839+               case amd64Integer:
     173840+                       word2 = amd64IntregVal(regs, intreg)
     173841+                       intreg++
     173842+               case amd64SSE:
     173843+                       word2 = amd64SSEregVal(regs, ssereg)
     173844+                       ssereg++
     173845+               }
     173846+
     173847+               p := unsafe_New(rt)
     173848+               *(*uintptr)(p) = word1
     173849+               *(*uintptr)(unsafe.Pointer(uintptr(p) + ptrSize)) = word2
     173850+               v := Value{rt, p, fl | flagIndir}
     173851+               in = append(in, v)
     173852+       }
     173853+
     173854+       // All the real arguments have been found and turned into
     173855+       // Value's.  Call the real function.
     173856+
     173857+       out := c.fn(in)
     173858+
     173859+       if len(out) != len(ftyp.out) {
     173860+               panic("reflect: wrong return count from function created by MakeFunc")
     173861+       }
     173862+
     173863+       for i, typ := range ftyp.out {
     173864+               v := out[i]
     173865+               if v.typ != typ {
     173866+                       panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
     173867+                               " returned wrong type: have " +
     173868+                               out[i].typ.String() + " for " + typ.String())
     173869+               }
     173870+               if v.flag&flagRO != 0 {
     173871+                       panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
     173872+                               " returned value obtained from unexported field")
     173873+               }
     173874+       }
     173875+
     173876+       if ret1 == amd64NoClass {
     173877+               return
     173878+       }
     173879+
     173880+       if ret1 == amd64Memory {
     173881+               // The address of the memory area was passed as a
     173882+               // hidden parameter in %rdi.
     173883+               ptr := unsafe.Pointer(uintptr(regs.rdi))
     173884+               off := uintptr(0)
     173885+               for i, typ := range ftyp.out {
     173886+                       v := out[i]
     173887+                       off = align(off, uintptr(typ.fieldAlign))
     173888+                       addr := unsafe.Pointer(uintptr(ptr) + off)
     173889+                       if v.flag&flagIndir == 0 && (v.kind() == Ptr || v.kind() == UnsafePointer) {
     173890+                               storeIword(addr, iword(v.val), typ.size)
     173891+                       } else {
     173892+                               memmove(addr, v.val, typ.size)
     173893+                       }
     173894+                       off += typ.size
     173895+               }
     173896+               return
     173897+       }
     173898+
     173899+       if len(out) == 1 && ret2 == amd64NoClass {
     173900+               v := out[0]
     173901+               w := v.iword()
     173902+               if v.Kind() != Ptr && v.Kind() != UnsafePointer {
     173903+                       w = loadIword(unsafe.Pointer(w), v.typ.size)
     173904+               }
     173905+               switch ret1 {
     173906+               case amd64Integer:
     173907+                       regs.rax = uint64(uintptr(w))
     173908+               case amd64SSE:
     173909+                       regs.xmm0[0] = uint64(uintptr(w))
     173910+                       regs.xmm0[1] = 0
     173911+               default:
     173912+                       panic("inconsistency")
     173913+               }
     173914+               return
     173915+       }
     173916+
     173917+       var buf [2]unsafe.Pointer
     173918+       ptr := unsafe.Pointer(&buf[0])
     173919+       off := uintptr(0)
     173920+       for i, typ := range ftyp.out {
     173921+               v := out[i]
     173922+               off = align(off, uintptr(typ.fieldAlign))
     173923+               addr := unsafe.Pointer(uintptr(ptr) + off)
     173924+               if v.flag&flagIndir == 0 && (v.kind() == Ptr || v.kind() == UnsafePointer) {
     173925+                       storeIword(addr, iword(v.val), typ.size)
     173926+               } else {
     173927+                       memmove(addr, v.val, typ.size)
     173928+               }
     173929+               off += uintptr(typ.size)
     173930+       }
     173931+
     173932+       switch ret1 {
     173933+       case amd64Integer:
     173934+               regs.rax = *(*uint64)(unsafe.Pointer(&buf[0]))
     173935+       case amd64SSE:
     173936+               regs.xmm0[0] = *(*uint64)(unsafe.Pointer(&buf[0]))
     173937+               regs.xmm0[1] = 0
     173938+       default:
     173939+               panic("inconsistency")
     173940+       }
     173941+
     173942+       switch ret2 {
     173943+       case amd64Integer:
     173944+               reg := *(*uint64)(unsafe.Pointer(&buf[1]))
     173945+               if ret1 == amd64Integer {
     173946+                       regs.rdx = reg
     173947+               } else {
     173948+                       regs.rax = reg
     173949+               }
     173950+       case amd64SSE:
     173951+               reg := *(*uint64)(unsafe.Pointer(&buf[1]))
     173952+               if ret1 == amd64Integer {
     173953+                       regs.xmm0[0] = reg
     173954+                       regs.xmm0[1] = 0
     173955+               } else {
     173956+                       regs.xmm1[0] = reg
     173957+                       regs.xmm1[1] = 0
     173958+               }
     173959+       case amd64NoClass:
     173960+       default:
     173961+               panic("inconsistency")
     173962+       }
     173963+}
     173964+
     173965+// The amd64Memarg function adds an argument passed in memory.
     173966+func amd64Memarg(in []Value, ap uintptr, rt *rtype) ([]Value, uintptr) {
     173967+       ap = align(ap, ptrSize)
     173968+       ap = align(ap, uintptr(rt.align))
     173969+
     173970+       // We have to copy the argument onto the heap in case the
     173971+       // function hangs onto the reflect.Value we pass it.
     173972+       p := unsafe_New(rt)
     173973+       memmove(p, unsafe.Pointer(ap), rt.size)
     173974+
     173975+       v := Value{rt, p, flag(rt.Kind()<<flagKindShift) | flagIndir}
     173976+       in = append(in, v)
     173977+       ap += rt.size
     173978+       return in, ap
     173979+}
     173980+
     173981+// The amd64IntregVal function returns the value of integer register i.
     173982+func amd64IntregVal(regs *amd64Regs, i int) uintptr {
     173983+       var r uint64
     173984+       switch i {
     173985+       case 0:
     173986+               r = regs.rdi
     173987+       case 1:
     173988+               r = regs.rsi
     173989+       case 2:
     173990+               r = regs.rdx
     173991+       case 3:
     173992+               r = regs.rcx
     173993+       case 4:
     173994+               r = regs.r8
     173995+       case 5:
     173996+               r = regs.r9
     173997+       default:
     173998+               panic("amd64IntregVal: bad index")
     173999+       }
     174000+       return uintptr(r)
     174001+}
     174002+
     174003+// The amd64SSEregVal function returns the value of SSE register i.
     174004+// Note that although SSE registers can hold two uinptr's, for the
     174005+// types we use in Go we only ever use the least significant one.  The
     174006+// most significant one would only be used for 128 bit types.
     174007+func amd64SSEregVal(regs *amd64Regs, i int) uintptr {
     174008+       var r uint64
     174009+       switch i {
     174010+       case 0:
     174011+               r = regs.xmm0[0]
     174012+       case 1:
     174013+               r = regs.xmm1[0]
     174014+       case 2:
     174015+               r = regs.xmm2[0]
     174016+       case 3:
     174017+               r = regs.xmm3[0]
     174018+       case 4:
     174019+               r = regs.xmm4[0]
     174020+       case 5:
     174021+               r = regs.xmm5[0]
     174022+       case 6:
     174023+               r = regs.xmm6[0]
     174024+       case 7:
     174025+               r = regs.xmm7[0]
     174026+       }
     174027+       return uintptr(r)
     174028+}
    169403174029diff -Naur gcc-4.8.1.orig/libgo/go/reflect/set_test.go gcc-4.8.1/libgo/go/reflect/set_test.go
    169404174030--- gcc-4.8.1.orig/libgo/go/reflect/set_test.go 2012-11-21 07:03:38.000000000 +0000
    169405 +++ gcc-4.8.1/libgo/go/reflect/set_test.go      2013-09-13 19:01:43.753196755 +0000
     174031+++ gcc-4.8.1/libgo/go/reflect/set_test.go      2013-10-01 16:06:44.200554279 +0000
    169406174032@@ -81,7 +81,7 @@
    169407174033                        t.Errorf("#5 after SetMapIndex(b1, b2): %p (!= %p), %t (map=%v)", x, b2, ok, m)
     
    169433174059diff -Naur gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go gcc-4.8.1/libgo/go/reflect/tostring_test.go
    169434174060--- gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go    2011-12-14 15:41:54.000000000 +0000
    169435 +++ gcc-4.8.1/libgo/go/reflect/tostring_test.go 2013-09-13 19:01:43.753196755 +0000
     174061+++ gcc-4.8.1/libgo/go/reflect/tostring_test.go 2013-10-01 16:06:44.204554279 +0000
    169436174062@@ -92,5 +92,4 @@
    169437174063        default:
     
    169442174068diff -Naur gcc-4.8.1.orig/libgo/go/reflect/type.go gcc-4.8.1/libgo/go/reflect/type.go
    169443174069--- gcc-4.8.1.orig/libgo/go/reflect/type.go     2012-12-12 23:13:29.000000000 +0000
    169444 +++ gcc-4.8.1/libgo/go/reflect/type.go  2013-09-13 19:01:43.753196755 +0000
     174070+++ gcc-4.8.1/libgo/go/reflect/type.go  2013-10-01 16:06:44.204554279 +0000
    169445174071@@ -243,8 +243,8 @@
    169446174072        size       uintptr // size in bytes
     
    169647174273diff -Naur gcc-4.8.1.orig/libgo/go/reflect/value.go gcc-4.8.1/libgo/go/reflect/value.go
    169648174274--- gcc-4.8.1.orig/libgo/go/reflect/value.go    2013-01-29 20:52:43.000000000 +0000
    169649 +++ gcc-4.8.1/libgo/go/reflect/value.go 2013-09-13 19:01:43.756530079 +0000
     174275+++ gcc-4.8.1/libgo/go/reflect/value.go 2013-10-01 16:06:44.204554279 +0000
    169650174276@@ -245,7 +245,7 @@
    169651174277                panic(&ValueError{methodName(), 0})
     
    169750174376                        slice.Index(i).Set(x)
    169751174377                }
    169752 @@ -462,6 +433,10 @@
     174378@@ -462,6 +433,7 @@
    169753174379        if v.flag&flagMethod != 0 {
    169754174380                nin++
    169755174381        }
    169756 +       firstPointer := len(in) > 0 && Kind(t.In(0).(*rtype).kind) != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ)
    169757 +       if v.flag&flagMethod == 0 && !firstPointer {
    169758 +               nin++
    169759 +       }
     174382+       firstPointer := len(in) > 0 && t.In(0).Kind() != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ)
    169760174383        params := make([]unsafe.Pointer, nin)
    169761174384        off := 0
    169762174385        if v.flag&flagMethod != 0 {
    169763 @@ -471,7 +446,6 @@
     174386@@ -471,7 +443,6 @@
    169764174387                params[0] = unsafe.Pointer(p)
    169765174388                off = 1
     
    169769174392                pv.mustBeExported()
    169770174393                targ := t.In(i).(*rtype)
    169771 @@ -483,14 +457,17 @@
     174394@@ -483,11 +454,10 @@
    169772174395                } else {
    169773174396                        params[off] = pv.val
     
    169782174405                off++
    169783174406        }
    169784 +       if v.flag&flagMethod == 0 && !firstPointer {
    169785 +               // Closure argument.
    169786 +               params[off] = unsafe.Pointer(&fn)
    169787 +       }
    169788  
    169789         ret := make([]Value, nout)
    169790         results := make([]unsafe.Pointer, nout)
    169791 @@ -509,7 +486,7 @@
     174407@@ -509,7 +479,7 @@
    169792174408                pr = &results[0]
    169793174409        }
     
    169798174414        return ret
    169799174415 }
    169800 @@ -547,7 +524,10 @@
    169801  // frame into a call using Values.
    169802  // It is in this file so that it can be next to the call method above.
    169803  // The remainder of the MakeFunc implementation is in makefunc.go.
     174416@@ -527,8 +497,10 @@
     174417        sawRet := false
     174418        for i, c := range s {
     174419                if c == '(' {
     174420+                       if parens == 0 {
     174421+                               params++
     174422+                       }
     174423                        parens++
     174424-                       params++
     174425                } else if c == ')' {
     174426                        parens--
     174427                } else if parens == 0 && c == ' ' && s[i+1] != '(' && !sawRet {
     174428@@ -539,70 +511,95 @@
     174429        return params > 2
     174430 }
     174431 
     174432-// callReflect is the call implementation used by a function
     174433-// returned by MakeFunc. In many ways it is the opposite of the
     174434-// method Value.call above. The method above converts a call using Values
     174435-// into a call of a function with a concrete argument frame, while
     174436-// callReflect converts a call of a function with a concrete argument
     174437-// frame into a call using Values.
     174438-// It is in this file so that it can be next to the call method above.
     174439-// The remainder of the MakeFunc implementation is in makefunc.go.
    169804174440-func callReflect(ftyp *funcType, f func([]Value) []Value, frame unsafe.Pointer) {
    169805 +func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer) {
    169806 +       ftyp := ctxt.typ
    169807 +       f := ctxt.fn
    169808 +
    169809         // Copy argument frame into Values.
    169810         ptr := frame
    169811         off := uintptr(0)
    169812 @@ -605,6 +585,91 @@
    169813         }
    169814  }
    169815  
     174441-       // Copy argument frame into Values.
     174442-       ptr := frame
     174443-       off := uintptr(0)
     174444-       in := make([]Value, 0, len(ftyp.in))
     174445-       for _, arg := range ftyp.in {
     174446-               typ := arg
     174447-               off += -off & uintptr(typ.align-1)
     174448-               v := Value{typ, nil, flag(typ.Kind()) << flagKindShift}
     174449-               if typ.size <= ptrSize {
     174450-                       // value fits in word.
     174451-                       v.val = unsafe.Pointer(loadIword(unsafe.Pointer(uintptr(ptr)+off), typ.size))
    169816174452+// methodReceiver returns information about the receiver
    169817174453+// described by v. The Value v may or may not have the
     
    169847174483+               fn = unsafe.Pointer(&m.tfn)
    169848174484+               t = m.mtyp
    169849 +               rcvr = v.iword()
    169850 +       }
     174485+               // Can't call iword here, because it checks v.kind,
     174486+               // and that is always Func.
     174487+               if v.flag&flagIndir != 0 && (v.typ.Kind() == Ptr || v.typ.Kind() == UnsafePointer) {
     174488+                       rcvr = loadIword(v.val, v.typ.size)
     174489                } else {
     174490-                       // value does not fit in word.
     174491-                       // Must make a copy, because f might keep a reference to it,
     174492-                       // and we cannot let f keep a reference to the stack frame
     174493-                       // after this function returns, not even a read-only reference.
     174494-                       v.val = unsafe_New(typ)
     174495-                       memmove(v.val, unsafe.Pointer(uintptr(ptr)+off), typ.size)
     174496-                       v.flag |= flagIndir
     174497-               }
     174498-               in = append(in, v)
     174499-               off += typ.size
     174500-       }
     174501-
     174502-       // Call underlying function.
     174503-       out := f(in)
     174504-       if len(out) != len(ftyp.out) {
     174505-               panic("reflect: wrong return count from function created by MakeFunc")
     174506-       }
     174507-
     174508-       // Copy results back into argument frame.
     174509-       if len(ftyp.out) > 0 {
     174510-               off += -off & (ptrSize - 1)
     174511-               for i, arg := range ftyp.out {
     174512-                       typ := arg
     174513-                       v := out[i]
     174514-                       if v.typ != typ {
     174515-                               panic("reflect: function created by MakeFunc using " + funcName(f) +
     174516-                                       " returned wrong type: have " +
     174517-                                       out[i].typ.String() + " for " + typ.String())
     174518-                       }
     174519-                       if v.flag&flagRO != 0 {
     174520-                               panic("reflect: function created by MakeFunc using " + funcName(f) +
     174521-                                       " returned value obtained from unexported field")
     174522-                       }
     174523-                       off += -off & uintptr(typ.align-1)
     174524-                       addr := unsafe.Pointer(uintptr(ptr) + off)
     174525-                       if v.flag&flagIndir == 0 {
     174526-                               storeIword(addr, iword(v.val), typ.size)
     174527-                       } else {
     174528-                               memmove(addr, v.val, typ.size)
     174529-                       }
     174530-                       off += typ.size
     174531+                       rcvr = iword(v.val)
     174532                }
     174533        }
    169851174534+       return
    169852174535+}
     
    169897174580+
    169898174581+       return
    169899 +}
    169900 +
     174582 }
     174583 
    169901174584 // funcName returns the name of f, for use in error messages.
    169902  func funcName(f func([]Value) []Value) string {
    169903         pc := *(*uintptr)(unsafe.Pointer(&f))
    169904 @@ -891,7 +956,7 @@
     174585@@ -891,7 +888,7 @@
    169905174586        if v.flag == 0 {
    169906174587                panic(&ValueError{"reflect.Value.CanInterface", Invalid})
     
    169911174592 
    169912174593 // Interface returns v's current value as an interface{}.
    169913 @@ -910,16 +975,15 @@
     174594@@ -910,16 +907,15 @@
    169914174595        if v.flag == 0 {
    169915174596                panic(&ValueError{"reflect.Value.Interface", 0})
     
    169931174612        k := v.kind()
    169932174613        if k == Interface {
    169933 @@ -974,7 +1038,7 @@
     174614@@ -974,7 +970,7 @@
    169934174615        switch k {
    169935174616        case Chan, Func, Map, Ptr:
     
    169940174621                ptr := v.val
    169941174622                if v.flag&flagIndir != 0 {
    169942 @@ -1093,7 +1157,7 @@
     174623@@ -1093,7 +1089,7 @@
    169943174624 // Method returns a function value corresponding to v's i'th method.
    169944174625 // The arguments to a Call on the returned function should not include
     
    169949174630        if v.typ == nil {
    169950174631                panic(&ValueError{"reflect.Value.Method", Invalid})
    169951 @@ -1101,7 +1165,10 @@
     174632@@ -1101,7 +1097,10 @@
    169952174633        if v.flag&flagMethod != 0 || i < 0 || i >= v.typ.NumMethod() {
    169953174634                panic("reflect: Method index out of range")
     
    169961174642        fl |= flag(i)<<flagMethodShift | flagMethod
    169962174643        return Value{v.typ, v.val, fl}
    169963 @@ -1209,18 +1276,43 @@
     174644@@ -1209,18 +1208,43 @@
    169964174645 // code using reflect cannot obtain unsafe.Pointers
    169965174646 // without importing the unsafe package explicitly.
     
    170008174689                return (*SliceHeader)(v.val).Data
    170009174690        }
    170010 @@ -1243,7 +1335,7 @@
     174691@@ -1243,7 +1267,7 @@
    170011174692 func (v Value) recv(nb bool) (val Value, ok bool) {
    170012174693        tt := (*chanType)(unsafe.Pointer(v.typ))
     
    170017174698        word, selected, ok := chanrecv(v.typ, *(*iword)(v.iword()), nb)
    170018174699        if selected {
    170019 @@ -1271,7 +1363,7 @@
     174700@@ -1271,7 +1295,7 @@
    170020174701 func (v Value) send(x Value, nb bool) (selected bool) {
    170021174702        tt := (*chanType)(unsafe.Pointer(v.typ))
     
    170026174707        x.mustBeExported()
    170027174708        x = x.assignTo("reflect.Value.Send", tt.elem, nil)
    170028 @@ -1444,7 +1536,7 @@
     174709@@ -1444,7 +1468,7 @@
    170029174710 }
    170030174711 
     
    170035174716        var (
    170036174717                cap  int
    170037 @@ -1554,7 +1646,7 @@
     174718@@ -1554,7 +1578,7 @@
    170038174719                // Method on interface.
    170039174720                tt := (*interfaceType)(unsafe.Pointer(v.typ))
     
    170044174725                m := &tt.methods[i]
    170045174726                return toType(m.typ)
    170046 @@ -1562,7 +1654,7 @@
     174727@@ -1562,7 +1586,7 @@
    170047174728        // Method on concrete type.
    170048174729        ut := v.typ.uncommon()
     
    170053174734        m := &ut.methods[i]
    170054174735        return toType(m.mtyp)
    170055 @@ -1611,14 +1703,22 @@
     174736@@ -1611,14 +1635,22 @@
    170056174737 }
    170057174738 
     
    170078174759        Data uintptr
    170079174760        Len  int
    170080 @@ -1787,8 +1887,9 @@
     174761@@ -1787,8 +1819,9 @@
    170081174762 }
    170082174763 
     
    170090174771 // boolean indicating whether the value corresponds to a send on the channel
    170091174772 // (as opposed to a zero value received because the channel is closed).
    170092 @@ -2005,7 +2106,7 @@
     174773@@ -2005,7 +2038,7 @@
    170093174774 // For a conversion to an interface type, target is a suggested scratch space to use.
    170094174775 func (v Value) assignTo(context string, dst *rtype, target *interface{}) Value {
     
    170099174780 
    170100174781        switch {
    170101 @@ -2039,7 +2140,7 @@
     174782@@ -2039,7 +2072,7 @@
    170102174783 // of the value v to type t, Convert panics.
    170103174784 func (v Value) Convert(t Type) Value {
     
    170110174791diff -Naur gcc-4.8.1.orig/libgo/go/regexp/exec_test.go gcc-4.8.1/libgo/go/regexp/exec_test.go
    170111174792--- gcc-4.8.1.orig/libgo/go/regexp/exec_test.go 2013-02-10 06:02:38.000000000 +0000
    170112 +++ gcc-4.8.1/libgo/go/regexp/exec_test.go      2013-09-13 19:01:43.756530079 +0000
     174793+++ gcc-4.8.1/libgo/go/regexp/exec_test.go      2013-10-01 16:06:44.204554279 +0000
    170113174794@@ -89,7 +89,7 @@
    170114174795                txt = f
     
    170169174850diff -Naur gcc-4.8.1.orig/libgo/go/regexp/regexp.go gcc-4.8.1/libgo/go/regexp/regexp.go
    170170174851--- gcc-4.8.1.orig/libgo/go/regexp/regexp.go    2013-01-29 20:52:43.000000000 +0000
    170171 +++ gcc-4.8.1/libgo/go/regexp/regexp.go 2013-09-13 19:01:43.756530079 +0000
     174852+++ gcc-4.8.1/libgo/go/regexp/regexp.go 2013-10-01 16:06:44.204554279 +0000
    170172174853@@ -8,6 +8,8 @@
    170173174854 // general syntax used by Perl, Python, and other languages.
     
    170240174921diff -Naur gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go gcc-4.8.1/libgo/go/regexp/syntax/doc.go
    170241174922--- gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go        2012-10-23 04:31:11.000000000 +0000
    170242 +++ gcc-4.8.1/libgo/go/regexp/syntax/doc.go     2013-09-13 19:01:43.756530079 +0000
     174923+++ gcc-4.8.1/libgo/go/regexp/syntax/doc.go     2013-10-01 16:06:44.204554279 +0000
    170243174924@@ -47,9 +47,9 @@
    170244174925   x{n}?          exactly n x
     
    170256174937diff -Naur gcc-4.8.1.orig/libgo/go/runtime/append_test.go gcc-4.8.1/libgo/go/runtime/append_test.go
    170257174938--- gcc-4.8.1.orig/libgo/go/runtime/append_test.go      2011-09-16 15:47:21.000000000 +0000
    170258 +++ gcc-4.8.1/libgo/go/runtime/append_test.go   2013-09-13 19:01:43.756530079 +0000
     174939+++ gcc-4.8.1/libgo/go/runtime/append_test.go   2013-10-01 16:06:44.204554279 +0000
    170259174940@@ -19,6 +19,67 @@
    170260174941        }
     
    170341175022diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go
    170342175023--- gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go   2012-10-23 04:31:11.000000000 +0000
    170343 +++ gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go        2013-09-13 19:01:43.759863404 +0000
     175024+++ gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go        2013-10-01 16:06:44.204554279 +0000
    170344175025@@ -11,5 +11,80 @@
    170345175026 )
     
    170426175107diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_test.go gcc-4.8.1/libgo/go/runtime/crash_test.go
    170427175108--- gcc-4.8.1.orig/libgo/go/runtime/crash_test.go       2012-11-21 07:03:38.000000000 +0000
    170428 +++ gcc-4.8.1/libgo/go/runtime/crash_test.go    2013-09-13 19:01:43.759863404 +0000
     175109+++ gcc-4.8.1/libgo/go/runtime/crash_test.go    2013-10-01 16:06:44.204554279 +0000
    170429175110@@ -7,21 +7,33 @@
    170430175111 import (
     
    170625175306diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go gcc-4.8.1/libgo/go/runtime/debug/garbage.go
    170626175307--- gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go    1970-01-01 00:00:00.000000000 +0000
    170627 +++ gcc-4.8.1/libgo/go/runtime/debug/garbage.go 2013-09-13 19:01:43.759863404 +0000
     175308+++ gcc-4.8.1/libgo/go/runtime/debug/garbage.go 2013-10-01 16:06:44.204554279 +0000
    170628175309@@ -0,0 +1,101 @@
    170629175310+// Copyright 2013 The Go Authors.  All rights reserved.
     
    170730175411diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go
    170731175412--- gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go       1970-01-01 00:00:00.000000000 +0000
    170732 +++ gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go    2013-09-13 19:01:43.759863404 +0000
     175413+++ gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go    2013-10-01 16:06:44.204554279 +0000
    170733175414@@ -0,0 +1,102 @@
    170734175415+// Copyright 2013 The Go Authors.  All rights reserved.
     
    170836175517diff -Naur gcc-4.8.1.orig/libgo/go/runtime/export_test.go gcc-4.8.1/libgo/go/runtime/export_test.go
    170837175518--- gcc-4.8.1.orig/libgo/go/runtime/export_test.go      2012-10-23 04:31:11.000000000 +0000
    170838 +++ gcc-4.8.1/libgo/go/runtime/export_test.go   2013-09-13 19:01:43.759863404 +0000
     175519+++ gcc-4.8.1/libgo/go/runtime/export_test.go   2013-10-01 16:06:44.204554279 +0000
    170839175520@@ -59,3 +59,9 @@
    170840175521        begin, end := parforiters(desc, uintptr(tid))
     
    170849175530diff -Naur gcc-4.8.1.orig/libgo/go/runtime/extern.go gcc-4.8.1/libgo/go/runtime/extern.go
    170850175531--- gcc-4.8.1.orig/libgo/go/runtime/extern.go   2012-12-12 23:13:29.000000000 +0000
    170851 +++ gcc-4.8.1/libgo/go/runtime/extern.go        2013-09-13 19:01:43.759863404 +0000
     175532+++ gcc-4.8.1/libgo/go/runtime/extern.go        2013-10-01 16:06:44.204554279 +0000
    170852175533@@ -3,10 +3,54 @@
    170853175534 // license that can be found in the LICENSE file.
     
    170921175602diff -Naur gcc-4.8.1.orig/libgo/go/runtime/gc_test.go gcc-4.8.1/libgo/go/runtime/gc_test.go
    170922175603--- gcc-4.8.1.orig/libgo/go/runtime/gc_test.go  2012-12-12 23:13:29.000000000 +0000
    170923 +++ gcc-4.8.1/libgo/go/runtime/gc_test.go       2013-09-13 19:01:43.759863404 +0000
     175604+++ gcc-4.8.1/libgo/go/runtime/gc_test.go       2013-10-01 16:06:44.208554279 +0000
    170924175605@@ -5,12 +5,36 @@
    170925175606 package runtime_test
     
    171065175746diff -Naur gcc-4.8.1.orig/libgo/go/runtime/map_test.go gcc-4.8.1/libgo/go/runtime/map_test.go
    171066175747--- gcc-4.8.1.orig/libgo/go/runtime/map_test.go 1970-01-01 00:00:00.000000000 +0000
    171067 +++ gcc-4.8.1/libgo/go/runtime/map_test.go      2013-09-13 19:01:43.759863404 +0000
     175748+++ gcc-4.8.1/libgo/go/runtime/map_test.go      2013-10-01 16:06:44.208554279 +0000
    171068175749@@ -0,0 +1,380 @@
    171069175750+// Copyright 2013 The Go Authors. All rights reserved.
     
    171449176130diff -Naur gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go gcc-4.8.1/libgo/go/runtime/mapspeed_test.go
    171450176131--- gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go    1970-01-01 00:00:00.000000000 +0000
    171451 +++ gcc-4.8.1/libgo/go/runtime/mapspeed_test.go 2013-09-13 19:01:43.759863404 +0000
     176132+++ gcc-4.8.1/libgo/go/runtime/mapspeed_test.go 2013-10-01 16:06:44.208554279 +0000
    171452176133@@ -0,0 +1,208 @@
    171453176134+// Copyright 2013 The Go Authors. All rights reserved.
     
    171661176342diff -Naur gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go gcc-4.8.1/libgo/go/runtime/parfor_test.go
    171662176343--- gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go      2012-11-21 07:03:38.000000000 +0000
    171663 +++ gcc-4.8.1/libgo/go/runtime/parfor_test.go   2013-09-13 19:01:43.763196728 +0000
     176344+++ gcc-4.8.1/libgo/go/runtime/parfor_test.go   2013-10-01 16:06:44.208554279 +0000
    171664176345@@ -13,6 +13,8 @@
    171665176346        "unsafe"
     
    171696176377diff -Naur gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go gcc-4.8.1/libgo/go/runtime/pprof/pprof.go
    171697176378--- gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go      2012-11-21 07:03:38.000000000 +0000
    171698 +++ gcc-4.8.1/libgo/go/runtime/pprof/pprof.go   2013-09-13 19:01:43.763196728 +0000
     176379+++ gcc-4.8.1/libgo/go/runtime/pprof/pprof.go   2013-10-01 16:06:44.208554279 +0000
    171699176380@@ -318,21 +318,33 @@
    171700176381 // for a single stack trace.
     
    171736176417diff -Naur gcc-4.8.1.orig/libgo/go/runtime/proc_test.go gcc-4.8.1/libgo/go/runtime/proc_test.go
    171737176418--- gcc-4.8.1.orig/libgo/go/runtime/proc_test.go        2013-01-29 20:52:43.000000000 +0000
    171738 +++ gcc-4.8.1/libgo/go/runtime/proc_test.go     2013-09-13 19:01:43.763196728 +0000
     176419+++ gcc-4.8.1/libgo/go/runtime/proc_test.go     2013-10-01 16:06:44.208554279 +0000
    171739176420@@ -5,9 +5,11 @@
    171740176421 package runtime_test
     
    171956176637diff -Naur gcc-4.8.1.orig/libgo/go/runtime/string_test.go gcc-4.8.1/libgo/go/runtime/string_test.go
    171957176638--- gcc-4.8.1.orig/libgo/go/runtime/string_test.go      2012-10-23 04:31:11.000000000 +0000
    171958 +++ gcc-4.8.1/libgo/go/runtime/string_test.go   2013-09-13 19:01:43.763196728 +0000
     176639+++ gcc-4.8.1/libgo/go/runtime/string_test.go   2013-10-01 16:06:44.208554279 +0000
    171959176640@@ -1,3 +1,7 @@
    171960176641+// Copyright 2012 The Go Authors. All rights reserved.
     
    171999176680diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go gcc-4.8.1/libgo/go/sort/example_keys_test.go
    172000176681--- gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go   1970-01-01 00:00:00.000000000 +0000
    172001 +++ gcc-4.8.1/libgo/go/sort/example_keys_test.go        2013-09-13 19:01:43.763196728 +0000
     176682+++ gcc-4.8.1/libgo/go/sort/example_keys_test.go        2013-10-01 16:06:44.208554279 +0000
    172002176683@@ -0,0 +1,96 @@
    172003176684+// Copyright 2013 The Go Authors. All rights reserved.
     
    172099176780diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go gcc-4.8.1/libgo/go/sort/example_multi_test.go
    172100176781--- gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go  1970-01-01 00:00:00.000000000 +0000
    172101 +++ gcc-4.8.1/libgo/go/sort/example_multi_test.go       2013-09-13 19:01:43.763196728 +0000
     176782+++ gcc-4.8.1/libgo/go/sort/example_multi_test.go       2013-10-01 16:06:44.208554279 +0000
    172102176783@@ -0,0 +1,132 @@
    172103176784+// Copyright 2013 The Go Authors. All rights reserved.
     
    172269176950diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_test.go gcc-4.8.1/libgo/go/sort/example_test.go
    172270176951--- gcc-4.8.1.orig/libgo/go/sort/example_test.go        2012-03-02 20:01:37.000000000 +0000
    172271 +++ gcc-4.8.1/libgo/go/sort/example_test.go     2013-09-13 19:01:43.763196728 +0000
     176952+++ gcc-4.8.1/libgo/go/sort/example_test.go     2013-10-01 16:06:44.208554279 +0000
    172272176953@@ -15,3 +15,10 @@
    172273176954        fmt.Println(s)
     
    172283176964diff -Naur gcc-4.8.1.orig/libgo/go/sort/search_test.go gcc-4.8.1/libgo/go/sort/search_test.go
    172284176965--- gcc-4.8.1.orig/libgo/go/sort/search_test.go 2011-09-16 15:47:21.000000000 +0000
    172285 +++ gcc-4.8.1/libgo/go/sort/search_test.go      2013-09-13 19:01:43.763196728 +0000
     176966+++ gcc-4.8.1/libgo/go/sort/search_test.go      2013-10-01 16:06:44.208554279 +0000
    172286176967@@ -5,6 +5,7 @@
    172287176968 package sort_test
     
    172327177008diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort.go gcc-4.8.1/libgo/go/sort/sort.go
    172328177009--- gcc-4.8.1.orig/libgo/go/sort/sort.go        2012-03-30 22:09:55.000000000 +0000
    172329 +++ gcc-4.8.1/libgo/go/sort/sort.go     2013-09-13 19:01:43.766530053 +0000
     177010+++ gcc-4.8.1/libgo/go/sort/sort.go     2013-10-01 16:06:44.208554279 +0000
    172330177011@@ -6,8 +6,6 @@
    172331177012 // collections.
     
    172430177111diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort_test.go gcc-4.8.1/libgo/go/sort/sort_test.go
    172431177112--- gcc-4.8.1.orig/libgo/go/sort/sort_test.go   2011-12-07 01:11:29.000000000 +0000
    172432 +++ gcc-4.8.1/libgo/go/sort/sort_test.go        2013-09-13 19:01:43.766530053 +0000
     177113+++ gcc-4.8.1/libgo/go/sort/sort_test.go        2013-10-01 16:06:44.208554279 +0000
    172433177114@@ -92,6 +92,23 @@
    172434177115        }
     
    172505177186diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atof_test.go gcc-4.8.1/libgo/go/strconv/atof_test.go
    172506177187--- gcc-4.8.1.orig/libgo/go/strconv/atof_test.go        2012-10-23 04:31:11.000000000 +0000
    172507 +++ gcc-4.8.1/libgo/go/strconv/atof_test.go     2013-09-13 19:01:43.766530053 +0000
     177188+++ gcc-4.8.1/libgo/go/strconv/atof_test.go     2013-10-01 16:06:44.208554279 +0000
    172508177189@@ -110,6 +110,7 @@
    172509177190        {"1e", "0", ErrSyntax},
     
    172516177197diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi.go gcc-4.8.1/libgo/go/strconv/atoi.go
    172517177198--- gcc-4.8.1.orig/libgo/go/strconv/atoi.go     2012-10-03 05:27:36.000000000 +0000
    172518 +++ gcc-4.8.1/libgo/go/strconv/atoi.go  2013-09-13 19:01:43.766530053 +0000
     177199+++ gcc-4.8.1/libgo/go/strconv/atoi.go  2013-10-01 16:06:44.208554279 +0000
    172519177200@@ -20,7 +20,7 @@
    172520177201 }
     
    172528177209diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go gcc-4.8.1/libgo/go/strconv/atoi_test.go
    172529177210--- gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go        2012-01-12 01:31:45.000000000 +0000
    172530 +++ gcc-4.8.1/libgo/go/strconv/atoi_test.go     2013-09-13 19:01:43.766530053 +0000
     177211+++ gcc-4.8.1/libgo/go/strconv/atoi_test.go     2013-10-01 16:06:44.208554279 +0000
    172531177212@@ -5,6 +5,7 @@
    172532177213 package strconv_test
     
    172576177257diff -Naur gcc-4.8.1.orig/libgo/go/strconv/extfloat.go gcc-4.8.1/libgo/go/strconv/extfloat.go
    172577177258--- gcc-4.8.1.orig/libgo/go/strconv/extfloat.go 2012-11-21 07:03:38.000000000 +0000
    172578 +++ gcc-4.8.1/libgo/go/strconv/extfloat.go      2013-09-13 19:01:43.766530053 +0000
     177259+++ gcc-4.8.1/libgo/go/strconv/extfloat.go      2013-10-01 16:06:44.208554279 +0000
    172579177260@@ -636,7 +636,6 @@
    172580177261                                1<<shift, multiplier*2)
     
    172587177268diff -Naur gcc-4.8.1.orig/libgo/go/strconv/fp_test.go gcc-4.8.1/libgo/go/strconv/fp_test.go
    172588177269--- gcc-4.8.1.orig/libgo/go/strconv/fp_test.go  2013-01-29 20:52:43.000000000 +0000
    172589 +++ gcc-4.8.1/libgo/go/strconv/fp_test.go       2013-09-13 19:01:43.766530053 +0000
     177270+++ gcc-4.8.1/libgo/go/strconv/fp_test.go       2013-10-01 16:06:44.208554279 +0000
    172590177271@@ -7,7 +7,6 @@
    172591177272 import (
     
    172629177310diff -Naur gcc-4.8.1.orig/libgo/go/strconv/quote.go gcc-4.8.1/libgo/go/strconv/quote.go
    172630177311--- gcc-4.8.1.orig/libgo/go/strconv/quote.go    2012-03-30 21:27:11.000000000 +0000
    172631 +++ gcc-4.8.1/libgo/go/strconv/quote.go 2013-09-13 19:01:43.766530053 +0000
     177312+++ gcc-4.8.1/libgo/go/strconv/quote.go 2013-10-01 16:06:44.208554279 +0000
    172632177313@@ -139,8 +139,9 @@
    172633177314        return append(dst, QuoteRuneToASCII(r)...)
     
    172644177325diff -Naur gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go gcc-4.8.1/libgo/go/strconv/strconv_test.go
    172645177326--- gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go     2012-12-12 23:13:29.000000000 +0000
    172646 +++ gcc-4.8.1/libgo/go/strconv/strconv_test.go  2013-09-13 19:01:43.766530053 +0000
     177327+++ gcc-4.8.1/libgo/go/strconv/strconv_test.go  2013-10-01 16:06:44.208554279 +0000
    172647177328@@ -24,14 +24,12 @@
    172648177329                desc  string
     
    172690177371diff -Naur gcc-4.8.1.orig/libgo/go/strings/example_test.go gcc-4.8.1/libgo/go/strings/example_test.go
    172691177372--- gcc-4.8.1.orig/libgo/go/strings/example_test.go     2012-06-25 16:20:03.000000000 +0000
    172692 +++ gcc-4.8.1/libgo/go/strings/example_test.go  2013-09-13 19:01:43.769863378 +0000
     177373+++ gcc-4.8.1/libgo/go/strings/example_test.go  2013-10-01 16:06:44.212554279 +0000
    172693177374@@ -179,3 +179,19 @@
    172694177375        fmt.Println(strings.ToLower("Gopher"))
     
    172713177394diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings.go gcc-4.8.1/libgo/go/strings/strings.go
    172714177395--- gcc-4.8.1.orig/libgo/go/strings/strings.go  2012-01-12 01:31:45.000000000 +0000
    172715 +++ gcc-4.8.1/libgo/go/strings/strings.go       2013-09-13 19:01:43.769863378 +0000
     177396+++ gcc-4.8.1/libgo/go/strings/strings.go       2013-10-01 16:06:44.212554279 +0000
    172716177397@@ -26,7 +26,11 @@
    172717177398        i, cur := 0, 0
     
    172907177588diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings_test.go gcc-4.8.1/libgo/go/strings/strings_test.go
    172908177589--- gcc-4.8.1.orig/libgo/go/strings/strings_test.go     2012-11-21 07:03:38.000000000 +0000
    172909 +++ gcc-4.8.1/libgo/go/strings/strings_test.go  2013-09-13 19:01:43.769863378 +0000
     177590+++ gcc-4.8.1/libgo/go/strings/strings_test.go  2013-10-01 16:06:44.212554279 +0000
    172910177591@@ -496,8 +496,8 @@
    172911177592 func TestTrimSpace(t *testing.T) { runStringTests(t, TrimSpace, "TrimSpace", trimSpaceTests) }
     
    173048177729diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go
    173049177730--- gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go  2013-01-29 20:52:43.000000000 +0000
    173050 +++ gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go       2013-09-13 19:01:43.769863378 +0000
     177731+++ gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go       2013-10-01 16:06:44.212554279 +0000
    173051177732@@ -1119,7 +1119,7 @@
    173052177733                                        d1 := X.data1
     
    173101177782diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/race.go gcc-4.8.1/libgo/go/sync/atomic/race.go
    173102177783--- gcc-4.8.1.orig/libgo/go/sync/atomic/race.go 2012-11-21 07:03:38.000000000 +0000
    173103 +++ gcc-4.8.1/libgo/go/sync/atomic/race.go      2013-09-13 19:01:43.769863378 +0000
     177784+++ gcc-4.8.1/libgo/go/sync/atomic/race.go      2013-10-01 16:06:44.212554279 +0000
    173104177785@@ -25,6 +25,7 @@
    173105177786 }
     
    173224177905diff -Naur gcc-4.8.1.orig/libgo/go/sync/cond.go gcc-4.8.1/libgo/go/sync/cond.go
    173225177906--- gcc-4.8.1.orig/libgo/go/sync/cond.go        2012-10-23 04:31:11.000000000 +0000
    173226 +++ gcc-4.8.1/libgo/go/sync/cond.go     2013-09-13 19:01:43.769863378 +0000
     177907+++ gcc-4.8.1/libgo/go/sync/cond.go     2013-10-01 16:06:44.212554279 +0000
    173227177908@@ -57,6 +57,7 @@
    173228177909 //
     
    173251177932diff -Naur gcc-4.8.1.orig/libgo/go/sync/example_test.go gcc-4.8.1/libgo/go/sync/example_test.go
    173252177933--- gcc-4.8.1.orig/libgo/go/sync/example_test.go        2012-03-06 17:57:23.000000000 +0000
    173253 +++ gcc-4.8.1/libgo/go/sync/example_test.go     2013-09-13 19:01:43.773196702 +0000
     177934+++ gcc-4.8.1/libgo/go/sync/example_test.go     2013-10-01 16:06:44.212554279 +0000
    173254177935@@ -24,10 +24,10 @@
    173255177936                wg.Add(1)
     
    173276177957diff -Naur gcc-4.8.1.orig/libgo/go/sync/mutex.go gcc-4.8.1/libgo/go/sync/mutex.go
    173277177958--- gcc-4.8.1.orig/libgo/go/sync/mutex.go       2012-10-23 04:31:11.000000000 +0000
    173278 +++ gcc-4.8.1/libgo/go/sync/mutex.go    2013-09-13 19:01:43.773196702 +0000
     177959+++ gcc-4.8.1/libgo/go/sync/mutex.go    2013-10-01 16:06:44.212554279 +0000
    173279177960@@ -81,6 +81,7 @@
    173280177961 // arrange for another goroutine to unlock it.
     
    173287177968diff -Naur gcc-4.8.1.orig/libgo/go/sync/rwmutex.go gcc-4.8.1/libgo/go/sync/rwmutex.go
    173288177969--- gcc-4.8.1.orig/libgo/go/sync/rwmutex.go     2012-10-23 04:31:11.000000000 +0000
    173289 +++ gcc-4.8.1/libgo/go/sync/rwmutex.go  2013-09-13 19:01:43.773196702 +0000
     177970+++ gcc-4.8.1/libgo/go/sync/rwmutex.go  2013-10-01 16:06:44.212554279 +0000
    173290177971@@ -28,6 +28,7 @@
    173291177972 // RLock locks rw for reading.
     
    173322178003diff -Naur gcc-4.8.1.orig/libgo/go/sync/waitgroup.go gcc-4.8.1/libgo/go/sync/waitgroup.go
    173323178004--- gcc-4.8.1.orig/libgo/go/sync/waitgroup.go   2012-10-23 04:31:11.000000000 +0000
    173324 +++ gcc-4.8.1/libgo/go/sync/waitgroup.go        2013-09-13 19:01:43.773196702 +0000
     178005+++ gcc-4.8.1/libgo/go/sync/waitgroup.go        2013-10-01 16:06:44.212554279 +0000
    173325178006@@ -34,10 +34,16 @@
    173326178007 // G3: Wait() // G1 still hasn't run, G3 finds sema == 1, unblocked! Bug.
     
    173351178032diff -Naur gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go gcc-4.8.1/libgo/go/syscall/dir_plan9.go
    173352178033--- gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go        2012-12-12 23:13:29.000000000 +0000
    173353 +++ gcc-4.8.1/libgo/go/syscall/dir_plan9.go     2013-09-13 19:01:43.773196702 +0000
     178034+++ gcc-4.8.1/libgo/go/syscall/dir_plan9.go     2013-10-01 16:06:44.212554279 +0000
    173354178035@@ -68,9 +68,9 @@
    173355178036        b = pbit16(b, uint16(n)-2)
     
    173378178059diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go gcc-4.8.1/libgo/go/syscall/env_plan9.go
    173379178060--- gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go        2012-12-22 01:15:33.000000000 +0000
    173380 +++ gcc-4.8.1/libgo/go/syscall/env_plan9.go     2013-09-13 19:01:43.773196702 +0000
     178061+++ gcc-4.8.1/libgo/go/syscall/env_plan9.go     2013-10-01 16:06:44.212554279 +0000
    173381178062@@ -15,12 +15,15 @@
    173382178063        // envOnce guards copyenv, which populates env.
     
    173452178133diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_unix.go gcc-4.8.1/libgo/go/syscall/env_unix.go
    173453178134--- gcc-4.8.1.orig/libgo/go/syscall/env_unix.go 2012-01-25 20:56:26.000000000 +0000
    173454 +++ gcc-4.8.1/libgo/go/syscall/env_unix.go      2013-09-13 19:01:43.773196702 +0000
     178135+++ gcc-4.8.1/libgo/go/syscall/env_unix.go      2013-10-01 16:06:44.212554279 +0000
    173455178136@@ -71,6 +71,16 @@
    173456178137        if len(key) == 0 {
     
    173472178153diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go gcc-4.8.1/libgo/go/syscall/exec_bsd.go
    173473178154--- gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go 2013-01-29 20:52:43.000000000 +0000
    173474 +++ gcc-4.8.1/libgo/go/syscall/exec_bsd.go      2013-09-13 19:01:43.773196702 +0000
     178155+++ gcc-4.8.1/libgo/go/syscall/exec_bsd.go      2013-10-01 16:06:44.212554279 +0000
    173475178156@@ -38,10 +38,18 @@
    173476178157                i      int
     
    173514178195diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go gcc-4.8.1/libgo/go/syscall/exec_linux.go
    173515178196--- gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go       2013-01-29 20:52:43.000000000 +0000
    173516 +++ gcc-4.8.1/libgo/go/syscall/exec_linux.go    2013-09-13 19:01:43.773196702 +0000
     178197+++ gcc-4.8.1/libgo/go/syscall/exec_linux.go    2013-10-01 16:06:44.212554279 +0000
    173517178198@@ -43,11 +43,18 @@
    173518178199                i      int
     
    173545178226diff -Naur gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk gcc-4.8.1/libgo/go/syscall/mksyscall.awk
    173546178227--- gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk       2012-10-23 04:31:11.000000000 +0000
    173547 +++ gcc-4.8.1/libgo/go/syscall/mksyscall.awk    2013-09-13 19:01:43.776530027 +0000
     178228+++ gcc-4.8.1/libgo/go/syscall/mksyscall.awk    2013-10-01 16:06:44.212554279 +0000
    173548178229@@ -53,7 +53,7 @@
    173549178230     }
     
    173566178247diff -Naur gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go gcc-4.8.1/libgo/go/syscall/passfd_test.go
    173567178248--- gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go      2012-10-23 04:31:11.000000000 +0000
    173568 +++ gcc-4.8.1/libgo/go/syscall/passfd_test.go   2013-09-13 19:01:43.776530027 +0000
     178249+++ gcc-4.8.1/libgo/go/syscall/passfd_test.go   2013-10-01 16:06:44.212554279 +0000
    173569178250@@ -2,7 +2,7 @@
    173570178251 // Use of this source code is governed by a BSD-style
     
    173641178322diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go gcc-4.8.1/libgo/go/syscall/route_bsd.go
    173642178323--- gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go        2012-01-13 05:11:45.000000000 +0000
    173643 +++ gcc-4.8.1/libgo/go/syscall/route_bsd.go     2013-09-13 19:01:43.776530027 +0000
     178324+++ gcc-4.8.1/libgo/go/syscall/route_bsd.go     2013-10-01 16:06:44.212554279 +0000
    173644178325@@ -8,9 +8,7 @@
    173645178326 
     
    173767178448diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go gcc-4.8.1/libgo/go/syscall/route_darwin.go
    173768178449--- gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go     2011-12-12 23:40:51.000000000 +0000
    173769 +++ gcc-4.8.1/libgo/go/syscall/route_darwin.go  2013-09-13 19:01:43.776530027 +0000
     178450+++ gcc-4.8.1/libgo/go/syscall/route_darwin.go  2013-10-01 16:06:44.212554279 +0000
    173770178451@@ -6,36 +6,22 @@
    173771178452 
     
    173839178520diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go gcc-4.8.1/libgo/go/syscall/route_freebsd.go
    173840178521--- gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go    2011-12-12 23:40:51.000000000 +0000
    173841 +++ gcc-4.8.1/libgo/go/syscall/route_freebsd.go 2013-09-13 19:01:43.776530027 +0000
     178522+++ gcc-4.8.1/libgo/go/syscall/route_freebsd.go 2013-10-01 16:06:44.212554279 +0000
    173842178523@@ -6,40 +6,37 @@
    173843178524 
     
    173926178607diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go gcc-4.8.1/libgo/go/syscall/route_netbsd.go
    173927178608--- gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go     2012-01-13 05:11:45.000000000 +0000
    173928 +++ gcc-4.8.1/libgo/go/syscall/route_netbsd.go  2013-09-13 19:01:43.776530027 +0000
     178609+++ gcc-4.8.1/libgo/go/syscall/route_netbsd.go  2013-10-01 16:06:44.212554279 +0000
    173929178610@@ -6,30 +6,30 @@
    173930178611 
     
    173976178657diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go gcc-4.8.1/libgo/go/syscall/route_openbsd.go
    173977178658--- gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go    2011-10-23 19:04:37.000000000 +0000
    173978 +++ gcc-4.8.1/libgo/go/syscall/route_openbsd.go 2013-09-13 19:01:43.776530027 +0000
     178659+++ gcc-4.8.1/libgo/go/syscall/route_openbsd.go 2013-10-01 16:06:44.212554279 +0000
    173979178660@@ -6,30 +6,30 @@
    173980178661 
     
    174026178707diff -Naur gcc-4.8.1.orig/libgo/go/syscall/security_windows.go gcc-4.8.1/libgo/go/syscall/security_windows.go
    174027178708--- gcc-4.8.1.orig/libgo/go/syscall/security_windows.go 2012-10-23 04:31:11.000000000 +0000
    174028 +++ gcc-4.8.1/libgo/go/syscall/security_windows.go      2013-09-13 19:01:43.776530027 +0000
     178709+++ gcc-4.8.1/libgo/go/syscall/security_windows.go      2013-10-01 16:06:44.212554279 +0000
    174029178710@@ -70,7 +70,7 @@
    174030178711 
     
    174038178719diff -Naur gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go
    174039178720--- gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go    2013-02-20 20:04:36.000000000 +0000
    174040 +++ gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go 2013-09-13 19:01:43.779863351 +0000
     178721+++ gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go 2013-10-01 16:06:44.216554279 +0000
    174041178722@@ -13,7 +13,7 @@
    174042178723        "unsafe"
     
    174098178779diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket.go gcc-4.8.1/libgo/go/syscall/socket.go
    174099178780--- gcc-4.8.1.orig/libgo/go/syscall/socket.go   2013-02-20 20:04:36.000000000 +0000
    174100 +++ gcc-4.8.1/libgo/go/syscall/socket.go        2013-09-13 19:01:43.779863351 +0000
     178781+++ gcc-4.8.1/libgo/go/syscall/socket.go        2013-10-01 16:06:44.216554279 +0000
    174101178782@@ -79,7 +79,7 @@
    174102178783 func (sa *SockaddrUnix) sockaddr() (*RawSockaddrAny, Socklen_t, error) {
     
    174138178819diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go gcc-4.8.1/libgo/go/syscall/socket_bsd.go
    174139178820--- gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go       2011-12-12 23:40:51.000000000 +0000
    174140 +++ gcc-4.8.1/libgo/go/syscall/socket_bsd.go    2013-09-13 19:01:43.779863351 +0000
     178821+++ gcc-4.8.1/libgo/go/syscall/socket_bsd.go    2013-10-01 16:06:44.216554279 +0000
    174141178822@@ -11,11 +11,11 @@
    174142178823 const SizeofSockaddrUnix = 110
     
    174208178889diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go gcc-4.8.1/libgo/go/syscall/socket_irix.go
    174209178890--- gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go      2012-01-27 22:37:14.000000000 +0000
    174210 +++ gcc-4.8.1/libgo/go/syscall/socket_irix.go   2013-09-13 19:01:43.779863351 +0000
     178891+++ gcc-4.8.1/libgo/go/syscall/socket_irix.go   2013-10-01 16:06:44.216554279 +0000
    174211178892@@ -64,6 +64,10 @@
    174212178893        return n, nil
     
    174222178903diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go gcc-4.8.1/libgo/go/syscall/socket_linux.go
    174223178904--- gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go     2012-11-24 20:46:59.000000000 +0000
    174224 +++ gcc-4.8.1/libgo/go/syscall/socket_linux.go  2013-09-13 19:01:43.779863351 +0000
     178905+++ gcc-4.8.1/libgo/go/syscall/socket_linux.go  2013-10-01 16:06:44.216554279 +0000
    174225178906@@ -110,6 +110,15 @@
    174226178907        return n, nil
     
    174241178922diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go gcc-4.8.1/libgo/go/syscall/socket_solaris.go
    174242178923--- gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go   2011-12-12 23:40:51.000000000 +0000
    174243 +++ gcc-4.8.1/libgo/go/syscall/socket_solaris.go        2013-09-13 19:01:43.779863351 +0000
     178924+++ gcc-4.8.1/libgo/go/syscall/socket_solaris.go        2013-10-01 16:06:44.216554279 +0000
    174244178925@@ -12,9 +12,9 @@
    174245178926 
     
    174320179001diff -Naur gcc-4.8.1.orig/libgo/go/testing/allocs.go gcc-4.8.1/libgo/go/testing/allocs.go
    174321179002--- gcc-4.8.1.orig/libgo/go/testing/allocs.go   1970-01-01 00:00:00.000000000 +0000
    174322 +++ gcc-4.8.1/libgo/go/testing/allocs.go        2013-09-13 19:01:43.779863351 +0000
     179003+++ gcc-4.8.1/libgo/go/testing/allocs.go        2013-10-01 16:06:44.216554279 +0000
    174323179004@@ -0,0 +1,41 @@
    174324179005+// Copyright 2013 The Go Authors.  All rights reserved.
     
    174365179046diff -Naur gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go gcc-4.8.1/libgo/go/testing/iotest/reader.go
    174366179047--- gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go    2012-03-02 16:38:43.000000000 +0000
    174367 +++ gcc-4.8.1/libgo/go/testing/iotest/reader.go 2013-09-13 19:01:43.779863351 +0000
     179048+++ gcc-4.8.1/libgo/go/testing/iotest/reader.go 2013-10-01 16:06:44.216554279 +0000
    174368179049@@ -37,9 +37,11 @@
    174369179050        return r.r.Read(p[0 : (len(p)+1)/2])
     
    174383179064diff -Naur gcc-4.8.1.orig/libgo/go/testing/quick/quick.go gcc-4.8.1/libgo/go/testing/quick/quick.go
    174384179065--- gcc-4.8.1.orig/libgo/go/testing/quick/quick.go      2012-03-02 16:38:43.000000000 +0000
    174385 +++ gcc-4.8.1/libgo/go/testing/quick/quick.go   2013-09-13 19:01:43.779863351 +0000
     179066+++ gcc-4.8.1/libgo/go/testing/quick/quick.go   2013-10-01 16:06:44.216554279 +0000
    174386179067@@ -140,8 +140,6 @@
    174387179068        default:
     
    174395179076diff -Naur gcc-4.8.1.orig/libgo/go/testing/testing.go gcc-4.8.1/libgo/go/testing/testing.go
    174396179077--- gcc-4.8.1.orig/libgo/go/testing/testing.go  2013-01-29 20:52:43.000000000 +0000
    174397 +++ gcc-4.8.1/libgo/go/testing/testing.go       2013-09-13 19:01:43.783196676 +0000
     179078+++ gcc-4.8.1/libgo/go/testing/testing.go       2013-10-01 16:06:44.216554279 +0000
    174398179079@@ -10,7 +10,7 @@
    174399179080 // [a-z]) and serves to identify the test routine.
     
    174628179309diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec.go gcc-4.8.1/libgo/go/text/template/exec.go
    174629179310--- gcc-4.8.1.orig/libgo/go/text/template/exec.go       2012-10-23 04:31:11.000000000 +0000
    174630 +++ gcc-4.8.1/libgo/go/text/template/exec.go    2013-09-13 19:01:43.783196676 +0000
     179311+++ gcc-4.8.1/libgo/go/text/template/exec.go    2013-10-01 16:06:44.216554279 +0000
    174631179312@@ -5,6 +5,7 @@
    174632179313 package template
     
    174673179354diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec_test.go gcc-4.8.1/libgo/go/text/template/exec_test.go
    174674179355--- gcc-4.8.1.orig/libgo/go/text/template/exec_test.go  2012-10-23 04:31:11.000000000 +0000
    174675 +++ gcc-4.8.1/libgo/go/text/template/exec_test.go       2013-09-13 19:01:43.783196676 +0000
     179356+++ gcc-4.8.1/libgo/go/text/template/exec_test.go       2013-10-01 16:06:44.216554279 +0000
    174676179357@@ -499,6 +499,8 @@
    174677179358        {"bug8b", "{{4|dddArg 3}}", "", tVal, false},
     
    174761179442diff -Naur gcc-4.8.1.orig/libgo/go/text/template/funcs.go gcc-4.8.1/libgo/go/text/template/funcs.go
    174762179443--- gcc-4.8.1.orig/libgo/go/text/template/funcs.go      2012-10-23 04:31:11.000000000 +0000
    174763 +++ gcc-4.8.1/libgo/go/text/template/funcs.go   2013-09-13 19:01:43.783196676 +0000
     179444+++ gcc-4.8.1/libgo/go/text/template/funcs.go   2013-10-01 16:06:44.216554279 +0000
    174764179445@@ -18,7 +18,7 @@
    174765179446 // FuncMap is the type of the map defining the mapping from names to functions.
     
    174773179454diff -Naur gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go gcc-4.8.1/libgo/go/text/template/parse/parse.go
    174774179455--- gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go        2013-01-29 20:52:43.000000000 +0000
    174775 +++ gcc-4.8.1/libgo/go/text/template/parse/parse.go     2013-09-13 19:01:43.783196676 +0000
     179456+++ gcc-4.8.1/libgo/go/text/template/parse/parse.go     2013-10-01 16:06:44.216554279 +0000
    174776179457@@ -429,7 +429,6 @@
    174777179458                        t.unexpected(token, context)
     
    174792179473diff -Naur gcc-4.8.1.orig/libgo/go/time/example_test.go gcc-4.8.1/libgo/go/time/example_test.go
    174793179474--- gcc-4.8.1.orig/libgo/go/time/example_test.go        2013-01-29 20:52:43.000000000 +0000
    174794 +++ gcc-4.8.1/libgo/go/time/example_test.go     2013-09-13 19:01:43.783196676 +0000
     179475+++ gcc-4.8.1/libgo/go/time/example_test.go     2013-10-01 16:06:44.216554279 +0000
    174795179476@@ -58,15 +58,52 @@
    174796179477 }
     
    174851179532diff -Naur gcc-4.8.1.orig/libgo/go/time/format.go gcc-4.8.1/libgo/go/time/format.go
    174852179533--- gcc-4.8.1.orig/libgo/go/time/format.go      2013-01-29 20:52:43.000000000 +0000
    174853 +++ gcc-4.8.1/libgo/go/time/format.go   2013-09-13 19:01:43.786530001 +0000
     179534+++ gcc-4.8.1/libgo/go/time/format.go   2013-10-01 16:06:44.216554279 +0000
    174854179535@@ -6,15 +6,17 @@
    174855179536 
     
    175034179715diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep.go gcc-4.8.1/libgo/go/time/sleep.go
    175035179716--- gcc-4.8.1.orig/libgo/go/time/sleep.go       2013-01-29 20:52:43.000000000 +0000
    175036 +++ gcc-4.8.1/libgo/go/time/sleep.go    2013-09-13 19:01:43.786530001 +0000
     179717+++ gcc-4.8.1/libgo/go/time/sleep.go    2013-10-01 16:06:44.216554279 +0000
    175037179718@@ -18,10 +18,25 @@
    175038179719        i      int32
     
    175094179775diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep_test.go gcc-4.8.1/libgo/go/time/sleep_test.go
    175095179776--- gcc-4.8.1.orig/libgo/go/time/sleep_test.go  2013-01-29 20:52:43.000000000 +0000
    175096 +++ gcc-4.8.1/libgo/go/time/sleep_test.go       2013-09-13 19:01:43.786530001 +0000
     179777+++ gcc-4.8.1/libgo/go/time/sleep_test.go       2013-10-01 16:06:44.216554279 +0000
    175097179778@@ -60,10 +60,11 @@
    175098179779                        Sleep(Nanosecond)
     
    175135179816diff -Naur gcc-4.8.1.orig/libgo/go/time/time_test.go gcc-4.8.1/libgo/go/time/time_test.go
    175136179817--- gcc-4.8.1.orig/libgo/go/time/time_test.go   2013-01-29 20:52:43.000000000 +0000
    175137 +++ gcc-4.8.1/libgo/go/time/time_test.go        2013-09-13 19:01:43.786530001 +0000
     179818+++ gcc-4.8.1/libgo/go/time/time_test.go        2013-10-01 16:06:44.216554279 +0000
    175138179819@@ -479,6 +479,7 @@
    175139179820        {"RubyDate", RubyDate, "Thu Feb 04 21:00:57 -0800 2010", true, true, 1, 0},
     
    175247179928diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo.go gcc-4.8.1/libgo/go/time/zoneinfo.go
    175248179929--- gcc-4.8.1.orig/libgo/go/time/zoneinfo.go    2012-10-23 04:31:11.000000000 +0000
    175249 +++ gcc-4.8.1/libgo/go/time/zoneinfo.go 2013-09-13 19:01:43.786530001 +0000
     179930+++ gcc-4.8.1/libgo/go/time/zoneinfo.go 2013-10-01 16:06:44.220554279 +0000
    175250179931@@ -145,15 +145,36 @@
    175251179932 }
     
    175289179970diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go gcc-4.8.1/libgo/go/time/zoneinfo_read.go
    175290179971--- gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go       2012-12-22 01:15:33.000000000 +0000
    175291 +++ gcc-4.8.1/libgo/go/time/zoneinfo_read.go    2013-09-13 19:01:43.789863325 +0000
     179972+++ gcc-4.8.1/libgo/go/time/zoneinfo_read.go    2013-10-01 16:06:44.220554279 +0000
    175292179973@@ -174,6 +174,12 @@
    175293179974                }
     
    175305179986diff -Naur gcc-4.8.1.orig/libgo/go/unicode/letter.go gcc-4.8.1/libgo/go/unicode/letter.go
    175306179987--- gcc-4.8.1.orig/libgo/go/unicode/letter.go   2012-11-21 07:03:38.000000000 +0000
    175307 +++ gcc-4.8.1/libgo/go/unicode/letter.go        2013-09-13 19:01:43.789863325 +0000
     179988+++ gcc-4.8.1/libgo/go/unicode/letter.go        2013-10-01 16:06:44.220554279 +0000
    175308179989@@ -151,7 +151,7 @@
    175309179990        return false
     
    175317179998diff -Naur gcc-4.8.1.orig/libgo/go/unicode/tables.go gcc-4.8.1/libgo/go/unicode/tables.go
    175318179999--- gcc-4.8.1.orig/libgo/go/unicode/tables.go   2012-11-21 07:03:38.000000000 +0000
    175319 +++ gcc-4.8.1/libgo/go/unicode/tables.go        2013-09-13 19:01:43.789863325 +0000
     180000+++ gcc-4.8.1/libgo/go/unicode/tables.go        2013-10-01 16:06:44.220554279 +0000
    175320180001@@ -2864,7 +2864,7 @@
    175321180002        Lo     = _Lo // Lo is the set of Unicode characters in category Lo.
     
    175329180010diff -Naur gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go
    175330180011--- gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go   2012-10-23 04:31:11.000000000 +0000
    175331 +++ gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go        2013-09-13 19:01:43.789863325 +0000
     180012+++ gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go        2013-10-01 16:06:44.220554279 +0000
    175332180013@@ -124,7 +124,7 @@
    175333180014                s := m.str
     
    175359180040diff -Naur gcc-4.8.1.orig/libgo/merge.sh gcc-4.8.1/libgo/merge.sh
    175360180041--- gcc-4.8.1.orig/libgo/merge.sh       2012-12-22 01:15:33.000000000 +0000
    175361 +++ gcc-4.8.1/libgo/merge.sh    2013-09-13 19:01:43.796529974 +0000
     180042+++ gcc-4.8.1/libgo/merge.sh    2013-10-01 16:06:44.220554279 +0000
    175362180043@@ -163,12 +163,12 @@
    175363180044   done
     
    175377180058diff -Naur gcc-4.8.1.orig/libgo/runtime/chan.c gcc-4.8.1/libgo/runtime/chan.c
    175378180059--- gcc-4.8.1.orig/libgo/runtime/chan.c 2013-01-24 19:44:23.000000000 +0000
    175379 +++ gcc-4.8.1/libgo/runtime/chan.c      2013-09-13 19:01:43.796529974 +0000
     180060+++ gcc-4.8.1/libgo/runtime/chan.c      2013-10-01 16:06:44.220554279 +0000
    175380180061@@ -35,6 +35,8 @@
    175381180062        SudoG*  last;
     
    175507180188diff -Naur gcc-4.8.1.orig/libgo/runtime/cpuprof.c gcc-4.8.1/libgo/runtime/cpuprof.c
    175508180189--- gcc-4.8.1.orig/libgo/runtime/cpuprof.c      2013-01-24 19:44:23.000000000 +0000
    175509 +++ gcc-4.8.1/libgo/runtime/cpuprof.c   2013-09-13 19:01:43.799863299 +0000
     180190+++ gcc-4.8.1/libgo/runtime/cpuprof.c   2013-10-01 16:06:44.224554278 +0000
    175510180191@@ -121,7 +121,9 @@
    175511180192 // LostProfileData is a no-op function used in profiles
     
    175530180211diff -Naur gcc-4.8.1.orig/libgo/runtime/go-cgo.c gcc-4.8.1/libgo/runtime/go-cgo.c
    175531180212--- gcc-4.8.1.orig/libgo/runtime/go-cgo.c       2013-01-24 19:44:23.000000000 +0000
    175532 +++ gcc-4.8.1/libgo/runtime/go-cgo.c    2013-09-13 19:01:43.799863299 +0000
     180213+++ gcc-4.8.1/libgo/runtime/go-cgo.c    2013-10-01 16:06:44.224554278 +0000
    175533180214@@ -35,6 +35,9 @@
    175534180215   M* m;
     
    175584180265diff -Naur gcc-4.8.1.orig/libgo/runtime/go-defer.c gcc-4.8.1/libgo/runtime/go-defer.c
    175585180266--- gcc-4.8.1.orig/libgo/runtime/go-defer.c     2011-11-28 05:45:49.000000000 +0000
    175586 +++ gcc-4.8.1/libgo/runtime/go-defer.c  2013-09-13 19:01:43.799863299 +0000
     180267+++ gcc-4.8.1/libgo/runtime/go-defer.c  2013-10-01 16:06:44.224554278 +0000
    175587180268@@ -42,6 +42,7 @@
    175588180269     {
     
    175611180292diff -Naur gcc-4.8.1.orig/libgo/runtime/go-main.c gcc-4.8.1/libgo/runtime/go-main.c
    175612180293--- gcc-4.8.1.orig/libgo/runtime/go-main.c      2012-11-01 03:02:13.000000000 +0000
    175613 +++ gcc-4.8.1/libgo/runtime/go-main.c   2013-09-13 19:01:43.799863299 +0000
     180294+++ gcc-4.8.1/libgo/runtime/go-main.c   2013-10-01 16:06:44.224554278 +0000
    175614180295@@ -30,9 +30,6 @@
    175615180296 
     
    175639180320diff -Naur gcc-4.8.1.orig/libgo/runtime/go-map-index.c gcc-4.8.1/libgo/runtime/go-map-index.c
    175640180321--- gcc-4.8.1.orig/libgo/runtime/go-map-index.c 2012-01-17 14:18:39.000000000 +0000
    175641 +++ gcc-4.8.1/libgo/runtime/go-map-index.c      2013-09-13 19:01:43.799863299 +0000
     180322+++ gcc-4.8.1/libgo/runtime/go-map-index.c      2013-10-01 16:06:44.224554278 +0000
    175642180323@@ -98,7 +98,7 @@
    175643180324   key_descriptor = descriptor->__map_descriptor->__key_type;
     
    175651180332diff -Naur gcc-4.8.1.orig/libgo/runtime/go-panic.c gcc-4.8.1/libgo/runtime/go-panic.c
    175652180333--- gcc-4.8.1.orig/libgo/runtime/go-panic.c     2012-11-01 03:02:13.000000000 +0000
    175653 +++ gcc-4.8.1/libgo/runtime/go-panic.c  2013-09-13 19:01:43.799863299 +0000
     180334+++ gcc-4.8.1/libgo/runtime/go-panic.c  2013-10-01 16:06:44.224554278 +0000
    175654180335@@ -54,6 +54,7 @@
    175655180336     {
     
    175678180359diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c gcc-4.8.1/libgo/runtime/go-reflect-call.c
    175679180360--- gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c      2013-03-01 19:26:43.000000000 +0000
    175680 +++ gcc-4.8.1/libgo/runtime/go-reflect-call.c   2013-09-13 19:01:43.799863299 +0000
    175681 @@ -302,7 +302,9 @@
    175682    in_types = ((const struct __go_type_descriptor **)
    175683               func->__in.__values);
    175684  
    175685 -  num_args = num_params + (is_interface ? 1 : 0);
    175686 +  num_args = (num_params
    175687 +             + (is_interface ? 1 : 0)
    175688 +             + (!is_interface && !is_method ? 1 : 0));
    175689    args = (ffi_type **) __go_alloc (num_args * sizeof (ffi_type *));
    175690    i = 0;
    175691    off = 0;
    175692 @@ -319,6 +321,12 @@
    175693    for (; i < num_params; ++i)
    175694      args[i + off] = go_type_to_ffi (in_types[i]);
    175695  
    175696 +  if (!is_interface && !is_method)
    175697 +    {
    175698 +      // There is a closure argument, a pointer.
    175699 +      args[i + off] = &ffi_type_pointer;
    175700 +    }
    175701 +
    175702    rettype = go_func_return_ffi (func);
    175703  
    175704    status = ffi_prep_cif (cif, FFI_DEFAULT_ABI, num_args, rettype, args);
    175705 @@ -491,11 +499,24 @@
     180361+++ gcc-4.8.1/libgo/runtime/go-reflect-call.c   2013-10-01 16:06:44.224554278 +0000
     180362@@ -491,11 +491,23 @@
    175706180363 }
    175707180364 
     
    175721180378+
    175722180379+   If neither IS_INTERFACE nor IS_METHOD is true then we are calling a
    175723 +   function indirectly, and the caller is responsible for passing a
    175724 +   trailing closure argument, a pointer, which is not described in
    175725 +   FUNC_TYPE.  */
     180380+   function indirectly, and we must pass a closure pointer via
     180381+   __go_set_closure.  The pointer to pass is simply FUNC_VAL.  */
    175726180382 
    175727180383 void
     
    175731180387              void **results)
    175732180388 {
    175733 @@ -507,7 +528,7 @@
     180389@@ -507,7 +519,9 @@
    175734180390 
    175735180391   call_result = (unsigned char *) malloc (go_results_size (func_type));
    175736180392 
    175737180393-  ffi_call (&cif, func_addr, call_result, params);
     180394+  if (!is_interface && !is_method)
     180395+    __go_set_closure (func_val);
    175738180396+  ffi_call (&cif, func_val->fn, call_result, params);
    175739180397 
    175740180398   /* Some day we may need to free result values if RESULTS is
    175741180399      NULL.  */
    175742 @@ -521,7 +542,7 @@
     180400@@ -521,7 +535,7 @@
    175743180401 
    175744180402 void
     
    175751180409diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c gcc-4.8.1/libgo/runtime/go-reflect-map.c
    175752180410--- gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c       2013-01-24 19:44:23.000000000 +0000
    175753 +++ gcc-4.8.1/libgo/runtime/go-reflect-map.c    2013-09-13 19:01:43.799863299 +0000
     180411+++ gcc-4.8.1/libgo/runtime/go-reflect-map.c    2013-10-01 16:06:44.224554278 +0000
    175754180412@@ -238,3 +238,12 @@
    175755180413   __builtin_memcpy (ret, &map, sizeof (void *));
     
    175767180425diff -Naur gcc-4.8.1.orig/libgo/runtime/go-signal.c gcc-4.8.1/libgo/runtime/go-signal.c
    175768180426--- gcc-4.8.1.orig/libgo/runtime/go-signal.c    2013-01-24 19:44:23.000000000 +0000
    175769 +++ gcc-4.8.1/libgo/runtime/go-signal.c 2013-09-13 19:01:43.803196623 +0000
     180427+++ gcc-4.8.1/libgo/runtime/go-signal.c 2013-10-01 16:06:44.224554278 +0000
    175770180428@@ -12,6 +12,7 @@
    175771180429 #include "runtime.h"
     
    176003180661diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c gcc-4.8.1/libgo/runtime/go-unsafe-new.c
    176004180662--- gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c        2013-01-24 19:44:23.000000000 +0000
    176005 +++ gcc-4.8.1/libgo/runtime/go-unsafe-new.c     2013-09-13 19:01:43.803196623 +0000
     180663+++ gcc-4.8.1/libgo/runtime/go-unsafe-new.c     2013-10-01 16:06:44.224554278 +0000
    176006180664@@ -21,14 +21,5 @@
    176007180665 void *
     
    176022180680diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c
    176023180681--- gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c   2013-01-24 19:44:23.000000000 +0000
    176024 +++ gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c        2013-09-13 19:01:43.803196623 +0000
     180682+++ gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c        2013-10-01 16:06:44.224554278 +0000
    176025180683@@ -21,21 +21,5 @@
    176026180684 void *
     
    176048180706diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_futex.c gcc-4.8.1/libgo/runtime/lock_futex.c
    176049180707--- gcc-4.8.1.orig/libgo/runtime/lock_futex.c   2013-01-29 20:52:43.000000000 +0000
    176050 +++ gcc-4.8.1/libgo/runtime/lock_futex.c        2013-09-13 19:01:43.803196623 +0000
     180708+++ gcc-4.8.1/libgo/runtime/lock_futex.c        2013-10-01 16:06:44.224554278 +0000
    176051180709@@ -41,7 +41,7 @@
    176052180710                runtime_throw("runtime_lock: lock count");
     
    176146180804diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_sema.c gcc-4.8.1/libgo/runtime/lock_sema.c
    176147180805--- gcc-4.8.1.orig/libgo/runtime/lock_sema.c    2012-03-06 17:57:23.000000000 +0000
    176148 +++ gcc-4.8.1/libgo/runtime/lock_sema.c 2013-09-13 19:01:43.803196623 +0000
     180806+++ gcc-4.8.1/libgo/runtime/lock_sema.c 2013-10-01 16:06:44.224554278 +0000
    176149180807@@ -43,7 +43,7 @@
    176150180808                runtime_throw("runtime_lock: lock count");
     
    176257180915diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.goc gcc-4.8.1/libgo/runtime/malloc.goc
    176258180916--- gcc-4.8.1.orig/libgo/runtime/malloc.goc     2013-01-29 20:52:43.000000000 +0000
    176259 +++ gcc-4.8.1/libgo/runtime/malloc.goc  2013-09-13 19:01:43.803196623 +0000
     180917+++ gcc-4.8.1/libgo/runtime/malloc.goc  2013-10-01 16:06:44.224554278 +0000
    176260180918@@ -18,7 +18,7 @@
    176261180919 #include "go-type.h"
     
    176564181222diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.h gcc-4.8.1/libgo/runtime/malloc.h
    176565181223--- gcc-4.8.1.orig/libgo/runtime/malloc.h       2013-01-29 20:52:43.000000000 +0000
    176566 +++ gcc-4.8.1/libgo/runtime/malloc.h    2013-09-13 19:01:43.806529948 +0000
     181224+++ gcc-4.8.1/libgo/runtime/malloc.h    2013-10-01 16:06:44.224554278 +0000
    176567181225@@ -86,6 +86,7 @@
    176568181226 typedef struct MStats  MStats;
     
    176679181337diff -Naur gcc-4.8.1.orig/libgo/runtime/mcache.c gcc-4.8.1/libgo/runtime/mcache.c
    176680181338--- gcc-4.8.1.orig/libgo/runtime/mcache.c       2012-10-23 04:31:11.000000000 +0000
    176681 +++ gcc-4.8.1/libgo/runtime/mcache.c    2013-09-13 19:01:43.806529948 +0000
     181339+++ gcc-4.8.1/libgo/runtime/mcache.c    2013-10-01 16:06:44.224554278 +0000
    176682181340@@ -21,7 +21,7 @@
    176683181341        l = &c->list[sizeclass];
     
    176700181358diff -Naur gcc-4.8.1.orig/libgo/runtime/mcentral.c gcc-4.8.1/libgo/runtime/mcentral.c
    176701181359--- gcc-4.8.1.orig/libgo/runtime/mcentral.c     2013-01-29 20:52:43.000000000 +0000
    176702 +++ gcc-4.8.1/libgo/runtime/mcentral.c  2013-09-13 19:01:43.806529948 +0000
     181360+++ gcc-4.8.1/libgo/runtime/mcentral.c  2013-10-01 16:06:44.224554278 +0000
    176703181361@@ -108,7 +108,7 @@
    176704181362        int32 size;
     
    176739181397diff -Naur gcc-4.8.1.orig/libgo/runtime/mem.c gcc-4.8.1/libgo/runtime/mem.c
    176740181398--- gcc-4.8.1.orig/libgo/runtime/mem.c  2013-02-15 18:55:09.000000000 +0000
    176741 +++ gcc-4.8.1/libgo/runtime/mem.c       2013-09-13 19:01:43.806529948 +0000
     181399+++ gcc-4.8.1/libgo/runtime/mem.c       2013-10-01 16:06:44.224554278 +0000
    176742181400@@ -78,7 +78,7 @@
    176743181401        fd = dev_zero;
     
    176771181429diff -Naur gcc-4.8.1.orig/libgo/runtime/mfinal.c gcc-4.8.1/libgo/runtime/mfinal.c
    176772181430--- gcc-4.8.1.orig/libgo/runtime/mfinal.c       2012-12-22 01:15:33.000000000 +0000
    176773 +++ gcc-4.8.1/libgo/runtime/mfinal.c    2013-09-13 19:01:43.806529948 +0000
     181431+++ gcc-4.8.1/libgo/runtime/mfinal.c    2013-10-01 16:06:44.224554278 +0000
    176774181432@@ -11,7 +11,7 @@
    176775181433 typedef struct Fin Fin;
     
    176810181468diff -Naur gcc-4.8.1.orig/libgo/runtime/mfixalloc.c gcc-4.8.1/libgo/runtime/mfixalloc.c
    176811181469--- gcc-4.8.1.orig/libgo/runtime/mfixalloc.c    2011-10-26 23:57:58.000000000 +0000
    176812 +++ gcc-4.8.1/libgo/runtime/mfixalloc.c 2013-09-13 19:01:43.806529948 +0000
     181470+++ gcc-4.8.1/libgo/runtime/mfixalloc.c 2013-10-01 16:06:44.224554278 +0000
    176813181471@@ -30,6 +30,11 @@
    176814181472 runtime_FixAlloc_Alloc(FixAlloc *f)
     
    176825181483diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.c gcc-4.8.1/libgo/runtime/mgc0.c
    176826181484--- gcc-4.8.1.orig/libgo/runtime/mgc0.c 2013-01-29 20:52:43.000000000 +0000
    176827 +++ gcc-4.8.1/libgo/runtime/mgc0.c      2013-09-13 19:01:43.809863273 +0000
     181485+++ gcc-4.8.1/libgo/runtime/mgc0.c      2013-10-01 16:06:44.228554278 +0000
    176828181486@@ -21,8 +21,11 @@
    176829181487 #define tab __methods
     
    178227182885 runfinq(void* dummy __attribute__ ((unused)))
    178228182886 {
    178229 @@ -1731,11 +2263,12 @@
     182887@@ -1731,11 +2263,11 @@
    178230182888                for(; fb; fb=next) {
    178231182889                        next = fb->next;
    178232182890                        for(i=0; i<(uint32)fb->cnt; i++) {
    178233182891-                               void *params[1];
    178234 +                               void *params[2];
     182892+                               void *param;
    178235182893 
    178236182894                                f = &fb->fin[i];
    178237                                 params[0] = &f->arg;
     182895-                               params[0] = &f->arg;
    178238182896-                               reflect_call(f->ft, (void*)f->fn, 0, 0, params, nil);
    178239 +                               params[1] = f;
    178240 +                               reflect_call(f->ft, f->fn, 0, 0, params, nil);
     182897+                               param = &f->arg;
     182898+                               reflect_call(f->ft, f->fn, 0, 0, &param, nil);
    178241182899                                f->fn = nil;
    178242182900                                f->arg = nil;
    178243182901                        }
    178244 @@ -1757,11 +2290,11 @@
     182902@@ -1757,11 +2289,11 @@
    178245182903        if(0)
    178246182904                runtime_printf("markallocated %p+%p\n", v, n);
     
    178257182915 
    178258182916        for(;;) {
    178259 @@ -1789,11 +2322,11 @@
     182917@@ -1789,11 +2321,11 @@
    178260182918        if(0)
    178261182919                runtime_printf("markallocated %p+%p\n", v, n);
     
    178272182930 
    178273182931        for(;;) {
    178274 @@ -1819,11 +2352,11 @@
     182932@@ -1819,11 +2351,11 @@
    178275182933        if(!runtime_checking)
    178276182934                return;
     
    178287182945 
    178288182946        bits = *b>>shift;
    178289 @@ -1842,7 +2375,7 @@
     182947@@ -1842,7 +2374,7 @@
    178290182948        uintptr *b, off, shift;
    178291182949        byte *p;
     
    178296182954 
    178297182955        p = v;
    178298 @@ -1853,8 +2386,8 @@
     182956@@ -1853,8 +2385,8 @@
    178299182957                // the entire span, and each bitmap word has bits for only
    178300182958                // one span, so no other goroutines are changing these
     
    178307182965                *b = (*b & ~(bitMask<<shift)) | (bitBlockBoundary<<shift);
    178308182966        }
    178309 @@ -1866,14 +2399,14 @@
     182967@@ -1866,14 +2398,14 @@
    178310182968 {
    178311182969        uintptr *p, *b, off;
     
    178325182983        if(n%wordsPerBitmapWord != 0)
    178326182984                runtime_throw("unmarkspan: unaligned length");
    178327 @@ -1894,8 +2427,8 @@
     182985@@ -1894,8 +2426,8 @@
    178328182986        if(DebugMark)
    178329182987                return true;
     
    178336182994 
    178337182995        return (*b & (bitSpecial<<shift)) != 0;
    178338 @@ -1909,8 +2442,8 @@
     182996@@ -1909,8 +2441,8 @@
    178339182997        if(DebugMark)
    178340182998                return;
     
    178349183007diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.h gcc-4.8.1/libgo/runtime/mgc0.h
    178350183008--- gcc-4.8.1.orig/libgo/runtime/mgc0.h 2012-12-22 01:15:33.000000000 +0000
    178351 +++ gcc-4.8.1/libgo/runtime/mgc0.h      2013-09-13 19:01:43.809863273 +0000
     183009+++ gcc-4.8.1/libgo/runtime/mgc0.h      2013-10-01 16:06:44.228554278 +0000
    178352183010@@ -12,17 +12,22 @@
    178353183011 // Meaning of arguments:
     
    178376183034diff -Naur gcc-4.8.1.orig/libgo/runtime/mheap.c gcc-4.8.1/libgo/runtime/mheap.c
    178377183035--- gcc-4.8.1.orig/libgo/runtime/mheap.c        2013-02-05 23:59:24.000000000 +0000
    178378 +++ gcc-4.8.1/libgo/runtime/mheap.c     2013-09-13 19:01:43.809863273 +0000
     183036+++ gcc-4.8.1/libgo/runtime/mheap.c     2013-10-01 16:06:44.228554278 +0000
    178379183037@@ -37,6 +37,8 @@
    178380183038                if(cap < h->nspancap*3/2)
     
    178548183206diff -Naur gcc-4.8.1.orig/libgo/runtime/mprof.goc gcc-4.8.1/libgo/runtime/mprof.goc
    178549183207--- gcc-4.8.1.orig/libgo/runtime/mprof.goc      2013-01-30 22:24:40.000000000 +0000
    178550 +++ gcc-4.8.1/libgo/runtime/mprof.goc   2013-09-13 19:01:43.809863273 +0000
     183208+++ gcc-4.8.1/libgo/runtime/mprof.goc   2013-10-01 16:06:44.228554278 +0000
    178551183209@@ -14,7 +14,43 @@
    178552183210 #include "go-string.h"
     
    178723183381diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll.goc gcc-4.8.1/libgo/runtime/netpoll.goc
    178724183382--- gcc-4.8.1.orig/libgo/runtime/netpoll.goc    1970-01-01 00:00:00.000000000 +0000
    178725 +++ gcc-4.8.1/libgo/runtime/netpoll.goc 2013-09-13 19:01:43.813196597 +0000
     183383+++ gcc-4.8.1/libgo/runtime/netpoll.goc 2013-10-01 16:06:44.228554278 +0000
    178726183384@@ -0,0 +1,356 @@
    178727183385+// Copyright 2013 The Go Authors. All rights reserved.
     
    179083183741diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c gcc-4.8.1/libgo/runtime/netpoll_epoll.c
    179084183742--- gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c        1970-01-01 00:00:00.000000000 +0000
    179085 +++ gcc-4.8.1/libgo/runtime/netpoll_epoll.c     2013-09-13 19:01:43.809863273 +0000
     183743+++ gcc-4.8.1/libgo/runtime/netpoll_epoll.c     2013-10-01 16:06:44.228554278 +0000
    179086183744@@ -0,0 +1,158 @@
    179087183745+// Copyright 2013 The Go Authors. All rights reserved.
     
    179245183903diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c gcc-4.8.1/libgo/runtime/netpoll_kqueue.c
    179246183904--- gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c       1970-01-01 00:00:00.000000000 +0000
    179247 +++ gcc-4.8.1/libgo/runtime/netpoll_kqueue.c    2013-09-13 19:01:43.813196597 +0000
     183905+++ gcc-4.8.1/libgo/runtime/netpoll_kqueue.c    2013-10-01 16:06:44.228554278 +0000
    179248183906@@ -0,0 +1,108 @@
    179249183907+// Copyright 2013 The Go Authors. All rights reserved.
     
    179357184015diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c gcc-4.8.1/libgo/runtime/netpoll_stub.c
    179358184016--- gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c 1970-01-01 00:00:00.000000000 +0000
    179359 +++ gcc-4.8.1/libgo/runtime/netpoll_stub.c      2013-09-13 19:01:43.813196597 +0000
     184017+++ gcc-4.8.1/libgo/runtime/netpoll_stub.c      2013-10-01 16:06:44.228554278 +0000
    179360184018@@ -0,0 +1,18 @@
    179361184019+// Copyright 2013 The Go Authors. All rights reserved.
     
    179379184037diff -Naur gcc-4.8.1.orig/libgo/runtime/panic.c gcc-4.8.1/libgo/runtime/panic.c
    179380184038--- gcc-4.8.1.orig/libgo/runtime/panic.c        2013-01-30 01:37:13.000000000 +0000
    179381 +++ gcc-4.8.1/libgo/runtime/panic.c     2013-09-13 19:01:43.813196597 +0000
     184039+++ gcc-4.8.1/libgo/runtime/panic.c     2013-10-01 16:06:44.228554278 +0000
    179382184040@@ -3,6 +3,7 @@
    179383184041 // license that can be found in the LICENSE file.
     
    179428184086diff -Naur gcc-4.8.1.orig/libgo/runtime/parfor.c gcc-4.8.1/libgo/runtime/parfor.c
    179429184087--- gcc-4.8.1.orig/libgo/runtime/parfor.c       2013-01-24 19:44:23.000000000 +0000
    179430 +++ gcc-4.8.1/libgo/runtime/parfor.c    2013-09-13 19:01:43.813196597 +0000
     184088+++ gcc-4.8.1/libgo/runtime/parfor.c    2013-10-01 16:06:44.228554278 +0000
    179431184089@@ -49,6 +49,7 @@
    179432184090 runtime_parforsetup(ParFor *desc, uint32 nthr, uint32 n, void *ctx, bool wait, void (*body)(ParFor*, uint32))
     
    179469184127diff -Naur gcc-4.8.1.orig/libgo/runtime/print.c gcc-4.8.1/libgo/runtime/print.c
    179470184128--- gcc-4.8.1.orig/libgo/runtime/print.c        2012-12-04 06:18:07.000000000 +0000
    179471 +++ gcc-4.8.1/libgo/runtime/print.c     2013-09-13 19:01:43.813196597 +0000
     184129+++ gcc-4.8.1/libgo/runtime/print.c     2013-10-01 16:06:44.228554278 +0000
    179472184130@@ -88,6 +88,9 @@
    179473184131                case 'a':
     
    179495184153diff -Naur gcc-4.8.1.orig/libgo/runtime/proc.c gcc-4.8.1/libgo/runtime/proc.c
    179496184154--- gcc-4.8.1.orig/libgo/runtime/proc.c 2013-02-28 21:56:14.000000000 +0000
    179497 +++ gcc-4.8.1/libgo/runtime/proc.c      2013-09-13 19:01:43.816529922 +0000
     184155+++ gcc-4.8.1/libgo/runtime/proc.c      2013-10-01 16:06:44.232554278 +0000
    179498184156@@ -56,15 +56,8 @@
    179499184157 
     
    180556185214-{
    180557185215-       uint32 v;
    180558  
     185216-
    180559185217-       schedlock();
    180560185218-       runtime_gcwaiting = 1;
     
    180579185237-               if(!runtime_cas(&runtime_sched.atomic, v, v+(1<<waitstopShift)))
    180580185238-                       continue;
    180581 -
     185239 
    180582185240-               schedunlock();
    180583185241-               runtime_notesleep(&runtime_sched.stopped);
     
    180592185250-       schedunlock();
    180593185251-}
    180594  
     185252-
    180595185253-void
    180596185254-runtime_starttheworld(void)
     
    180605185263-       if(max > MaxGcproc)
    180606185264-               max = MaxGcproc;
    180607 -
     185265 
    180608185266-       schedlock();
    180609185267-       runtime_gcwaiting = 0;
     
    180854185512+#endif
    180855185513+}
    180856 +
     185514 
    180857185515+// newextram allocates an m and puts it on the extra list.
    180858185516+// It is called with a working local m, so that it can do things
     
    180934185592+       // Undo whatever initialization minit did during needm.
    180935185593+       runtime_unminit();
    180936  
     185594+
    180937185595+       // Clear m and g, and return m to the extra list.
    180938185596+       // After the call to setmg we can only call nosplit functions.
     
    181039185697+                       runtime_osyield();
    181040185698+                       continue;
    181041 +               }
    181042 +               if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {
    181043 +                       runtime_osyield();
    181044 +                       continue;
    181045185699                }
    181046185700-               if(gp->readyonstop) {
     
    181056185710-               // Compensate for increment in starttheworld().
    181057185711-               runtime_sched.grunning--;
     185712+               if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {
     185713+                       runtime_osyield();
     185714+                       continue;
     185715+               }
    181058185716+               c = 0;
    181059185717+               for(mc = mp; mc != nil; mc = mc->schedlink)
     
    181116185774+       m->spinning = true;
    181117185775+}
    181118 +
     185776 
     185777-       // Find (or wait for) g to run.  Unlocks runtime_sched.
     185778-       gp = nextgandunlock();
     185779-       gp->readyonstop = 0;
    181119185780+// Schedules some M to run the p (creates an M if necessary).
    181120185781+// If p==nil, tries to get an idle P, if no idle P's returns false.
     
    181210185871+{
    181211185872+       P *p;
    181212  
    181213 -       // Find (or wait for) g to run.  Unlocks runtime_sched.
    181214 -       gp = nextgandunlock();
    181215 -       gp->readyonstop = 0;
     185873+
    181216185874+       if(m->lockedg == nil || m->lockedg->lockedm != m)
    181217185875+               runtime_throw("stoplockedm: inconsistent locking");
     
    181289185947        gp->m = m;
    181290185948 
    181291 @@ -1352,30 +1449,261 @@
     185949@@ -1352,50 +1449,327 @@
    181292185950        runtime_gogo(gp);
    181293185951 }
     
    181484186142-runtime_park(void (*unlockf)(Lock*), Lock *lock, const char *reason)
    181485186143+runtime_park(void(*unlockf)(Lock*), Lock *lock, const char *reason)
    181486 +{
     186144 {
     186145-       g->status = Gwaiting;
    181487186146+       m->waitlock = lock;
    181488186147+       m->waitunlockf = unlockf;
    181489 +       g->waitreason = reason;
     186148        g->waitreason = reason;
     186149-       if(unlockf)
     186150-               unlockf(lock);
     186151-       runtime_gosched();
    181490186152+       runtime_mcall(park0);
    181491186153+}
     
    181541186203+               runtime_racegoend();
    181542186204+       runtime_mcall(goexit0);
    181543 +}
    181544 +
     186205 }
     186206 
     186207-// The goroutine g is about to enter a system call.
     186208-// Record that it's not using the cpu anymore.
     186209-// This is called only from the go syscall library and cgocall,
     186210-// not from the low-level system calls used by the runtime.
     186211-//
     186212-// Entersyscall cannot split the stack: the runtime_gosave must
     186213-// make g->sched refer to the caller's stack segment, because
     186214-// entersyscall is going to return immediately after.
     186215-// It's okay to call matchmg and notewakeup even after
     186216-// decrementing mcpu, because we haven't released the
     186217-// sched lock yet, so the garbage collector cannot be running.
    181545186218+// runtime_goexit continuation on g0.
    181546186219+static void
    181547186220+goexit0(G *gp)
    181548  {
    181549 -       g->status = Gwaiting;
    181550 -       g->waitreason = reason;
    181551 -       if(unlockf)
    181552 -               unlockf(lock);
    181553 -       runtime_gosched();
     186221+{
    181554186222+       gp->status = Gdead;
    181555186223+       gp->entry = nil;
     
    181565186233+       gfput(m->p, gp);
    181566186234+       schedule();
    181567  }
    181568  
    181569  // The goroutine g is about to enter a system call.
    181570 @@ -1386,17 +1714,12 @@
    181571  // Entersyscall cannot split the stack: the runtime_gosave must
    181572  // make g->sched refer to the caller's stack segment, because
    181573  // entersyscall is going to return immediately after.
    181574 -// It's okay to call matchmg and notewakeup even after
    181575 -// decrementing mcpu, because we haven't released the
    181576 -// sched lock yet, so the garbage collector cannot be running.
    181577  
    181578  void runtime_entersyscall(void) __attribute__ ((no_split_stack));
    181579  
     186235+}
     186236+
     186237+// The goroutine g is about to enter a system call.
     186238+// Record that it's not using the cpu anymore.
     186239+// This is called only from the go syscall library and cgocall,
     186240+// not from the low-level system calls used by the runtime.
     186241+//
     186242+// Entersyscall cannot split the stack: the runtime_gosave must
     186243+// make g->sched refer to the caller's stack segment, because
     186244+// entersyscall is going to return immediately after.
     186245+
     186246+void runtime_entersyscall(void) __attribute__ ((no_split_stack));
     186247+
     186248+void
     186249+runtime_entersyscall()
     186250+{
     186251+       if(m->profilehz > 0)
     186252+               runtime_setprof(false);
     186253+
     186254+       // Leave SP around for gc and traceback.
     186255+#ifdef USING_SPLIT_STACK
     186256+       g->gcstack = __splitstack_find(nil, nil, &g->gcstack_size,
     186257+                                      &g->gcnext_segment, &g->gcnext_sp,
     186258+                                      &g->gcinitial_sp);
     186259+#else
     186260+       {
     186261+               uint32 v;
     186262+
     186263+               g->gcnext_sp = (byte *) &v;
     186264+       }
     186265+#endif
     186266+
     186267+       // Save the registers in the g structure so that any pointers
     186268+       // held in registers will be seen by the garbage collector.
     186269+       getcontext(&g->gcregs);
     186270 
     186271-void runtime_entersyscall(void) __attribute__ ((no_split_stack));
     186272+       g->status = Gsyscall;
     186273+
     186274+       if(runtime_atomicload(&runtime_sched.sysmonwait)) {  // TODO: fast atomic
     186275+               runtime_lock(&runtime_sched);
     186276+               if(runtime_atomicload(&runtime_sched.sysmonwait)) {
     186277+                       runtime_atomicstore(&runtime_sched.sysmonwait, 0);
     186278+                       runtime_notewakeup(&runtime_sched.sysmonnote);
     186279+               }
     186280+               runtime_unlock(&runtime_sched);
     186281+       }
     186282+
     186283+       m->mcache = nil;
     186284+       m->p->tick++;
     186285+       m->p->m = nil;
     186286+       runtime_atomicstore(&m->p->status, Psyscall);
     186287+       if(runtime_gcwaiting) {
     186288+               runtime_lock(&runtime_sched);
     186289+               if (runtime_sched.stopwait > 0 && runtime_cas(&m->p->status, Psyscall, Pgcstop)) {
     186290+                       if(--runtime_sched.stopwait == 0)
     186291+                               runtime_notewakeup(&runtime_sched.stopnote);
     186292+               }
     186293+               runtime_unlock(&runtime_sched);
     186294+       }
     186295+}
     186296 
     186297+// The same as runtime_entersyscall(), but with a hint that the syscall is blocking.
    181580186298 void
    181581186299-runtime_entersyscall(void)
    181582 +runtime_entersyscall()
     186300+runtime_entersyscallblock(void)
    181583186301 {
    181584186302-       uint32 v;
    181585 -
     186303+       P *p;
     186304 
    181586186305        if(m->profilehz > 0)
    181587186306                runtime_setprof(false);
    181588  
    181589 @@ -1406,7 +1729,11 @@
     186307@@ -1406,7 +1780,7 @@
    181590186308                                       &g->gcnext_segment, &g->gcnext_sp,
    181591186309                                       &g->gcinitial_sp);
    181592186310 #else
    181593186311-       g->gcnext_sp = (byte *) &v;
    181594 +       {
    181595 +               uint32 v;
    181596 +
    181597 +               g->gcnext_sp = (byte *) &v;
    181598 +       }
     186312+       g->gcnext_sp = (byte *) &p;
    181599186313 #endif
    181600186314 
    181601186315        // Save the registers in the g structure so that any pointers
    181602 @@ -1415,30 +1742,57 @@
     186316@@ -1415,30 +1789,10 @@
    181603186317 
    181604186318        g->status = Gsyscall;
     
    181615186329-       if(!atomic_gwaiting(v) && (!atomic_waitstop(v) || atomic_mcpu(v) > atomic_mcpumax(v)))
    181616186330-               return;
    181617 +       if(runtime_atomicload(&runtime_sched.sysmonwait)) {  // TODO: fast atomic
    181618 +               runtime_lock(&runtime_sched);
    181619 +               if(runtime_atomicload(&runtime_sched.sysmonwait)) {
    181620 +                       runtime_atomicstore(&runtime_sched.sysmonwait, 0);
    181621 +                       runtime_notewakeup(&runtime_sched.sysmonnote);
    181622 +               }
    181623 +               runtime_unlock(&runtime_sched);
    181624 +       }
    181625  
     186331-
    181626186332-       schedlock();
    181627186333-       v = runtime_atomicload(&runtime_sched.atomic);
     
    181633186339-               runtime_xadd(&runtime_sched.atomic, -1<<waitstopShift);
    181634186340-               runtime_notewakeup(&runtime_sched.stopped);
    181635 +       m->mcache = nil;
    181636 +       m->p->tick++;
    181637 +       m->p->m = nil;
    181638 +       runtime_atomicstore(&m->p->status, Psyscall);
    181639 +       if(runtime_gcwaiting) {
    181640 +               runtime_lock(&runtime_sched);
    181641 +               if (runtime_sched.stopwait > 0 && runtime_cas(&m->p->status, Psyscall, Pgcstop)) {
    181642 +                       if(--runtime_sched.stopwait == 0)
    181643 +                               runtime_notewakeup(&runtime_sched.stopnote);
    181644 +               }
    181645 +               runtime_unlock(&runtime_sched);
    181646         }
    181647 +}
    181648 +
    181649 +// The same as runtime_entersyscall(), but with a hint that the syscall is blocking.
    181650 +void
    181651 +runtime_entersyscallblock(void)
    181652 +{
    181653 +       P *p;
    181654 +
    181655 +       if(m->profilehz > 0)
    181656 +               runtime_setprof(false);
    181657 +
    181658 +       // Leave SP around for gc and traceback.
    181659 +#ifdef USING_SPLIT_STACK
    181660 +       g->gcstack = __splitstack_find(nil, nil, &g->gcstack_size,
    181661 +                                      &g->gcnext_segment, &g->gcnext_sp,
    181662 +                                      &g->gcinitial_sp);
    181663 +#else
    181664 +       g->gcnext_sp = (byte *) &p;
    181665 +#endif
    181666 +
    181667 +       // Save the registers in the g structure so that any pointers
    181668 +       // held in registers will be seen by the garbage collector.
    181669 +       getcontext(&g->gcregs);
    181670 +
    181671 +       g->status = Gsyscall;
    181672  
     186341-       }
     186342-
    181673186343-       schedunlock();
    181674186344+       p = releasep();
     
    182014186684-runtime_UnlockOSThread(void)
    182015186685+runtime_LockOSThread(void)
    182016 +{
     186686 {
     186687-       if(m == &runtime_m0 && runtime_sched.init) {
     186688-               runtime_sched.lockmain = false;
    182017186689+       m->locked |= LockExternal;
    182018186690+       LockOSThread();
     
    182028186700+static void
    182029186701+UnlockOSThread(void)
    182030  {
    182031 -       if(m == &runtime_m0 && runtime_sched.init) {
    182032 -               runtime_sched.lockmain = false;
     186702+{
    182033186703+       if(m->locked != 0)
    182034186704                return;
     
    182100186770                return;
    182101186771 
    182102 @@ -1813,3 +2280,555 @@
     186772@@ -1813,3 +2280,575 @@
    182103186773        if(hz != 0)
    182104186774                runtime_resetcpuprofiler(hz);
     
    182656187326+       addroot((Obj){(byte*)&runtime_sched, sizeof runtime_sched, 0});
    182657187327+}
     187328+
     187329+// When a function calls a closure, it passes the closure value to
     187330+// __go_set_closure immediately before the function call.  When a
     187331+// function uses a closure, it calls __go_get_closure immediately on
     187332+// function entry.  This is a hack, but it will work on any system.
     187333+// It would be better to use the static chain register when there is
     187334+// one.  It is also worth considering expanding these functions
     187335+// directly in the compiler.
     187336+
     187337+void
     187338+__go_set_closure(void* v)
     187339+{
     187340+       g->closure = v;
     187341+}
     187342+
     187343+void *
     187344+__go_get_closure(void)
     187345+{
     187346+       return g->closure;
     187347+}
    182658187348diff -Naur gcc-4.8.1.orig/libgo/runtime/race.h gcc-4.8.1/libgo/runtime/race.h
    182659187349--- gcc-4.8.1.orig/libgo/runtime/race.h 2012-12-12 23:13:29.000000000 +0000
    182660 +++ gcc-4.8.1/libgo/runtime/race.h      2013-09-13 19:01:43.816529922 +0000
     187350+++ gcc-4.8.1/libgo/runtime/race.h      2013-10-01 16:06:44.232554278 +0000
    182661187351@@ -11,17 +11,19 @@
    182662187352 #endif
     
    182684187374diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.c gcc-4.8.1/libgo/runtime/runtime.c
    182685187375--- gcc-4.8.1.orig/libgo/runtime/runtime.c      2013-01-30 01:37:13.000000000 +0000
    182686 +++ gcc-4.8.1/libgo/runtime/runtime.c   2013-09-13 19:01:43.816529922 +0000
     187376+++ gcc-4.8.1/libgo/runtime/runtime.c   2013-10-01 16:06:44.232554278 +0000
    182687187377@@ -2,6 +2,7 @@
    182688187378 // Use of this source code is governed by a BSD-style
     
    182868187558diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.h gcc-4.8.1/libgo/runtime/runtime.h
    182869187559--- gcc-4.8.1.orig/libgo/runtime/runtime.h      2013-01-30 22:24:40.000000000 +0000
    182870 +++ gcc-4.8.1/libgo/runtime/runtime.h   2013-09-13 19:01:43.819863246 +0000
     187560+++ gcc-4.8.1/libgo/runtime/runtime.h   2013-10-01 16:06:44.232554278 +0000
    182871187561@@ -54,23 +54,26 @@
    182872187562 typedef        uint8                   byte;
     
    182977187667 {
    182978187668        // the struct must consist of only uint64's,
    182979 @@ -188,13 +209,12 @@
     187669@@ -169,6 +190,7 @@
     187670 
     187671 struct G
     187672 {
     187673+       void*   closure;        // Closure value.
     187674        Defer*  defer;
     187675        Panic*  panic;
     187676        void*   exception;      // current exception being thrown
     187677@@ -188,13 +210,12 @@
    182980187678        uint32  selgen;         // valid sudog pointer
    182981187679        const char*     waitreason;     // if status==Gwaiting
     
    182994187692        int32   writenbuf;
    182995187693        byte*   writebuf;
    182996 @@ -218,34 +238,45 @@
     187694@@ -218,34 +239,45 @@
    182997187695 {
    182998187696        G*      g0;             // goroutine with scheduling stack
     
    183044187742        uintptr settype_buf[1024];
    183045187743        uintptr settype_bufsize;
    183046 @@ -253,6 +284,38 @@
     187744@@ -253,6 +285,38 @@
    183047187745        uintptr end[];
    183048187746 };
     
    183083187781 {
    183084187782        int32   sig;
    183085 @@ -265,6 +328,8 @@
     187783@@ -265,6 +329,8 @@
    183086187784        SigThrow = 1<<2,        // if signal.Notify doesn't take it, exit loudly
    183087187785        SigPanic = 1<<3,        // if the signal is from the kernel, panic
     
    183092187790 
    183093187791 #ifndef NSIG
    183094 @@ -313,7 +378,7 @@
     187792@@ -313,7 +379,7 @@
    183095187793        // a well-behaved function and not block.
    183096187794        int64   when;
     
    183101187799 };
    183102187800 
    183103 @@ -337,6 +402,7 @@
     187801@@ -337,6 +403,7 @@
    183104187802        bool wait;                      // if true, wait while all threads finish processing,
    183105187803                                        // otherwise parfor may return while other threads are still working
     
    183109187807        uint64 nsteal;
    183110187808        uint64 nstealcnt;
    183111 @@ -350,7 +416,7 @@
     187809@@ -350,7 +417,7 @@
    183112187810 struct CgoMal
    183113187811 {
     
    183118187816 
    183119187817 /*
    183120 @@ -363,6 +429,19 @@
     187818@@ -363,6 +430,19 @@
    183121187819 #define USED(v)                ((void) v)
    183122187820 #define        ROUND(x, n)     (((x)+(n)-1)&~((n)-1)) /* all-caps to mark as macro: it evaluates n twice */
     
    183138187836  * external data
    183139187837  */
    183140 @@ -370,21 +449,28 @@
     187838@@ -370,21 +450,28 @@
    183141187839 extern G*      runtime_allg;
    183142187840 extern G*      runtime_lastg;
     
    183168187866 void   runtime_osinit();
    183169187867 void   runtime_goargs(void);
    183170 @@ -394,42 +480,100 @@
     187868@@ -394,42 +481,100 @@
    183171187869 void   runtime_panicstring(const char*) __attribute__ ((noreturn));
    183172187870 void   runtime_prints(const char*);
     
    183275187973 /*
    183276187974  * mutual exclusion locks.  in the uncontended case,
    183277 @@ -527,6 +671,7 @@
     187975@@ -527,6 +672,7 @@
    183278187976  * runtime go-called
    183279187977  */
     
    183283187981 void   runtime_printint(int64);
    183284187982 void   runtime_printiface(Iface);
    183285 @@ -538,53 +683,10 @@
     187983@@ -538,53 +684,10 @@
    183286187984 void   runtime_printhex(uint64);
    183287187985 void   runtime_printslice(Slice);
     
    183338188036 /*
    183339188037  * runtime c-called (but written in Go)
    183340 @@ -599,14 +701,13 @@
     188038@@ -599,14 +702,13 @@
    183341188039 /*
    183342188040  * wrapped for go users
     
    183355188053 bool   runtime_showframe(String, bool);
    183356188054 
    183357 @@ -622,12 +723,13 @@
     188055@@ -622,12 +724,13 @@
    183358188056 // This is a no-op on other systems.
    183359188057 void   runtime_setprof(bool);
     
    183371188069 
    183372188070 void   runtime_check(void);
    183373 @@ -652,5 +754,8 @@
     188071@@ -652,5 +755,11 @@
    183374188072 extern struct backtrace_state *__go_get_backtrace_state(void);
    183375188073 extern _Bool __go_file_line(uintptr, String*, String*, intgo *);
     
    183380188078+
    183381188079+#define PREFETCH(p) __builtin_prefetch(p)
     188080+
     188081+void   __go_set_closure(void*);
     188082+void*  __go_get_closure(void);
    183382188083diff -Naur gcc-4.8.1.orig/libgo/runtime/sema.goc gcc-4.8.1/libgo/runtime/sema.goc
    183383188084--- gcc-4.8.1.orig/libgo/runtime/sema.goc       2012-10-23 04:31:11.000000000 +0000
    183384 +++ gcc-4.8.1/libgo/runtime/sema.goc    2013-09-13 19:01:43.819863246 +0000
     188085+++ gcc-4.8.1/libgo/runtime/sema.goc    2013-10-01 16:06:44.232554278 +0000
    183385188086@@ -44,12 +44,12 @@
    183386188087 // Prime to not correlate with any user patterns.
     
    183401188102diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.c gcc-4.8.1/libgo/runtime/signal_unix.c
    183402188103--- gcc-4.8.1.orig/libgo/runtime/signal_unix.c  2012-03-02 16:38:43.000000000 +0000
    183403 +++ gcc-4.8.1/libgo/runtime/signal_unix.c       2013-09-13 19:01:43.819863246 +0000
     188104+++ gcc-4.8.1/libgo/runtime/signal_unix.c       2013-10-01 16:06:44.232554278 +0000
    183404188105@@ -8,6 +8,7 @@
    183405188106 
     
    183536188237diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.h gcc-4.8.1/libgo/runtime/signal_unix.h
    183537188238--- gcc-4.8.1.orig/libgo/runtime/signal_unix.h  1970-01-01 00:00:00.000000000 +0000
    183538 +++ gcc-4.8.1/libgo/runtime/signal_unix.h       2013-09-13 19:01:43.819863246 +0000
     188239+++ gcc-4.8.1/libgo/runtime/signal_unix.h       2013-10-01 16:06:44.232554278 +0000
    183539188240@@ -0,0 +1,22 @@
    183540188241+// Copyright 2013 The Go Authors.  All rights reserved.
     
    183562188263diff -Naur gcc-4.8.1.orig/libgo/runtime/sigqueue.goc gcc-4.8.1/libgo/runtime/sigqueue.goc
    183563188264--- gcc-4.8.1.orig/libgo/runtime/sigqueue.goc   2013-01-29 20:52:43.000000000 +0000
    183564 +++ gcc-4.8.1/libgo/runtime/sigqueue.goc        2013-09-13 19:01:43.819863246 +0000
     188265+++ gcc-4.8.1/libgo/runtime/sigqueue.goc        2013-10-01 16:06:44.232554278 +0000
    183565188266@@ -107,7 +107,7 @@
    183566188267                                new = HASWAITER;
     
    183608188309diff -Naur gcc-4.8.1.orig/libgo/runtime/string.goc gcc-4.8.1/libgo/runtime/string.goc
    183609188310--- gcc-4.8.1.orig/libgo/runtime/string.goc     2013-01-30 22:24:40.000000000 +0000
    183610 +++ gcc-4.8.1/libgo/runtime/string.goc  2013-09-13 19:01:43.819863246 +0000
     188311+++ gcc-4.8.1/libgo/runtime/string.goc  2013-10-01 16:06:44.232554278 +0000
    183611188312@@ -7,6 +7,7 @@
    183612188313 #include "arch.h"
     
    183619188320diff -Naur gcc-4.8.1.orig/libgo/runtime/thread.c gcc-4.8.1/libgo/runtime/thread.c
    183620188321--- gcc-4.8.1.orig/libgo/runtime/thread.c       2012-03-06 17:57:23.000000000 +0000
    183621 +++ gcc-4.8.1/libgo/runtime/thread.c    2013-09-13 19:01:43.819863246 +0000
     188322+++ gcc-4.8.1/libgo/runtime/thread.c    2013-10-01 16:06:44.232554278 +0000
    183622188323@@ -133,27 +133,6 @@
    183623188324 
     
    183650188351diff -Naur gcc-4.8.1.orig/libgo/runtime/time.goc gcc-4.8.1/libgo/runtime/time.goc
    183651188352--- gcc-4.8.1.orig/libgo/runtime/time.goc       2013-01-30 01:37:13.000000000 +0000
    183652 +++ gcc-4.8.1/libgo/runtime/time.goc    2013-09-13 19:01:43.819863246 +0000
     188353+++ gcc-4.8.1/libgo/runtime/time.goc    2013-10-01 16:06:44.232554278 +0000
    183653188354@@ -14,7 +14,6 @@
    183654188355 
     
    183677188378 
    183678188379 // C runtime.
    183679 @@ -49,13 +46,16 @@
    183680  
    183681  // Ready the goroutine e.data.
    183682  static void
    183683 -ready(int64 now, Eface e)
    183684 +ready(int64 now, Eface e, void *closure)
    183685  {
    183686         USED(now);
    183687 +       USED(closure);
    183688  
     188380@@ -56,6 +53,8 @@
    183689188381        runtime_ready(e.__object);
    183690188382 }
     
    183695188387 void
    183696188388 runtime_tsleep(int64 ns, const char *reason)
    183697 @@ -70,13 +70,21 @@
     188389@@ -70,13 +69,21 @@
    183698188390 
    183699188391        t.when = runtime_nanotime() + ns;
     
    183718188410 // if the new timer is earlier than any of the others.
    183719188411 static void
    183720 @@ -119,8 +127,8 @@
     188412@@ -119,8 +126,8 @@
    183721188413 // Delete timer t from the heap.
    183722188414 // Do not need to update the timerproc:
     
    183729188421        int32 i;
    183730188422 
    183731 @@ -158,7 +166,7 @@
    183732  {
    183733         int64 delta, now;
    183734         Timer *t;
    183735 -       void (*f)(int64, Eface);
    183736 +       void (*f)(int64, Eface, void *);
    183737         Eface arg;
    183738  
    183739         for(;;) {
    183740 @@ -184,12 +192,12 @@
     188423@@ -184,11 +191,12 @@
    183741188424                                siftdown(0);
    183742188425                                t->i = -1;  // mark as removed
     
    183748188431                        if(raceenabled)
    183749188432                                runtime_raceacquire(t);
    183750 -                       f(now, arg);
    183751 +                       f(now, arg, &t->fv);
     188433+                       __go_set_closure(t->fv);
     188434                        f(now, arg);
    183752188435                        runtime_lock(&timers);
    183753188436                }
    183754                 if(delta < 0) {
    183755188437@@ -202,7 +210,7 @@
    183756188438                timers.sleeping = true;
     
    183762188444                runtime_exitsyscall();
    183763188445        }
     188446diff -Naur gcc-4.8.1.orig/libgomp/testsuite/libgomp.c/sections-2.c gcc-4.8.1/libgomp/testsuite/libgomp.c/sections-2.c
     188447--- gcc-4.8.1.orig/libgomp/testsuite/libgomp.c/sections-2.c     1970-01-01 00:00:00.000000000 +0000
     188448+++ gcc-4.8.1/libgomp/testsuite/libgomp.c/sections-2.c  2013-10-01 16:06:44.232554278 +0000
     188449@@ -0,0 +1,29 @@
     188450+/* { dg-do run } */
     188451+
     188452+#include <stdlib.h>
     188453+#include <unistd.h>
     188454+
     188455+__attribute__((noinline, noclone, noreturn))
     188456+void
     188457+foo ()
     188458+{
     188459+  sleep (4);
     188460+  exit (0);
     188461+}
     188462+
     188463+int
     188464+main ()
     188465+{
     188466+  #pragma omp parallel
     188467+  {
     188468+    #pragma omp sections
     188469+      {
     188470+        foo ();
     188471+      #pragma omp section
     188472+        foo ();
     188473+      #pragma omp section
     188474+        foo ();
     188475+      }
     188476+  }
     188477+  return 0;
     188478+}
    183764188479diff -Naur gcc-4.8.1.orig/libitm/acinclude.m4 gcc-4.8.1/libitm/acinclude.m4
    183765188480--- gcc-4.8.1.orig/libitm/acinclude.m4  2012-10-31 04:46:20.000000000 +0000
    183766 +++ gcc-4.8.1/libitm/acinclude.m4       2013-09-13 19:01:43.819863246 +0000
     188481+++ gcc-4.8.1/libitm/acinclude.m4       2013-10-01 16:06:44.232554278 +0000
    183767188482@@ -121,6 +121,17 @@
    183768188483     AC_DEFINE(HAVE_AS_RTM, 1, [Define to 1 if the assembler supports RTM.])
     
    183785188500diff -Naur gcc-4.8.1.orig/libitm/config/s390/sjlj.S gcc-4.8.1/libitm/config/s390/sjlj.S
    183786188501--- gcc-4.8.1.orig/libitm/config/s390/sjlj.S    1970-01-01 00:00:00.000000000 +0000
    183787 +++ gcc-4.8.1/libitm/config/s390/sjlj.S 2013-09-13 19:01:43.823196571 +0000
     188502+++ gcc-4.8.1/libitm/config/s390/sjlj.S 2013-10-01 16:06:44.232554278 +0000
    183788188503@@ -0,0 +1,108 @@
    183789188504+/* Copyright (C) 2013 Free Software Foundation, Inc.
     
    183897188612diff -Naur gcc-4.8.1.orig/libitm/config/s390/target.h gcc-4.8.1/libitm/config/s390/target.h
    183898188613--- gcc-4.8.1.orig/libitm/config/s390/target.h  1970-01-01 00:00:00.000000000 +0000
    183899 +++ gcc-4.8.1/libitm/config/s390/target.h       2013-09-13 19:01:43.823196571 +0000
     188614+++ gcc-4.8.1/libitm/config/s390/target.h       2013-10-01 16:06:44.236554278 +0000
    183900188615@@ -0,0 +1,127 @@
    183901188616+/* Copyright (C) 2013 Free Software Foundation, Inc.
     
    184028188743diff -Naur gcc-4.8.1.orig/libitm/config.h.in gcc-4.8.1/libitm/config.h.in
    184029188744--- gcc-4.8.1.orig/libitm/config.h.in   2013-05-31 09:09:26.000000000 +0000
    184030 +++ gcc-4.8.1/libitm/config.h.in        2013-09-13 19:01:43.823196571 +0000
     188745+++ gcc-4.8.1/libitm/config.h.in        2013-10-01 16:06:44.236554278 +0000
    184031188746@@ -12,6 +12,9 @@
    184032188747 /* Define if your assembler supports .cfi_* directives. */
     
    184061188776diff -Naur gcc-4.8.1.orig/libitm/configure gcc-4.8.1/libitm/configure
    184062188777--- gcc-4.8.1.orig/libitm/configure     2013-05-31 09:09:26.000000000 +0000
    184063 +++ gcc-4.8.1/libitm/configure  2013-09-13 19:01:43.826529896 +0000
     188778+++ gcc-4.8.1/libitm/configure  2013-10-01 16:06:44.236554278 +0000
    184064188779@@ -15349,7 +15349,7 @@
    184065188780 
     
    184127188842diff -Naur gcc-4.8.1.orig/libitm/configure.ac gcc-4.8.1/libitm/configure.ac
    184128188843--- gcc-4.8.1.orig/libitm/configure.ac  2013-02-03 17:46:11.000000000 +0000
    184129 +++ gcc-4.8.1/libitm/configure.ac       2013-09-13 19:01:43.829863220 +0000
     188844+++ gcc-4.8.1/libitm/configure.ac       2013-10-01 16:06:44.236554278 +0000
    184130188845@@ -160,7 +160,7 @@
    184131188846 AC_STDC_HEADERS
     
    184156188871diff -Naur gcc-4.8.1.orig/libitm/configure.tgt gcc-4.8.1/libitm/configure.tgt
    184157188872--- gcc-4.8.1.orig/libitm/configure.tgt 2013-02-03 17:46:11.000000000 +0000
    184158 +++ gcc-4.8.1/libitm/configure.tgt      2013-09-13 19:01:43.829863220 +0000
     188873+++ gcc-4.8.1/libitm/configure.tgt      2013-10-01 16:06:44.236554278 +0000
    184159188874@@ -105,6 +105,10 @@
    184160188875        XCFLAGS="${XCFLAGS} -mrtm"
     
    185481190196diff -Naur gcc-4.8.1.orig/libjava/classpath/configure gcc-4.8.1/libjava/classpath/configure
    185482190197--- gcc-4.8.1.orig/libjava/classpath/configure  2012-12-19 17:03:15.000000000 +0000
    185483 +++ gcc-4.8.1/libjava/classpath/configure       2013-09-13 19:01:43.839863194 +0000
     190198+++ gcc-4.8.1/libjava/classpath/configure       2013-10-01 16:06:44.240554278 +0000
    185484190199@@ -18779,8 +18779,9 @@
    185485190200   succeeded=no
     
    187412192127diff -Naur gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4 gcc-4.8.1/libjava/classpath/m4/pkg.m4
    187413192128--- gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4  2005-09-23 17:31:48.000000000 +0000
    187414 +++ gcc-4.8.1/libjava/classpath/m4/pkg.m4       2013-09-13 19:01:43.843196519 +0000
     192129+++ gcc-4.8.1/libjava/classpath/m4/pkg.m4       2013-10-01 16:06:44.240554278 +0000
    187415192130@@ -6,7 +6,7 @@
    187416192131   succeeded=no
     
    187424192139diff -Naur gcc-4.8.1.orig/libjava/configure gcc-4.8.1/libjava/configure
    187425192140--- gcc-4.8.1.orig/libjava/configure    2012-12-12 13:40:15.000000000 +0000
    187426 +++ gcc-4.8.1/libjava/configure 2013-09-13 19:01:43.849863168 +0000
     192141+++ gcc-4.8.1/libjava/configure 2013-10-01 16:06:44.244554278 +0000
    187427192142@@ -3206,7 +3206,7 @@
    187428192143     -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
     
    187688192403diff -Naur gcc-4.8.1.orig/libjava/pkg.m4 gcc-4.8.1/libjava/pkg.m4
    187689192404--- gcc-4.8.1.orig/libjava/pkg.m4       2004-01-30 22:01:11.000000000 +0000
    187690 +++ gcc-4.8.1/libjava/pkg.m4    2013-09-13 19:01:43.849863168 +0000
     192405+++ gcc-4.8.1/libjava/pkg.m4    2013-10-01 16:06:44.244554278 +0000
    187691192406@@ -6,7 +6,7 @@
    187692192407   succeeded=no
     
    187700192415diff -Naur gcc-4.8.1.orig/libobjc/exception.c gcc-4.8.1/libobjc/exception.c
    187701192416--- gcc-4.8.1.orig/libobjc/exception.c  2013-02-03 11:16:21.000000000 +0000
    187702 +++ gcc-4.8.1/libobjc/exception.c       2013-09-13 19:01:43.849863168 +0000
     192417+++ gcc-4.8.1/libobjc/exception.c       2013-10-01 16:06:44.244554278 +0000
    187703192418@@ -202,7 +202,7 @@
    187704192419 #ifdef SJLJ_EXCEPTIONS
     
    188664193379diff -Naur gcc-4.8.1.orig/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
    188665193380--- gcc-4.8.1.orig/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt    2012-02-10 08:15:37.000000000 +0000
    188666 +++ gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt 2013-09-13 19:01:43.853196492 +0000
     193381+++ gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt 2013-10-01 16:06:44.244554278 +0000
    188667193382@@ -543,6 +543,7 @@
    188668193383 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@@GLIBCXX_LDBL_3.4
     
    188745193460 OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
    188746193461 OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
     193462diff -Naur gcc-4.8.1.orig/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver gcc-4.8.1/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
     193463--- gcc-4.8.1.orig/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver      2013-02-03 17:54:05.000000000 +0000
     193464+++ gcc-4.8.1/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver   2013-10-01 16:06:44.248554278 +0000
     193465@@ -63,6 +63,7 @@
     193466     _ZTVN9__gnu_cxx3__718stdio_sync_filebufI[cw]NSt3__711char_traitsI[cw]EEEE;
     193467 
     193468     # thunk
     193469+    _ZTv0_n12_NS*;
     193470     _ZTv0_n24_NS*;
     193471 
     193472     # typeinfo structure
    188747193473diff -Naur gcc-4.8.1.orig/libstdc++-v3/configure.host gcc-4.8.1/libstdc++-v3/configure.host
    188748193474--- gcc-4.8.1.orig/libstdc++-v3/configure.host  2012-10-15 21:12:23.000000000 +0000
    188749 +++ gcc-4.8.1/libstdc++-v3/configure.host       2013-09-13 19:01:43.856529817 +0000
     193475+++ gcc-4.8.1/libstdc++-v3/configure.host       2013-10-01 16:06:44.248554278 +0000
    188750193476@@ -330,7 +330,7 @@
    188751193477       mips64*)
     
    188759193485diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am gcc-4.8.1/libstdc++-v3/include/Makefile.am
    188760193486--- gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am     2013-05-08 19:10:42.000000000 +0000
    188761 +++ gcc-4.8.1/libstdc++-v3/include/Makefile.am  2013-09-13 19:01:43.866529791 +0000
     193487+++ gcc-4.8.1/libstdc++-v3/include/Makefile.am  2013-10-01 16:06:44.252554278 +0000
    188762193488@@ -172,8 +172,7 @@
    188763193489        ${bits_srcdir}/valarray_array.tcc \
     
    188831193557diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in gcc-4.8.1/libstdc++-v3/include/Makefile.in
    188832193558--- gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in     2013-05-08 19:10:42.000000000 +0000
    188833 +++ gcc-4.8.1/libstdc++-v3/include/Makefile.in  2013-09-13 19:01:43.869863115 +0000
     193559+++ gcc-4.8.1/libstdc++-v3/include/Makefile.in  2013-10-01 16:06:44.252554278 +0000
    188834193560@@ -434,8 +434,7 @@
    188835193561        ${bits_srcdir}/valarray_array.tcc \
     
    188903193629diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config gcc-4.8.1/libstdc++-v3/include/bits/c++config
    188904193630--- gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config  2013-02-03 17:54:05.000000000 +0000
    188905 +++ gcc-4.8.1/libstdc++-v3/include/bits/c++config       2013-09-13 19:01:43.856529817 +0000
     193631+++ gcc-4.8.1/libstdc++-v3/include/bits/c++config       2013-10-01 16:06:44.248554278 +0000
    188906193632@@ -84,6 +84,12 @@
    188907193633 # define _GLIBCXX_DEPRECATED
     
    188919193645diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h gcc-4.8.1/libstdc++-v3/include/bits/random.h
    188920193646--- gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h   2013-02-04 19:28:40.000000000 +0000
    188921 +++ gcc-4.8.1/libstdc++-v3/include/bits/random.h        2013-09-13 19:01:43.856529817 +0000
     193647+++ gcc-4.8.1/libstdc++-v3/include/bits/random.h        2013-10-01 16:06:44.248554278 +0000
    188922193648@@ -2178,7 +2178,7 @@
    188923193649        */
     
    188968193694diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc gcc-4.8.1/libstdc++-v3/include/bits/random.tcc
    188969193695--- gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc 2013-02-12 10:26:54.000000000 +0000
    188970 +++ gcc-4.8.1/libstdc++-v3/include/bits/random.tcc      2013-09-13 19:01:43.859863142 +0000
     193696+++ gcc-4.8.1/libstdc++-v3/include/bits/random.tcc      2013-10-01 16:06:44.248554278 +0000
     193697@@ -1291,7 +1291,7 @@
     193698       operator()(_UniformRandomNumberGenerator& __urng,
     193699                 const param_type& __p)
     193700       {
     193701-       typedef typename std::gamma_distribution<result_type>::param_type
     193702+       typedef typename std::gamma_distribution<double>::param_type
     193703          param_type;
     193704       
     193705        const double __y =
    188971193706@@ -1648,7 +1648,8 @@
    188972193707     template<typename _UniformRandomNumberGenerator>
     
    189004193739        if (__p12 != __p)
    189005193740          __ret = __t - __ret;
     193741diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algo.h gcc-4.8.1/libstdc++-v3/include/bits/stl_algo.h
     193742--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algo.h 2013-02-03 17:54:05.000000000 +0000
     193743+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_algo.h      2013-10-01 16:06:44.248554278 +0000
     193744@@ -72,10 +72,11 @@
     193745 {
     193746 _GLIBCXX_BEGIN_NAMESPACE_VERSION
     193747 
     193748-  /// Swaps the median value of *__a, *__b and *__c to *__a
     193749+  /// Swaps the median value of *__a, *__b and *__c to *__result
     193750   template<typename _Iterator>
     193751     void
     193752-    __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c)
     193753+    __move_median_to_first(_Iterator __result, _Iterator __a,
     193754+                          _Iterator __b, _Iterator __c)
     193755     {
     193756       // concept requirements
     193757       __glibcxx_function_requires(_LessThanComparableConcept<
     193758@@ -84,23 +85,26 @@
     193759       if (*__a < *__b)
     193760        {
     193761          if (*__b < *__c)
     193762-           std::iter_swap(__a, __b);
     193763+           std::iter_swap(__result, __b);
     193764          else if (*__a < *__c)
     193765-           std::iter_swap(__a, __c);
     193766+           std::iter_swap(__result, __c);
     193767+         else
     193768+           std::iter_swap(__result, __a);
     193769        }
     193770       else if (*__a < *__c)
     193771-       return;
     193772+       std::iter_swap(__result, __a);
     193773       else if (*__b < *__c)
     193774-       std::iter_swap(__a, __c);
     193775+       std::iter_swap(__result, __c);
     193776       else
     193777-       std::iter_swap(__a, __b);
     193778+       std::iter_swap(__result, __b);
     193779     }
     193780 
     193781-  /// Swaps the median value of *__a, *__b and *__c under __comp to *__a
     193782+  /// Swaps the median value of *__a, *__b and *__c under __comp to *__result
     193783   template<typename _Iterator, typename _Compare>
     193784     void
     193785-    __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c,
     193786-                       _Compare __comp)
     193787+    __move_median_to_first(_Iterator __result, _Iterator __a,
     193788+                          _Iterator __b, _Iterator __c,
     193789+                          _Compare __comp)
     193790     {
     193791       // concept requirements
     193792       __glibcxx_function_requires(_BinaryFunctionConcept<_Compare, bool,
     193793@@ -110,16 +114,18 @@
     193794       if (__comp(*__a, *__b))
     193795        {
     193796          if (__comp(*__b, *__c))
     193797-           std::iter_swap(__a, __b);
     193798+           std::iter_swap(__result, __b);
     193799          else if (__comp(*__a, *__c))
     193800-           std::iter_swap(__a, __c);
     193801+           std::iter_swap(__result, __c);
     193802+         else
     193803+           std::iter_swap(__result, __a);
     193804        }
     193805       else if (__comp(*__a, *__c))
     193806-       return;
     193807+       std::iter_swap(__result, __a);
     193808       else if (__comp(*__b, *__c))
     193809-       std::iter_swap(__a, __c);
     193810+       std::iter_swap(__result, __c);
     193811       else
     193812-       std::iter_swap(__a, __b);
     193813+       std::iter_swap(__result, __b);
     193814     }
     193815 
     193816   // for_each
     193817@@ -385,38 +391,23 @@
     193818        _DistanceType;
     193819 
     193820       _DistanceType __tailSize = __last - __first;
     193821-      const _DistanceType __pattSize = __count;
     193822+      _DistanceType __remainder = __count;
     193823 
     193824-      if (__tailSize < __pattSize)
     193825-        return __last;
     193826-
     193827-      const _DistanceType __skipOffset = __pattSize - 1;
     193828-      _RandomAccessIter __lookAhead = __first + __skipOffset;
     193829-      __tailSize -= __pattSize;
     193830-
     193831-      while (1) // the main loop...
     193832+      while (__remainder <= __tailSize) // the main loop...
     193833        {
     193834-         // __lookAhead here is always pointing to the last element of next
     193835-         // possible match.
     193836-         while (!(*__lookAhead == __val)) // the skip loop...
     193837-           {
     193838-             if (__tailSize < __pattSize)
     193839-               return __last;  // Failure
     193840-             __lookAhead += __pattSize;
     193841-             __tailSize -= __pattSize;
     193842-           }
     193843-         _DistanceType __remainder = __skipOffset;
     193844-         for (_RandomAccessIter __backTrack = __lookAhead - 1;
     193845-              *__backTrack == __val; --__backTrack)
     193846+         __first += __remainder;
     193847+         __tailSize -= __remainder;
     193848+         // __first here is always pointing to one past the last element of
     193849+         // next possible match.
     193850+         _RandomAccessIter __backTrack = __first;
     193851+         while (*--__backTrack == __val)
     193852            {
     193853              if (--__remainder == 0)
     193854-               return (__lookAhead - __skipOffset); // Success
     193855+               return (__first - __count); // Success
     193856            }
     193857-         if (__remainder > __tailSize)
     193858-           return __last; // Failure
     193859-         __lookAhead += __remainder;
     193860-         __tailSize -= __remainder;
     193861+         __remainder = __count + 1 - (__first - __backTrack);
     193862        }
     193863+      return __last; // Failure
     193864     }
     193865 
     193866   // search_n
     193867@@ -478,38 +469,23 @@
     193868        _DistanceType;
     193869 
     193870       _DistanceType __tailSize = __last - __first;
     193871-      const _DistanceType __pattSize = __count;
     193872-
     193873-      if (__tailSize < __pattSize)
     193874-        return __last;
     193875-
     193876-      const _DistanceType __skipOffset = __pattSize - 1;
     193877-      _RandomAccessIter __lookAhead = __first + __skipOffset;
     193878-      __tailSize -= __pattSize;
     193879+      _DistanceType __remainder = __count;
     193880 
     193881-      while (1) // the main loop...
     193882+      while (__remainder <= __tailSize) // the main loop...
     193883        {
     193884-         // __lookAhead here is always pointing to the last element of next
     193885-         // possible match.
     193886-         while (!bool(__binary_pred(*__lookAhead, __val))) // the skip loop...
     193887-           {
     193888-             if (__tailSize < __pattSize)
     193889-               return __last;  // Failure
     193890-             __lookAhead += __pattSize;
     193891-             __tailSize -= __pattSize;
     193892-           }
     193893-         _DistanceType __remainder = __skipOffset;
     193894-         for (_RandomAccessIter __backTrack = __lookAhead - 1;
     193895-              __binary_pred(*__backTrack, __val); --__backTrack)
     193896+         __first += __remainder;
     193897+         __tailSize -= __remainder;
     193898+         // __first here is always pointing to one past the last element of
     193899+         // next possible match.
     193900+         _RandomAccessIter __backTrack = __first;
     193901+         while (__binary_pred(*--__backTrack, __val))
     193902            {
     193903              if (--__remainder == 0)
     193904-               return (__lookAhead - __skipOffset); // Success
     193905+               return (__first - __count); // Success
     193906            }
     193907-         if (__remainder > __tailSize)
     193908-           return __last; // Failure
     193909-         __lookAhead += __remainder;
     193910-         __tailSize -= __remainder;
     193911+         __remainder = __count + 1 - (__first - __backTrack);
     193912        }
     193913+      return __last; // Failure
     193914     }
     193915 
     193916   // find_end for forward iterators.
     193917@@ -2303,7 +2279,7 @@
     193918                                _RandomAccessIterator __last)
     193919     {
     193920       _RandomAccessIterator __mid = __first + (__last - __first) / 2;
     193921-      std::__move_median_first(__first, __mid, (__last - 1));
     193922+      std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2));
     193923       return std::__unguarded_partition(__first + 1, __last, *__first);
     193924     }
     193925 
     193926@@ -2315,7 +2291,8 @@
     193927                                _RandomAccessIterator __last, _Compare __comp)
     193928     {
     193929       _RandomAccessIterator __mid = __first + (__last - __first) / 2;
     193930-      std::__move_median_first(__first, __mid, (__last - 1), __comp);
     193931+      std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2),
     193932+                                 __comp);
     193933       return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
     193934     }
     193935 
     193936diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algobase.h gcc-4.8.1/libstdc++-v3/include/bits/stl_algobase.h
     193937--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algobase.h     2013-02-03 17:54:05.000000000 +0000
     193938+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_algobase.h  2013-10-01 16:06:44.248554278 +0000
     193939@@ -611,7 +611,7 @@
     193940    *  loop count will be known (and therefore a candidate for compiler
     193941    *  optimizations such as unrolling).
     193942    *
     193943-   *  Result may not be in the range [first,last).  Use copy instead.  Note
     193944+   *  Result may not be in the range (first,last].  Use copy instead.  Note
     193945    *  that the start of the output range may overlap [first,last).
     193946   */
     193947   template<typename _BI1, typename _BI2>
    189006193948diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h
    189007193949--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h      2013-02-03 17:54:05.000000000 +0000
    189008 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h   2013-09-13 19:01:43.859863142 +0000
     193950+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h   2013-10-01 16:06:44.248554278 +0000
    189009193951@@ -520,7 +520,7 @@
    189010193952     typedef _Bvector_base<_Alloc>                       _Base;
     
    189018193960diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h
    189019193961--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h  2013-02-03 17:54:05.000000000 +0000
    189020 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h       2013-09-13 19:01:43.859863142 +0000
     193962+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h       2013-10-01 16:06:44.248554278 +0000
    189021193963@@ -690,7 +690,8 @@
    189022193964       erase(const_iterator __position)
     
    189031193973diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h
    189032193974--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h     2013-02-03 17:54:05.000000000 +0000
    189033 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h  2013-09-13 19:01:43.863196466 +0000
     193975+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h  2013-10-01 16:06:44.248554278 +0000
    189034193976@@ -596,6 +596,7 @@
    189035193977       { return _M_t.erase(__position); }
     
    189042193984diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h
    189043193985--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h     2013-02-03 17:54:05.000000000 +0000
    189044 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h  2013-09-13 19:01:43.863196466 +0000
     193986+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h  2013-10-01 16:06:44.252554278 +0000
    189045193987@@ -532,6 +532,7 @@
    189046193988        *  not touched in any way.  Managing the pointer is the user's
     
    189061194003diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h
    189062194004--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h  2013-02-03 17:54:05.000000000 +0000
    189063 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h       2013-09-13 19:01:43.863196466 +0000
     194005+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h       2013-10-01 16:06:44.252554278 +0000
    189064194006@@ -546,6 +546,7 @@
    189065194007        *  touched in any way.  Managing the pointer is the user's
     
    189080194022diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h
    189081194023--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h 2013-03-14 23:28:11.000000000 +0000
    189082 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h      2013-09-13 19:01:43.863196466 +0000
     194024+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h      2013-10-01 16:06:44.252554278 +0000
    189083194025@@ -336,21 +336,21 @@
    189084194026               _Node_allocator;
     
    189142194084diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h
    189143194085--- gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h    2013-01-16 23:56:00.000000000 +0000
    189144 +++ gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h 2013-09-13 19:01:43.863196466 +0000
     194086+++ gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h 2013-10-01 16:06:44.252554278 +0000
    189145194087@@ -367,7 +367,7 @@
    189146194088                                                    _Pair&&>::value>::type>
     
    189181194123diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h
    189182194124--- gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h 2013-02-03 17:54:05.000000000 +0000
    189183 +++ gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h      2013-09-13 19:01:43.866529791 +0000
     194125+++ gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h      2013-10-01 16:06:44.252554278 +0000
    189184194126@@ -29,6 +29,8 @@
    189185194127 #ifndef _GLIBCXX_ATOMICITY_H
     
    189193194135diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/random gcc-4.8.1/libstdc++-v3/include/ext/random
    189194194136--- gcc-4.8.1.orig/libstdc++-v3/include/ext/random      2013-03-04 16:24:58.000000000 +0000
    189195 +++ gcc-4.8.1/libstdc++-v3/include/ext/random   2013-09-13 19:01:43.866529791 +0000
     194137+++ gcc-4.8.1/libstdc++-v3/include/ext/random   2013-10-01 16:06:44.252554278 +0000
    189196194138@@ -791,7 +791,7 @@
    189197194139       result_type
     
    189212194154 
    189213194155 #endif // _GLIBCXX_USE_C99_STDINT_TR1
     194156diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/sso_string_base.h gcc-4.8.1/libstdc++-v3/include/ext/sso_string_base.h
     194157--- gcc-4.8.1.orig/libstdc++-v3/include/ext/sso_string_base.h   2013-02-03 17:54:05.000000000 +0000
     194158+++ gcc-4.8.1/libstdc++-v3/include/ext/sso_string_base.h        2013-10-01 16:06:44.252554278 +0000
     194159@@ -361,9 +361,9 @@
     194160          _M_capacity(__rcs._M_allocated_capacity);
     194161        }
     194162 
     194163-      _M_length(__rcs._M_length());
     194164-      __rcs._M_length(0);
     194165+      _M_set_length(__rcs._M_length());
     194166       __rcs._M_data(__rcs._M_local_data);
     194167+      __rcs._M_set_length(0);
     194168     }
     194169 #endif
     194170 
    189214194171diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h
    189215194172--- gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h 2013-02-03 17:54:05.000000000 +0000
    189216 +++ gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h      2013-09-13 19:01:43.869863115 +0000
     194173+++ gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h      2013-10-01 16:06:44.252554278 +0000
    189217194174@@ -188,7 +188,7 @@
    189218194175   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_invalid())
     
    189247194204diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h
    189248194205--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h        1970-01-01 00:00:00.000000000 +0000
    189249 +++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h     2013-09-13 19:01:43.869863115 +0000
     194206+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h     2013-10-01 16:06:44.252554278 +0000
    189250194207@@ -0,0 +1,262 @@
    189251194208+// Profiling unordered containers implementation details -*- C++ -*-
     
    189513194470diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map gcc-4.8.1/libstdc++-v3/include/profile/unordered_map
    189514194471--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map   2013-01-16 23:56:00.000000000 +0000
    189515 +++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_map        2013-09-13 19:01:43.869863115 +0000
     194472+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_map        2013-10-01 16:06:44.252554278 +0000
    189516194473@@ -34,6 +34,7 @@
    189517194474 # include <unordered_map>
     
    189899194856diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set gcc-4.8.1/libstdc++-v3/include/profile/unordered_set
    189900194857--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set   2013-01-16 23:56:00.000000000 +0000
    189901 +++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_set        2013-09-13 19:01:43.869863115 +0000
     194858+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_set        2013-10-01 16:06:44.252554278 +0000
    189902194859@@ -34,6 +34,7 @@
    189903194860 # include <unordered_set>
     
    190274195231diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/vector gcc-4.8.1/libstdc++-v3/include/profile/vector
    190275195232--- gcc-4.8.1.orig/libstdc++-v3/include/profile/vector  2013-02-03 17:54:05.000000000 +0000
    190276 +++ gcc-4.8.1/libstdc++-v3/include/profile/vector       2013-09-13 19:01:43.869863115 +0000
     195233+++ gcc-4.8.1/libstdc++-v3/include/profile/vector       2013-10-01 16:06:44.256554278 +0000
    190277195234@@ -374,6 +374,16 @@
    190278195235        return iterator(__res, this);
     
    190294195251diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/bitset gcc-4.8.1/libstdc++-v3/include/std/bitset
    190295195252--- gcc-4.8.1.orig/libstdc++-v3/include/std/bitset      2013-02-03 17:54:05.000000000 +0000
    190296 +++ gcc-4.8.1/libstdc++-v3/include/std/bitset   2013-09-13 19:01:43.873196440 +0000
     195253+++ gcc-4.8.1/libstdc++-v3/include/std/bitset   2013-10-01 16:06:44.256554278 +0000
    190297195254@@ -760,7 +760,7 @@
    190298195255       }
     
    190306195263diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/complex gcc-4.8.1/libstdc++-v3/include/std/complex
    190307195264--- gcc-4.8.1.orig/libstdc++-v3/include/std/complex     2013-02-13 21:58:53.000000000 +0000
    190308 +++ gcc-4.8.1/libstdc++-v3/include/std/complex  2013-09-13 19:01:43.873196440 +0000
     195265+++ gcc-4.8.1/libstdc++-v3/include/std/complex  2013-10-01 16:06:44.256554278 +0000
    190309195266@@ -142,11 +142,11 @@
    190310195267 #if __cplusplus >= 201103L
     
    190323195280diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/valarray gcc-4.8.1/libstdc++-v3/include/std/valarray
    190324195281--- gcc-4.8.1.orig/libstdc++-v3/include/std/valarray    2013-02-03 17:54:05.000000000 +0000
    190325 +++ gcc-4.8.1/libstdc++-v3/include/std/valarray 2013-09-13 19:01:43.873196440 +0000
     195282+++ gcc-4.8.1/libstdc++-v3/include/std/valarray 2013-10-01 16:06:44.256554278 +0000
    190326195283@@ -819,8 +819,21 @@
    190327195284     inline valarray<_Tp>&
     
    190350195307diff -Naur gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc
    190351195308--- gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc      2013-02-26 04:39:04.000000000 +0000
    190352 +++ gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc   2013-09-13 19:01:43.873196440 +0000
     195309+++ gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc   2013-10-01 16:06:44.256554278 +0000
    190353195310@@ -58,8 +58,13 @@
    190354195311   void run (void *p)
     
    190387195344diff -Naur gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc
    190388195345--- gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc      2013-02-03 17:54:05.000000000 +0000
    190389 +++ gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc   2013-09-13 19:01:43.876529765 +0000
     195346+++ gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc   2013-10-01 16:06:44.256554278 +0000
    190390195347@@ -517,14 +517,21 @@
    190391195348 extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe";
     
    190499195456diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
    190500195457--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc  1970-01-01 00:00:00.000000000 +0000
    190501 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc       2013-09-13 19:01:43.903196361 +0000
     195458+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc       2013-10-01 16:06:44.256554278 +0000
    190502195459@@ -0,0 +1,77 @@
    190503195460+// { dg-options "-std=gnu++0x" }
     
    190580195537diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
    190581195538--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc  1970-01-01 00:00:00.000000000 +0000
    190582 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc       2013-09-13 19:01:43.903196361 +0000
     195539+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc       2013-10-01 16:06:44.256554278 +0000
    190583195540@@ -0,0 +1,36 @@
    190584195541+// { dg-do compile }
     
    190620195577diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
    190621195578--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc      1970-01-01 00:00:00.000000000 +0000
    190622 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc   2013-09-13 19:01:43.903196361 +0000
     195579+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc   2013-10-01 16:06:44.256554278 +0000
    190623195580@@ -0,0 +1,40 @@
    190624195581+// { dg-require-effective-target ia32 }
     
    190755195712diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
    190756195713--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc     1970-01-01 00:00:00.000000000 +0000
    190757 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc  2013-09-13 19:01:43.903196361 +0000
     195714+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc  2013-10-01 16:06:44.256554278 +0000
    190758195715@@ -0,0 +1,87 @@
    190759195716+// { dg-options "-std=gnu++0x" }
     
    190846195803diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
    190847195804--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc     1970-01-01 00:00:00.000000000 +0000
    190848 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc  2013-09-13 19:01:43.903196361 +0000
     195805+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc  2013-10-01 16:06:44.256554278 +0000
    190849195806@@ -0,0 +1,36 @@
    190850195807+// { dg-do compile }
     
    190886195843diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
    190887195844--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc 1970-01-01 00:00:00.000000000 +0000
    190888 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc      2013-09-13 19:01:43.903196361 +0000
     195845+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc      2013-10-01 16:06:44.256554278 +0000
    190889195846@@ -0,0 +1,40 @@
    190890195847+// { dg-require-effective-target ia32 }
     
    191019195976diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
    191020195977--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc     1970-01-01 00:00:00.000000000 +0000
    191021 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc  2013-09-13 19:01:43.906529686 +0000
     195978+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc  2013-10-01 16:06:44.256554278 +0000
    191022195979@@ -0,0 +1,85 @@
    191023195980+// { dg-options "-std=gnu++0x" }
     
    191108196065diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
    191109196066--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc     1970-01-01 00:00:00.000000000 +0000
    191110 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc  2013-09-13 19:01:43.906529686 +0000
     196067+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc  2013-10-01 16:06:44.256554278 +0000
    191111196068@@ -0,0 +1,39 @@
    191112196069+// { dg-do compile }
     
    191151196108diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
    191152196109--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc 1970-01-01 00:00:00.000000000 +0000
    191153 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc      2013-09-13 19:01:43.906529686 +0000
     196110+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc      2013-10-01 16:06:44.256554278 +0000
    191154196111@@ -0,0 +1,40 @@
    191155196112+// { dg-require-effective-target ia32 }
     
    191274196231diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
    191275196232--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc  1970-01-01 00:00:00.000000000 +0000
    191276 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc       2013-09-13 19:01:43.906529686 +0000
     196233+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc       2013-10-01 16:06:44.256554278 +0000
    191277196234@@ -0,0 +1,75 @@
    191278196235+// { dg-options "-std=gnu++0x" }
     
    191353196310diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
    191354196311--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc  1970-01-01 00:00:00.000000000 +0000
    191355 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc       2013-09-13 19:01:43.906529686 +0000
     196312+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc       2013-10-01 16:06:44.256554278 +0000
    191356196313@@ -0,0 +1,39 @@
    191357196314+// { dg-do compile }
     
    191396196353diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
    191397196354--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc      1970-01-01 00:00:00.000000000 +0000
    191398 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc   2013-09-13 19:01:43.906529686 +0000
     196355+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc   2013-10-01 16:06:44.256554278 +0000
    191399196356@@ -0,0 +1,40 @@
    191400196357+// { dg-require-effective-target ia32 }
     
    191440196397diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C
    191441196398--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C    1970-01-01 00:00:00.000000000 +0000
    191442 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C 2013-09-13 19:01:43.906529686 +0000
     196399+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C 2013-10-01 16:06:44.256554278 +0000
    191443196400@@ -0,0 +1,51 @@
    191444196401+// { dg-options "-std=gnu++11" }
     
    191495196452diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C
    191496196453--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C       1970-01-01 00:00:00.000000000 +0000
    191497 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C    2013-09-13 19:01:43.906529686 +0000
     196454+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C    2013-10-01 16:06:44.260554277 +0000
    191498196455@@ -0,0 +1,51 @@
    191499196456+// { dg-options "-std=gnu++11" }
     
    191550196507diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
    191551196508--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc     2013-02-20 21:23:44.000000000 +0000
    191552 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc  2013-09-13 19:01:43.906529686 +0000
     196509+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc  2013-10-01 16:06:44.260554277 +0000
    191553196510@@ -30,7 +30,7 @@
    191554196511 };
     
    191560196517 struct hash {
    191561196518   std::size_t operator()(const MoveOnly&) const { return 0; }
     196519diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
     196520--- gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc       1970-01-01 00:00:00.000000000 +0000
     196521+++ gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc    2013-10-01 16:06:44.260554277 +0000
     196522@@ -0,0 +1,41 @@
     196523+// Copyright (C) 2013 Free Software Foundation, Inc.
     196524+//
     196525+// This file is part of the GNU ISO C++ Library.  This library is free
     196526+// software; you can redistribute it and/or modify it under the
     196527+// terms of the GNU General Public License as published by the
     196528+// Free Software Foundation; either version 3, or (at your option)
     196529+// any later version.
     196530+
     196531+// This library is distributed in the hope that it will be useful,
     196532+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     196533+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     196534+// GNU General Public License for more details.
     196535+
     196536+// You should have received a copy of the GNU General Public License along
     196537+// with this library; see the file COPYING3.  If not see
     196538+// <http://www.gnu.org/licenses/>.
     196539+
     196540+// { dg-options "-std=gnu++11" }
     196541+
     196542+// 25.1.9 [lib.alg.search]
     196543+
     196544+#include <algorithm>
     196545+#include <vector>
     196546+#include <testsuite_hooks.h>
     196547+
     196548+void test01()
     196549+{
     196550+  bool test __attribute__((unused)) = true;
     196551+
     196552+  std::vector<int> a{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
     196553+  int count = 0;
     196554+  std::search_n(a.begin(), a.end(), 10, 1,
     196555+               [&count](int t, int u) { ++count; return t == u; });
     196556+  VERIFY( count <= 11 );
     196557+}
     196558+
     196559+int main()
     196560+{
     196561+  test01();
     196562+  return 0;
     196563+}
     196564diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
     196565--- gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc    2013-02-03 17:54:05.000000000 +0000
     196566+++ gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc 2013-10-01 16:06:44.260554277 +0000
     196567@@ -31,9 +31,11 @@
     196568 int array1[11] = {0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0};
     196569 int array2[TEST_DEPTH];
     196570 
     196571+int pred_count;
     196572 bool
     196573 pred(int i, int j)
     196574 {
     196575+  ++pred_count;
     196576   return i == j;
     196577 }
     196578 
     196579@@ -90,16 +92,22 @@
     196580 
     196581            int* t1 = search_n(forwardcon.begin(),
     196582                               forwardcon.end(), j, 1).ptr;
     196583+           pred_count = 0;
     196584            int* t2 = search_n(forwardcon.begin(),
     196585                               forwardcon.end(), j, 1, pred).ptr;
     196586+           VERIFY(pred_count <= i);
     196587            int* t3 = search_n(bidircon.begin(),
     196588                               bidircon.end(), j, 1).ptr;
     196589+           pred_count = 0;
     196590            int* t4 = search_n(bidircon.begin(),
     196591                               bidircon.end(), j, 1, pred).ptr;
     196592+           VERIFY(pred_count <= i);
     196593            int* t5 = search_n(randomcon.begin(),
     196594                               randomcon.end(), j, 1).ptr;
     196595+           pred_count = 0;
     196596            int* t6 = search_n(randomcon.begin(),
     196597                               randomcon.end(), j, 1, pred).ptr;
     196598+           VERIFY(pred_count <= i);
     196599            VERIFY((t1 == t2) && (t2 == t3) && (t3 == t4) &&
     196600                   (t4 == t5) && (t5 == t6));
     196601          }
    191562196602diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
    191563196603--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc  2013-02-03 17:54:05.000000000 +0000
    191564 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc       2013-09-13 19:01:43.906529686 +0000
     196604+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc       2013-10-01 16:06:44.260554277 +0000
    191565196605@@ -43,6 +43,17 @@
    191566196606   std::binomial_distribution<> bd3(10, 0.75);
     
    191583196623diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
    191584196624--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc        2013-02-03 17:54:05.000000000 +0000
    191585 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc     2013-09-13 19:01:43.909863010 +0000
     196625+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc     2013-10-01 16:06:44.260554277 +0000
    191586196626@@ -35,7 +35,7 @@
    191587196627   VERIFY( u.a() == 0.0 );
     
    191595196635diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
    191596196636--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc  2013-02-03 17:54:05.000000000 +0000
    191597 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc       2013-09-13 19:01:43.909863010 +0000
     196637+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc       2013-10-01 16:06:44.260554277 +0000
    191598196638@@ -35,7 +35,7 @@
    191599196639   VERIFY( u.a() == 5.0 );
     
    191607196647diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
    191608196648--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc   2013-02-03 17:54:05.000000000 +0000
    191609 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc        2013-09-13 19:01:43.909863010 +0000
     196649+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc        2013-10-01 16:06:44.260554277 +0000
    191610196650@@ -34,7 +34,7 @@
    191611196651   std::exponential_distribution<> u;
     
    191619196659diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
    191620196660--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc     2013-02-03 17:54:05.000000000 +0000
    191621 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc  2013-09-13 19:01:43.909863010 +0000
     196661+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc  2013-10-01 16:06:44.260554277 +0000
    191622196662@@ -34,7 +34,7 @@
    191623196663   std::exponential_distribution<> u(0.5);
     
    191631196671diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
    191632196672--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc 2013-02-03 17:54:05.000000000 +0000
    191633 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc      2013-09-13 19:01:43.909863010 +0000
     196673+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc      2013-10-01 16:06:44.260554277 +0000
    191634196674@@ -35,7 +35,7 @@
    191635196675   VERIFY( u.a() == 0.0 );
     
    191643196683diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
    191644196684--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc   2013-02-03 17:54:05.000000000 +0000
    191645 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc        2013-09-13 19:01:43.909863010 +0000
     196685+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc        2013-10-01 16:06:44.260554277 +0000
    191646196686@@ -35,7 +35,7 @@
    191647196687   VERIFY( u.a() == 5.0 );
     
    191653196693 }
    191654196694 
     196695diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
     196696--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc  1970-01-01 00:00:00.000000000 +0000
     196697+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc       2013-10-01 16:06:44.260554277 +0000
     196698@@ -0,0 +1,34 @@
     196699+// { dg-do compile }
     196700+// { dg-options "-std=gnu++11" }
     196701+// { dg-require-cstdint "" }
     196702+//
     196703+// Copyright (C) 2013 Free Software Foundation, Inc.
     196704+//
     196705+// This file is part of the GNU ISO C++ Library.  This library is free
     196706+// software; you can redistribute it and/or modify it under the
     196707+// terms of the GNU General Public License as published by the
     196708+// Free Software Foundation; either version 3, or (at your option)
     196709+// any later version.
     196710+//
     196711+// This library is distributed in the hope that it will be useful,
     196712+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     196713+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     196714+// GNU General Public License for more details.
     196715+//
     196716+// You should have received a copy of the GNU General Public License along
     196717+// with this library; see the file COPYING3.  If not see
     196718+// <http://www.gnu.org/licenses/>.
     196719+
     196720+#include <random>
     196721+
     196722+void test01()
     196723+{
     196724+  typedef std::negative_binomial_distribution<> dist_type;
     196725+
     196726+  std::default_random_engine engine;
     196727+
     196728+  dist_type dist;
     196729+  dist_type::param_type param(3, 0.5);
     196730+
     196731+  dist(engine, param); // compile error!
     196732+}
    191655196733diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
    191656196734--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc        2013-02-03 17:54:05.000000000 +0000
    191657 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc     2013-09-13 19:01:43.909863010 +0000
     196735+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc     2013-10-01 16:06:44.260554277 +0000
    191658196736@@ -35,7 +35,7 @@
    191659196737   VERIFY( u.mean() == 0.0 );
     
    191667196745diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
    191668196746--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc  2013-02-03 17:54:05.000000000 +0000
    191669 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc       2013-09-13 19:01:43.909863010 +0000
     196747+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc       2013-10-01 16:06:44.260554277 +0000
    191670196748@@ -35,7 +35,7 @@
    191671196749   VERIFY( u.mean() == 5.0 );
     
    191679196757diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
    191680196758--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc     2013-02-03 17:54:05.000000000 +0000
    191681 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc  2013-09-13 19:01:43.909863010 +0000
     196759+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc  2013-10-01 16:06:44.260554277 +0000
    191682196760@@ -34,7 +34,7 @@
    191683196761   std::student_t_distribution<> u;
     
    191691196769diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
    191692196770--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc       2013-02-03 17:54:05.000000000 +0000
    191693 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc    2013-09-13 19:01:43.913196335 +0000
     196771+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc    2013-10-01 16:06:44.264554277 +0000
    191694196772@@ -34,7 +34,7 @@
    191695196773   std::student_t_distribution<> u(1.5);
     
    191703196781diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C
    191704196782--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C        1970-01-01 00:00:00.000000000 +0000
    191705 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C     2013-09-13 19:01:43.913196335 +0000
     196783+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C     2013-10-01 16:06:44.264554277 +0000
    191706196784@@ -0,0 +1,37 @@
    191707196785+// Copyright (C) 2013 Free Software Foundation, Inc.
     
    191744196822diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc
    191745196823--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc   2013-02-03 17:54:05.000000000 +0000
    191746 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc        2013-09-13 19:01:43.913196335 +0000
     196824+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc        2013-10-01 16:06:44.264554277 +0000
    191747196825@@ -25,4 +25,4 @@
    191748196826 
     
    191753196831diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
    191754196832--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc     2013-02-03 17:54:05.000000000 +0000
    191755 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc  2013-09-13 19:01:43.913196335 +0000
     196833+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc  2013-10-01 16:06:44.264554277 +0000
    191756196834@@ -36,9 +36,9 @@
    191757196835   VERIFY( u.varcov()[1] == 0.0 );
     
    191768196846diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
    191769196847--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc       2013-02-03 17:54:05.000000000 +0000
    191770 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc    2013-09-13 19:01:43.913196335 +0000
     196848+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc    2013-10-01 16:06:44.264554277 +0000
    191771196849@@ -36,9 +36,9 @@
    191772196850   VERIFY( u.varcov()[1] == 0.0 );
     
    191783196861diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
    191784196862--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc    1970-01-01 00:00:00.000000000 +0000
    191785 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc 2013-09-13 19:01:43.913196335 +0000
     196863+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc 2013-10-01 16:06:44.264554277 +0000
    191786196864@@ -0,0 +1,44 @@
    191787196865+// { dg-options "-std=c++0x" }
     
    191831196909diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
    191832196910--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc      1970-01-01 00:00:00.000000000 +0000
    191833 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc   2013-09-13 19:01:43.913196335 +0000
     196911+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc   2013-10-01 16:06:44.264554277 +0000
    191834196912@@ -0,0 +1,44 @@
    191835196913+// { dg-options "-std=c++0x" }
     
    191879196957diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
    191880196958--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc 1970-01-01 00:00:00.000000000 +0000
    191881 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc      2013-09-13 19:01:43.916529660 +0000
     196959+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc      2013-10-01 16:06:44.264554277 +0000
    191882196960@@ -0,0 +1,42 @@
    191883196961+// { dg-options "-std=c++0x" }
     
    191925197003diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
    191926197004--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc       1970-01-01 00:00:00.000000000 +0000
    191927 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc    2013-09-13 19:01:43.916529660 +0000
     197005+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc    2013-10-01 16:06:44.264554277 +0000
    191928197006@@ -0,0 +1,42 @@
    191929197007+// { dg-options "-std=c++0x" }
     
    191971197049diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
    191972197050--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc     1970-01-01 00:00:00.000000000 +0000
    191973 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc  2013-09-13 19:01:43.916529660 +0000
     197051+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc  2013-10-01 16:06:44.264554277 +0000
    191974197052@@ -0,0 +1,44 @@
    191975197053+// { dg-options "-std=c++0x" }
     
    192019197097diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
    192020197098--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc   1970-01-01 00:00:00.000000000 +0000
    192021 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc        2013-09-13 19:01:43.916529660 +0000
     197099+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc        2013-10-01 16:06:44.264554277 +0000
    192022197100@@ -0,0 +1,26 @@
    192023197101+// { dg-do compile }
     
    192049197127diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
    192050197128--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc   1970-01-01 00:00:00.000000000 +0000
    192051 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc        2013-09-13 19:01:43.916529660 +0000
     197129+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc        2013-10-01 16:06:44.264554277 +0000
    192052197130@@ -0,0 +1,34 @@
    192053197131+// { dg-do compile }
     
    192087197165diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
    192088197166--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc     1970-01-01 00:00:00.000000000 +0000
    192089 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc  2013-09-13 19:01:43.916529660 +0000
     197167+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc  2013-10-01 16:06:44.264554277 +0000
    192090197168@@ -0,0 +1,43 @@
    192091197169+// { dg-options "-std=c++0x" }
     
    192134197212diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
    192135197213--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc       1970-01-01 00:00:00.000000000 +0000
    192136 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc    2013-09-13 19:01:43.916529660 +0000
     197214+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc    2013-10-01 16:06:44.264554277 +0000
    192137197215@@ -0,0 +1,43 @@
    192138197216+// { dg-options "-std=c++0x" }
     
    192181197259diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
    192182197260--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc  1970-01-01 00:00:00.000000000 +0000
    192183 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc       2013-09-13 19:01:43.916529660 +0000
     197261+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc       2013-10-01 16:06:44.264554277 +0000
    192184197262@@ -0,0 +1,42 @@
    192185197263+// { dg-options "-std=c++0x" }
     
    192227197305diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
    192228197306--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc        1970-01-01 00:00:00.000000000 +0000
    192229 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc     2013-09-13 19:01:43.916529660 +0000
     197307+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc     2013-10-01 16:06:44.264554277 +0000
    192230197308@@ -0,0 +1,42 @@
    192231197309+// { dg-options "-std=c++0x" }
     
    192273197351diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
    192274197352--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc      1970-01-01 00:00:00.000000000 +0000
    192275 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc   2013-09-13 19:01:43.916529660 +0000
     197353+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc   2013-10-01 16:06:44.264554277 +0000
    192276197354@@ -0,0 +1,44 @@
    192277197355+// { dg-options "-std=c++0x" }
     
    192321197399diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
    192322197400--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc    1970-01-01 00:00:00.000000000 +0000
    192323 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc 2013-09-13 19:01:43.919862984 +0000
     197401+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc 2013-10-01 16:06:44.264554277 +0000
    192324197402@@ -0,0 +1,26 @@
    192325197403+// { dg-do compile }
     
    192351197429diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
    192352197430--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc    1970-01-01 00:00:00.000000000 +0000
    192353 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc 2013-09-13 19:01:43.919862984 +0000
     197431+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc 2013-10-01 16:06:44.264554277 +0000
    192354197432@@ -0,0 +1,34 @@
    192355197433+// { dg-do compile }
     
    192993198071-  typedef test_type::param_type param_type;
    192994198072-}
     198073diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
     198074--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc   1970-01-01 00:00:00.000000000 +0000
     198075+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc        2013-10-01 16:06:44.268554277 +0000
     198076@@ -0,0 +1,41 @@
     198077+// { dg-options "-std=gnu++11" }
     198078+// { dg-require-string-conversions "" }
     198079+
     198080+// Copyright (C) 2013 Free Software Foundation, Inc.
     198081+//
     198082+// This file is part of the GNU ISO C++ Library.  This library is free
     198083+// software; you can redistribute it and/or modify it under the
     198084+// terms of the GNU General Public License as published by the
     198085+// Free Software Foundation; either version 3, or (at your option)
     198086+// any later version.
     198087+
     198088+// This library is distributed in the hope that it will be useful,
     198089+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     198090+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     198091+// GNU General Public License for more details.
     198092+
     198093+// You should have received a copy of the GNU General Public License along
     198094+// with this library; see the file COPYING3.  If not see
     198095+// <http://www.gnu.org/licenses/>.
     198096+
     198097+#include <ext/vstring.h>
     198098+#include <testsuite_hooks.h>
     198099+
     198100+typedef __gnu_cxx::__versa_string<char> string;
     198101+
     198102+void test01()
     198103+{
     198104+  bool test __attribute__((unused)) = true;
     198105+
     198106+  string s1("string");
     198107+  string s2("");
     198108+  std::swap(s1, s2);
     198109+
     198110+  VERIFY( s1.c_str()[0] == '\0' );
     198111+}
     198112+
     198113+int main()
     198114+{
     198115+  test01();
     198116+  return 0;
     198117+}
     198118diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
     198119--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc   1970-01-01 00:00:00.000000000 +0000
     198120+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc        2013-10-01 16:06:44.268554277 +0000
     198121@@ -0,0 +1,38 @@
     198122+// { dg-options "-std=gnu++11" }
     198123+// { dg-require-string-conversions "" }
     198124+
     198125+// Copyright (C) 2013 Free Software Foundation, Inc.
     198126+//
     198127+// This file is part of the GNU ISO C++ Library.  This library is free
     198128+// software; you can redistribute it and/or modify it under the
     198129+// terms of the GNU General Public License as published by the
     198130+// Free Software Foundation; either version 3, or (at your option)
     198131+// any later version.
     198132+
     198133+// This library is distributed in the hope that it will be useful,
     198134+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     198135+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     198136+// GNU General Public License for more details.
     198137+
     198138+// You should have received a copy of the GNU General Public License along
     198139+// with this library; see the file COPYING3.  If not see
     198140+// <http://www.gnu.org/licenses/>.
     198141+
     198142+#include <ext/vstring.h>
     198143+#include <testsuite_hooks.h>
     198144+
     198145+typedef __gnu_cxx::__versa_string<char> string;
     198146+
     198147+void test01()
     198148+{
     198149+  string s1;
     198150+  string s2 = std::move(s1);
     198151+
     198152+  VERIFY( s2.c_str()[0] == '\0' );
     198153+}
     198154+
     198155+int main()
     198156+{
     198157+  test01();
     198158+  return 0;
     198159+}
    192995198160diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp
    192996198161--- gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp     2013-02-03 17:54:05.000000000 +0000
    192997 +++ gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp  2013-09-13 19:01:43.923196309 +0000
     198162+++ gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp  2013-10-01 16:06:44.268554277 +0000
    192998198163@@ -626,7 +626,7 @@
    192999198164            # Compile with "-w" so that warnings issued by the compiler
     
    193005198170                error "could not compile $f"
    193006198171            }
     198172diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
     198173--- gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc     1970-01-01 00:00:00.000000000 +0000
     198174+++ gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc  2013-10-01 16:06:44.268554277 +0000
     198175@@ -0,0 +1,65 @@
     198176+// Copyright (C) 2013 Free Software Foundation, Inc.
     198177+//
     198178+// This file is part of the GNU ISO C++ Library.  This library is free
     198179+// software; you can redistribute it and/or modify it under the
     198180+// terms of the GNU General Public License as published by the
     198181+// Free Software Foundation; either version 3, or (at your option)
     198182+// any later version.
     198183+
     198184+// This library is distributed in the hope that it will be useful,
     198185+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     198186+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     198187+// GNU General Public License for more details.
     198188+
     198189+// You should have received a copy of the GNU General Public License along
     198190+// with this library; see the file COPYING3.  If not see
     198191+// <http://www.gnu.org/licenses/>.
     198192+
     198193+#include <vector>
     198194+#include <algorithm>
     198195+#include <testsuite_performance.h>
     198196+
     198197+int main()
     198198+{
     198199+  using namespace __gnu_test;
     198200+
     198201+  time_counter time;
     198202+  resource_counter resource;
     198203+
     198204+  const int max_size = 10000000;
     198205+
     198206+  std::vector<int> v(max_size);
     198207+
     198208+  for (int i = 0; i < max_size; ++i)
     198209+    v[i] = -i;
     198210+
     198211+  start_counters(time, resource);
     198212+  std::sort(v.begin(), v.end());
     198213+  stop_counters(time, resource);
     198214+
     198215+  report_performance(__FILE__, "reverse", time, resource);
     198216+  clear_counters(time, resource);
     198217+
     198218+  for (int i = 0; i < max_size; ++i)
     198219+    v[i] = i;
     198220+
     198221+  start_counters(time, resource);
     198222+  std::sort(v.begin(), v.end());
     198223+  stop_counters(time, resource);
     198224+
     198225+  report_performance(__FILE__, "forwards", time, resource);
     198226+  clear_counters(time, resource);
     198227+
     198228+  // a simple psuedo-random series which does not rely on rand() and friends
     198229+  v[0] = 0;
     198230+  for (int i = 1; i < max_size; ++i)
     198231+    v[i] = (v[i-1] + 110211473) * 745988807;
     198232+
     198233+  start_counters(time, resource);
     198234+  std::sort(v.begin(), v.end());
     198235+  stop_counters(time, resource);
     198236+
     198237+  report_performance(__FILE__, "random", time, resource);
     198238+
     198239+  return 0;
     198240+}
     198241diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
     198242--- gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc        1970-01-01 00:00:00.000000000 +0000
     198243+++ gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc     2013-10-01 16:06:44.268554277 +0000
     198244@@ -0,0 +1,73 @@
     198245+// Copyright (C) 2013 Free Software Foundation, Inc.
     198246+//
     198247+// This file is part of the GNU ISO C++ Library.  This library is free
     198248+// software; you can redistribute it and/or modify it under the
     198249+// terms of the GNU General Public License as published by the
     198250+// Free Software Foundation; either version 3, or (at your option)
     198251+// any later version.
     198252+
     198253+// This library is distributed in the hope that it will be useful,
     198254+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     198255+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     198256+// GNU General Public License for more details.
     198257+
     198258+// You should have received a copy of the GNU General Public License along
     198259+// with this library; see the file COPYING3.  If not see
     198260+// <http://www.gnu.org/licenses/>.
     198261+
     198262+#include <vector>
     198263+#include <algorithm>
     198264+#include <testsuite_performance.h>
     198265+
     198266+int main()
     198267+{
     198268+  using namespace __gnu_test;
     198269+
     198270+  time_counter time;
     198271+  resource_counter resource;
     198272+
     198273+  const int max_size = 10000000;
     198274+
     198275+  std::vector<int> v(max_size);
     198276+
     198277+  for (int i = 0; i < max_size; ++i)
     198278+    v[i] = -i;
     198279+
     198280+  start_counters(time, resource);
     198281+  std::make_heap(v.begin(), v.end());
     198282+  stop_counters(time, resource);
     198283+
     198284+  report_performance(__FILE__, "make_heap_reverse", time, resource);
     198285+  clear_counters(time, resource);
     198286+
     198287+  for (int i = 0; i < max_size; ++i)
     198288+    v[i] = i;
     198289+
     198290+  start_counters(time, resource);
     198291+  std::make_heap(v.begin(), v.end());
     198292+  stop_counters(time, resource);
     198293+
     198294+  report_performance(__FILE__, "make_heap_forwards", time, resource);
     198295+  clear_counters(time, resource);
     198296+
     198297+  // a simple psuedo-random series which does not rely on rand() and friends
     198298+  v[0] = 0;
     198299+  for (int i = 1; i < max_size; ++i)
     198300+    v[i] = (v[i-1] + 110211473) * 745988807;
     198301+
     198302+  start_counters(time, resource);
     198303+  std::make_heap(v.begin(), v.end());
     198304+  stop_counters(time, resource);
     198305+
     198306+  report_performance(__FILE__, "make_heap_random", time, resource);
     198307+
     198308+
     198309+  start_counters(time, resource);
     198310+  std::sort_heap(v.begin(), v.end());
     198311+  stop_counters(time, resource);
     198312+
     198313+  report_performance(__FILE__, "sort_heap", time, resource);
     198314+  clear_counters(time, resource);
     198315+
     198316+  return 0;
     198317+}
     198318diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
     198319--- gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc      1970-01-01 00:00:00.000000000 +0000
     198320+++ gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc   2013-10-01 16:06:44.268554277 +0000
     198321@@ -0,0 +1,65 @@
     198322+// Copyright (C) 2013 Free Software Foundation, Inc.
     198323+//
     198324+// This file is part of the GNU ISO C++ Library.  This library is free
     198325+// software; you can redistribute it and/or modify it under the
     198326+// terms of the GNU General Public License as published by the
     198327+// Free Software Foundation; either version 3, or (at your option)
     198328+// any later version.
     198329+
     198330+// This library is distributed in the hope that it will be useful,
     198331+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     198332+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     198333+// GNU General Public License for more details.
     198334+
     198335+// You should have received a copy of the GNU General Public License along
     198336+// with this library; see the file COPYING3.  If not see
     198337+// <http://www.gnu.org/licenses/>.
     198338+
     198339+#include <vector>
     198340+#include <algorithm>
     198341+#include <testsuite_performance.h>
     198342+
     198343+int main()
     198344+{
     198345+  using namespace __gnu_test;
     198346+
     198347+  time_counter time;
     198348+  resource_counter resource;
     198349+
     198350+  const int max_size = 10000000;
     198351+
     198352+  std::vector<int> v(max_size);
     198353+
     198354+  for (int i = 0; i < max_size; ++i)
     198355+    v[i] = -i;
     198356+
     198357+  start_counters(time, resource);
     198358+  std::stable_sort(v.begin(), v.end());
     198359+  stop_counters(time, resource);
     198360+
     198361+  report_performance(__FILE__, "reverse", time, resource);
     198362+  clear_counters(time, resource);
     198363+
     198364+  for (int i = 0; i < max_size; ++i)
     198365+    v[i] = i;
     198366+
     198367+  start_counters(time, resource);
     198368+  std::stable_sort(v.begin(), v.end());
     198369+  stop_counters(time, resource);
     198370+
     198371+  report_performance(__FILE__, "forwards", time, resource);
     198372+  clear_counters(time, resource);
     198373+
     198374+  // a simple psuedo-random series which does not rely on rand() and friends
     198375+  v[0] = 0;
     198376+  for (int i = 1; i < max_size; ++i)
     198377+    v[i] = (v[i-1] + 110211473) * 745988807;
     198378+
     198379+  start_counters(time, resource);
     198380+  std::stable_sort(v.begin(), v.end());
     198381+  stop_counters(time, resource);
     198382+
     198383+  report_performance(__FILE__, "random", time, resource);
     198384+
     198385+  return 0;
     198386+}
    193007198387diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h
    193008198388--- gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h   2013-02-03 17:54:05.000000000 +0000
    193009 +++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h        2013-09-13 19:01:43.923196309 +0000
     198389+++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h        2013-10-01 16:06:44.268554277 +0000
    193010198390@@ -223,6 +223,58 @@
    193011198391   template<typename _Tp>
     
    193069198449diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc
    193070198450--- gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc      2013-02-03 17:54:05.000000000 +0000
    193071 +++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc   2013-09-13 19:01:43.923196309 +0000
     198451+++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc   2013-10-01 16:06:44.268554277 +0000
    193072198452@@ -19,9 +19,13 @@
    193073198453 #include <stdexcept>
Note: See TracChangeset for help on using the changeset viewer.