- Timestamp:
- Oct 1, 2013, 9:38:35 AM (13 years ago)
- Branches:
- clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- e53d8f54
- Parents:
- 23a1e45
- File:
-
- 1 moved
-
patches/gcc-4.8.1-branch_update-3.patch (moved) (moved from patches/gcc-4.8.1-branch_update-2.patch ) (1144 diffs)
Legend:
- Unmodified
- Added
- Removed
-
patches/gcc-4.8.1-branch_update-3.patch
r23a1e45 r1864309 1 1 Submitted By: William Harrington (kb0iic at cross-lfs dot org) 2 Date: 09-19-20132 Date: 10-01-2013 3 3 Initial Package Version: 4.8.1 4 4 Origin: Upstream … … 7 7 rechecked periodically. 8 8 9 This patch was made from Revision # 202050. 10 Added fix for BUILD¿CXXFLAGS. 11 Added fix for ISL. 9 This patch was made from Revision # 203062. 12 10 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. 11 Added fix for BUILD_CXXFLAGS during crosscompile. 12 Added fix for ISL 2D + 1 form in parallelism check. 13 14 diff -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) 26 diff -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) 38 diff -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 97 diff -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([ 29 110 diff -Naur gcc-4.8.1.orig/fixincludes/fixincl.x gcc-4.8.1/fixincludes/fixincl.x 30 111 --- 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+0000112 +++ gcc-4.8.1/fixincludes/fixincl.x 2013-10-01 16:06:43.764554292 +0000 32 113 @@ -2,11 +2,11 @@ 33 114 * … … 55 136 diff -Naur gcc-4.8.1.orig/fixincludes/inclhack.def gcc-4.8.1/fixincludes/inclhack.def 56 137 --- 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+0000138 +++ gcc-4.8.1/fixincludes/inclhack.def 2013-10-01 16:06:43.764554292 +0000 58 139 @@ -3447,7 +3447,7 @@ 59 140 … … 76 157 diff -Naur gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h 77 158 --- 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+0000159 +++ gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h 2013-10-01 16:06:43.764554292 +0000 79 160 @@ -10,7 +10,7 @@ 80 161 … … 86 167 __powl(__X, (long double) (__Y)); } 87 168 #endif 169 diff -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. 88 185 diff -Naur gcc-4.8.1.orig/gcc/DATESTAMP gcc-4.8.1/gcc/DATESTAMP 89 186 --- 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+0000187 +++ gcc-4.8.1/gcc/DATESTAMP 2013-10-01 16:06:43.968554286 +0000 91 188 @@ -1 +1 @@ 92 189 -20130531 93 +2013 0828190 +20131001 94 191 diff -Naur gcc-4.8.1.orig/gcc/Makefile.in gcc-4.8.1/gcc/Makefile.in 95 192 --- 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+0000193 +++ gcc-4.8.1/gcc/Makefile.in 2013-10-01 16:06:43.996554285 +0000 97 194 @@ -2505,7 +2505,7 @@ 98 195 $(TM_H) coretypes.h $(TREE_PASS_H) $(FLAGS_H) \ … … 106 203 diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h 107 204 --- 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+0000205 +++ gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h 2013-10-01 16:06:43.764554292 +0000 109 206 @@ -360,10 +360,6 @@ 110 207 constant CONSTRUCTOR. */ … … 120 217 diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c gcc-4.8.1/gcc/ada/gcc-interface/decl.c 121 218 --- 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+0000219 +++ gcc-4.8.1/gcc/ada/gcc-interface/decl.c 2013-10-01 16:06:43.764554292 +0000 123 220 @@ -1019,7 +1019,7 @@ 124 221 save_gnu_tree (gnat_entity, gnu_decl, true); … … 199 296 diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h gcc-4.8.1/gcc/ada/gcc-interface/gigi.h 200 297 --- 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+0000298 +++ gcc-4.8.1/gcc/ada/gcc-interface/gigi.h 2013-10-01 16:06:43.768554292 +0000 202 299 @@ -177,10 +177,9 @@ 203 300 /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception) … … 230 327 diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c gcc-4.8.1/gcc/ada/gcc-interface/trans.c 231 328 --- 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 @@ 234 364 { 235 365 const bool read_only = DECL_POINTS_TO_READONLY_P (gnu_result); … … 251 381 if (TREE_CODE (gnu_result) == PARM_DECL 252 382 && 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 @@ 254 598 if (TREE_CODE (val) != INTEGER_CST) 255 599 return true; … … 263 607 264 608 /* Return true if VAL (of type TYPE) can equal the minimum value of TYPE. 265 @@ -3251,7 +32 41,6 @@609 @@ -3251,7 +3271,6 @@ 266 610 = convert_vms_descriptor (TREE_TYPE (gnu_subprog_param), 267 611 gnu_stub_param, … … 271 615 } 272 616 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 @@ 274 627 bool is_var_decl = (TREE_CODE (gnu_param) == VAR_DECL); 275 628 … … 281 634 if (is_var_decl) 282 635 save_gnu_tree (gnat_param, NULL_TREE, false); 283 @@ -4009,12 + 3997,6 @@636 @@ -4009,12 +4029,6 @@ 284 637 /* The symmetry of the paths to the type of an entity is broken here 285 638 since arguments don't know that they will be passed by ref. */ … … 296 649 diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c gcc-4.8.1/gcc/ada/gcc-interface/utils.c 297 650 --- 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+0000651 +++ gcc-4.8.1/gcc/ada/gcc-interface/utils.c 2013-10-01 16:06:43.768554292 +0000 299 652 @@ -4073,33 +4073,25 @@ 300 653 … … 356 709 diff -Naur gcc-4.8.1.orig/gcc/ada/targparm.ads gcc-4.8.1/gcc/ada/targparm.ads 357 710 --- 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+0000711 +++ gcc-4.8.1/gcc/ada/targparm.ads 2013-10-01 16:06:43.768554292 +0000 359 712 @@ -436,7 +436,7 @@ 360 713 -- the source program may not contain explicit 64-bit shifts. In addition, … … 368 721 diff -Naur gcc-4.8.1.orig/gcc/asan.c gcc-4.8.1/gcc/asan.c 369 722 --- 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+0000723 +++ gcc-4.8.1/gcc/asan.c 2013-10-01 16:06:43.768554292 +0000 371 724 @@ -1675,7 +1675,7 @@ 372 725 access to the last byte of the argument; it uses the result of the … … 403 756 diff -Naur gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c gcc-4.8.1/gcc/c-family/c-ada-spec.c 404 757 --- 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+0000758 +++ gcc-4.8.1/gcc/c-family/c-ada-spec.c 2013-10-01 16:06:43.768554292 +0000 406 759 @@ -2900,7 +2900,7 @@ 407 760 pp_string (buffer, " -- "); … … 413 766 414 767 newline_and_indent (buffer, spc); 768 diff -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--) 415 796 diff -Naur gcc-4.8.1.orig/gcc/collect2.c gcc-4.8.1/gcc/collect2.c 416 797 --- 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+0000798 +++ gcc-4.8.1/gcc/collect2.c 2013-10-01 16:06:43.772554291 +0000 418 799 @@ -366,8 +366,8 @@ 419 800 … … 561 942 diff -Naur gcc-4.8.1.orig/gcc/collect2.h gcc-4.8.1/gcc/collect2.h 562 943 --- 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+0000944 +++ gcc-4.8.1/gcc/collect2.h 2013-10-01 16:06:43.772554291 +0000 564 945 @@ -25,8 +25,6 @@ 565 946 extern struct pex_obj *collect_execute (const char *, char **, const char *, … … 573 954 diff -Naur gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c gcc-4.8.1/gcc/common/config/s390/s390-common.c 574 955 --- 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+0000956 +++ gcc-4.8.1/gcc/common/config/s390/s390-common.c 2013-10-01 16:06:43.772554291 +0000 576 957 @@ -42,7 +42,7 @@ 577 958 /* z196 */ PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT … … 585 966 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c 586 967 --- 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+0000968 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c 2013-10-01 16:06:43.772554291 +0000 588 969 @@ -1154,6 +1154,7 @@ 589 970 return aarch64_simd_expand_args (target, icode, 1, exp, … … 596 977 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h 597 978 --- 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+0000979 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h 2013-10-01 16:06:43.772554291 +0000 599 980 @@ -23,6 +23,8 @@ 600 981 … … 608 989 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def 609 990 --- 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+0000991 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def 2013-10-01 16:06:43.776554291 +0000 611 992 @@ -256,3 +256,10 @@ 612 993 BUILTIN_VALL (BINOP, uzp2) … … 622 1003 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md 623 1004 --- 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+00001005 +++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md 2013-10-01 16:06:43.776554291 +0000 625 1006 @@ -3457,6 +3457,17 @@ 626 1007 DONE; … … 661 1042 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c gcc-4.8.1/gcc/config/aarch64/aarch64.c 662 1043 --- 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+00001044 +++ gcc-4.8.1/gcc/config/aarch64/aarch64.c 2013-10-01 16:06:43.772554291 +0000 664 1045 @@ -3373,7 +3373,7 @@ 665 1046 output_operand_lossage ("invalid operand for '%%%c'", code); … … 673 1054 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md gcc-4.8.1/gcc/config/aarch64/aarch64.md 674 1055 --- 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+00001056 +++ gcc-4.8.1/gcc/config/aarch64/aarch64.md 2013-10-01 16:06:43.772554291 +0000 676 1057 @@ -834,7 +834,8 @@ 677 1058 movi\\t%d0, %1" … … 686 1067 diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h gcc-4.8.1/gcc/config/aarch64/arm_neon.h 687 1068 --- 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+00001069 +++ gcc-4.8.1/gcc/config/aarch64/arm_neon.h 2013-10-01 16:06:43.776554291 +0000 689 1070 @@ -8518,28 +8518,6 @@ 690 1071 return result; … … 1549 1930 diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.c gcc-4.8.1/gcc/config/alpha/alpha.c 1550 1931 --- 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 @@ 1553 1942 break; 1554 1943 … … 1569 1958 1570 1959 default: 1571 @@ -3067,12 +306 7,9 @@1960 @@ -3067,12 +3068,9 @@ 1572 1961 operands[1] = op1; 1573 1962 out = gen_reg_rtx (DImode); … … 1587 1976 diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.md gcc-4.8.1/gcc/config/alpha/alpha.md 1588 1977 --- 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 +00001978 +++ gcc-4.8.1/gcc/config/alpha/alpha.md 2013-10-01 16:06:43.780554291 +0000 1590 1979 @@ -23,6 +23,7 @@ 1591 1980 ;; Uses of UNSPEC in this file: … … 1598 1987 diff -Naur gcc-4.8.1.orig/gcc/config/arm/arm.c gcc-4.8.1/gcc/config/arm/arm.c 1599 1988 --- 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+00001989 +++ gcc-4.8.1/gcc/config/arm/arm.c 2013-10-01 16:06:43.784554291 +0000 1601 1990 @@ -4459,7 +4459,9 @@ 1602 1991 if (((pcum->aapcs_vfp_regs_free >> regno) & mask) == mask) … … 1680 2069 + MEM_P (SET_DEST (x)))); 1681 2070 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) 1682 2091 diff -Naur gcc-4.8.1.orig/gcc/config/arm/neon.md gcc-4.8.1/gcc/config/arm/neon.md 1683 2092 --- 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+00002093 +++ gcc-4.8.1/gcc/config/arm/neon.md 2013-10-01 16:06:43.784554291 +0000 1685 2094 @@ -244,7 +244,7 @@ 1686 2095 [(set (match_operand:VDQX 0 "neon_struct_or_register_operand") … … 1785 2194 if (!inverse) 1786 2195 emit_insn (base_comparison (mask, operands[4], operands[5], magic_rtx)); 2196 diff -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 ) 1787 2245 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md gcc-4.8.1/gcc/config/avr/avr-fixed.md 1788 2246 --- 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+00002247 +++ gcc-4.8.1/gcc/config/avr/avr-fixed.md 2013-10-01 16:06:43.792554291 +0000 1790 2248 @@ -447,49 +447,18 @@ 1791 2249 ;; "roundqq3_const" "rounduqq3_const" … … 1850 2308 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def gcc-4.8.1/gcc/config/avr/avr-mcus.def 1851 2309 --- 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+00002310 +++ gcc-4.8.1/gcc/config/avr/avr-mcus.def 2013-10-01 16:06:43.792554291 +0000 1853 2311 @@ -168,7 +168,6 @@ 1854 2312 AVR_MCU ("atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0, 0x0100, 1, "m169a") … … 1901 2359 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-protos.h gcc-4.8.1/gcc/config/avr/avr-protos.h 1902 2360 --- 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+00002361 +++ gcc-4.8.1/gcc/config/avr/avr-protos.h 2013-10-01 16:06:43.792554291 +0000 1904 2362 @@ -86,7 +86,8 @@ 1905 2363 extern void avr_output_addr_vec_elt (FILE *stream, int value); … … 1914 2372 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt gcc-4.8.1/gcc/config/avr/avr-tables.opt 1915 2373 --- 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+00002374 +++ gcc-4.8.1/gcc/config/avr/avr-tables.opt 2013-10-01 16:06:43.792554291 +0000 1917 2375 @@ -330,479 +330,440 @@ 1918 2376 Enum(avr_mcu) String(atmega169pa) Value(101) … … 2543 3001 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.c gcc-4.8.1/gcc/config/avr/avr.c 2544 3002 --- 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+00003003 +++ gcc-4.8.1/gcc/config/avr/avr.c 2013-10-01 16:06:43.784554291 +0000 2546 3004 @@ -584,7 +584,12 @@ 2547 3005 { … … 2787 3245 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.md gcc-4.8.1/gcc/config/avr/avr.md 2788 3246 --- 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+00003247 +++ gcc-4.8.1/gcc/config/avr/avr.md 2013-10-01 16:06:43.792554291 +0000 2790 3248 @@ -140,7 +140,7 @@ 2791 3249 "out_bitop, plus, addto_sp, … … 2799 3257 diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.opt gcc-4.8.1/gcc/config/avr/avr.opt 2800 3258 --- 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+00003259 +++ gcc-4.8.1/gcc/config/avr/avr.opt 2013-10-01 16:06:43.792554291 +0000 2802 3260 @@ -77,4 +77,4 @@ 2803 3261 … … 2808 3266 diff -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 2809 3267 --- 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+00003268 +++ gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c 2013-10-01 16:06:43.792554291 +0000 2811 3269 @@ -68,6 +68,7 @@ 2812 3270 static void … … 2841 3299 diff -Naur gcc-4.8.1.orig/gcc/config/avr/t-multilib gcc-4.8.1/gcc/config/avr/t-multilib 2842 3300 --- 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+00003301 +++ gcc-4.8.1/gcc/config/avr/t-multilib 2013-10-01 16:06:43.792554291 +0000 2844 3302 @@ -135,7 +135,6 @@ 2845 3303 mmcu?avr5=mmcu?atmega169a \ … … 2892 3350 diff -Naur gcc-4.8.1.orig/gcc/config/darwin-protos.h gcc-4.8.1/gcc/config/darwin-protos.h 2893 3351 --- 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+00003352 +++ gcc-4.8.1/gcc/config/darwin-protos.h 2013-10-01 16:06:43.792554291 +0000 2895 3353 @@ -25,6 +25,7 @@ 2896 3354 extern void machopic_output_function_base_name (FILE *); … … 2903 3361 diff -Naur gcc-4.8.1.orig/gcc/config/darwin.c gcc-4.8.1/gcc/config/darwin.c 2904 3362 --- 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+00003363 +++ gcc-4.8.1/gcc/config/darwin.c 2013-10-01 16:06:43.792554291 +0000 2906 3364 @@ -369,14 +369,13 @@ 2907 3365 … … 2954 3412 diff -Naur gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h gcc-4.8.1/gcc/config/i386/bmiintrin.h 2955 3413 --- 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+00003414 +++ gcc-4.8.1/gcc/config/i386/bmiintrin.h 2013-10-01 16:06:43.792554291 +0000 2957 3415 @@ -38,7 +38,6 @@ 2958 3416 return __builtin_ctzs (__X); … … 3084 3542 diff -Naur gcc-4.8.1.orig/gcc/config/i386/driver-i386.c gcc-4.8.1/gcc/config/i386/driver-i386.c 3085 3543 --- 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+00003544 +++ gcc-4.8.1/gcc/config/i386/driver-i386.c 2013-10-01 16:06:43.792554291 +0000 3087 3545 @@ -520,8 +520,7 @@ 3088 3546 if (vendor == signature_AMD_ebx … … 3153 3611 diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.c gcc-4.8.1/gcc/config/i386/i386.c 3154 3612 --- 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+00003613 +++ gcc-4.8.1/gcc/config/i386/i386.c 2013-10-01 16:06:43.796554291 +0000 3156 3614 @@ -2438,11 +2438,11 @@ 3157 3615 {&generic32_cost, 16, 7, 16, 7, 16}, … … 3463 3921 diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.md gcc-4.8.1/gcc/config/i386/i386.md 3464 3922 --- 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+00003923 +++ gcc-4.8.1/gcc/config/i386/i386.md 2013-10-01 16:06:43.928554287 +0000 3466 3924 @@ -222,6 +222,8 @@ 3467 3925 UNSPECV_XEND … … 3573 4031 diff -Naur gcc-4.8.1.orig/gcc/config/i386/predicates.md gcc-4.8.1/gcc/config/i386/predicates.md 3574 4032 --- 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+00004033 +++ gcc-4.8.1/gcc/config/i386/predicates.md 2013-10-01 16:06:43.928554287 +0000 3576 4034 @@ -835,19 +835,28 @@ 3577 4035 return false; … … 3617 4075 diff -Naur gcc-4.8.1.orig/gcc/config/i386/sse.md gcc-4.8.1/gcc/config/i386/sse.md 3618 4076 --- 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+00004077 +++ gcc-4.8.1/gcc/config/i386/sse.md 2013-10-01 16:06:43.928554287 +0000 3620 4078 @@ -3603,7 +3603,7 @@ 3621 4079 (vec_select:V4SF … … 3680 4138 diff -Naur gcc-4.8.1.orig/gcc/config/i386/x86-64.h gcc-4.8.1/gcc/config/i386/x86-64.h 3681 4139 --- 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+00004140 +++ gcc-4.8.1/gcc/config/i386/x86-64.h 2013-10-01 16:06:43.928554287 +0000 3683 4141 @@ -103,3 +103,6 @@ 3684 4142 … … 3688 4146 +#undef TARGET_SECTION_TYPE_FLAGS 3689 4147 +#define TARGET_SECTION_TYPE_FLAGS x86_64_elf_section_type_flags 4148 diff -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 } 4184 diff -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 3690 4269 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/default64.h gcc-4.8.1/gcc/config/rs6000/default64.h 3691 4270 --- 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+00004271 +++ gcc-4.8.1/gcc/config/rs6000/default64.h 2013-10-01 16:06:43.932554287 +0000 3693 4272 @@ -18,5 +18,10 @@ 3694 4273 along with GCC; see the file COPYING3. If not see … … 3704 4283 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/dfp.md gcc-4.8.1/gcc/config/rs6000/dfp.md 3705 4284 --- 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+00004285 +++ gcc-4.8.1/gcc/config/rs6000/dfp.md 2013-10-01 16:06:43.932554287 +0000 3707 4286 @@ -394,11 +394,14 @@ 3708 4287 "") … … 3726 4305 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux.h gcc-4.8.1/gcc/config/rs6000/linux.h 3727 4306 --- 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+00004307 +++ gcc-4.8.1/gcc/config/rs6000/linux.h 2013-10-01 16:06:43.932554287 +0000 3729 4308 @@ -79,6 +79,24 @@ 3730 4309 #undef LINK_OS_DEFAULT_SPEC … … 3754 4333 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux64.h gcc-4.8.1/gcc/config/rs6000/linux64.h 3755 4334 --- 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+00004335 +++ gcc-4.8.1/gcc/config/rs6000/linux64.h 2013-10-01 16:06:43.932554287 +0000 3757 4336 @@ -180,20 +180,14 @@ 3758 4337 #endif … … 3826 4405 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h 3827 4406 --- 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+00004407 +++ gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h 2013-10-01 16:06:43.932554287 +0000 3829 4408 @@ -20,8 +20,13 @@ 3830 4409 <http://www.gnu.org/licenses/>. */ … … 3843 4422 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h gcc-4.8.1/gcc/config/rs6000/linuxspe.h 3844 4423 --- 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+00004424 +++ gcc-4.8.1/gcc/config/rs6000/linuxspe.h 2013-10-01 16:06:43.932554287 +0000 3846 4425 @@ -20,8 +20,13 @@ 3847 4426 <http://www.gnu.org/licenses/>. */ … … 3860 4439 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/predicates.md gcc-4.8.1/gcc/config/rs6000/predicates.md 3861 4440 --- 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 @@ 3864 4466 (match_test "easy_altivec_constant (op, mode)"))) 3865 4467 { … … 3874 4476 return EASY_VECTOR_15_ADD_SELF (val); 3875 4477 }) 3876 @@ -478,9 +48 0,11 @@4478 @@ -478,9 +484,11 @@ 3877 4479 (match_test "easy_altivec_constant (op, mode)"))) 3878 4480 { … … 3887 4489 }) 3888 4490 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; 3889 4500 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c gcc-4.8.1/gcc/config/rs6000/rs6000.c 3890 4501 --- 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 @@ 3893 4514 int reg_size2 = reg_size; 3894 4515 … … 3900 4521 3901 4522 rs6000_class_max_nregs[m][c] 3902 @@ -4239,7 +42 40,7 @@4523 @@ -4239,7 +4237,7 @@ 3903 4524 bitsize = GET_MODE_BITSIZE (inner); 3904 4525 mask = GET_MODE_MASK (inner); … … 3909 4530 msb_val = val > 0 ? 0 : -1; 3910 4531 3911 @@ -4279,7 +42 80,7 @@4532 @@ -4279,7 +4277,7 @@ 3912 4533 for (i = 0; i < nunits - 1; ++i) 3913 4534 { … … 3918 4539 else 3919 4540 desired_val = msb_val; 3920 @@ -4364,13 +436 5,13 @@4541 @@ -4364,13 +4362,13 @@ 3921 4542 { 3922 4543 enum machine_mode mode = GET_MODE (op); … … 3934 4555 /* Then try with a vspltish. */ 3935 4556 if (step == 1) 3936 @@ -4379,7 +43 80,7 @@4557 @@ -4379,7 +4377,7 @@ 3937 4558 step >>= 1; 3938 4559 … … 3943 4564 /* And finally a vspltisb. */ 3944 4565 if (step == 1) 3945 @@ -4388,7 +438 9,7 @@4566 @@ -4388,7 +4386,7 @@ 3946 4567 step >>= 1; 3947 4568 … … 3952 4573 gcc_unreachable (); 3953 4574 } 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 @@ 3955 4585 && cfun->va_list_gpr_size) 3956 4586 { … … 3977 4607 mem = gen_rtx_MEM (BLKmode, 3978 4608 plus_constant (Pmode, save_area, 3979 @@ -16900,8 +16 902,9 @@4609 @@ -16900,8 +16899,9 @@ 3980 4610 shift = gen_reg_rtx (SImode); 3981 4611 addr = gen_lowpart (SImode, addr); … … 3989 4619 3990 4620 /* Mask for insertion. */ 3991 @@ -19957,8 +199 60,7 @@4621 @@ -19957,8 +19957,7 @@ 3992 4622 HOST_WIDE_INT offset; 3993 4623 … … 3999 4629 spe_save_area_ptr = gen_rtx_REG (Pmode, 11); 4000 4630 save_off = frame_off - offset; 4001 @@ -21200,8 +21 202,7 @@4631 @@ -21200,8 +21199,7 @@ 4002 4632 anew to every function. */ 4003 4633 … … 4009 4639 emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx, 4010 4640 GEN_INT (info->spe_gp_save_offset 4011 @@ -22151,20 +221 52,22 @@4641 @@ -22151,20 +22149,22 @@ 4012 4642 4013 4643 if (TARGET_64BIT) … … 4036 4666 else 4037 4667 fprintf (file, "\t.tc FT_%lx_%lx_%lx_%lx[TC],", 4038 @@ -22191,18 +2219 4,19 @@4668 @@ -22191,18 +22191,19 @@ 4039 4669 4040 4670 if (TARGET_64BIT) … … 4059 4689 else 4060 4690 fprintf (file, "\t.tc FD_%lx_%lx[TC],", 4061 @@ -22226,16 +222 30,19 @@4691 @@ -22226,16 +22227,19 @@ 4062 4692 4063 4693 if (TARGET_64BIT) … … 4082 4712 else 4083 4713 fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff); 4084 @@ -22267,9 +2227 4,8 @@4714 @@ -22267,9 +22271,8 @@ 4085 4715 } 4086 4716 #endif … … 4094 4724 a separate constant pool, because then we'd have 4095 4725 to have both a TOC entry _and_ the actual constant.) 4096 @@ -22280,7 +2228 6,7 @@4726 @@ -22280,7 +22283,7 @@ 4097 4727 /* It would be easy to make this work, but it doesn't now. */ 4098 4728 gcc_assert (!TARGET_64BIT || POINTER_SIZE >= GET_MODE_BITSIZE (mode)); … … 4103 4733 #if HOST_BITS_PER_WIDE_INT == 32 4104 4734 lshift_double (low, high, POINTER_SIZE - GET_MODE_BITSIZE (mode), 4105 @@ -22295,7 +22 301,7 @@4735 @@ -22295,7 +22298,7 @@ 4106 4736 4107 4737 if (TARGET_64BIT) … … 4112 4742 else 4113 4743 fprintf (file, "\t.tc ID_%lx_%lx[TC],", 4114 @@ -22308,7 +2231 4,7 @@4744 @@ -22308,7 +22311,7 @@ 4115 4745 { 4116 4746 if (POINTER_SIZE < GET_MODE_BITSIZE (mode)) … … 4121 4751 else 4122 4752 fprintf (file, "\t.tc ID_%lx_%lx[TC],", 4123 @@ -22318,7 +2232 4,7 @@4753 @@ -22318,7 +22321,7 @@ 4124 4754 } 4125 4755 else … … 4130 4760 else 4131 4761 fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff); 4132 @@ -22356,7 +223 62,7 @@4762 @@ -22356,7 +22359,7 @@ 4133 4763 gcc_unreachable (); 4134 4764 } … … 4139 4769 else 4140 4770 { 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 4141 4798 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h gcc-4.8.1/gcc/config/rs6000/rs6000.h 4142 4799 --- 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+00004800 +++ gcc-4.8.1/gcc/config/rs6000/rs6000.h 2013-10-01 16:06:43.936554287 +0000 4144 4801 @@ -662,6 +662,11 @@ 4145 4802 instructions for them. Might as well be consistent with bits and bytes. */ … … 4170 4827 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md gcc-4.8.1/gcc/config/rs6000/rs6000.md 4171 4828 --- 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 +00004829 +++ gcc-4.8.1/gcc/config/rs6000/rs6000.md 2013-10-01 16:06:43.936554287 +0000 4173 4830 @@ -1990,6 +1990,8 @@ 4174 4831 [(set_attr "length" "4,4,12") … … 4189 4846 [(set (match_operand:SI 0 "gpc_reg_operand" "") 4190 4847 (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 @@ 4192 4860 rtx op2 = operands[2]; 4193 4861 rtx op3 = operands[3]; … … 4202 4870 rtx addr2; 4203 4871 rtx word_high; 4204 @@ -2186,8 +219 2,10 @@4872 @@ -2186,8 +2194,10 @@ 4205 4873 rtx src = operands[1]; 4206 4874 rtx op2 = operands[2]; … … 4215 4883 rtx addr2; 4216 4884 rtx word_high; 4217 @@ -2221,16 +22 29,14 @@4885 @@ -2221,16 +2231,14 @@ 4218 4886 { 4219 4887 word_high = change_address (dest, SImode, addr1); … … 4234 4902 4235 4903 (define_split 4236 @@ -2247,10 +225 3,11 @@4904 @@ -2247,10 +2255,11 @@ 4237 4905 rtx src = operands[1]; 4238 4906 rtx op2 = operands[2]; … … 4250 4918 emit_insn (gen_lshrdi3 (op2, src, GEN_INT (32))); 4251 4919 emit_insn (gen_bswapsi2 (dest_si, src_si)); 4252 @@ -2275,15 +228 2,15 @@4920 @@ -2275,15 +2284,15 @@ 4253 4921 [(const_int 0)] 4254 4922 " … … 4273 4941 addr1 = XEXP (src, 0); 4274 4942 if (GET_CODE (addr1) == PLUS) 4275 @@ -2308,19 +231 5,11 @@4943 @@ -2308,19 +2317,11 @@ 4276 4944 addr2 = gen_rtx_PLUS (SImode, op2, addr1); 4277 4945 } … … 4297 4965 4298 4966 (define_split 4299 @@ -2331,15 +233 0,15 @@4967 @@ -2331,15 +2332,15 @@ 4300 4968 [(const_int 0)] 4301 4969 " … … 4320 4988 addr1 = XEXP (dest, 0); 4321 4989 if (GET_CODE (addr1) == PLUS) 4322 @@ -2364,19 +236 3,11 @@4990 @@ -2364,19 +2365,11 @@ 4323 4991 addr2 = gen_rtx_PLUS (SImode, op2, addr1); 4324 4992 } … … 4344 5012 4345 5013 (define_split 4346 @@ -2387,15 +23 78,15 @@5014 @@ -2387,15 +2380,15 @@ 4347 5015 [(const_int 0)] 4348 5016 " … … 4368 5036 4369 5037 (define_insn "mulsi3" 4370 @@ -4682,6 +467 3,41 @@5038 @@ -4682,6 +4675,41 @@ 4371 5039 "frsqrtes %0,%1" 4372 5040 [(set_attr "type" "fp")]) … … 4410 5078 [(set (match_dup 3) 4411 5079 (abs:SFDF (match_operand:SFDF 1 "gpc_reg_operand" ""))) 4412 @@ -6210,10 +623 6,25 @@5080 @@ -6210,10 +6238,25 @@ 4413 5081 [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r") 4414 5082 (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r") … … 4440 5108 (set_attr "length" "8,12")]) 4441 5109 4442 @@ -7064,13 +710 5,12 @@5110 @@ -7064,13 +7107,12 @@ 4443 5111 [(set (match_operand:DI 0 "gpc_reg_operand" "") 4444 5112 (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "") … … 4456 5124 emit_insn (gen_ashrdi3_no_power (operands[0], operands[1], operands[2])); 4457 5125 DONE; 4458 @@ -8277,8 +831 7,8 @@5126 @@ -8277,8 +8319,8 @@ 4459 5127 "&& reload_completed" 4460 5128 [(pc)] … … 4467 5135 operands[1]); 4468 5136 emit_move_insn (simplify_gen_subreg (DFmode, operands[0], TFmode, lo_word), 4469 @@ -8507,8 +854 7,8 @@5137 @@ -8507,8 +8549,8 @@ 4470 5138 && TARGET_LONG_DOUBLE_128" 4471 5139 " … … 4478 5146 operands[4] = gen_reg_rtx (CCFPmode); 4479 5147 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 @@ 4481 5167 (match_dup 13)] 4482 5168 { … … 4491 5177 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rtems.h gcc-4.8.1/gcc/config/rs6000/rtems.h 4492 5178 --- 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+00005179 +++ gcc-4.8.1/gcc/config/rs6000/rtems.h 2013-10-01 16:06:43.936554287 +0000 4494 5180 @@ -34,6 +34,9 @@ 4495 5181 } \ … … 4504 5190 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/spe.md gcc-4.8.1/gcc/config/rs6000/spe.md 4505 5191 --- 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+00005192 +++ gcc-4.8.1/gcc/config/rs6000/spe.md 2013-10-01 16:06:43.940554287 +0000 4507 5193 @@ -2604,8 +2604,8 @@ 4508 5194 && TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128" … … 4529 5215 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h gcc-4.8.1/gcc/config/rs6000/sysv4.h 4530 5216 --- 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+00005217 +++ gcc-4.8.1/gcc/config/rs6000/sysv4.h 2013-10-01 16:06:43.940554287 +0000 4532 5218 @@ -187,12 +187,6 @@ 4533 5219 rs6000_abi_name); \ … … 4615 5301 diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h gcc-4.8.1/gcc/config/rs6000/sysv4le.h 4616 5302 --- 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 +00005303 +++ gcc-4.8.1/gcc/config/rs6000/sysv4le.h 2013-10-01 16:06:43.940554287 +0000 4618 5304 @@ -25,12 +25,12 @@ 4619 5305 #undef CC1_ENDIAN_DEFAULT_SPEC … … 4636 5322 diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmintrin.h gcc-4.8.1/gcc/config/s390/htmintrin.h 4637 5323 --- 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 +00005324 +++ gcc-4.8.1/gcc/config/s390/htmintrin.h 2013-10-01 16:06:43.940554287 +0000 4639 5325 @@ -0,0 +1,57 @@ 4640 5326 +/* GNU compiler hardware transactional execution intrinsics … … 4697 5383 diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h gcc-4.8.1/gcc/config/s390/htmxlintrin.h 4698 5384 --- 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 +00005385 +++ gcc-4.8.1/gcc/config/s390/htmxlintrin.h 2013-10-01 16:06:43.940554287 +0000 4700 5386 @@ -0,0 +1,182 @@ 4701 5387 +/* XL compiler hardware transactional execution intrinsics … … 4883 5569 diff -Naur gcc-4.8.1.orig/gcc/config/s390/predicates.md gcc-4.8.1/gcc/config/s390/predicates.md 4884 5570 --- 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 +00005571 +++ gcc-4.8.1/gcc/config/s390/predicates.md 2013-10-01 16:06:43.940554287 +0000 4886 5572 @@ -176,7 +176,11 @@ 4887 5573 { … … 4912 5598 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-modes.def gcc-4.8.1/gcc/config/s390/s390-modes.def 4913 5599 --- 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+00005600 +++ gcc-4.8.1/gcc/config/s390/s390-modes.def 2013-10-01 16:06:43.944554286 +0000 4915 5601 @@ -152,6 +152,14 @@ 4916 5602 operands were equal/unequal. The CCZ1 mode ensures the result can be … … 4935 5621 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-protos.h gcc-4.8.1/gcc/config/s390/s390-protos.h 4936 5622 --- 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+00005623 +++ gcc-4.8.1/gcc/config/s390/s390-protos.h 2013-10-01 16:06:43.944554286 +0000 4938 5624 @@ -58,7 +58,7 @@ 4939 5625 extern enum machine_mode s390_tm_ccmode (rtx, rtx, bool); … … 4955 5641 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.c gcc-4.8.1/gcc/config/s390/s390.c 4956 5642 --- 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+00005643 +++ gcc-4.8.1/gcc/config/s390/s390.c 2013-10-01 16:06:43.940554287 +0000 4958 5644 @@ -367,6 +367,10 @@ 4959 5645 const char *some_ld_name; … … 5100 5786 { 5101 5787 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 @@ 5103 5846 if (GET_CODE (setreg) == SUBREG) 5104 5847 { … … 5114 5857 else 5115 5858 return; 5116 @@ -7368,13 +740 4,13 @@5859 @@ -7368,13 +7406,13 @@ 5117 5860 rtx cur_insn; 5118 5861 unsigned int i; … … 5130 5873 } 5131 5874 5132 @@ -7396,7 +743 2,7 @@5875 @@ -7396,7 +7434,7 @@ 5133 5876 See expand_builtin_unwind_init. For regs_ever_live this is done by 5134 5877 reload. */ … … 5139 5882 regs_ever_clobbered[i] = 1; 5140 5883 5141 @@ -7462,17 +7 498,6 @@5884 @@ -7462,17 +7500,6 @@ 5142 5885 { 5143 5886 int i, j; … … 5157 5900 data, except that we don't save and restore global registers. 5158 5901 5159 @@ -7481,6 +750 6,28 @@5902 @@ -7481,6 +7508,28 @@ 5160 5903 5161 5904 s390_regs_ever_clobbered (clobbered_regs); … … 5186 5929 clobbered_regs[i] = clobbered_regs[i] && !global_regs[i] && !fixed_regs[i]; 5187 5930 5188 @@ -7731,7 +77 78,7 @@5931 @@ -7731,7 +7780,7 @@ 5189 5932 { 5190 5933 HOST_WIDE_INT frame_size; … … 5195 5938 /* On S/390 machines, we may need to perform branch splitting, which 5196 5939 will require both base and return address register. We have no 5197 @@ -7766,6 +781 3,157 @@5940 @@ -7766,6 +7815,157 @@ 5198 5941 while (frame_size != cfun_frame_layout.frame_size); 5199 5942 } … … 5353 6096 current info and update regs_ever_live for the special registers. 5354 6097 May be called multiple times, but may never cause *more* registers 5355 @@ -7774,7 +797 2,7 @@6098 @@ -7774,7 +7974,7 @@ 5356 6099 static void 5357 6100 s390_update_frame_layout (void) … … 5362 6105 s390_register_info (clobbered_regs); 5363 6106 5364 @@ -8204,8 +840 2,10 @@6107 @@ -8204,8 +8404,10 @@ 5365 6108 int offset; 5366 6109 int next_fpr = 0; … … 5374 6117 5375 6118 /* Annotate all constant pool references to let the scheduler know 5376 @@ -9353,6 +955 3,291 @@6119 @@ -9353,6 +9555,291 @@ 5377 6120 return build_va_arg_indirect_ref (addr); 5378 6121 } … … 5666 6409 stdio stream FILE. 5667 6410 5668 @@ -11008,6 +1149 3,11 @@6411 @@ -11008,6 +11495,11 @@ 5669 6412 #undef TARGET_RETURN_IN_MEMORY 5670 6413 #define TARGET_RETURN_IN_MEMORY s390_return_in_memory … … 5680 6423 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.h gcc-4.8.1/gcc/config/s390/s390.h 5681 6424 --- 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+00006425 +++ gcc-4.8.1/gcc/config/s390/s390.h 2013-10-01 16:06:43.940554287 +0000 5683 6426 @@ -34,7 +34,8 @@ 5684 6427 PF_DFP = 16, … … 5762 6505 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.md gcc-4.8.1/gcc/config/s390/s390.md 5763 6506 --- 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+00006507 +++ gcc-4.8.1/gcc/config/s390/s390.md 2013-10-01 16:06:43.944554286 +0000 5765 6508 @@ -59,11 +59,17 @@ 5766 6509 (define_c_enum "unspec" [ … … 6186 6929 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.opt gcc-4.8.1/gcc/config/s390/s390.opt 6187 6930 --- 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+00006931 +++ gcc-4.8.1/gcc/config/s390/s390.opt 2013-10-01 16:06:43.944554286 +0000 6189 6932 @@ -104,6 +104,10 @@ 6190 6933 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128) … … 6200 6943 diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390intrin.h gcc-4.8.1/gcc/config/s390/s390intrin.h 6201 6944 --- 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+00006945 +++ gcc-4.8.1/gcc/config/s390/s390intrin.h 2013-10-01 16:06:43.940554287 +0000 6203 6946 @@ -0,0 +1,33 @@ 6204 6947 +/* S/390 System z specific intrinsics … … 6237 6980 diff -Naur gcc-4.8.1.orig/gcc/config/sh/sh.md gcc-4.8.1/gcc/config/sh/sh.md 6238 6981 --- 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 @@ 6241 7019 6242 7020 ;; FMA (fused multiply-add) patterns … … 6253 7031 { 6254 7032 if (TARGET_SH2E) 6255 @@ -12107,6 +121 07,43 @@7033 @@ -12107,6 +12111,43 @@ 6256 7034 "fmac.s %1, %2, %0" 6257 7035 [(set_attr "type" "fparith_media")]) … … 6299 7077 diff -Naur gcc-4.8.1.orig/gcc/config/sparc/sparc.c gcc-4.8.1/gcc/config/sparc/sparc.c 6300 7078 --- 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+00007079 +++ gcc-4.8.1/gcc/config/sparc/sparc.c 2013-10-01 16:06:43.944554286 +0000 6302 7080 @@ -11174,6 +11174,11 @@ 6303 7081 /* Total Store Ordering: all memory transactions with store semantics … … 6314 7092 diff -Naur gcc-4.8.1.orig/gcc/config.gcc gcc-4.8.1/gcc/config.gcc 6315 7093 --- 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+00007094 +++ gcc-4.8.1/gcc/config.gcc 2013-10-01 16:06:43.948554286 +0000 6317 7095 @@ -452,6 +452,7 @@ 6318 7096 cpu_type=s390 … … 6362 7140 diff -Naur gcc-4.8.1.orig/gcc/config.in gcc-4.8.1/gcc/config.in 6363 7141 --- 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+00007142 +++ gcc-4.8.1/gcc/config.in 2013-10-01 16:06:43.948554286 +0000 6365 7143 @@ -1228,7 +1228,7 @@ 6366 7144 #endif … … 6374 7152 diff -Naur gcc-4.8.1.orig/gcc/configure gcc-4.8.1/gcc/configure 6375 7153 --- 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+00007154 +++ gcc-4.8.1/gcc/configure 2013-10-01 16:06:55.812553945 +0000 6377 7155 @@ -11703,6 +11703,7 @@ 6378 7156 if test x$build != x$host || test "x$coverage_flags" != x … … 6463 7241 diff -Naur gcc-4.8.1.orig/gcc/configure.ac gcc-4.8.1/gcc/configure.ac 6464 7242 --- 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+00007243 +++ gcc-4.8.1/gcc/configure.ac 2013-10-01 16:06:55.816553945 +0000 6466 7244 @@ -1887,6 +1887,7 @@ 6467 7245 if test x$build != x$host || test "x$coverage_flags" != x … … 6561 7339 diff -Naur gcc-4.8.1.orig/gcc/cp/call.c gcc-4.8.1/gcc/cp/call.c 6562 7340 --- 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+00007341 +++ gcc-4.8.1/gcc/cp/call.c 2013-10-01 16:06:43.952554286 +0000 6564 7342 @@ -6195,8 +6195,8 @@ 6565 7343 if (convs->check_narrowing) … … 6584 7362 diff -Naur gcc-4.8.1.orig/gcc/cp/class.c gcc-4.8.1/gcc/cp/class.c 6585 7363 --- 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+00007364 +++ gcc-4.8.1/gcc/cp/class.c 2013-10-01 16:06:43.952554286 +0000 6587 7365 @@ -4574,15 +4574,20 @@ 6588 7366 static void … … 6654 7432 a DECL for the field or TYPE itself (DR 253). */ 6655 7433 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 6656 7443 diff -Naur gcc-4.8.1.orig/gcc/cp/cp-tree.h gcc-4.8.1/gcc/cp/cp-tree.h 6657 7444 --- 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 +00007445 +++ gcc-4.8.1/gcc/cp/cp-tree.h 2013-10-01 16:06:43.956554286 +0000 6659 7446 @@ -1211,17 +1211,20 @@ 6660 7447 /* The _DECL for this _TYPE. */ … … 6722 7509 diff -Naur gcc-4.8.1.orig/gcc/cp/cvt.c gcc-4.8.1/gcc/cp/cvt.c 6723 7510 --- 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 +00007511 +++ gcc-4.8.1/gcc/cp/cvt.c 2013-10-01 16:06:43.956554286 +0000 6725 7512 @@ -620,6 +620,9 @@ 6726 7513 … … 6777 7564 diff -Naur gcc-4.8.1.orig/gcc/cp/decl.c gcc-4.8.1/gcc/cp/decl.c 6778 7565 --- 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 +00007566 +++ gcc-4.8.1/gcc/cp/decl.c 2013-10-01 16:06:43.956554286 +0000 6780 7567 @@ -10878,7 +10878,7 @@ 6781 7568 DECL, if there is no DECL available. */ … … 6833 7620 diff -Naur gcc-4.8.1.orig/gcc/cp/init.c gcc-4.8.1/gcc/cp/init.c 6834 7621 --- 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 +00007622 +++ gcc-4.8.1/gcc/cp/init.c 2013-10-01 16:06:43.956554286 +0000 6836 7623 @@ -3524,6 +3524,8 @@ 6837 7624 … … 6843 7630 else if (from_array) 6844 7631 { 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); 6845 7640 diff -Naur gcc-4.8.1.orig/gcc/cp/method.c gcc-4.8.1/gcc/cp/method.c 6846 7641 --- 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+00007642 +++ gcc-4.8.1/gcc/cp/method.c 2013-10-01 16:06:43.956554286 +0000 6848 7643 @@ -1340,7 +1340,8 @@ 6849 7644 if (diag && assign_p && move_p … … 6858 7653 diff -Naur gcc-4.8.1.orig/gcc/cp/name-lookup.c gcc-4.8.1/gcc/cp/name-lookup.c 6859 7654 --- 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+00007655 +++ gcc-4.8.1/gcc/cp/name-lookup.c 2013-10-01 16:06:43.956554286 +0000 6861 7656 @@ -3015,8 +3015,10 @@ 6862 7657 if (name == error_mark_node) … … 6874 7669 diff -Naur gcc-4.8.1.orig/gcc/cp/parser.c gcc-4.8.1/gcc/cp/parser.c 6875 7670 --- 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+00007671 +++ gcc-4.8.1/gcc/cp/parser.c 2013-10-01 16:06:43.960554286 +0000 6877 7672 @@ -5438,11 +5438,18 @@ 6878 7673 /* Restore the old message. */ … … 6930 7725 diff -Naur gcc-4.8.1.orig/gcc/cp/pt.c gcc-4.8.1/gcc/cp/pt.c 6931 7726 --- 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+00007727 +++ gcc-4.8.1/gcc/cp/pt.c 2013-10-01 16:06:43.964554286 +0000 6933 7728 @@ -138,6 +138,7 @@ 6934 7729 tree); … … 7194 7989 { 7195 7990 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; 7196 8000 @@ -20626,7 +20676,7 @@ 7197 8001 = build_tree_list (NULL_TREE, TYPE_NAME (auto_node)); … … 7205 8009 diff -Naur gcc-4.8.1.orig/gcc/cp/semantics.c gcc-4.8.1/gcc/cp/semantics.c 7206 8010 --- 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+00008011 +++ gcc-4.8.1/gcc/cp/semantics.c 2013-10-01 16:06:43.964554286 +0000 7208 8012 @@ -155,6 +155,17 @@ 7209 8013 } … … 7296 8100 diff -Naur gcc-4.8.1.orig/gcc/cp/tree.c gcc-4.8.1/gcc/cp/tree.c 7297 8101 --- 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+00008102 +++ gcc-4.8.1/gcc/cp/tree.c 2013-10-01 16:06:43.964554286 +0000 7299 8103 @@ -1220,6 +1220,8 @@ 7300 8104 result = … … 7308 8112 diff -Naur gcc-4.8.1.orig/gcc/cp/typeck.c gcc-4.8.1/gcc/cp/typeck.c 7309 8113 --- 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+00008114 +++ gcc-4.8.1/gcc/cp/typeck.c 2013-10-01 16:06:43.968554286 +0000 7311 8115 @@ -8307,7 +8307,8 @@ 7312 8116 && TREE_CODE (retval) == VAR_DECL … … 7331 8135 diff -Naur gcc-4.8.1.orig/gcc/cp/typeck2.c gcc-4.8.1/gcc/cp/typeck2.c 7332 8136 --- 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+00008137 +++ gcc-4.8.1/gcc/cp/typeck2.c 2013-10-01 16:06:43.964554286 +0000 7334 8138 @@ -262,7 +262,7 @@ 7335 8139 so that we can check again once it is completed. This makes sense … … 7343 8147 diff -Naur gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi gcc-4.8.1/gcc/doc/avr-mmcu.texi 7344 8148 --- 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+00008149 +++ gcc-4.8.1/gcc/doc/avr-mmcu.texi 2013-10-01 16:06:43.968554286 +0000 7346 8150 @@ -38,7 +38,7 @@ 7347 8151 … … 7355 8159 diff -Naur gcc-4.8.1.orig/gcc/doc/cpp.texi gcc-4.8.1/gcc/doc/cpp.texi 7356 8160 --- 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+00008161 +++ gcc-4.8.1/gcc/doc/cpp.texi 2013-10-01 16:06:43.968554286 +0000 7358 8162 @@ -1926,11 +1926,9 @@ 7359 8163 This macro is defined when the C++ compiler is in use. You can use … … 7373 8177 diff -Naur gcc-4.8.1.orig/gcc/doc/extend.texi gcc-4.8.1/gcc/doc/extend.texi 7374 8178 --- 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 @@ 7377 8224 * PowerPC Built-in Functions:: 7378 8225 * PowerPC AltiVec/VSX Built-in Functions:: … … 7382 8229 * SPARC VIS Built-in Functions:: 7383 8230 * SPU Built-in Functions:: 7384 @@ -14026,6 +140 27,120 @@8231 @@ -14026,6 +14035,120 @@ 7385 8232 Generates the @code{wait} machine instruction. 7386 8233 @end deftypefn … … 7503 8350 @subsection SH Built-in Functions 7504 8351 The following built-in functions are supported on the SH1, SH2, SH3 and SH4 8352 diff -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 7505 8366 diff -Naur gcc-4.8.1.orig/gcc/doc/invoke.texi gcc-4.8.1/gcc/doc/invoke.texi 7506 8367 --- 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+00008368 +++ gcc-4.8.1/gcc/doc/invoke.texi 2013-10-01 16:06:43.972554286 +0000 7508 8369 @@ -13726,8 +13726,13 @@ 7509 8370 SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction … … 7521 8382 7522 8383 @item k6 8384 diff -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: 8409 diff -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); 7523 8448 diff -Naur gcc-4.8.1.orig/gcc/file-find.c gcc-4.8.1/gcc/file-find.c 7524 8449 --- 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+00008450 +++ gcc-4.8.1/gcc/file-find.c 2013-10-01 16:06:43.976554286 +0000 7526 8451 @@ -31,7 +31,7 @@ 7527 8452 } … … 7571 8496 diff -Naur gcc-4.8.1.orig/gcc/file-find.h gcc-4.8.1/gcc/file-find.h 7572 8497 --- 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+00008498 +++ gcc-4.8.1/gcc/file-find.h 2013-10-01 16:06:43.976554286 +0000 7574 8499 @@ -38,7 +38,7 @@ 7575 8500 }; … … 7581 8506 extern void prefix_from_env (const char *, struct path_prefix *); 7582 8507 extern void prefix_from_string (const char *, struct path_prefix *); 8508 diff -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 { 7583 8702 diff -Naur gcc-4.8.1.orig/gcc/fortran/interface.c gcc-4.8.1/gcc/fortran/interface.c 7584 8703 --- 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+00008704 +++ gcc-4.8.1/gcc/fortran/interface.c 2013-10-01 16:06:43.976554286 +0000 7586 8705 @@ -1024,7 +1024,8 @@ 7587 8706 bool type_must_agree, char *errmsg, int err_len) … … 7596 8715 diff -Naur gcc-4.8.1.orig/gcc/fortran/match.c gcc-4.8.1/gcc/fortran/match.c 7597 8716 --- 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+00008717 +++ gcc-4.8.1/gcc/fortran/match.c 2013-10-01 16:06:43.980554285 +0000 7599 8718 @@ -5142,7 +5142,6 @@ 7600 8719 { … … 7674 8793 diff -Naur gcc-4.8.1.orig/gcc/fortran/module.c gcc-4.8.1/gcc/fortran/module.c 7675 8794 --- 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+00008795 +++ gcc-4.8.1/gcc/fortran/module.c 2013-10-01 16:06:43.980554285 +0000 7677 8796 @@ -4465,7 +4465,7 @@ 7678 8797 module_locus locus; … … 7686 8805 diff -Naur gcc-4.8.1.orig/gcc/fortran/resolve.c gcc-4.8.1/gcc/fortran/resolve.c 7687 8806 --- 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+00008807 +++ gcc-4.8.1/gcc/fortran/resolve.c 2013-10-01 16:06:43.980554285 +0000 7689 8808 @@ -9746,6 +9746,10 @@ 7690 8809 … … 7708 8827 diff -Naur gcc-4.8.1.orig/gcc/fortran/simplify.c gcc-4.8.1/gcc/fortran/simplify.c 7709 8828 --- 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+00008829 +++ gcc-4.8.1/gcc/fortran/simplify.c 2013-10-01 16:06:43.980554285 +0000 7711 8830 @@ -332,13 +332,15 @@ 7712 8831 } … … 7763 8882 diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-array.c gcc-4.8.1/gcc/fortran/trans-array.c 7764 8883 --- 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+00008884 +++ gcc-4.8.1/gcc/fortran/trans-array.c 2013-10-01 16:06:43.984554285 +0000 7766 8885 @@ -3674,7 +3674,7 @@ 7767 8886 /* Calculate the lower bound of an array section. */ … … 7900 9019 diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c gcc-4.8.1/gcc/fortran/trans-intrinsic.c 7901 9020 --- 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+00009021 +++ gcc-4.8.1/gcc/fortran/trans-intrinsic.c 2013-10-01 16:06:43.984554285 +0000 7903 9022 @@ -5653,8 +5653,7 @@ 7904 9023 … … 7927 9046 diff -Naur gcc-4.8.1.orig/gcc/gcc-ar.c gcc-4.8.1/gcc/gcc-ar.c 7928 9047 --- 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+00009048 +++ gcc-4.8.1/gcc/gcc-ar.c 2013-10-01 16:06:43.984554285 +0000 7930 9049 @@ -136,7 +136,7 @@ 7931 9050 setup_prefixes (av[0]); … … 7968 9087 7969 9088 /* Create new command line with plugin */ 9089 diff -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); 7970 9104 diff -Naur gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c 7971 9105 --- 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+00009106 +++ gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c 2013-10-01 16:06:43.984554285 +0000 7973 9107 @@ -1525,11 +1525,23 @@ 7974 9108 static void … … 8002 9136 diff -Naur gcc-4.8.1.orig/gcc/gimple.c gcc-4.8.1/gcc/gimple.c 8003 9137 --- 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+00009138 +++ gcc-4.8.1/gcc/gimple.c 2013-10-01 16:06:43.984554285 +0000 8005 9139 @@ -4045,6 +4045,13 @@ 8006 9140 ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data); … … 8019 9153 diff -Naur gcc-4.8.1.orig/gcc/go/go-gcc.cc gcc-4.8.1/gcc/go/go-gcc.cc 8020 9154 --- 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 @@ 8023 9174 Location, Bstatement**); 8024 9175 … … 8033 9184 8034 9185 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 @@ 8036 9218 switch (TREE_CODE(type)) 8037 9219 { … … 8089 9271 case ARRAY_TYPE: 8090 9272 { 8091 @@ -1454,8 +1 475,8 @@9273 @@ -1454,8 +1509,8 @@ 8092 9274 // Create a named immutable initialized data structure. 8093 9275 … … 8095 9277 -Gcc_backend::immutable_struct(const std::string& name, bool, Btype* btype, 8096 9278 - 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) 8099 9281 { 8100 9282 tree type_tree = btype->get_tree(); 8101 9283 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 @@ 8103 9294 8104 9295 void 8105 9296 Gcc_backend::immutable_struct_set_init(Bvariable* var, const std::string&, 8106 9297 - bool is_common, Btype*, 8107 + bool is_hidden, bool is_common, Btype*,8108 Location,9298 - Location, 9299 + bool, bool is_common, Btype*, Location, 8109 9300 Bexpression* initializer) 8110 9301 { 8111 @@ -1495,12 +1516,18 @@ 9302 tree decl = var->get_tree(); 9303 @@ -1494,13 +1550,14 @@ 9304 DECL_INITIAL(decl) = init_tree; 8112 9305 8113 9306 // We can't call make_decl_one_only until we set DECL_INITIAL. 8114 if (!is_common)9307 - if (!is_common) 8115 9308 - TREE_PUBLIC(decl) = 1; 8116 9309 - else 8117 {9310 - { 8118 9311 - make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl)); 8119 9312 - resolve_unique_section(decl, 1, 0); 8120 + if (!is_hidden) 8121 + TREE_PUBLIC(decl) = 1; 8122 } 8123 + else 9313 - } 9314 + if (is_common) 8124 9315 + make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl)); 8125 9316 + … … 8134 9325 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/backend.h gcc-4.8.1/gcc/go/gofrontend/backend.h 8135 9326 --- 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+00009327 +++ gcc-4.8.1/gcc/go/gofrontend/backend.h 2013-10-01 16:06:43.984554285 +0000 8137 9328 @@ -95,7 +95,10 @@ 8138 9329 … … 8147 9338 function_type(const Btyped_identifier& receiver, 8148 9339 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 @@ 8150 9364 Bstatement** pstatement) = 0; 8151 9365 … … 8174 9388 // TYPE will be a struct type; the type of the returned expression 8175 9389 // must be a pointer to this struct type. 8176 @@ -409,20 +4 16,20 @@9390 @@ -409,20 +432,20 @@ 8177 9391 // address. After calling this the frontend will call 8178 9392 // immutable_struct_set_init. … … 8206 9420 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc gcc-4.8.1/gcc/go/gofrontend/expressions.cc 8207 9421 --- 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 @@ 8210 9452 return this->statement_->type(); 8211 9453 } … … 8223 9465 8224 9466 void 8225 @@ -1255,17 +126 4,16 @@9467 @@ -1255,17 +1261,16 @@ 8226 9468 go_unreachable(); 8227 9469 } … … 8247 9489 go_unreachable(); 8248 9490 8249 @@ -1273,14 +12 81,12 @@9491 @@ -1273,14 +1278,12 @@ 8250 9492 // can't take their address. 8251 9493 if (fntype->is_builtin()) … … 8264 9506 if (id == error_mark_node) 8265 9507 return error_mark_node; 8266 @@ -1296,46 +1 302,55 @@9508 @@ -1296,46 +1299,55 @@ 8267 9509 if (fndecl == error_mark_node) 8268 9510 return error_mark_node; … … 8349 9591 8350 9592 // Ast dump for function. 8351 @@ -1361,6 +137 6,197@@9593 @@ -1361,6 +1373,181 @@ 8352 9594 return new Func_expression(function, closure, location); 8353 9595 } … … 8359 9601 +Func_descriptor_expression::Func_descriptor_expression(Named_object* fn) 8360 9602 + : Expression(EXPRESSION_FUNC_DESCRIPTOR, fn->location()), 8361 + fn_(fn), d fn_(NULL), dvar_(NULL)9603 + fn_(fn), dvar_(NULL) 8362 9604 +{ 8363 9605 + go_assert(!fn->is_function() || !fn->func_value()->needs_closure()); … … 8394 9636 +} 8395 9637 + 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 +8408 9638 +// The tree for a function descriptor. 8409 9639 + … … 8432 9662 + if (no->package() != NULL 8433 9663 + || 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); 8439 9666 + else 8440 9667 + { … … 8446 9673 + btype, bloc); 8447 9674 + 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)); 8450 9676 + Expression* init = 8451 9677 + Expression::make_struct_composite_literal(this->type(), vals, bloc); … … 8547 9773 8548 9774 // Return the name of an unknown expression. 8549 @@ -5462,6 +56 68,7 @@9775 @@ -5462,6 +5649,7 @@ 8550 9776 if (tleft->is_abstract() 8551 9777 && subcontext.type != NULL … … 8555 9781 this->report_error(("invalid context-determined non-integer type " 8556 9782 "for left operand of shift")); 8557 @@ -5641,6 +58 48,20 @@9783 @@ -5641,6 +5829,20 @@ 8558 9784 this->set_is_error(); 8559 9785 return; … … 8576 9802 else 8577 9803 { 8578 @@ -6429,20 +66 50,49 @@9804 @@ -6429,20 +6631,49 @@ 8579 9805 return Expression::traverse(&this->expr_, traverse); 8580 9806 } … … 8633 9859 8634 9860 // Determine the types of a method expression. 8635 @@ -6450,7 +6 700,14 @@9861 @@ -6450,7 +6681,14 @@ 8636 9862 void 8637 9863 Bound_method_expression::do_determine_type(const Type_context*) … … 8649 9875 this->expr_->determine_type_no_context(); 8650 9876 else 8651 @@ -6465,31 +67 22,278 @@9877 @@ -6465,31 +6703,278 @@ 8652 9878 void 8653 9879 Bound_method_expression::do_check_types(Gogo*) … … 8668 9894 + else if (fn->is_function_declaration()) 8669 9895 + fntype = fn->func_declaration_value()->type(); 8670 else9896 + else 8671 9897 + go_unreachable(); 8672 9898 + Type* rtype = fntype->receiver()->type()->deref(); … … 8703 9929 + Bound_method_expression::method_value_thunks.insert(val); 8704 9930 + 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 8705 9989 { 8706 9990 - Type* rtype = this->type()->function_type()->receiver()->type()->deref(); … … 8711 9995 - if (!Type::are_identical(rtype, etype, true, NULL)) 8712 9996 - 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 + else8726 + 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't8736 + // 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 != NULL8754 + && cp->is_variable()8755 + && cp->var_value()->is_parameter());8756 +8757 + // Field 0 of the closure is the function code pointer, field 1 is8758 + // 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 + else8770 + {8771 9997 + const Typed_identifier_list* new_params = new_fntype->parameters(); 8772 9998 + args = new Expression_list(); 8773 9999 + for (Typed_identifier_list::const_iterator p = new_params->begin(); 8774 + p + 1!= new_params->end();10000 + p != new_params->end(); 8775 10001 + ++p) 8776 10002 + { … … 8781 10007 + args->push_back(Expression::make_var_reference(p_no, loc)); 8782 10008 + } 8783 +}10009 } 8784 10010 + 8785 10011 + Call_expression* call = Expression::make_call(bme, args, … … 8945 10171 8946 10172 // Dump ast representation of a bound method expression. 8947 @@ -6508,16 + 7012,16 @@10173 @@ -6508,16 +6993,16 @@ 8948 10174 ast_dump_context->ostream() << ")"; 8949 10175 } … … 8966 10192 8967 10193 // Class Builtin_call_expression. This is used for a call to a 8968 @@ -6722,6 +72 26,26 @@10194 @@ -6722,6 +7207,26 @@ 8969 10195 return Expression::make_error(loc); 8970 10196 } … … 8993 10219 { 8994 10220 Numeric_constant nc; 8995 @@ -6874,6 +73 98,8 @@10221 @@ -6874,6 +7379,8 @@ 8996 10222 Type* uintptr_type = Type::lookup_integer_type("uintptr"); 8997 10223 int uintptr_bits = uintptr_type->integer_type()->bits(); … … 9002 10228 Expression* len_arg; 9003 10229 if (parg == args->end()) 9004 @@ -6892,6 +7 418,7 @@10230 @@ -6892,6 +7399,7 @@ 9005 10231 else 9006 10232 { … … 9010 10236 return Expression::make_error(this->location()); 9011 10237 if (len_arg->type()->integer_type() != NULL 9012 @@ -6904,6 +74 31,7 @@10238 @@ -6904,6 +7412,7 @@ 9013 10239 if (is_slice && parg != args->end()) 9014 10240 { … … 9018 10244 return Expression::make_error(this->location()); 9019 10245 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 @@ 9021 10256 Field_reference_expression* farg = arg->field_reference_expression(); 9022 10257 if (farg == NULL) … … 9062 10297 } 9063 10298 else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG) 9064 @@ -7509,6 +80 49,8 @@10299 @@ -7509,6 +8028,8 @@ 9065 10300 case BUILTIN_REAL: 9066 10301 case BUILTIN_IMAG: … … 9071 10306 break; 9072 10307 9073 @@ -7517,6 +80 59,8 @@10308 @@ -7517,6 +8038,8 @@ 9074 10309 // For the complex function the type of one operand can 9075 10310 // determine the type of the other, as in a binary expression. … … 9080 10315 { 9081 10316 Type* t1 = args->front()->type(); 9082 @@ -8509,6 +90 53,74 @@10317 @@ -8509,6 +9032,74 @@ 9083 10318 9084 10319 // Class Call_expression. … … 9155 10390 9156 10391 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 @@ 9158 10471 Bound_method_expression* bme = this->fn_->bound_method_expression(); 9159 10472 if (bme != NULL) … … 9164 10477 9165 10478 // We always pass a pointer when calling a method. 9166 @@ -8665,7 +92 77,7 @@10479 @@ -8665,7 +9250,7 @@ 9167 10480 // old arguments, because we may be traversing them up in some 9168 10481 // caller. FIXME. … … 9173 10486 } 9174 10487 9175 @@ -9117, 11 +9729,21@@10488 @@ -9117,6 +9702,16 @@ 9176 10489 const bool has_closure = func != NULL && func->closure() != NULL; 9177 10490 const bool is_interface_method = interface_method != NULL; 9178 10491 9179 + intclosure_arg;10492 + bool has_closure_arg; 9180 10493 + if (has_closure) 9181 + closure_arg = 1;10494 + has_closure_arg = true; 9182 10495 + else if (func != NULL) 9183 + closure_arg = 0;10496 + has_closure_arg = false; 9184 10497 + else if (is_interface_method) 9185 + closure_arg = 0;10498 + has_closure_arg = false; 9186 10499 + else 9187 + closure_arg = 1;10500 + has_closure_arg = true; 9188 10501 + 9189 10502 int nargs; 9190 10503 tree* args; 9191 10504 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 @@ 9216 10506 arg_val, 9217 10507 location); … … 9224 10514 } 9225 10515 go_assert(pp == params->end()); 9226 - go_assert(i == nargs); 9227 + go_assert(i + closure_arg == nargs); 10516 go_assert(i == nargs); 9228 10517 } 9229 10518 … … 9251 10540 - if (has_closure) 9252 10541 - fn = func->get_tree_without_closure(gogo); 10542 + tree closure_tree; 9253 10543 + if (func != NULL) 9254 10544 + { 9255 10545 + Named_object* no = func->named_object(); 9256 + go_assert(!no->is_function()9257 + || !no->func_value()->is_descriptor_wrapper());9258 10546 + fn = Func_expression::get_code_pointer(gogo, no, location); 9259 + if (has_closure) 10547 + if (!has_closure) 10548 + closure_tree = NULL_TREE; 10549 + else 9260 10550 + { 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; 9263 10554 + } 9264 10555 + } … … 9272 10563 - delete[] args; 9273 10564 - return error_mark_node; 9274 + treeclosure_tree = this->fn_->get_tree(context);10565 + closure_tree = this->fn_->get_tree(context); 9275 10566 + if (closure_tree == error_mark_node) 9276 10567 + return error_mark_node; … … 9286 10577 + fnc), 9287 10578 + field, NULL_TREE); 9288 + go_assert(closure_arg == 1 && nargs > 0);9289 + args[nargs - 1] = closure_tree;9290 10579 + } 9291 10580 + else … … 9295 10584 + if (fn == error_mark_node) 9296 10585 + return error_mark_node; 9297 + go_assert(closure_arg == 0);10586 + closure_tree = NULL_TREE; 9298 10587 } 9299 10588 … … 9304 10593 if (TREE_CODE(fndecl) == ADDR_EXPR) 9305 10594 fndecl = TREE_OPERAND(fndecl, 0); 9306 @@ -9198,12 +98 56,7 @@10595 @@ -9198,12 +9828,7 @@ 9307 10596 // Add a type cast in case the type of the function is a recursive 9308 10597 // type which refers to itself. … … 9318 10607 // This is to support builtin math functions when using 80387 math. 9319 10608 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; 9321 10642 9322 10643 SET_EXPR_LOCATION(ret, location.gcc_location()); … … 9332 10653 // type F func() F 9333 10654 // we have used ptr_type_node for the return type. Add a cast here 9334 @@ -9274,24 +99 20,6 @@10655 @@ -9274,24 +9918,6 @@ 9335 10656 if (this->results_ != NULL) 9336 10657 ret = this->set_results(context, ret); … … 9357 10678 9358 10679 return ret; 9359 @@ -9774,13 +1040 2,20 @@10680 @@ -9774,13 +10400,20 @@ 9360 10681 void 9361 10682 Array_index_expression::do_check_types(Gogo*) … … 9380 10701 9381 10702 Array_type* array_type = this->array_->type()->array_type(); 9382 @@ -10845,6 +114 80,28 @@10703 @@ -10845,6 +11478,28 @@ 9383 10704 return Expression::traverse(&this->expr_, traverse); 9384 10705 } … … 9409 10730 9410 10731 Type* 9411 @@ -10905,18 +1156 2,188 @@10732 @@ -10905,18 +11560,188 @@ 9412 10733 } 9413 10734 } … … 9466 10787 + 9467 10788 + Struct_field_list* sfl = new Struct_field_list(); 9468 + // The type here is wrong--it should be new_fntype. But we don't9469 + // have new_fntype yet, and itdoesn't really matter.10789 + // The type here is wrong--it should be the C function type. But it 10790 + // doesn't really matter. 9470 10791 + Type* vt = Type::make_pointer_type(Type::make_void_type()); 9471 10792 + sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc))); … … 9474 10795 + closure_type = Type::make_pointer_type(closure_type); 9475 10796 + 9476 + Function_type* new_fntype = orig_fntype->copy_with_ closure(closure_type);10797 + Function_type* new_fntype = orig_fntype->copy_with_names(); 9477 10798 + 9478 10799 + Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype, 9479 10800 + false, loc); 9480 10801 + 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 + 9481 10807 + gogo->start_block(loc); 9482 +9483 + Named_object* cp = gogo->lookup("closure.0", NULL);9484 + go_assert(cp != NULL9485 + && cp->is_variable()9486 + && cp->var_value()->is_parameter());9487 10808 + 9488 10809 + // Field 0 of the closure is the function code pointer, field 1 is … … 9504 10825 + args = new Expression_list(); 9505 10826 + for (Typed_identifier_list::const_iterator p = new_params->begin(); 9506 + p + 1!= new_params->end();10827 + p != new_params->end(); 9507 10828 + ++p) 9508 10829 + { … … 9607 10928 9608 10929 // Dump ast representation for an interface field reference. 9609 @@ -11114,8 +119 41,10 @@10930 @@ -11114,8 +11939,10 @@ 9610 10931 // as their first argument. If this is for a pointer type, we can 9611 10932 // simply reuse the existing function. We use an internal hack to … … 9620 10941 Named_object* mno = (method->needs_stub_method() 9621 10942 ? method->stub_object() 9622 @@ -11170,22 +1199 9,7 @@10943 @@ -11170,22 +11997,7 @@ 9623 10944 method_type->is_varargs(), 9624 10945 location); … … 9646 10967 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h gcc-4.8.1/gcc/go/gofrontend/expressions.h 9647 10968 --- 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+000010969 +++ gcc-4.8.1/gcc/go/gofrontend/expressions.h 2013-10-01 16:06:43.988554285 +0000 9649 10970 @@ -16,6 +16,7 @@ 9650 10971 class Traverse; … … 9756 11077 protected: 9757 11078 int 9758 @@ -1532,11 +1556, 68@@11079 @@ -1532,11 +1556,59 @@ 9759 11080 // The function itself. 9760 11081 Named_object* function_; … … 9776 11097 + Func_descriptor_expression(Named_object* fn); 9777 11098 + 9778 + // Set the descriptor wrapper.9779 + void9780 + set_descriptor_wrapper(Named_object* dfn)9781 + {9782 + go_assert(this->dfn_ == NULL);9783 + this->dfn_ = dfn;9784 + }9785 +9786 11099 + // Make the function descriptor type, so that it can be converted. 9787 11100 + static void … … 9800 11113 + 9801 11114 + Expression* 9802 + do_copy(); 11115 + do_copy() 11116 + { return Expression::make_func_descriptor(this->fn_); } 9803 11117 + 9804 11118 + bool … … 9818 11132 + // The function for which this is the descriptor. 9819 11133 + Named_object* fn_; 9820 + // The descriptor function.9821 + Named_object* dfn_;9822 11134 + // The descriptor variable. 9823 11135 + Bvariable* dvar_; … … 9827 11139 9828 11140 class Unknown_expression : public Parser_expression 9829 @@ -1773,10 +18 54,10 @@11141 @@ -1773,10 +1845,10 @@ 9830 11142 class Bound_method_expression : public Expression 9831 11143 { … … 9841 11153 9842 11154 // Return the object which is the first argument. 9843 @@ -1791,20 +18 72,33 @@11155 @@ -1791,20 +1863,33 @@ 9844 11156 first_argument_type() const 9845 11157 { return this->expr_type_; } … … 9878 11190 do_type(); 9879 11191 9880 @@ -1818,7 +19 12,7 @@11192 @@ -1818,7 +1903,7 @@ 9881 11193 do_copy() 9882 11194 { … … 9887 11199 9888 11200 tree 9889 @@ -1828,6 +19 22,11 @@11201 @@ -1828,6 +1913,11 @@ 9890 11202 do_dump_expression(Ast_dump_context*) const; 9891 11203 … … 9899 11211 // as the first argument. 9900 11212 Expression* expr_; 9901 @@ -1835,8 +19 34,12 @@11213 @@ -1835,8 +1925,12 @@ 9902 11214 // NULL in the normal case, non-NULL when using a method from an 9903 11215 // anonymous field which does not require a stub. … … 9914 11226 9915 11227 // A reference to a field in a struct. 9916 @@ -1847,7 +19 50,7 @@11228 @@ -1847,7 +1941,7 @@ 9917 11229 Field_reference_expression(Expression* expr, unsigned int field_index, 9918 11230 Location location) … … 9923 11235 9924 11236 // Return the struct expression. 9925 @@ -1860,6 +19 63,15 @@11237 @@ -1860,6 +1954,15 @@ 9926 11238 field_index() const 9927 11239 { return this->field_index_; } … … 9939 11251 void 9940 11252 set_struct_expression(Expression* expr) 9941 @@ -1914,6 +20 26,9 @@11253 @@ -1914,6 +2017,9 @@ 9942 11254 Expression* expr_; 9943 11255 // The zero-based index of the field we are retrieving. … … 9949 11261 bool called_fieldtrack_; 9950 11262 }; 9951 @@ -1940,6 +20 55,11 @@11263 @@ -1940,6 +2046,11 @@ 9952 11264 name() const 9953 11265 { return this->name_; } … … 9961 11273 // tree for the expression. 9962 11274 tree 9963 @@ -1955,6 +20 75,9 @@11275 @@ -1955,6 +2066,9 @@ 9964 11276 int 9965 11277 do_traverse(Traverse* traverse); … … 9971 11283 do_type(); 9972 11284 9973 @@ -1979,6 +2 102,13 @@11285 @@ -1979,6 +2093,13 @@ 9974 11286 do_dump_expression(Ast_dump_context*) const; 9975 11287 … … 9987 11299 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/go.cc gcc-4.8.1/gcc/go/gofrontend/go.cc 9988 11300 --- 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+000011301 +++ gcc-4.8.1/gcc/go/gofrontend/go.cc 2013-10-01 16:06:43.988554285 +0000 9990 11302 @@ -44,7 +44,7 @@ 9991 11303 GO_EXTERN_C … … 10027 11339 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc 10028 11340 --- 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+000011341 +++ gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc 2013-10-01 16:06:43.988554285 +0000 10030 11342 @@ -755,6 +755,18 @@ 10031 11343 this->build_interface_method_tables(); … … 10072 11384 // have ideal or non-integral type. 10073 11385 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 @@ 10075 11417 if (this->fndecl_ == NULL_TREE) 10076 11418 { … … 10087 11429 + go_assert(FUNCTION_POINTER_TYPE_P(functype)); 10088 11430 + functype = TREE_TYPE(functype); 10089 +10090 + // In the struct, the function type always has a trailing10091 + // closure argument. For the function body, we only use10092 + // that trailing arg if this is a function literal or if it10093 + // is a wrapper created to store in a descriptor. Remove it10094 + // 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_TREE10099 + && 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 + }10113 11431 + } 10114 11432 + … … 10124 11442 id, functype); 10125 11443 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 @@ 10127 11468 DECL_CONTEXT(resdecl) = decl; 10128 11469 DECL_RESULT(decl) = resdecl; … … 10134 11475 // can't inline it, because recover behaves differently in a 10135 11476 // function passed directly to defer. If this is a recover 10136 @@ -1333,29 +13 86,6 @@11477 @@ -1333,29 +1392,6 @@ 10137 11478 resolve_unique_section (decl, 0, 1); 10138 11479 … … 10164 11505 } 10165 11506 return this->fndecl_; 10166 @@ -1382,15 +141 2,44 @@11507 @@ -1382,15 +1418,24 @@ 10167 11508 } 10168 11509 … … 10179 11520 + go_assert(FUNCTION_POINTER_TYPE_P(functype)); 10180 11521 + functype = TREE_TYPE(functype); 10181 +10182 + // In the struct, the function type always has a trailing10183 + // closure argument. Here we are referring to the function10184 + // code directly, and we know it is not a function literal,10185 + // and we know it is not a wrapper created to store in a10186 + // 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);10201 11522 + } 10202 11523 + … … 10213 11534 functype); 10214 11535 TREE_PUBLIC(decl) = 1; 10215 @@ -1599, 6 +1658,32@@11536 @@ -1599,10 +1644,41 @@ 10216 11537 } 10217 11538 } 10218 11539 } 10219 11540 + 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. 10222 11548 + if (this->closure_var_ != NULL) 10223 11549 + { … … 10227 11553 + if (var_decl != error_mark_node) 10228 11554 + { 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; 10232 11572 + } 10233 11573 + } 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 @@ 10249 11579 10250 11580 DECL_SAVED_TREE(fndecl) = code; … … 10260 11590 10261 11591 // Build the wrappers around function code needed if the function has 10262 @@ -1844,6 +19 36,20 @@11592 @@ -1844,6 +1927,20 @@ 10263 11593 } 10264 11594 } … … 10281 11611 10282 11612 GO_EXTERN_C 10283 @@ -2437,70 +25 43,3 @@11613 @@ -2437,70 +2534,3 @@ 10284 11614 build2(COMPOUND_EXPR, type_tree, call, tmp)); 10285 11615 } … … 10354 11684 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc gcc-4.8.1/gcc/go/gofrontend/gogo.cc 10355 11685 --- 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+000011686 +++ gcc-4.8.1/gcc/go/gofrontend/gogo.cc 2013-10-01 16:06:43.988554285 +0000 10357 11687 @@ -364,7 +364,7 @@ 10358 11688 // Declare "main" as a function which takes no parameters and … … 10374 11704 else if (!type->is_method()) 10375 11705 { 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 @@ 10377 11735 n.c_str()); 10378 11736 inform(pf->second, "%qs imported here", n.c_str()); … … 10389 11747 } 10390 11748 10391 @@ -1599,8 +16 08,9 @@11749 @@ -1599,8 +1629,9 @@ 10392 11750 return TRAVERSE_CONTINUE; 10393 11751 } … … 10401 11759 int 10402 11760 Lower_parse_tree::function(Named_object* no) 10403 @@ -1732,6 +17 42,146 @@11761 @@ -1732,6 +1763,146 @@ 10404 11762 lower.constant(no, false); 10405 11763 } … … 10433 11791 + && no->func_value()->enclosing() == NULL 10434 11792 + && !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)) 10437 11795 + no->func_value()->descriptor(this->gogo_, no); 10438 11796 + … … 10548 11906 // interfaces. 10549 11907 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 @@ 10551 11964 Expression* closure = NULL; 10552 11965 if (orig_func->needs_closure()) … … 10562 11975 Variable* orig_closure_var = orig_closure_no->var_value(); 10563 11976 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 @@ 10565 11983 // Any varargs call has already been lowered. 10566 11984 call->set_varargs_are_lowered(); … … 10586 12004 gogo->add_statement(s); 10587 12005 10588 @@ -2991,7 +31 33,8 @@12006 @@ -2991,7 +3179,8 @@ 10589 12007 return TRAVERSE_CONTINUE; 10590 12008 … … 10596 12014 return TRAVERSE_CONTINUE; 10597 12015 } 10598 @@ -3101,6 +32 44,7 @@12016 @@ -3101,6 +3290,7 @@ 10599 12017 Map_type::make_map_descriptor_type(); 10600 12018 Channel_type::make_chan_type_descriptor_type(); … … 10604 12022 10605 12023 Runtime::convert_types(this); 10606 @@ -3128, 10 +3272,10@@12024 @@ -3128,9 +3318,9 @@ 10607 12025 Location location) 10608 12026 : type_(type), enclosing_(enclosing), results_(NULL), … … 10611 12029 - results_are_named_(false), nointerface_(false), calls_recover_(false), 10612 12030 - is_recover_thunk_(false), has_recover_thunk_(false), 10613 - in_unique_section_(false)10614 12031 + local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL), 10615 12032 + is_sink_(false), results_are_named_(false), nointerface_(false), 10616 12033 + 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) 10618 12035 { 10619 12036 } 10620 10621 @@ -3206,6 +3350,7 @@ 12037 @@ -3206,15 +3396,16 @@ 10622 12038 { 10623 12039 if (this->closure_var_ == NULL) … … 10627 12043 // we find them. 10628 12044 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 @@ 10630 12057 return; 10631 12058 Named_object* closure = this->closure_var_; … … 10643 12070 p != this->closure_fields_.end(); 10644 12071 ++p, ++index) 10645 @@ -3410,6 +3 562,102@@12072 @@ -3410,6 +3608,19 @@ 10646 12073 this->block_->determine_types(); 10647 12074 } 10648 12075 10649 +// Build a wrapper function for a function descriptor. A function10650 +// descriptor refers to a function that takes a closure as its last10651 +// argument. In this case there will be no closure, but an indirect10652 +// call will pass nil as the last argument. We need to build a10653 +// wrapper function that accepts and discards that last argument, so10654 +// that cases like -mrtd will work correctly. In most cases the10655 +// 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 discarded10671 + // by the linker if it is not needed. Every top-level function will10672 + // get a wrapper, in case there is a reference other than a call10673 + // 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 arguments10681 + // except for the last one (the last argument is the ignored10682 + // 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 + else10688 + {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 != NULL10697 + && 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 +10718 12076 +// Return the function descriptor, the value you get when you refer to 10719 12077 +// the function in Go code without calling it. 10720 12078 + 10721 12079 +Expression* 10722 +Function::descriptor(Gogo* gogo, Named_object* no)12080 +Function::descriptor(Gogo*, Named_object* no) 10723 12081 +{ 10724 12082 + go_assert(!this->is_method()); 10725 12083 + go_assert(this->closure_var_ == NULL); 10726 + go_assert(!this->is_descriptor_wrapper_);10727 12084 + 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); 10742 12086 + return this->descriptor_; 10743 12087 +} … … 10746 12090 // function, making it if necessary. The value of the variable is set 10747 12091 // by the runtime routines to true if the function is returning, 10748 @@ -3940,6 +41 88,32@@12092 @@ -3940,6 +4151,19 @@ 10749 12093 } 10750 12094 } … … 10755 12099 + 10756 12100 +Expression* 10757 +Function_declaration::descriptor(Gogo* gogo, Named_object* no)12101 +Function_declaration::descriptor(Gogo*, Named_object* no) 10758 12102 +{ 10759 12103 + go_assert(!this->fntype_->is_method()); 10760 12104 + 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); 10775 12106 + return this->descriptor_; 10776 12107 +} … … 10779 12110 10780 12111 Variable::Variable(Type* type, Expression* init, bool is_global, 10781 @@ -4755,6 + 5029,12 @@12112 @@ -4755,6 +4979,12 @@ 10782 12113 Named_object::set_function_value(Function* function) 10783 12114 { … … 10794 12125 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h gcc-4.8.1/gcc/go/gofrontend/gogo.h 10795 12126 --- 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 @@ 10798 12146 void 10799 12147 lower_constant(Named_object*); … … 10806 12154 void 10807 12155 finalize_methods(); 10808 @@ -614,10 +6 18,6 @@12156 @@ -614,10 +628,6 @@ 10809 12157 receive_from_channel(tree type_tree, tree type_descriptor_tree, tree channel, 10810 12158 Location); … … 10817 12165 // During parsing, we keep a stack of functions. Each function on 10818 12166 // the stack is one that we are currently parsing. For each 10819 @@ -669,10 +6 69,6 @@12167 @@ -669,10 +679,6 @@ 10820 12168 tree 10821 12169 ptr_go_string_constant_tree(const std::string&); … … 10828 12176 typedef std::map<std::string, Package*> Imports; 10829 12177 10830 @@ -915,6 +9 11,14 @@12178 @@ -915,6 +921,14 @@ 10831 12179 result_variables() 10832 12180 { return this->results_; } … … 10843 12191 bool 10844 12192 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 @@ 10859 12194 void 10860 12195 determine_types(); … … 10876 12211 + } 10877 12212 + 10878 + // Build a descriptor wrapper function.10879 + static Named_object*10880 + make_descriptor_wrapper(Gogo*, Named_object*, Function_type*);10881 +10882 12213 // Return the function's decl given an identifier. 10883 12214 tree 10884 12215 get_or_make_decl(Gogo*, Named_object*, tree id); 10885 @@ -1137,2 5 +1167,32@@12216 @@ -1137,22 +1167,26 @@ 10886 12217 Labels labels_; 10887 12218 // The number of local types defined in this function. … … 10915 12246 // turned on for field tracking. 10916 12247 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 @@ 10924 12249 { 10925 12250 public: … … 10931 12256 10932 12257 Function_type* 10933 @@ -1218,10 +125 6,27 @@12258 @@ -1218,10 +1253,27 @@ 10934 12259 set_asm_name(const std::string& asm_name) 10935 12260 { this->asm_name_ = asm_name; } … … 10959 12284 void 10960 12285 export_func(Export* exp, const std::string& name) const 10961 @@ -1235,6 +12 90,8 @@12286 @@ -1235,6 +1287,8 @@ 10962 12287 // The assembler name: this is the name to use in references to the 10963 12288 // function. This is normally empty. … … 10968 12293 tree fndecl_; 10969 12294 }; 10970 @@ -1630,7 +168 7,7 @@12295 @@ -1630,7 +1684,7 @@ 10971 12296 Named_constant(Type* type, Expression* expr, int iota_value, 10972 12297 Location location) … … 10977 12302 10978 12303 Type* 10979 @@ -1664,6 +17 21,14 @@12304 @@ -1664,6 +1718,14 @@ 10980 12305 clear_lowering() 10981 12306 { this->lowering_ = false; } … … 10992 12317 int 10993 12318 traverse_expression(Traverse*); 10994 @@ -1699,6 +176 4,8 @@12319 @@ -1699,6 +1761,8 @@ 10995 12320 Location location_; 10996 12321 // Whether we are currently lowering this constant. … … 11003 12328 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc gcc-4.8.1/gcc/go/gofrontend/parse.cc 11004 12329 --- 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()) 11006 12340 @@ -1457,6 +1457,16 @@ 11007 12341 … … 11021 12355 if (pe != expr_list->end()) 11022 12356 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 @@ 11024 12372 Named_object* this_function = this->gogo_->current_function(); 11025 12373 Named_object* closure = this_function->func_value()->closure_var(); … … 11034 12382 this->enclosing_vars_.insert(ev); 11035 12383 if (ins.second) 11036 @@ -2882,8 +289 6,9 @@12384 @@ -2882,8 +2893,9 @@ 11037 12385 // Create a closure for the nested function FUNCTION. This is based 11038 12386 // on ENCLOSING_VARS, which is a list of all variables defined in … … 11046 12394 Expression* 11047 12395 Parse::create_closure(Named_object* function, Enclosing_vars* enclosing_vars, 11048 @@ -2899,16 +291 4,25 @@12396 @@ -2899,16 +2911,25 @@ 11049 12397 for (Enclosing_vars::const_iterator p = enclosing_vars->begin(); 11050 12398 p != enclosing_vars->end(); … … 11074 12422 Expression* ref; 11075 12423 if (ev[i].in_function() == enclosing_function) 11076 @@ -3016,7 +30 40,7 @@12424 @@ -3016,7 +3037,7 @@ 11077 12425 && t->array_type()->length()->is_nil_expression()) 11078 12426 { … … 11083 12431 } 11084 12432 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 @@ 11086 12443 bool is_fallthrough = false; 11087 12444 if (this->peek_token()->is_keyword(KEYWORD_FALLTHROUGH)) … … 11096 12453 11097 12454 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 @@ 11099 12474 no->var_value()->set_type_from_range_value(); 11100 12475 if (is_new) … … 11106 12481 11107 12482 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 } 11108 12492 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def gcc-4.8.1/gcc/go/gofrontend/runtime.def 11109 12493 --- 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+000012494 +++ gcc-4.8.1/gcc/go/gofrontend/runtime.def 2013-10-01 16:06:43.992554285 +0000 11111 12495 @@ -224,11 +224,6 @@ 11112 12496 DEF_GO_RUNTIME(NEW_NOPOINTERS, "__go_new_nopointers", P1(UINTPTR), R1(POINTER)) … … 11123 12507 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc gcc-4.8.1/gcc/go/gofrontend/statements.cc 11124 12508 --- 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+000012509 +++ gcc-4.8.1/gcc/go/gofrontend/statements.cc 2013-10-01 16:06:43.992554285 +0000 11126 12510 @@ -569,7 +569,10 @@ 11127 12511 Assignment_statement::do_determine_types() … … 11136 12520 } 11137 12521 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 @@ 11139 12611 this->expr_->discarding_value(); 11140 12612 } … … 11147 12619 bool 11148 12620 Expression_statement::do_may_fall_through() const 11149 @@ -1717,22 +17 20,28 @@12621 @@ -1717,22 +1709,28 @@ 11150 12622 if (call != NULL) 11151 12623 { … … 11158 12630 { 11159 12631 - const Named_object* no = fe->named_object(); 11160 + Named_object* no = ue->named_object(); 11161 12632 - 11162 12633 - Function_type* fntype; 11163 12634 - if (no->is_function()) … … 11167 12638 - else 11168 12639 - fntype = NULL; 11169 - 12640 + Named_object* no = ue->named_object(); 12641 11170 12642 - // The builtin function panic does not return. 11171 12643 - if (fntype != NULL && fntype->is_builtin() && no->name() == "panic") … … 11190 12662 } 11191 12663 return true; 11192 @@ -1953,10 +19 62,15 @@12664 @@ -1953,10 +1951,15 @@ 11193 12665 && results->begin()->type()->points_to() == NULL))) 11194 12666 return false; … … 11208 12680 11209 12681 return true; 11210 @@ -2496,7 +2 510,11 @@12682 @@ -2496,7 +2499,11 @@ 11211 12683 11212 12684 Call_expression* ce = this->call_->call_expression(); … … 11221 12693 const Expression_list* args = ce->args(); 11222 12694 if (args == NULL || args->empty()) 11223 @@ -2800,6 +28 18,28 @@12695 @@ -2800,6 +2807,28 @@ 11224 12696 return new Return_statement(vals, location); 11225 12697 } … … 11250 12722 11251 12723 class Bc_statement : public Statement 11252 @@ -3700,9 +37 40,6 @@12724 @@ -3700,9 +3729,6 @@ 11253 12725 void 11254 12726 do_check_types(Gogo*); … … 11260 12732 do_get_backend(Translate_context*); 11261 12733 11262 @@ -3746,22 +37 83,6 @@12734 @@ -3746,22 +3772,6 @@ 11263 12735 this->set_is_error(); 11264 12736 } … … 11283 12755 11284 12756 Bstatement* 11285 @@ -3911,6 +39 32,22 @@12757 @@ -3911,6 +3921,22 @@ 11286 12758 ast_dump_context->ostream() << std::endl; 11287 12759 } … … 11306 12778 11307 12779 Switch_statement* 11308 @@ -4050,6 +40 87,27 @@12780 @@ -4050,6 +4076,27 @@ 11309 12781 } 11310 12782 } … … 11334 12806 11335 12807 void 11336 @@ -4148,6 +4 206,25 @@12808 @@ -4148,6 +4195,25 @@ 11337 12809 NULL); 11338 12810 } … … 11360 12832 11361 12833 void 11362 @@ -4237,6 +43 14,22 @@12834 @@ -4237,6 +4303,22 @@ 11363 12835 return Statement::make_block_statement(b, loc); 11364 12836 } … … 11383 12855 // if necessary. 11384 12856 11385 @@ -4954,6 +50 47,19 @@12857 @@ -4954,6 +5036,19 @@ 11386 12858 return Statement::make_block_statement(b, loc); 11387 12859 } … … 11403 12875 11404 12876 Bstatement* 11405 @@ -5114,6 +52 20,20 @@12877 @@ -5114,6 +5209,20 @@ 11406 12878 this->continue_label_ = continue_label; 11407 12879 } … … 11426 12898 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.h gcc-4.8.1/gcc/go/gofrontend/statements.h 11427 12899 --- 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 @@ 11430 12910 static Return_statement* 11431 12911 make_return_statement(Expression_list*, Location); … … 11441 12921 static Statement* 11442 12922 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 @@ 11444 12983 { this->clauses_->check_types(); } 11445 12984 … … 11451 12990 Bstatement* 11452 12991 do_get_backend(Translate_context*); 11453 @@ -1086,6 +1 092,9 @@12992 @@ -1086,6 +1138,9 @@ 11454 12993 Statement* 11455 12994 do_lower(Gogo*, Named_object*, Block*, Statement_inserter*); … … 11461 13000 do_get_backend(Translate_context*) 11462 13001 { go_unreachable(); } 11463 @@ -1399,6 +14 08,9 @@13002 @@ -1399,6 +1454,9 @@ 11464 13003 void 11465 13004 do_dump_statement(Ast_dump_context*) const; … … 11471 13010 // The value to switch on. This may be NULL. 11472 13011 Expression* val_; 11473 @@ -1449,6 +1 461,11 @@13012 @@ -1449,6 +1507,11 @@ 11474 13013 lower(Type*, Block*, Temporary_statement* descriptor_temp, 11475 13014 Unnamed_label* break_label) const; … … 11483 13022 void 11484 13023 dump_clauses(Ast_dump_context*) const; 11485 @@ -1493,6 +15 10,12 @@13024 @@ -1493,6 +1556,12 @@ 11486 13025 lower(Type*, Block*, Temporary_statement* descriptor_temp, 11487 13026 Unnamed_label* break_label, Unnamed_label** stmts_label) const; … … 11496 13035 void 11497 13036 dump_clause(Ast_dump_context*) const; 11498 @@ -1556,6 +1 579,9 @@13037 @@ -1556,6 +1625,9 @@ 11499 13038 void 11500 13039 do_dump_statement(Ast_dump_context*) const; … … 11508 13047 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.cc gcc-4.8.1/gcc/go/gofrontend/types.cc 11509 13048 --- 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 +000013049 +++ gcc-4.8.1/gcc/go/gofrontend/types.cc 2013-10-01 16:06:43.992554285 +0000 11511 13050 @@ -1298,8 +1298,8 @@ 11512 13051 // converting INITIALIZER. … … 11587 13126 ++p; 11588 13127 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 @@ 11590 13140 Btype* 11591 13141 Function_type::do_get_backend(Gogo* gogo) … … 11594 13144 + // is represented as a pointer to a struct whose first field is the 11595 13145 + // 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. 11600 13147 + 11601 13148 + Location loc = this->location(); … … 11607 13154 if (this->receiver_ != NULL) 11608 13155 { 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 @@ 11642 13157 go_assert(i == bresults.size()); 11643 13158 } … … 11657 13172 11658 13173 // The type of a function type descriptor. 11659 @@ -3826,6 +38 36,49@@13174 @@ -3826,6 +3821,47 @@ 11660 13175 return ret; 11661 13176 } … … 11665 13180 + 11666 13181 +Function_type* 11667 +Function_type::copy_with_ closure(Type* closure_type) const13182 +Function_type::copy_with_names() const 11668 13183 +{ 11669 13184 + Typed_identifier_list* new_params = new Typed_identifier_list(); … … 11683 13198 + } 11684 13199 + } 11685 + new_params->push_back(Typed_identifier("closure.0", closure_type,11686 + this->location_));11687 13200 + 11688 13201 + const Typed_identifier_list* orig_results = this->results_; … … 11707 13220 11708 13221 Function_type* 11709 @@ -4168,6 +42 21,22 @@13222 @@ -4168,6 +4204,22 @@ 11710 13223 } 11711 13224 } … … 11730 13243 11731 13244 // 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 @@ 11733 13258 go_assert(sub != NULL); 11734 13259 } … … 11738 13263 else if (subdepth > found_depth) 11739 13264 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 @@ 11741 13293 11742 13294 ++q; … … 11758 13310 fvals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc)); 11759 13311 } 11760 @@ -6227,7 +630 2,8 @@13312 @@ -6227,7 +6305,8 @@ 11761 13313 11762 13314 std::string mangled_name = "__go_map_" + this->mangled_name(gogo); … … 11768 13320 bloc); 11769 13321 11770 @@ -6235,7 +631 1,7 @@13322 @@ -6235,7 +6314,7 @@ 11771 13323 context.set_is_const(); 11772 13324 Bexpression* binitializer = tree_to_expr(initializer->get_tree(&context)); … … 11777 13329 binitializer); 11778 13330 11779 @@ -7569,7 +764 5,7 @@13331 @@ -7569,7 +7648,7 @@ 11780 13332 // the child class. 11781 13333 return this->do_bind_method(expr, location); … … 11786 13338 11787 13339 // Return the named object associated with a method. This may only be 11788 @@ -7612,8 +76 88,8 @@13340 @@ -7612,8 +7691,8 @@ 11789 13341 Named_method::do_bind_method(Expression* expr, Location location) const 11790 13342 { … … 11797 13349 // the real method expects a different type. We need to cast the 11798 13350 // first argument. 11799 @@ -8991,28 +90 67,16 @@13351 @@ -8991,28 +9070,16 @@ 11800 13352 Call_expression* call = Expression::make_call(func, arguments, is_varargs, 11801 13353 location); … … 11831 13383 11832 13384 // 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 @@ 11834 13399 fnt = pf->type()->deref()->named_type(); 11835 13400 go_assert(fnt != NULL); … … 11853 13418 diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.h gcc-4.8.1/gcc/go/gofrontend/types.h 11854 13419 --- 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+000013420 +++ gcc-4.8.1/gcc/go/gofrontend/types.h 2013-10-01 16:06:43.992554285 +0000 11856 13421 @@ -523,6 +523,14 @@ 11857 13422 static Type* … … 11888 13453 copy_with_receiver(Type*) const; 11889 13454 11890 + // Return a copy of this type ignoring any receiver and adding a11891 + // final closure parameter of type CLOSURE_TYPE. This is used when11892 + // 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. 11893 13458 + Function_type* 11894 + copy_with_ closure(Type* closure_type) const;13459 + copy_with_names() const; 11895 13460 + 11896 13461 static Type* … … 11917 13482 Type* 11918 13483 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. 11919 13525 diff -Naur gcc-4.8.1.orig/gcc/graphite-clast-to-gimple.c gcc-4.8.1/gcc/graphite-clast-to-gimple.c 11920 13526 --- 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 +000013527 +++ gcc-4.8.1/gcc/graphite-clast-to-gimple.c 2013-10-01 16:07:00.564553809 +0000 11922 13528 @@ -1170,8 +1170,11 @@ 11923 13529 redirect_edge_succ_nodup (next_e, after); … … 11935 13541 diff -Naur gcc-4.8.1.orig/gcc/graphite-dependences.c gcc-4.8.1/gcc/graphite-dependences.c 11936 13542 --- 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+000013543 +++ gcc-4.8.1/gcc/graphite-dependences.c 2013-10-01 16:07:00.564553809 +0000 11938 13544 @@ -297,7 +297,7 @@ 11939 13545 int depth) … … 11964 13570 diff -Naur gcc-4.8.1.orig/gcc/ipa-cp.c gcc-4.8.1/gcc/ipa-cp.c 11965 13571 --- 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+000013572 +++ gcc-4.8.1/gcc/ipa-cp.c 2013-10-01 16:06:43.996554285 +0000 11967 13573 @@ -1507,7 +1507,8 @@ 11968 13574 tree otr_type; … … 11987 13593 diff -Naur gcc-4.8.1.orig/gcc/ipa-prop.c gcc-4.8.1/gcc/ipa-prop.c 11988 13594 --- 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+000013595 +++ gcc-4.8.1/gcc/ipa-prop.c 2013-10-01 16:06:43.996554285 +0000 11990 13596 @@ -678,13 +678,19 @@ 11991 13597 bool modified = false; … … 12014 13620 diff -Naur gcc-4.8.1.orig/gcc/ira.c gcc-4.8.1/gcc/ira.c 12015 13621 --- 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+000013622 +++ gcc-4.8.1/gcc/ira.c 2013-10-01 16:06:43.996554285 +0000 12017 13623 @@ -2863,6 +2863,28 @@ 12018 13624 } … … 12112 13718 diff -Naur gcc-4.8.1.orig/gcc/lra-assigns.c gcc-4.8.1/gcc/lra-assigns.c 12113 13719 --- 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 +000013720 +++ gcc-4.8.1/gcc/lra-assigns.c 2013-10-01 16:06:43.996554285 +0000 12115 13721 @@ -116,6 +116,11 @@ 12116 13722 /* Map regno to the corresponding regno assignment info. */ … … 12160 13766 diff -Naur gcc-4.8.1.orig/gcc/lra-constraints.c gcc-4.8.1/gcc/lra-constraints.c 12161 13767 --- 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 +000013768 +++ gcc-4.8.1/gcc/lra-constraints.c 2013-10-01 16:06:43.996554285 +0000 12163 13769 @@ -1388,7 +1388,7 @@ 12164 13770 for (nalt = 0; nalt < n_alternatives; nalt++) … … 12181 13787 diff -Naur gcc-4.8.1.orig/gcc/omp-low.c gcc-4.8.1/gcc/omp-low.c 12182 13788 --- 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 +000013789 +++ gcc-4.8.1/gcc/omp-low.c 2013-10-01 16:06:44.000554285 +0000 12184 13790 @@ -836,6 +836,7 @@ 12185 13791 DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (var); … … 12190 13796 DECL_SEEN_IN_BIND_EXPR_P (copy) = 1; 12191 13797 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 } 12192 13808 diff -Naur gcc-4.8.1.orig/gcc/passes.c gcc-4.8.1/gcc/passes.c 12193 13809 --- 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 +000012195 @@ -1531,1 5 +1531,15@@13810 +++ gcc-4.8.1/gcc/passes.c 2013-10-01 16:06:44.000554285 +0000 13811 @@ -1531,18 +1531,21 @@ 12196 13812 /* Perform simple scalar cleanup which is constant/copy propagation. */ 12197 13813 NEXT_PASS (pass_ccp); … … 12213 13829 need to adjust LIM to be more friendly towards preserving accurate 12214 13830 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); 12215 13837 diff -Naur gcc-4.8.1.orig/gcc/recog.c gcc-4.8.1/gcc/recog.c 12216 13838 --- 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+000013839 +++ gcc-4.8.1/gcc/recog.c 2013-10-01 16:06:44.000554285 +0000 12218 13840 @@ -1949,9 +1949,6 @@ 12219 13841 (strictp ? strict_memory_address_addr_space_p … … 12357 13979 { 12358 13980 add_to_hard_reg_set (reg_set, mode, regno); 13981 diff -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 { 12359 14043 diff -Naur gcc-4.8.1.orig/gcc/simplify-rtx.c gcc-4.8.1/gcc/simplify-rtx.c 12360 14044 --- 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+000014045 +++ gcc-4.8.1/gcc/simplify-rtx.c 2013-10-01 16:06:44.000554285 +0000 12362 14046 @@ -2784,6 +2784,7 @@ 12363 14047 HOST_WIDE_INT mask = INTVAL (trueop1) << count; … … 12370 14054 diff -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 12371 14055 --- 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+000014056 +++ gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c 2013-10-01 16:06:44.000554285 +0000 12373 14057 @@ -0,0 +1,15 @@ 12374 14058 +/* PR middle-end/58257 */ … … 12389 14073 diff -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 12390 14074 --- 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+000014075 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C 2013-10-01 16:06:44.008554285 +0000 12392 14076 @@ -0,0 +1,16 @@ 12393 14077 +// PR c++/57901 … … 12409 14093 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C 12410 14094 --- 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+000014095 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C 2013-10-01 16:06:44.008554285 +0000 12412 14096 @@ -0,0 +1,20 @@ 12413 14097 +// PR c++/53211 … … 12433 14117 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C 12434 14118 --- 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+000014119 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C 2013-10-01 16:06:44.008554285 +0000 12436 14120 @@ -0,0 +1,24 @@ 12437 14121 +// PR c++/57319 … … 12461 14145 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C 12462 14146 --- 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+000014147 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C 2013-10-01 16:06:44.008554285 +0000 12464 14148 @@ -0,0 +1,20 @@ 12465 14149 +// { dg-do run } … … 12485 14169 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C 12486 14170 --- 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+000014171 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C 2013-10-01 16:06:44.008554285 +0000 12488 14172 @@ -0,0 +1,9 @@ 12489 14173 +// PR c++/56930 … … 12498 14182 diff -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 12499 14183 --- 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+000014184 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C 2013-10-01 16:06:44.008554285 +0000 12501 14185 @@ -0,0 +1,24 @@ 12502 14186 +// PR c++/57526 … … 12526 14210 diff -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 12527 14211 --- 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+000014212 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C 2013-10-01 16:06:44.008554285 +0000 12529 14213 @@ -0,0 +1,30 @@ 12530 14214 +// PR c++/58083 … … 12560 14244 diff -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 12561 14245 --- 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+000014246 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C 2013-10-01 16:06:44.008554285 +0000 12563 14247 @@ -0,0 +1,26 @@ 12564 14248 +// PR c++/57437 … … 12590 14274 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C 12591 14275 --- 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+000014276 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C 2013-10-01 16:06:44.012554285 +0000 12593 14277 @@ -0,0 +1,87 @@ 12594 14278 +// PR c++/57645 … … 12681 14365 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C 12682 14366 --- 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+000014367 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C 2013-10-01 16:06:44.012554285 +0000 12684 14368 @@ -0,0 +1,17 @@ 12685 14369 +// { dg-options "-std=c++11 -Wall -Wextra" } … … 12702 14386 diff -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 12703 14387 --- 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+000014388 +++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C 2013-10-01 16:06:44.012554285 +0000 12705 14389 @@ -0,0 +1,18 @@ 12706 14390 +// PR c++/57825 … … 12724 14408 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C 12725 14409 --- 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+000014410 +++ gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C 2013-10-01 16:06:44.012554285 +0000 12727 14411 @@ -0,0 +1,14 @@ 12728 14412 +// PR c++/57545 … … 12742 14426 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C 12743 14427 --- 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+000014428 +++ gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C 2013-10-01 16:06:44.012554285 +0000 12745 14429 @@ -0,0 +1,9 @@ 12746 14430 +// PR c++/57551 … … 12755 14439 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C 12756 14440 --- 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+000014441 +++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C 2013-10-01 16:06:44.012554285 +0000 12758 14442 @@ -0,0 +1,199 @@ 12759 14443 +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ … … 12956 14640 +/* { dg-prune-output "int foo.* previously defined here" } */ 12957 14641 +/* { dg-prune-output "No dispatcher found for" } */ 14642 diff -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 +} 12958 14791 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C 12959 14792 --- 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+000014793 +++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C 2013-10-01 16:06:44.012554285 +0000 12961 14794 @@ -0,0 +1,22 @@ 12962 14795 +// PR tree-optimization/58006 … … 12984 14817 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C 12985 14818 --- 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+000014819 +++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C 2013-10-01 16:06:44.012554285 +0000 12987 14820 @@ -0,0 +1,14 @@ 12988 14821 +// PR tree-optimization/58165 … … 13002 14835 diff -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 13003 14836 --- 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+000014837 +++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C 2013-10-01 16:06:44.012554285 +0000 13005 14838 @@ -0,0 +1,6 @@ 13006 14839 +// PR c++/57532 … … 13010 14843 + return (int() & int()); 13011 14844 +} 14845 diff -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 +} 13012 14869 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C 13013 14870 --- 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+000014871 +++ gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C 2013-10-01 16:06:44.012554285 +0000 13015 14872 @@ -0,0 +1,226 @@ 13016 14873 +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ … … 13242 15099 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C 13243 15100 --- 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+000015101 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C 2013-10-01 16:06:44.012554285 +0000 13245 15102 @@ -0,0 +1,12 @@ 13246 15103 +// PR c++/58022 … … 13258 15115 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C 13259 15116 --- 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+000015117 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C 2013-10-01 16:06:44.012554285 +0000 13261 15118 @@ -0,0 +1,17 @@ 13262 15119 +// PR c++/57550 … … 13279 15136 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C 13280 15137 --- 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+000015138 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C 2013-10-01 16:06:44.012554285 +0000 13282 15139 @@ -0,0 +1,8 @@ 13283 15140 +// PR c++/57771 … … 13291 15148 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C 13292 15149 --- 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+000015150 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C 2013-10-01 16:06:44.012554285 +0000 13294 15151 @@ -0,0 +1,26 @@ 13295 15152 +// PR c++/58119 … … 13319 15176 + delete b; // { dg-error "template|delete" } 13320 15177 +} 15178 diff -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 +}; 13321 15197 diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C 13322 15198 --- 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+000015199 +++ gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C 2013-10-01 16:06:44.012554285 +0000 13324 15200 @@ -0,0 +1,15 @@ 13325 15201 +// PR c++/57831 … … 13338 15214 +}; 13339 15215 +template struct B< A >; 15216 diff -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 +} 15236 diff -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 +} 15271 diff -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 +} 13340 15280 diff -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 13341 15281 --- 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+000015282 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c 2013-10-01 16:06:44.000554285 +0000 13343 15283 @@ -0,0 +1,8 @@ 13344 15284 +/* PR tree-optimization/58164 */ … … 13352 15292 diff -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 13353 15293 --- 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+000015294 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x 2013-10-01 16:06:44.000554285 +0000 13355 15295 @@ -0,0 +1,5 @@ 13356 15296 +# Force bigger stack alignment for PowerPC EABI targets. … … 13361 15301 diff -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 13362 15302 --- 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+000015303 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c 2013-10-01 16:06:44.000554285 +0000 13364 15304 @@ -0,0 +1,12 @@ 13365 15305 +/* PR target/57568 */ … … 13377 15317 diff -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 13378 15318 --- 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+000015319 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c 2013-10-01 16:06:44.000554285 +0000 13380 15320 @@ -0,0 +1,31 @@ 13381 15321 +/* PR rtl-optimization/57829 */ … … 13412 15352 diff -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 13413 15353 --- 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+000015354 +++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c 2013-10-01 16:06:44.000554285 +0000 13415 15355 @@ -0,0 +1,32 @@ 13416 15356 +/* PR tree-optimization/58209 */ … … 13446 15386 + return 0; 13447 15387 +} 15388 diff -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 +} 15494 diff -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 +} 15596 diff -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 +} 15617 diff -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 +} 15656 diff -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 +} 15681 diff -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 +} 15699 diff -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 +} 13448 15922 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c 13449 15923 --- 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+000015924 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c 2013-10-01 16:06:44.004554285 +0000 13451 15925 @@ -0,0 +1,9 @@ 13452 15926 +/* PR sanitizer/56417 */ … … 13461 15935 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c 13462 15936 --- 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+000015937 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c 2013-10-01 16:07:00.564553809 +0000 13464 15938 @@ -0,0 +1,10 @@ 13465 15939 +/* { dg-options "-O2 -floop-parallelize-all -floop-nest-optimize" } */ … … 13475 15949 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c 13476 15950 --- 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+000015951 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c 2013-10-01 16:06:44.004554285 +0000 13478 15952 @@ -0,0 +1,9 @@ 13479 15953 +/* { dg-do compile } */ … … 13488 15962 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c 13489 15963 --- 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+000015964 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c 2013-10-01 16:06:44.004554285 +0000 13491 15965 @@ -0,0 +1,10 @@ 13492 15966 +/* { dg-do compile } */ … … 13502 15976 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c 13503 15977 --- 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+000015978 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c 2013-10-01 16:06:44.004554285 +0000 13505 15979 @@ -0,0 +1,15 @@ 13506 15980 +/* PR rtl-optimization/57130 */ … … 13521 15995 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c 13522 15996 --- 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+000015997 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c 2013-10-01 16:06:44.004554285 +0000 13524 15998 @@ -0,0 +1,19 @@ 13525 15999 +/* PR tree-optimization/57980 */ … … 13542 16016 + return v - f (); 13543 16017 +} 16018 diff -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 +} 13544 16037 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c 13545 16038 --- 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+000016039 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c 2013-10-01 16:06:44.004554285 +0000 13547 16040 @@ -0,0 +1,37 @@ 13548 16041 +/* PR tree-optimization/58145 */ … … 13585 16078 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c 13586 16079 --- 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+000016080 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c 2013-10-01 16:06:44.004554285 +0000 13588 16081 @@ -0,0 +1,51 @@ 13589 16082 +/* PR tree-optimization/58145 */ … … 13638 16131 +/* { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } */ 13639 16132 +/* { dg-final { cleanup-tree-dump "optimized" } } */ 16133 diff -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" } } */ 16152 diff -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 +} 16178 diff -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 +} 16207 diff -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 +} 16223 diff -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 +} 16278 diff -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 +} 16295 diff -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 +} 13640 16314 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c 13641 16315 --- 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+000016316 +++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c 2013-10-01 16:06:44.004554285 +0000 13643 16317 @@ -0,0 +1,33 @@ 13644 16318 +/* { dg-do run } */ … … 13675 16349 + return 0; 13676 16350 +} 16351 diff -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 +} 16371 diff -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 +} 16390 diff -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 +} 16415 diff -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" } } */ 13677 16430 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c 13678 16431 --- 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+000016432 +++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c 2013-10-01 16:06:44.004554285 +0000 13680 16433 @@ -0,0 +1,18 @@ 13681 16434 +/* { dg-do compile } */ … … 13699 16452 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c 13700 16453 --- 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+000016454 +++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c 2013-10-01 16:06:44.004554285 +0000 13702 16455 @@ -0,0 +1,30 @@ 13703 16456 +/* { dg-do compile } */ … … 13733 16486 diff -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 13734 16487 --- 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+000016488 +++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c 2013-10-01 16:06:44.004554285 +0000 13736 16489 @@ -0,0 +1,12 @@ 13737 16490 +/* { dg-require-effective-target arm_thumb1_ok } */ … … 13749 16502 diff -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 13750 16503 --- 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+000016504 +++ gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c 2013-10-01 16:06:44.004554285 +0000 13752 16505 @@ -72,11 +72,11 @@ 13753 16506 … … 13787 16540 diff -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 13788 16541 --- 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+000016542 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c 2013-10-01 16:06:44.004554285 +0000 13790 16543 @@ -1,11 +1,11 @@ 13791 16544 /* { dg-do compile } */ … … 13866 16619 diff -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 13867 16620 --- 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+000016621 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c 2013-10-01 16:06:44.008554285 +0000 13869 16622 @@ -1,11 +1,11 @@ 13870 16623 /* { dg-do compile { target { ! { ia32 } } } } */ … … 13945 16698 diff -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 13946 16699 --- 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+000016700 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c 2013-10-01 16:06:44.008554285 +0000 13948 16701 @@ -0,0 +1,31 @@ 13949 16702 +/* PR target/57623 */ … … 13980 16733 diff -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 13981 16734 --- 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+000016735 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c 2013-10-01 16:06:44.004554285 +0000 13983 16736 @@ -0,0 +1,31 @@ 13984 16737 +/* PR target/57623 */ … … 14015 16768 diff -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 14016 16769 --- 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+000016770 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c 2013-10-01 16:06:44.008554285 +0000 14018 16771 @@ -0,0 +1,10 @@ 14019 16772 +/* { dg-do assemble } */ … … 14029 16782 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c 14030 16783 --- 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+000016784 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c 2013-10-01 16:06:44.008554285 +0000 14032 16785 @@ -0,0 +1,60 @@ 14033 16786 +/* PR rtl-optimization/57459 */ … … 14093 16846 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c 14094 16847 --- 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+000016848 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c 2013-10-01 16:06:44.008554285 +0000 14096 16849 @@ -0,0 +1,10 @@ 14097 16850 +/* { dg-do compile } */ … … 14107 16860 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c 14108 16861 --- 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+000016862 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c 2013-10-01 16:06:44.008554285 +0000 14110 16863 @@ -0,0 +1,41 @@ 14111 16864 +/* PR target/57736 */ … … 14152 16905 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c 14153 16906 --- 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+000016907 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c 2013-10-01 16:06:44.008554285 +0000 14155 16908 @@ -0,0 +1,13 @@ 14156 16909 +/* PR target/57777 */ … … 14169 16922 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c 14170 16923 --- 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+000016924 +++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c 2013-10-01 16:06:44.008554285 +0000 14172 16925 @@ -0,0 +1,5 @@ 14173 16926 +/* PR target/58218 */ … … 14178 16931 diff -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 14179 16932 --- 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+000016933 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c 2013-10-01 16:06:44.008554285 +0000 14181 16934 @@ -1,6 +1,8 @@ 14182 16935 /* { dg-do run { target powerpc*-*-* } }*/ … … 14190 16943 diff -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 14191 16944 --- 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+000016945 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c 2013-10-01 16:06:44.008554285 +0000 14193 16946 @@ -11,31 +11,24 @@ 14194 16947 typedef __attribute__ ((vector_size (16))) unsigned short v8hi; … … 14514 17267 diff -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 14515 17268 --- 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+000017269 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c 2013-10-01 16:06:44.008554285 +0000 14517 17270 @@ -0,0 +1,253 @@ 14518 17271 +/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */ … … 14775 17528 diff -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 14776 17529 --- 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+000017530 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c 2013-10-01 16:06:44.008554285 +0000 14778 17531 @@ -4,4 +4,4 @@ 14779 17532 /* { dg-options "-m64" } */ … … 14784 17537 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c 14785 17538 --- 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+000017539 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c 2013-10-01 16:06:44.008554285 +0000 14787 17540 @@ -1,4 +1,5 @@ 14788 17541 /* { dg-do compile } */ … … 14791 17544 14792 17545 /* Compile-only test to ensure that expressions can be passed to 17546 diff -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 +} 14793 17561 diff -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 14794 17562 --- 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+000017563 +++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c 2013-10-01 16:06:44.008554285 +0000 14796 17564 @@ -1,5 +1,6 @@ 14797 17565 /* { dg-do assemble } */ … … 14803 17571 diff -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 14804 17572 --- 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+000017573 +++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c 2013-10-01 16:06:44.008554285 +0000 14806 17574 @@ -0,0 +1,19 @@ 14807 17575 +/* Verify that the fmac insn is used for the expression 'a * b + a' and … … 14826 17594 diff -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 14827 17595 --- 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+000017596 +++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c 2013-10-01 16:06:44.008554285 +0000 14829 17597 @@ -0,0 +1,18 @@ 14830 17598 +/* Verify that the fmac insn is used for the expression 'a * b + a' and … … 14846 17614 + return a * a + a; 14847 17615 +} 17616 diff -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 +} 14848 17722 diff -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 14849 17723 --- 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+000017724 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90 2013-10-01 16:06:44.012554285 +0000 14851 17725 @@ -0,0 +1,36 @@ 14852 17726 +! { dg-do compile } … … 14888 17762 diff -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 14889 17763 --- 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+000017764 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90 2013-10-01 16:06:44.012554285 +0000 14891 17765 @@ -0,0 +1,29 @@ 14892 17766 +! { dg-compile } … … 14921 17795 diff -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 14922 17796 --- 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+000017797 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90 2013-10-01 16:06:44.016554284 +0000 14924 17798 @@ -0,0 +1,38 @@ 14925 17799 +! { dg-do compile } … … 14963 17837 diff -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 14964 17838 --- 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+000017839 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90 2013-10-01 16:06:44.016554284 +0000 14966 17840 @@ -0,0 +1,33 @@ 14967 17841 +! { dg-do run } … … 15000 17874 diff -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 15001 17875 --- 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+000017876 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90 2013-10-01 16:06:44.016554284 +0000 15003 17877 @@ -0,0 +1,10 @@ 15004 17878 +! { dg-do compile } … … 15014 17888 diff -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 15015 17889 --- 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+000017890 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90 2013-10-01 16:06:44.016554284 +0000 15017 17891 @@ -0,0 +1,20 @@ 15018 17892 +! { dg-do compile } … … 15038 17912 diff -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 15039 17913 --- 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+000017914 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90 2013-10-01 16:06:44.016554284 +0000 15041 17915 @@ -0,0 +1,34 @@ 15042 17916 +! { dg-do compile } … … 15076 17950 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90 15077 17951 --- 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+000017952 +++ gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90 2013-10-01 16:06:44.016554284 +0000 15079 17953 @@ -0,0 +1,15 @@ 15080 17954 +! { dg-do compile } … … 15093 17967 + 15094 17968 +! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 } 17969 diff -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 18006 diff -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; 18035 diff -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; 15095 18069 diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb 15096 18070 --- 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+000018071 +++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb 2013-10-01 16:06:44.016554284 +0000 15098 18072 @@ -0,0 +1,24 @@ 15099 18073 +-- { dg-do run } … … 15123 18097 diff -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 15124 18098 --- 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+000018099 +++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb 2013-10-01 16:06:44.016554284 +0000 15126 18100 @@ -0,0 +1,8 @@ 15127 18101 +package body Loop_Optimization16_Pkg is … … 15135 18109 diff -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 15136 18110 --- 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+000018111 +++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads 2013-10-01 16:06:44.016554284 +0000 15138 18112 @@ -0,0 +1,7 @@ 15139 18113 +package Loop_Optimization16_Pkg is … … 15144 18118 + 15145 18119 +end Loop_Optimization16_Pkg; 18120 diff -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; 18155 diff -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; 18167 diff -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; 15146 18182 diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go 15147 18183 --- 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+000018184 +++ gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go 2013-10-01 16:06:44.016554284 +0000 15149 18185 @@ -594,6 +594,19 @@ 15150 18186 "}\n" + … … 15192 18228 diff -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 15193 18229 --- 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+000018230 +++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go 2013-10-01 16:06:44.016554284 +0000 15195 18231 @@ -6,12 +6,12 @@ 15196 18232 … … 15210 18246 diff -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 15211 18247 --- 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+000018248 +++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go 2013-10-01 16:06:44.016554284 +0000 15213 18249 @@ -18,7 +18,7 @@ 15214 18250 for s := range arr { … … 15222 18258 diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go 15223 18259 --- 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+000018260 +++ gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go 2013-10-01 16:06:44.016554284 +0000 15225 18261 @@ -23,7 +23,7 @@ 15226 18262 … … 15441 18477 diff -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 15442 18478 --- 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+000018479 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm 2013-10-01 16:06:44.016554284 +0000 15444 18480 @@ -2,12 +2,15 @@ 15445 18481 … … 15484 18520 diff -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 15485 18521 --- 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+000018522 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm 2013-10-01 16:06:44.016554284 +0000 15487 18523 @@ -2,6 +2,7 @@ 15488 18524 /* Author: Ziemowit Laski <zlaski@apple.com> */ … … 15514 18550 diff -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 15515 18551 --- 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+000018552 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm 2013-10-01 16:06:44.016554284 +0000 15517 18553 @@ -1,12 +1,19 @@ 15518 18554 /* Check that typedefs of ObjC classes preserve … … 15539 18575 diff -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 15540 18576 --- 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+000018577 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm 2013-10-01 16:06:44.016554284 +0000 15542 18578 @@ -6,16 +6,16 @@ 15543 18579 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 15562 18598 diff -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 15563 18599 --- 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+000018600 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm 2013-10-01 16:06:44.016554284 +0000 15565 18601 @@ -5,17 +5,23 @@ 15566 18602 /* { dg-options "-fconstant-string-class=Foo" } */ … … 15591 18627 diff -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 15592 18628 --- 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+000018629 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm 2013-10-01 16:06:44.020554284 +0000 15594 18630 @@ -1,7 +1,13 @@ 15595 18631 /* Graceful handling of a syntax error. */ … … 15623 18659 diff -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 15624 18660 --- 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+000018661 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm 2013-10-01 16:06:44.020554284 +0000 15626 18662 @@ -6,10 +6,10 @@ 15627 18663 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 15639 18675 diff -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 15640 18676 --- 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+000018677 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm 2013-10-01 16:06:44.020554284 +0000 15642 18678 @@ -7,10 +7,10 @@ 15643 18679 /* { dg-options "-fconstant-string-class=XStr" } */ … … 15655 18691 diff -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 15656 18692 --- 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+000018693 +++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm 2013-10-01 16:06:44.020554284 +0000 15658 18694 @@ -5,10 +5,10 @@ 15659 18695 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 15671 18707 diff -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 15672 18708 --- 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+000018709 +++ gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m 2013-10-01 16:06:44.020554284 +0000 15674 18710 @@ -4,24 +4,25 @@ 15675 18711 /* { dg-require-effective-target lp64 } */ … … 15851 18887 diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m 15852 18888 --- 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+000018889 +++ gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m 2013-10-01 16:06:44.020554284 +0000 15854 18890 @@ -7,20 +7,19 @@ 15855 18891 /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 15879 18915 diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m 15880 18916 --- 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+000018917 +++ gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m 2013-10-01 16:06:44.020554284 +0000 15882 18918 @@ -4,14 +4,21 @@ 15883 18919 /* { dg-do compile } */ … … 15924 18960 diff -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 15925 18961 --- 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+000018962 +++ gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m 2013-10-01 16:06:44.020554284 +0000 15927 18963 @@ -1,7 +1,7 @@ 15928 18964 /* { dg-do compile { target *-*-darwin* } } */ … … 15936 18972 diff -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 15937 18973 --- 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+000018974 +++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m 2013-10-01 16:06:44.020554284 +0000 15939 18975 @@ -1,17 +1,13 @@ 15940 18976 /* Test for valid objc objects used in a for-each statement. */ … … 15962 18998 diff -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 15963 18999 --- 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+000019000 +++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m 2013-10-01 16:06:44.020554284 +0000 15965 19001 @@ -2,8 +2,10 @@ 15966 19002 /* { dg-do compile { target *-*-darwin* } } */ … … 15977 19013 diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m 15978 19014 --- 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+000019015 +++ gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m 2013-10-01 16:06:44.020554284 +0000 15980 19016 @@ -3,14 +3,24 @@ 15981 19017 … … 16017 19053 diff -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 16018 19054 --- 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+000019055 +++ gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m 2013-10-01 16:06:44.020554284 +0000 16020 19056 @@ -1,12 +1,19 @@ 16021 19057 /* Check that typedefs of ObjC classes preserve … … 16042 19078 diff -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 16043 19079 --- 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+000019080 +++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m 2013-10-01 16:06:44.020554284 +0000 16045 19081 @@ -6,16 +6,16 @@ 16046 19082 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 16065 19101 diff -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 16066 19102 --- 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+000019103 +++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m 2013-10-01 16:06:44.020554284 +0000 16068 19104 @@ -5,17 +5,23 @@ 16069 19105 /* { dg-options "-fconstant-string-class=Foo" } */ … … 16094 19130 diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m 16095 19131 --- 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+000019132 +++ gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m 2013-10-01 16:06:44.020554284 +0000 16097 19133 @@ -4,9 +4,9 @@ 16098 19134 /* { dg-do compile { target { *-*-darwin* } } } */ … … 16109 19145 diff -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 16110 19146 --- 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+000019147 +++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m 2013-10-01 16:06:44.020554284 +0000 16112 19148 @@ -6,10 +6,10 @@ 16113 19149 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 16125 19161 diff -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 16126 19162 --- 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+000019163 +++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m 2013-10-01 16:06:44.020554284 +0000 16128 19164 @@ -7,10 +7,10 @@ 16129 19165 /* { dg-options "-fconstant-string-class=XStr" } */ … … 16141 19177 diff -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 16142 19178 --- 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+000019179 +++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m 2013-10-01 16:06:44.020554284 +0000 16144 19180 @@ -5,10 +5,10 @@ 16145 19181 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 16157 19193 diff -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 16158 19194 --- 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+000019195 +++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m 2013-10-01 16:06:44.020554284 +0000 16160 19196 @@ -5,13 +5,12 @@ 16161 19197 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 16176 19212 diff -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 16177 19213 --- 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+000019214 +++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m 2013-10-01 16:06:44.020554284 +0000 16179 19215 @@ -5,12 +5,12 @@ 16180 19216 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ … … 16194 19230 diff -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 16195 19231 --- 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+000019232 +++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m 2013-10-01 16:06:44.020554284 +0000 16197 19233 @@ -2,15 +2,23 @@ 16198 19234 /* Contributed by Ziemowit Laski <zlaski@apple.com>. */ … … 16223 19259 diff -Naur gcc-4.8.1.orig/gcc/tlink.c gcc-4.8.1/gcc/tlink.c 16224 19260 --- 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+000019261 +++ gcc-4.8.1/gcc/tlink.c 2013-10-01 16:06:44.024554284 +0000 16226 19262 @@ -817,18 +817,18 @@ 16227 19263 void … … 16269 19305 else 16270 19306 { 19307 diff -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; 16271 19341 diff -Naur gcc-4.8.1.orig/gcc/tree-call-cdce.c gcc-4.8.1/gcc/tree-call-cdce.c 16272 19342 --- 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+000019343 +++ gcc-4.8.1/gcc/tree-call-cdce.c 2013-10-01 16:06:44.024554284 +0000 16274 19344 @@ -726,15 +726,28 @@ 16275 19345 return false and do not do any transformation for … … 16306 19376 16307 19377 join_tgt_bb = join_tgt_in_edge_from_call->dest; 19378 diff -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; 19538 diff -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 16308 19590 diff -Naur gcc-4.8.1.orig/gcc/tree-parloops.c gcc-4.8.1/gcc/tree-parloops.c 16309 19591 --- 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+000019592 +++ gcc-4.8.1/gcc/tree-parloops.c 2013-10-01 16:06:44.024554284 +0000 16311 19593 @@ -478,9 +478,12 @@ 16312 19594 if (gsi == NULL) … … 16340 19622 diff -Naur gcc-4.8.1.orig/gcc/tree-sra.c gcc-4.8.1/gcc/tree-sra.c 16341 19623 --- 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 +000019624 +++ gcc-4.8.1/gcc/tree-sra.c 2013-10-01 16:06:44.024554284 +0000 16343 19625 @@ -1440,6 +1440,7 @@ 16344 19626 { … … 16363 19645 16364 19646 /* Construct a memory reference to a part of an aggregate BASE at the given 19647 diff -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 } 19660 diff -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)) 19675 diff -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; 19728 diff -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; 19747 diff -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)) 19786 diff -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 } 19818 diff -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. */ 16365 19870 diff -Naur gcc-4.8.1.orig/gcc/tree-tailcall.c gcc-4.8.1/gcc/tree-tailcall.c 16366 19871 --- 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 +000019872 +++ gcc-4.8.1/gcc/tree-tailcall.c 2013-10-01 16:06:44.028554284 +0000 16368 19873 @@ -328,8 +328,10 @@ 16369 19874 case NEGATE_EXPR: … … 16402 19907 16403 19908 nw->call_gsi = gsi; 19909 diff -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 19931 diff -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 { 16404 19946 diff -Naur gcc-4.8.1.orig/gcc/tree-vect-patterns.c gcc-4.8.1/gcc/tree-vect-patterns.c 16405 19947 --- 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 +000019948 +++ gcc-4.8.1/gcc/tree-vect-patterns.c 2013-10-01 16:06:44.032554284 +0000 16407 19949 @@ -638,7 +638,10 @@ 16408 19950 && vect_handle_widen_op_by_const (last_stmt, MULT_EXPR, oprnd1, … … 16419 19961 diff -Naur gcc-4.8.1.orig/gcc/tree-vect-stmts.c gcc-4.8.1/gcc/tree-vect-stmts.c 16420 19962 --- 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+000019963 +++ gcc-4.8.1/gcc/tree-vect-stmts.c 2013-10-01 16:06:44.032554284 +0000 16422 19964 @@ -3796,6 +3796,7 @@ 16423 19965 enum vect_def_type dt; … … 16445 19987 int ncopies; 16446 19988 int i, j, group_size; 19989 diff -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) 16447 20011 diff -Naur gcc-4.8.1.orig/gcc/version.c gcc-4.8.1/gcc/version.c 16448 20012 --- 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+000020013 +++ gcc-4.8.1/gcc/version.c 2013-10-01 16:06:44.032554284 +0000 16450 20014 @@ -32,4 +32,4 @@ 16451 20015 Makefile. */ … … 16453 20017 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION; 16454 20018 -const char pkgversion_string[] = PKGVERSION; 16455 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.8.1.2013 0828) ";20019 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.8.1.20131001) "; 16456 20020 diff -Naur gcc-4.8.1.orig/libffi/doc/libffi.info gcc-4.8.1/libffi/doc/libffi.info 16457 20021 --- gcc-4.8.1.orig/libffi/doc/libffi.info 2013-05-31 10:05:08.000000000 +0000 … … 17077 20641 diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ffi.c gcc-4.8.1/libffi/src/powerpc/ffi.c 17078 20642 --- 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 +000020643 +++ gcc-4.8.1/libffi/src/powerpc/ffi.c 2013-10-01 16:06:44.032554284 +0000 17080 20644 @@ -127,6 +127,9 @@ 17081 20645 … … 17184 20748 diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.8.1/libffi/src/powerpc/linux64_closure.S 17185 20749 --- 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 +000020750 +++ gcc-4.8.1/libffi/src/powerpc/linux64_closure.S 2013-10-01 16:06:44.032554284 +0000 17187 20751 @@ -132,7 +132,11 @@ 17188 20752 blr … … 17257 20821 diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S gcc-4.8.1/libffi/src/powerpc/ppc_closure.S 17258 20822 --- 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 +000020823 +++ gcc-4.8.1/libffi/src/powerpc/ppc_closure.S 2013-10-01 16:06:44.032554284 +0000 17260 20824 @@ -159,25 +159,41 @@ 17261 20825 #endif … … 17370 20934 diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h 17371 20935 --- 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 +000020936 +++ gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h 2013-10-01 16:06:44.032554284 +0000 17373 20937 @@ -2,21 +2,26 @@ 17374 20938 Copyright (C) 2009-2013 Free Software Foundation, Inc. … … 17414 20978 diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c gcc-4.8.1/libgcc/config/aarch64/sync-cache.c 17415 20979 --- 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 +000020980 +++ gcc-4.8.1/libgcc/config/aarch64/sync-cache.c 2013-10-01 16:06:44.032554284 +0000 17417 20981 @@ -2,21 +2,26 @@ 17418 20982 Copyright (C) 2012-2013 Free Software Foundation, Inc. … … 17458 21022 diff -Naur gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S 17459 21023 --- 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+000021024 +++ gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S 2013-10-01 16:06:44.036554284 +0000 17461 21025 @@ -1464,12 +1464,13 @@ 17462 21026 ;; Add-Saturate 2^{-RP-1} … … 17586 21150 diff -Naur gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c gcc-4.8.1/libgcc/config/i386/cpuinfo.c 17587 21151 --- 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+000021152 +++ gcc-4.8.1/libgcc/config/i386/cpuinfo.c 2013-10-01 16:06:44.036554284 +0000 17589 21153 @@ -14,9 +14,14 @@ 17590 21154 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License … … 17607 21171 diff -Naur gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h 17608 21172 --- 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+000021173 +++ gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h 2013-10-01 16:06:44.036554284 +0000 17610 21174 @@ -2,21 +2,26 @@ 17611 21175 Contributed by Andrew MacLeod <amacleod@cygnus.com> … … 17651 21215 diff -Naur gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S gcc-4.8.1/libgcc/config/mips/vr4120-div.S 17652 21216 --- 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+000021217 +++ gcc-4.8.1/libgcc/config/mips/vr4120-div.S 2013-10-01 16:06:44.036554284 +0000 17654 21218 @@ -3,18 +3,23 @@ 17655 21219 … … 17689 21253 diff -Naur gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c 17690 21254 --- 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+000021255 +++ gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c 2013-10-01 16:06:44.036554284 +0000 17692 21256 @@ -42,10 +42,10 @@ 17693 21257 represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a … … 17706 21270 diff -Naur gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h gcc-4.8.1/libgcc/config/s390/linux-unwind.h 17707 21271 --- 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+000021272 +++ gcc-4.8.1/libgcc/config/s390/linux-unwind.h 2013-10-01 16:06:44.036554284 +0000 17709 21273 @@ -31,6 +31,8 @@ 17710 21274 s390_fallback_frame_state (struct _Unwind_Context *context, … … 17727 21291 diff -Naur gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h gcc-4.8.1/libgcc/config/tilepro/atomic.h 17728 21292 --- 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+000021293 +++ gcc-4.8.1/libgcc/config/tilepro/atomic.h 2013-10-01 16:06:44.036554284 +0000 17730 21294 @@ -92,8 +92,6 @@ 17731 21295 compare-and-exchange routine, so may be potentially less efficient. */ … … 17836 21400 diff -Naur gcc-4.8.1.orig/libgcc/config.host gcc-4.8.1/libgcc/config.host 17837 21401 --- 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+000021402 +++ gcc-4.8.1/libgcc/config.host 2013-10-01 16:06:44.036554284 +0000 17839 21403 @@ -316,7 +316,7 @@ 17840 21404 md_unwind_header=alpha/vms-unwind.h … … 17866 21430 diff -Naur gcc-4.8.1.orig/libgcc/unwind-dw2.c gcc-4.8.1/libgcc/unwind-dw2.c 17867 21431 --- 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+000021432 +++ gcc-4.8.1/libgcc/unwind-dw2.c 2013-10-01 16:06:44.036554284 +0000 17869 21433 @@ -59,6 +59,35 @@ 17870 21434 #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO) … … 18078 21642 diff -Naur gcc-4.8.1.orig/libgfortran/config/fpu-387.h gcc-4.8.1/libgfortran/config/fpu-387.h 18079 21643 --- 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+000021644 +++ gcc-4.8.1/libgfortran/config/fpu-387.h 2013-10-01 16:06:44.036554284 +0000 18081 21645 @@ -73,7 +73,7 @@ 18082 21646 … … 18155 21719 diff -Naur gcc-4.8.1.orig/libgo/MERGE gcc-4.8.1/libgo/MERGE 18156 21720 --- 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+000021721 +++ gcc-4.8.1/libgo/MERGE 2013-10-01 16:06:44.220554279 +0000 18158 21722 @@ -1,4 +1,4 @@ 18159 21723 -229081515358 … … 18164 21728 diff -Naur gcc-4.8.1.orig/libgo/Makefile.am gcc-4.8.1/libgo/Makefile.am 18165 21729 --- 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+000021730 +++ gcc-4.8.1/libgo/Makefile.am 2013-10-01 16:06:44.220554279 +0000 18167 21731 @@ -211,40 +211,11 @@ 18168 21732 encoding/pem.gox \ … … 18339 21903 go/net/sockopt_posix.go \ 18340 21904 $(go_net_sockopt_file) \ 18341 @@ -891, 7 +888,8@@21905 @@ -891,15 +888,35 @@ 18342 21906 $(go_os_stat_file) \ 18343 21907 go/os/str.go \ … … 18349 21913 go_path_files = \ 18350 21914 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 @@ 18352 21943 go/log/syslog/syslog_c.c 18353 21944 … … 18357 21948 go/testing/example.go \ 18358 21949 go/testing/testing.go 18359 @@ -1102,7 +11 01,8 @@21950 @@ -1102,7 +1120,8 @@ 18360 21951 go/crypto/rand/rand_unix.go \ 18361 21952 go/crypto/rand/util.go … … 18367 21958 go/crypto/rsa/pkcs1v15.go \ 18368 21959 go/crypto/rsa/rsa.go 18369 @@ -1213,73 +12 13,14 @@21960 @@ -1213,73 +1232,14 @@ 18370 21961 go/encoding/xml/typeinfo.go \ 18371 21962 go/encoding/xml/xml.go … … 18441 22032 go_go_ast_files = \ 18442 22033 go/go/ast/ast.go \ 18443 @@ -1318,24 +12 59,6 @@22034 @@ -1318,24 +1278,6 @@ 18444 22035 go/go/token/position.go \ 18445 22036 go/go/token/serialize.go \ … … 18466 22057 go_hash_adler32_files = \ 18467 22058 go/hash/adler32/adler32.go 18468 @@ -1459,6 +1 382,9 @@22059 @@ -1459,6 +1401,9 @@ 18469 22060 go_net_http_cgi_files = \ 18470 22061 go/net/http/cgi/child.go \ … … 18476 22067 go/net/http/fcgi/child.go \ 18477 22068 go/net/http/fcgi/fcgi.go 18478 @@ -1474,10 +14 00,6 @@22069 @@ -1474,10 +1419,6 @@ 18479 22070 go/net/http/httputil/reverseproxy.go 18480 22071 … … 18487 22078 go/old/regexp/regexp.go 18488 22079 go_old_template_files = \ 18489 @@ -1519,6 +14 41,7 @@22080 @@ -1519,6 +1460,7 @@ 18490 22081 go/net/rpc/jsonrpc/server.go 18491 22082 … … 18495 22086 go_runtime_pprof_files = \ 18496 22087 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 @@ 18498 22097 encoding/json.lo \ 18499 22098 encoding/pem.lo \ … … 18513 22112 go/ast.lo \ 18514 22113 go/build.lo \ 18515 @@ -1917,12 +18 31,12 @@22114 @@ -1917,12 +1851,12 @@ 18516 22115 go/printer.lo \ 18517 22116 go/scanner.lo \ … … 18527 22126 net/http/httptest.lo \ 18528 22127 net/http/httputil.lo \ 18529 @@ -1946,7 +18 60,6 @@22128 @@ -1946,7 +1880,6 @@ 18530 22129 net/smtp.lo \ 18531 22130 net/textproto.lo \ … … 18535 22134 old/template.lo \ 18536 22135 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 @@ 18538 22147 @$(CHECK) 18539 22148 .PHONY: encoding/xml/check … … 18605 22214 exp/proxy.lo.dep: $(go_exp_proxy_files) 18606 22215 $(BUILDDEPS) 18607 @@ -2803,15 +26 53,6 @@22216 @@ -2803,15 +2676,6 @@ 18608 22217 @$(CHECK) 18609 22218 .PHONY: exp/proxy/check … … 18621 22230 exp/terminal.lo.dep: $(go_exp_terminal_files) 18622 22231 $(BUILDDEPS) 18623 @@ -2821,24 +26 62,6 @@22232 @@ -2821,24 +2685,6 @@ 18624 22233 @$(CHECK) 18625 22234 .PHONY: exp/terminal/check … … 18646 22255 html/template.lo.dep: $(go_html_template_files) 18647 22256 $(BUILDDEPS) 18648 @@ -2929,15 +27 52,6 @@22257 @@ -2929,15 +2775,6 @@ 18649 22258 @$(CHECK) 18650 22259 .PHONY: go/token/check … … 18662 22271 hash/adler32.lo.dep: $(go_hash_adler32_files) 18663 22272 $(BUILDDEPS) 18664 @@ -3148,6 +29 62,15 @@22273 @@ -3148,6 +2985,15 @@ 18665 22274 @$(CHECK) 18666 22275 .PHONY: net/http/cgi/check … … 18678 22287 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files) 18679 22288 $(BUILDDEPS) 18680 @@ -3193,15 +30 16,6 @@22289 @@ -3193,15 +3039,6 @@ 18681 22290 @$(CHECK) 18682 22291 .PHONY: net/rpc/jsonrpc/check … … 18694 22303 old/regexp.lo.dep: $(go_old_regexp_files) 18695 22304 $(BUILDDEPS) 18696 @@ -3550,30 +33 64,10 @@22305 @@ -3550,30 +3387,10 @@ 18697 22306 encoding/xml.gox: encoding/xml.lo 18698 22307 $(BUILDGOX) … … 18725 22334 html/template.gox: html/template.lo 18726 22335 $(BUILDGOX) 18727 @@ -3594,8 +3 388,6 @@22336 @@ -3594,8 +3411,6 @@ 18728 22337 $(BUILDGOX) 18729 22338 go/token.gox: go/token.lo … … 18734 22343 hash/adler32.gox: hash/adler32.lo 18735 22344 $(BUILDGOX) 18736 @@ -3651,6 +34 43,8 @@22345 @@ -3651,6 +3466,8 @@ 18737 22346 18738 22347 net/http/cgi.gox: net/http/cgi.lo … … 18743 22352 $(BUILDGOX) 18744 22353 net/http/httptest.gox: net/http/httptest.lo 18745 @@ -3663,8 +34 57,6 @@22354 @@ -3663,8 +3480,6 @@ 18746 22355 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo 18747 22356 $(BUILDGOX) … … 18752 22361 $(BUILDGOX) 18753 22362 old/template.gox: old/template.lo 18754 @@ -3710,13 +35 02,6 @@22363 @@ -3710,13 +3525,6 @@ 18755 22364 unicode/utf8.gox: unicode/utf8.lo 18756 22365 $(BUILDGOX) … … 18766 22375 bufio/check \ 18767 22376 bytes/check \ 18768 @@ -3787,17 +35 72,8 @@22377 @@ -3787,17 +3595,8 @@ 18769 22378 encoding/json/check \ 18770 22379 encoding/pem/check \ … … 18784 22393 go/ast/check \ 18785 22394 $(go_build_check_omitted_since_it_calls_6g) \ 18786 @@ -3807,7 +3 583,6 @@22395 @@ -3807,7 +3606,6 @@ 18787 22396 go/printer/check \ 18788 22397 go/scanner/check \ … … 18792 22401 hash/crc32/check \ 18793 22402 hash/crc64/check \ 18794 @@ -3825,6 +36 00,7 @@22403 @@ -3825,6 +3623,7 @@ 18795 22404 mime/multipart/check \ 18796 22405 net/http/check \ … … 18800 22409 net/http/httptest/check \ 18801 22410 net/http/httputil/check \ 18802 @@ -3834,7 +36 10,6 @@22411 @@ -3834,7 +3633,6 @@ 18803 22412 net/textproto/check \ 18804 22413 net/url/check \ … … 18810 22419 diff -Naur gcc-4.8.1.orig/libgo/Makefile.in gcc-4.8.1/libgo/Makefile.in 18811 22420 --- 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+000022421 +++ gcc-4.8.1/libgo/Makefile.in 2013-10-01 16:06:44.220554279 +0000 18813 22422 @@ -101,9 +101,6 @@ 18814 22423 "$(DESTDIR)$(toolexeclibgodebugdir)" \ … … 18821 22430 "$(DESTDIR)$(toolexeclibgohashdir)" \ 18822 22431 "$(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 \ 18824 22460 debug/pe.lo encoding/ascii85.lo encoding/asn1.lo \ 18825 22461 encoding/base32.lo encoding/base64.lo encoding/binary.lo \ … … 19062 22698 go/net/sockopt_posix.go \ 19063 22699 $(go_net_sockopt_file) \ 19064 @@ -1096, 7 +1080,8@@22700 @@ -1096,15 +1080,33 @@ 19065 22701 $(go_os_stat_file) \ 19066 22702 go/os/str.go \ … … 19072 22708 go_path_files = \ 19073 22709 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 @@ 19075 22736 go/log/syslog/syslog_c.c 19076 22737 … … 19080 22741 go/testing/example.go \ 19081 22742 go/testing/testing.go 19082 @@ -1286,7 +12 72,8 @@22743 @@ -1286,7 +1289,8 @@ 19083 22744 go/crypto/rand/util.go 19084 22745 … … 19090 22751 go_crypto_rsa_files = \ 19091 22752 go/crypto/rsa/pkcs1v15.go \ 19092 @@ -1418,85 +14 05,16 @@22753 @@ -1418,85 +1422,16 @@ 19093 22754 go/encoding/xml/typeinfo.go \ 19094 22755 go/encoding/xml/xml.go … … 19176 22837 go/go/ast/ast.go \ 19177 22838 go/go/ast/commentmap.go \ 19178 @@ -1542,25 +14 60,6 @@22839 @@ -1542,25 +1477,6 @@ 19179 22840 go/go/token/serialize.go \ 19180 22841 go/go/token/token.go … … 19202 22863 go/hash/adler32/adler32.go 19203 22864 19204 @@ -1693,6 +1 592,10 @@22865 @@ -1693,6 +1609,10 @@ 19205 22866 go/net/http/cgi/child.go \ 19206 22867 go/net/http/cgi/host.go … … 19213 22874 go/net/http/fcgi/child.go \ 19214 22875 go/net/http/fcgi/fcgi.go 19215 @@ -1710,11 +16 13,6 @@22876 @@ -1710,11 +1630,6 @@ 19216 22877 go/net/http/httputil/persist.go \ 19217 22878 go/net/http/httputil/reverseproxy.go … … 19225 22886 go/old/regexp/regexp.go 19226 22887 19227 @@ -1757,6 +16 55,7 @@22888 @@ -1757,6 +1672,7 @@ 19228 22889 go/net/rpc/jsonrpc/server.go 19229 22890 … … 19233 22894 19234 22895 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 @@ 19236 22905 encoding/json.lo \ 19237 22906 encoding/pem.lo \ … … 19251 22920 go/ast.lo \ 19252 22921 go/build.lo \ 19253 @@ -2026,12 +19 16,12 @@22922 @@ -2026,12 +1934,12 @@ 19254 22923 go/printer.lo \ 19255 22924 go/scanner.lo \ … … 19265 22934 net/http/httptest.lo \ 19266 22935 net/http/httputil.lo \ 19267 @@ -2055,7 +19 45,6 @@22936 @@ -2055,7 +1963,6 @@ 19268 22937 net/smtp.lo \ 19269 22938 net/textproto.lo \ … … 19273 22942 old/template.lo \ 19274 22943 os/exec.lo \ 19275 @@ -2186,10 +20 75,6 @@22944 @@ -2186,10 +2093,6 @@ 19276 22945 f=`echo $< | sed -e 's/.lo$$/.o/'`; \ 19277 22946 $(OBJCOPY) -j .go_export $$f $@.tmp && mv -f $@.tmp $@ … … 19284 22953 bufio/check \ 19285 22954 bytes/check \ 19286 @@ -2260,17 +21 45,8 @@22955 @@ -2260,17 +2163,8 @@ 19287 22956 encoding/json/check \ 19288 22957 encoding/pem/check \ … … 19302 22971 go/ast/check \ 19303 22972 $(go_build_check_omitted_since_it_calls_6g) \ 19304 @@ -2280,7 +21 56,6 @@22973 @@ -2280,7 +2174,6 @@ 19305 22974 go/printer/check \ 19306 22975 go/scanner/check \ … … 19310 22979 hash/crc32/check \ 19311 22980 hash/crc64/check \ 19312 @@ -2298,6 +21 73,7 @@22981 @@ -2298,6 +2191,7 @@ 19313 22982 mime/multipart/check \ 19314 22983 net/http/check \ … … 19318 22987 net/http/httptest/check \ 19319 22988 net/http/httputil/check \ 19320 @@ -2307,7 +2 183,6 @@22989 @@ -2307,7 +2201,6 @@ 19321 22990 net/textproto/check \ 19322 22991 net/url/check \ … … 19326 22995 old/template/check \ 19327 22996 os/exec/check \ 19328 @@ -2519,7 +2 394,6 @@22997 @@ -2519,7 +2412,6 @@ 19329 22998 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strplus.Plo@am__quote@ 19330 22999 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strslice.Plo@am__quote@ … … 19334 23003 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-eface.Plo@am__quote@ 19335 23004 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-error.Plo@am__quote@ 19336 @@ -2549,6 +24 23,10 @@23005 @@ -2549,6 +2441,10 @@ 19337 23006 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mheap.Plo@am__quote@ 19338 23007 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mprof.Plo@am__quote@ … … 19345 23014 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parfor.Plo@am__quote@ 19346 23015 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@ 19347 @@ -2959,13 +28 37,6 @@23016 @@ -2959,13 +2855,6 @@ 19348 23017 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 19349 23018 @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 … … 19359 23028 @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 19360 23029 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/go-type-complex.Tpo $(DEPDIR)/go-type-complex.Plo 19361 @@ -3176,6 +30 47,27 @@23030 @@ -3176,6 +3065,27 @@ 19362 23031 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 19363 23032 @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 … … 19387 23056 @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 19388 23057 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/panic.Tpo $(DEPDIR)/panic.Plo 19389 @@ -3519,66 +34 11,6 @@23058 @@ -3519,66 +3429,6 @@ 19390 23059 test -n "$$files" || exit 0; \ 19391 23060 echo " ( cd '$(DESTDIR)$(toolexeclibgoexpdir)' && rm -f" $$files ")"; \ … … 19454 23123 @$(NORMAL_INSTALL) 19455 23124 test -z "$(toolexeclibgogodir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgogodir)" 19456 @@ -4160,7 + 3992,7 @@23125 @@ -4160,7 +4010,7 @@ 19457 23126 config.h 19458 23127 installdirs: installdirs-recursive … … 19463 23132 done 19464 23133 install: install-recursive 19465 @@ -4231,9 +40 63,6 @@23134 @@ -4231,9 +4081,6 @@ 19466 23135 install-toolexeclibgodatabasesqlDATA \ 19467 23136 install-toolexeclibgodebugDATA \ … … 19473 23142 install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \ 19474 23143 install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \ 19475 @@ -4299,11 +41 28,8 @@23144 @@ -4299,11 +4146,8 @@ 19476 23145 uninstall-toolexeclibgodatabasesqlDATA \ 19477 23146 uninstall-toolexeclibgodebugDATA \ … … 19487 23156 uninstall-toolexeclibgoimageDATA \ 19488 23157 uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \ 19489 @@ -4348,9 +41 74,6 @@23158 @@ -4348,9 +4192,6 @@ 19490 23159 install-toolexeclibgodatabasesqlDATA \ 19491 23160 install-toolexeclibgodebugDATA \ … … 19497 23166 install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \ 19498 23167 install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \ 19499 @@ -4380,11 +42 03,8 @@23168 @@ -4380,11 +4221,8 @@ 19500 23169 uninstall-toolexeclibgodatabasesqlDATA \ 19501 23170 uninstall-toolexeclibgodebugDATA \ … … 19511 23180 uninstall-toolexeclibgoimageDATA \ 19512 23181 uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \ 19513 @@ -4417,6 +42 37,10 @@23182 @@ -4417,6 +4255,10 @@ 19514 23183 ./goc2c $< > $@.tmp 19515 23184 mv -f $@.tmp $@ … … 19522 23191 ./goc2c $< > $@.tmp 19523 23192 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 @@ 19525 23204 @$(CHECK) 19526 23205 .PHONY: encoding/xml/check … … 19592 23271 exp/proxy.lo.dep: $(go_exp_proxy_files) 19593 23272 $(BUILDDEPS) 19594 @@ -5244,15 +50 05,6 @@23273 @@ -5244,15 +5026,6 @@ 19595 23274 @$(CHECK) 19596 23275 .PHONY: exp/proxy/check … … 19608 23287 exp/terminal.lo.dep: $(go_exp_terminal_files) 19609 23288 $(BUILDDEPS) 19610 @@ -5262,24 +50 14,6 @@23289 @@ -5262,24 +5035,6 @@ 19611 23290 @$(CHECK) 19612 23291 .PHONY: exp/terminal/check … … 19633 23312 html/template.lo.dep: $(go_html_template_files) 19634 23313 $(BUILDDEPS) 19635 @@ -5370,15 +51 04,6 @@23314 @@ -5370,15 +5125,6 @@ 19636 23315 @$(CHECK) 19637 23316 .PHONY: go/token/check … … 19649 23328 hash/adler32.lo.dep: $(go_hash_adler32_files) 19650 23329 $(BUILDDEPS) 19651 @@ -5589,6 +53 14,15 @@23330 @@ -5589,6 +5335,15 @@ 19652 23331 @$(CHECK) 19653 23332 .PHONY: net/http/cgi/check … … 19665 23344 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files) 19666 23345 $(BUILDDEPS) 19667 @@ -5634,15 +53 68,6 @@23346 @@ -5634,15 +5389,6 @@ 19668 23347 @$(CHECK) 19669 23348 .PHONY: net/rpc/jsonrpc/check … … 19681 23360 old/regexp.lo.dep: $(go_old_regexp_files) 19682 23361 $(BUILDDEPS) 19683 @@ -5983,30 +57 08,10 @@23362 @@ -5983,30 +5729,10 @@ 19684 23363 encoding/xml.gox: encoding/xml.lo 19685 23364 $(BUILDGOX) … … 19712 23391 html/template.gox: html/template.lo 19713 23392 $(BUILDGOX) 19714 @@ -6027,8 +57 32,6 @@23393 @@ -6027,8 +5753,6 @@ 19715 23394 $(BUILDGOX) 19716 23395 go/token.gox: go/token.lo … … 19721 23400 hash/adler32.gox: hash/adler32.lo 19722 23401 $(BUILDGOX) 19723 @@ -6084,6 +5 787,8 @@23402 @@ -6084,6 +5808,8 @@ 19724 23403 19725 23404 net/http/cgi.gox: net/http/cgi.lo … … 19730 23409 $(BUILDGOX) 19731 23410 net/http/httptest.gox: net/http/httptest.lo 19732 @@ -6096,8 +58 01,6 @@23411 @@ -6096,8 +5822,6 @@ 19733 23412 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo 19734 23413 $(BUILDGOX) … … 19741 23420 diff -Naur gcc-4.8.1.orig/libgo/configure gcc-4.8.1/libgo/configure 19742 23421 --- 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+000023422 +++ gcc-4.8.1/libgo/configure 2013-10-01 16:06:44.040554284 +0000 19744 23423 @@ -2496,7 +2496,7 @@ 19745 23424 ac_config_headers="$ac_config_headers config.h" … … 19753 23432 diff -Naur gcc-4.8.1.orig/libgo/configure.ac gcc-4.8.1/libgo/configure.ac 19754 23433 --- 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+000023434 +++ gcc-4.8.1/libgo/configure.ac 2013-10-01 16:06:44.040554284 +0000 19756 23435 @@ -11,7 +11,7 @@ 19757 23436 AC_CONFIG_SRCDIR(Makefile.am) … … 19765 23444 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/common.go gcc-4.8.1/libgo/go/archive/tar/common.go 19766 23445 --- 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+000023446 +++ gcc-4.8.1/libgo/go/archive/tar/common.go 2013-10-01 16:06:44.040554284 +0000 19768 23447 @@ -9,12 +9,14 @@ 19769 23448 // References: … … 19979 23658 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader.go gcc-4.8.1/libgo/go/archive/tar/reader.go 19980 23659 --- 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+000023660 +++ gcc-4.8.1/libgo/go/archive/tar/reader.go 2013-10-01 16:06:44.040554284 +0000 19982 23661 @@ -14,6 +14,7 @@ 19983 23662 "io/ioutil" … … 20212 23891 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go gcc-4.8.1/libgo/go/archive/tar/reader_test.go 20213 23892 --- 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+000023893 +++ gcc-4.8.1/libgo/go/archive/tar/reader_test.go 2013-10-01 16:06:44.040554284 +0000 20215 23894 @@ -10,6 +10,8 @@ 20216 23895 "fmt" … … 20346 24025 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go gcc-4.8.1/libgo/go/archive/tar/tar_test.go 20347 24026 --- 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+000024027 +++ gcc-4.8.1/libgo/go/archive/tar/tar_test.go 2013-10-01 16:06:44.040554284 +0000 20349 24028 @@ -14,13 +14,13 @@ 20350 24029 ) … … 20547 24226 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar 20548 24227 --- 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+000024228 +++ gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar 2013-10-01 16:06:44.040554284 +0000 20550 24229 @@ -0,0 +1,10 @@ 20551 24230 +a/PaxHeaders.6887/12345678910111213141516171819202122232425262728293031323334353637383940414243444540000644000175000017500000000044612036615200022461 xustar0000000000000000204 path=a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 … … 20562 24241 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar 20563 24242 --- 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+000024243 +++ gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar 2013-10-01 16:06:44.040554284 +0000 20565 24244 @@ -0,0 +1,2 @@ 20566 24245 +file.txt0000644000076500000240000000000612104402656045134 0ustar00shanestaff00000000000000longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longnamehello … … 20569 24248 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer.go gcc-4.8.1/libgo/go/archive/tar/writer.go 20570 24249 --- 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+000024250 +++ gcc-4.8.1/libgo/go/archive/tar/writer.go 2013-10-01 16:06:44.040554284 +0000 20572 24251 @@ -8,10 +8,14 @@ 20573 24252 // - catch more errors (no first header, etc.) … … 20744 24423 diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go gcc-4.8.1/libgo/go/archive/tar/writer_test.go 20745 24424 --- 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+000024425 +++ gcc-4.8.1/libgo/go/archive/tar/writer_test.go 2013-10-01 16:06:44.040554284 +0000 20747 24426 @@ -9,6 +9,7 @@ 20748 24427 "fmt" … … 20845 24524 diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader.go gcc-4.8.1/libgo/go/archive/zip/reader.go 20846 24525 --- 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+000024526 +++ gcc-4.8.1/libgo/go/archive/zip/reader.go 2013-10-01 16:06:44.040554284 +0000 20848 24527 @@ -353,6 +353,11 @@ 20849 24528 if err != nil { … … 20869 24548 diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go gcc-4.8.1/libgo/go/archive/zip/reader_test.go 20870 24549 --- 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+000024550 +++ gcc-4.8.1/libgo/go/archive/zip/reader_test.go 2013-10-01 16:06:44.040554284 +0000 20872 24551 @@ -64,6 +64,24 @@ 20873 24552 }, … … 20906 24585 diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/struct.go gcc-4.8.1/libgo/go/archive/zip/struct.go 20907 24586 --- 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+000024587 +++ gcc-4.8.1/libgo/go/archive/zip/struct.go 2013-10-01 16:06:44.040554284 +0000 20909 24588 @@ -64,8 +64,15 @@ 20910 24589 zip64ExtraId = 0x0001 // zip64 Extended Information Extra Field … … 20926 24605 diff -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 20927 24606 --- 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+000024607 +++ gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip 2013-10-01 16:06:44.040554284 +0000 20929 24608 @@ -0,0 +1,10 @@ 20930 24609 +PKa%=À×íà … … 20965 24644 diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/writer.go gcc-4.8.1/libgo/go/archive/zip/writer.go 20966 24645 --- 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+000024646 +++ gcc-4.8.1/libgo/go/archive/zip/writer.go 2013-10-01 16:06:44.040554284 +0000 20968 24647 @@ -163,6 +163,9 @@ 20969 24648 … … 20978 24657 diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio.go gcc-4.8.1/libgo/go/bufio/bufio.go 20979 24658 --- 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+000024659 +++ gcc-4.8.1/libgo/go/bufio/bufio.go 2013-10-01 16:06:44.040554284 +0000 20981 24660 @@ -274,11 +274,10 @@ 20982 24661 return b.buf, ErrBufferFull … … 21010 24689 diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go gcc-4.8.1/libgo/go/bufio/bufio_test.go 21011 24690 --- 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+000024691 +++ gcc-4.8.1/libgo/go/bufio/bufio_test.go 2013-10-01 16:06:44.044554284 +0000 21013 24692 @@ -7,6 +7,7 @@ 21014 24693 import ( … … 21090 24769 diff -Naur gcc-4.8.1.orig/libgo/go/bufio/example_test.go gcc-4.8.1/libgo/go/bufio/example_test.go 21091 24770 --- 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+000024771 +++ gcc-4.8.1/libgo/go/bufio/example_test.go 2013-10-01 16:06:44.044554284 +0000 21093 24772 @@ -0,0 +1,74 @@ 21094 24773 +// Copyright 2013 The Go Authors. All rights reserved. … … 21168 24847 diff -Naur gcc-4.8.1.orig/libgo/go/bufio/export_test.go gcc-4.8.1/libgo/go/bufio/export_test.go 21169 24848 --- 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+000024849 +++ gcc-4.8.1/libgo/go/bufio/export_test.go 2013-10-01 16:06:44.044554284 +0000 21171 24850 @@ -0,0 +1,27 @@ 21172 24851 +// Copyright 2013 The Go Authors. All rights reserved. … … 21199 24878 diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan.go gcc-4.8.1/libgo/go/bufio/scan.go 21200 24879 --- 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+000024880 +++ gcc-4.8.1/libgo/go/bufio/scan.go 2013-10-01 16:06:44.044554284 +0000 21202 24881 @@ -0,0 +1,346 @@ 21203 24882 +// Copyright 2013 The Go Authors. All rights reserved. … … 21549 25228 diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan_test.go gcc-4.8.1/libgo/go/bufio/scan_test.go 21550 25229 --- 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+000025230 +++ gcc-4.8.1/libgo/go/bufio/scan_test.go 2013-10-01 16:06:44.044554284 +0000 21552 25231 @@ -0,0 +1,406 @@ 21553 25232 +// Copyright 2013 The Go Authors. All rights reserved. … … 21959 25638 diff -Naur gcc-4.8.1.orig/libgo/go/builtin/builtin.go gcc-4.8.1/libgo/go/builtin/builtin.go 21960 25639 --- 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+000025640 +++ gcc-4.8.1/libgo/go/builtin/builtin.go 2013-10-01 16:06:44.044554284 +0000 21962 25641 @@ -13,6 +13,12 @@ 21963 25642 // bool is the set of boolean values, true and false. … … 22000 25679 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer.go gcc-4.8.1/libgo/go/bytes/buffer.go 22001 25680 --- 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+000025681 +++ gcc-4.8.1/libgo/go/bytes/buffer.go 2013-10-01 16:06:44.044554284 +0000 22003 25682 @@ -87,6 +87,13 @@ 22004 25683 var buf []byte … … 22107 25786 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go gcc-4.8.1/libgo/go/bytes/buffer_test.go 22108 25787 --- 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+000025788 +++ gcc-4.8.1/libgo/go/bytes/buffer_test.go 2013-10-01 16:06:44.044554284 +0000 22110 25789 @@ -475,3 +475,53 @@ 22111 25790 t.Errorf("ReadByte = %q; want %q", c, 'm') … … 22164 25843 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes.go gcc-4.8.1/libgo/go/bytes/bytes.go 22165 25844 --- 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+000025845 +++ gcc-4.8.1/libgo/go/bytes/bytes.go 2013-10-01 16:06:44.044554284 +0000 22167 25846 @@ -37,10 +37,6 @@ 22168 25847 return 0 … … 22228 25907 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go gcc-4.8.1/libgo/go/bytes/bytes_decl.go 22229 25908 --- 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+000025909 +++ gcc-4.8.1/libgo/go/bytes/bytes_decl.go 2013-10-01 16:06:44.044554284 +0000 22231 25910 @@ -4,5 +4,13 @@ 22232 25911 … … 22245 25924 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go gcc-4.8.1/libgo/go/bytes/bytes_test.go 22246 25925 --- 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+000025926 +++ gcc-4.8.1/libgo/go/bytes/bytes_test.go 2013-10-01 16:06:44.044554284 +0000 22248 25927 @@ -61,6 +61,10 @@ 22249 25928 {[]byte("ab"), []byte("x"), -1}, … … 22413 26092 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/equal_test.go gcc-4.8.1/libgo/go/bytes/equal_test.go 22414 26093 --- 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+000026094 +++ gcc-4.8.1/libgo/go/bytes/equal_test.go 2013-10-01 16:06:44.044554284 +0000 22416 26095 @@ -0,0 +1,47 @@ 22417 26096 +// Copyright 2013 The Go Authors. All rights reserved. … … 22464 26143 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/example_test.go gcc-4.8.1/libgo/go/bytes/example_test.go 22465 26144 --- 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+000026145 +++ gcc-4.8.1/libgo/go/bytes/example_test.go 2013-10-01 16:06:44.044554284 +0000 22467 26146 @@ -66,3 +66,20 @@ 22468 26147 // Found it! … … 22488 26167 diff -Naur gcc-4.8.1.orig/libgo/go/bytes/export_test.go gcc-4.8.1/libgo/go/bytes/export_test.go 22489 26168 --- 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+000026169 +++ gcc-4.8.1/libgo/go/bytes/export_test.go 2013-10-01 16:06:44.044554284 +0000 22491 26170 @@ -7,3 +7,7 @@ 22492 26171 // Export func for testing … … 22499 26178 diff -Naur gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go gcc-4.8.1/libgo/go/compress/bzip2/huffman.go 22500 26179 --- 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+000026180 +++ gcc-4.8.1/libgo/go/compress/bzip2/huffman.go 2013-10-01 16:06:44.044554284 +0000 22502 26181 @@ -54,8 +54,6 @@ 22503 26182 nodeIndex = node.right … … 22511 26190 diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go gcc-4.8.1/libgo/go/compress/flate/deflate_test.go 22512 26191 --- 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+000026192 +++ gcc-4.8.1/libgo/go/compress/flate/deflate_test.go 2013-10-01 16:06:44.044554284 +0000 22514 26193 @@ -158,7 +158,6 @@ 22515 26194 } … … 22522 26201 diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go gcc-4.8.1/libgo/go/compress/flate/inflate.go 22523 26202 --- 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+000026203 +++ gcc-4.8.1/libgo/go/compress/flate/inflate.go 2013-10-01 16:06:44.044554284 +0000 22525 26204 @@ -263,7 +263,6 @@ 22526 26205 } … … 22549 26228 diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/token.go gcc-4.8.1/libgo/go/compress/flate/token.go 22550 26229 --- 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+000026230 +++ gcc-4.8.1/libgo/go/compress/flate/token.go 2013-10-01 16:06:44.044554284 +0000 22552 26231 @@ -99,5 +99,4 @@ 22553 26232 default: … … 22558 26237 diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go gcc-4.8.1/libgo/go/compress/gzip/gunzip.go 22559 26238 --- 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+000026239 +++ gcc-4.8.1/libgo/go/compress/gzip/gunzip.go 2013-10-01 16:06:44.044554284 +0000 22561 26240 @@ -120,7 +120,6 @@ 22562 26241 return string(z.buf[0:i]), nil … … 22569 26248 diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go gcc-4.8.1/libgo/go/compress/gzip/gzip.go 22570 26249 --- 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+000026250 +++ gcc-4.8.1/libgo/go/compress/gzip/gzip.go 2013-10-01 16:06:44.048554283 +0000 22572 26251 @@ -28,7 +28,7 @@ 22573 26252 Header … … 22610 26289 diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go 22611 26290 --- 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+000026291 +++ gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go 2013-10-01 16:06:44.048554283 +0000 22613 26292 @@ -157,3 +157,43 @@ 22614 26293 } … … 22657 26336 diff -Naur gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go gcc-4.8.1/libgo/go/compress/lzw/reader.go 22658 26337 --- 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+000026338 +++ gcc-4.8.1/libgo/go/compress/lzw/reader.go 2013-10-01 16:06:44.048554283 +0000 22660 26339 @@ -121,7 +121,6 @@ 22661 26340 } … … 22780 26459 diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap.go gcc-4.8.1/libgo/go/container/heap/heap.go 22781 26460 --- 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+000026461 +++ gcc-4.8.1/libgo/go/container/heap/heap.go 2013-10-01 16:06:44.048554283 +0000 22783 26462 @@ -4,13 +4,13 @@ 22784 26463 … … 22808 26487 diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go gcc-4.8.1/libgo/go/container/heap/heap_test.go 22809 26488 --- 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+000026489 +++ gcc-4.8.1/libgo/go/container/heap/heap_test.go 2013-10-01 16:06:44.048554283 +0000 22811 26490 @@ -2,10 +2,9 @@ 22812 26491 // Use of this source code is governed by a BSD-style … … 22823 26502 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go gcc-4.8.1/libgo/go/crypto/cipher/cbc.go 22824 26503 --- 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+000026504 +++ gcc-4.8.1/libgo/go/crypto/cipher/cbc.go 2013-10-01 16:06:44.048554283 +0000 22826 26505 @@ -42,6 +42,12 @@ 22827 26506 func (x *cbcEncrypter) BlockSize() int { return x.blockSize } … … 22852 26531 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go 22853 26532 --- 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+000026533 +++ gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go 2013-10-01 16:06:44.048554283 +0000 22855 26534 @@ -0,0 +1,36 @@ 22856 26535 +// Copyright 2013 The Go Authors. All rights reserved. … … 22892 26571 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go gcc-4.8.1/libgo/go/crypto/cipher/example_test.go 22893 26572 --- 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+000026573 +++ gcc-4.8.1/libgo/go/crypto/cipher/example_test.go 2013-10-01 16:06:44.048554283 +0000 22895 26574 @@ -233,7 +233,7 @@ 22896 26575 } … … 22913 26592 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go gcc-4.8.1/libgo/go/crypto/dsa/dsa.go 22914 26593 --- 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+000026594 +++ gcc-4.8.1/libgo/go/crypto/dsa/dsa.go 2013-10-01 16:06:44.048554283 +0000 22916 26595 @@ -144,8 +144,6 @@ 22917 26596 params.G = g … … 22925 26604 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go 22926 26605 --- 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+000026606 +++ gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go 2013-10-01 16:06:44.048554283 +0000 22928 26607 @@ -63,8 +63,9 @@ 22929 26608 } … … 22940 26619 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go 22941 26620 --- 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+000026621 +++ gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go 2013-10-01 16:06:44.048554283 +0000 22943 26622 @@ -49,7 +49,7 @@ 22944 26623 return … … 22952 26631 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go gcc-4.8.1/libgo/go/crypto/md5/gen.go 22953 26632 --- 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+000026633 +++ gcc-4.8.1/libgo/go/crypto/md5/gen.go 2013-10-01 16:06:44.048554283 +0000 22955 26634 @@ -161,6 +161,11 @@ 22956 26635 } … … 23000 26679 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go gcc-4.8.1/libgo/go/crypto/md5/md5_test.go 23001 26680 --- 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+000026681 +++ gcc-4.8.1/libgo/go/crypto/md5/md5_test.go 2013-10-01 16:06:44.048554283 +0000 23003 26682 @@ -2,10 +2,9 @@ 23004 26683 // Use of this source code is governed by a BSD-style … … 23041 26720 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go gcc-4.8.1/libgo/go/crypto/md5/md5block.go 23042 26721 --- 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+000026722 +++ gcc-4.8.1/libgo/go/crypto/md5/md5block.go 2013-10-01 16:06:44.048554283 +0000 23044 26723 @@ -1,3 +1,8 @@ 23045 26724 +// DO NOT EDIT. … … 23053 26732 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go 23054 26733 --- 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+000026734 +++ gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go 2013-10-01 16:06:44.048554283 +0000 23056 26735 @@ -0,0 +1,9 @@ 23057 26736 +// Copyright 2013 The Go Authors. All rights reserved. … … 23066 26745 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rand/util.go gcc-4.8.1/libgo/go/crypto/rand/util.go 23067 26746 --- 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+000026747 +++ gcc-4.8.1/libgo/go/crypto/rand/util.go 2013-10-01 16:06:44.048554283 +0000 23069 26748 @@ -98,12 +98,13 @@ 23070 26749 return … … 23093 26772 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go gcc-4.8.1/libgo/go/crypto/rc4/rc4.go 23094 26773 --- 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+000026774 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4.go 2013-10-01 16:06:44.048554283 +0000 23096 26775 @@ -13,7 +13,7 @@ 23097 26776 … … 23135 26814 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go 23136 26815 --- 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+000026816 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go 2013-10-01 16:06:44.048554283 +0000 23138 26817 @@ -0,0 +1,18 @@ 23139 26818 +// Copyright 2013 The Go Authors. All rights reserved. … … 23157 26836 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go 23158 26837 --- 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+000026838 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go 2013-10-01 16:06:44.048554283 +0000 23160 26839 @@ -0,0 +1,20 @@ 23161 26840 +// Copyright 2013 The Go Authors. All rights reserved. … … 23181 26860 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go 23182 26861 --- 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+000026862 +++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go 2013-10-01 16:06:44.048554283 +0000 23184 26863 @@ -5,6 +5,8 @@ 23185 26864 package rc4 … … 23330 27009 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go gcc-4.8.1/libgo/go/crypto/rsa/rsa.go 23331 27010 --- 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+000027011 +++ gcc-4.8.1/libgo/go/crypto/rsa/rsa.go 2013-10-01 16:06:44.048554283 +0000 23333 27012 @@ -150,6 +150,20 @@ 23334 27013 NextSetOfPrimes: … … 23377 27056 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go 23378 27057 --- 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+000027058 +++ gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go 2013-10-01 16:06:44.048554283 +0000 23380 27059 @@ -28,11 +28,11 @@ 23381 27060 } … … 23443 27122 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go 23444 27123 --- 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+000027124 +++ gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go 2013-10-01 16:06:44.052554283 +0000 23446 27125 @@ -4,10 +4,9 @@ 23447 27126 … … 23483 27162 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go 23484 27163 --- 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+000027164 +++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go 2013-10-01 16:06:44.048554283 +0000 23486 27165 @@ -2,6 +2,8 @@ 23487 27166 // Use of this source code is governed by a BSD-style … … 23495 27174 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go 23496 27175 --- 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+000027176 +++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go 2013-10-01 16:06:44.048554283 +0000 23498 27177 @@ -0,0 +1,9 @@ 23499 27178 +// Copyright 2013 The Go Authors. All rights reserved. … … 23508 27187 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/common.go gcc-4.8.1/libgo/go/crypto/tls/common.go 23509 27188 --- 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+000027189 +++ gcc-4.8.1/libgo/go/crypto/tls/common.go 2013-10-01 16:06:44.052554283 +0000 23511 27190 @@ -204,7 +204,24 @@ 23512 27191 // connections using that key are compromised. … … 23537 27216 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go 23538 27217 --- 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+000027218 +++ gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go 2013-10-01 16:06:44.052554283 +0000 23540 27219 @@ -16,36 +16,80 @@ 23541 27220 "crypto/x509/pkix" … … 23629 27308 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go 23630 27309 --- 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+000027310 +++ gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go 2013-10-01 16:06:44.052554283 +0000 23632 27311 @@ -33,22 +33,7 @@ 23633 27312 … … 23656 27335 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go 23657 27336 --- 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+000027337 +++ gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go 2013-10-01 16:06:44.052554283 +0000 23659 27338 @@ -51,6 +51,4 @@ 23660 27339 default: … … 23666 27345 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go gcc-4.8.1/libgo/go/crypto/x509/verify.go 23667 27346 --- 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+000027347 +++ gcc-4.8.1/libgo/go/crypto/x509/verify.go 2013-10-01 16:06:44.052554283 +0000 23669 27348 @@ -5,6 +5,7 @@ 23670 27349 package x509 … … 23749 27428 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go gcc-4.8.1/libgo/go/crypto/x509/verify_test.go 23750 27429 --- 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+000027430 +++ gcc-4.8.1/libgo/go/crypto/x509/verify_test.go 2013-10-01 16:06:44.052554283 +0000 23752 27431 @@ -158,6 +158,19 @@ 23753 27432 {"Ryan Hurst", "GlobalSign PersonalSign 2 CA - G2"}, … … 23863 27542 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go gcc-4.8.1/libgo/go/crypto/x509/x509.go 23864 27543 --- 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+000027544 +++ gcc-4.8.1/libgo/go/crypto/x509/x509.go 2013-10-01 16:06:44.052554283 +0000 23866 27545 @@ -19,6 +19,8 @@ 23867 27546 "errors" … … 23993 27672 diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go gcc-4.8.1/libgo/go/crypto/x509/x509_test.go 23994 27673 --- 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+000027674 +++ gcc-4.8.1/libgo/go/crypto/x509/x509_test.go 2013-10-01 16:06:44.052554283 +0000 23996 27675 @@ -19,6 +19,7 @@ 23997 27676 "encoding/hex" … … 24087 27766 diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert.go gcc-4.8.1/libgo/go/database/sql/convert.go 24088 27767 --- 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+000027768 +++ gcc-4.8.1/libgo/go/database/sql/convert.go 2013-10-01 16:06:44.052554283 +0000 24090 27769 @@ -14,12 +14,18 @@ 24091 27770 "strconv" … … 24248 27927 diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go gcc-4.8.1/libgo/go/database/sql/convert_test.go 24249 27928 --- 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+000027929 +++ gcc-4.8.1/libgo/go/database/sql/convert_test.go 2013-10-01 16:06:44.052554283 +0000 24251 27930 @@ -22,6 +22,8 @@ 24252 27931 wantint int64 … … 24326 28005 diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go gcc-4.8.1/libgo/go/database/sql/driver/driver.go 24327 28006 --- 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+000028007 +++ gcc-4.8.1/libgo/go/database/sql/driver/driver.go 2013-10-01 16:06:44.052554283 +0000 24329 28008 @@ -10,8 +10,8 @@ 24330 28009 … … 24393 28072 diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go gcc-4.8.1/libgo/go/database/sql/fakedb_test.go 24394 28073 --- 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+000028074 +++ gcc-4.8.1/libgo/go/database/sql/fakedb_test.go 2013-10-01 16:06:44.052554283 +0000 24396 28075 @@ -13,6 +13,7 @@ 24397 28076 "strconv" … … 24511 28190 diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql.go gcc-4.8.1/libgo/go/database/sql/sql.go 24512 28191 --- 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+000028192 +++ gcc-4.8.1/libgo/go/database/sql/sql.go 2013-10-01 16:06:44.052554283 +0000 24514 28193 @@ -4,6 +4,9 @@ 24515 28194 … … 25734 29413 diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go gcc-4.8.1/libgo/go/database/sql/sql_test.go 25735 29414 --- 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+000029415 +++ gcc-4.8.1/libgo/go/database/sql/sql_test.go 2013-10-01 16:06:44.052554283 +0000 25737 29416 @@ -5,11 +5,11 @@ 25738 29417 package sql … … 26305 29984 diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go gcc-4.8.1/libgo/go/debug/dwarf/buf.go 26306 29985 --- 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+000029986 +++ gcc-4.8.1/libgo/go/debug/dwarf/buf.go 2013-10-01 16:06:44.056554283 +0000 26308 29987 @@ -13,17 +13,45 @@ 26309 29988 … … 26390 30069 diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go gcc-4.8.1/libgo/go/debug/dwarf/entry.go 26391 30070 --- 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+000030071 +++ gcc-4.8.1/libgo/go/debug/dwarf/entry.go 2013-10-01 16:06:44.056554283 +0000 26393 30072 @@ -40,7 +40,7 @@ 26394 30073 } else { … … 26456 30135 diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go gcc-4.8.1/libgo/go/debug/dwarf/line.go 26457 30136 --- 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+000030137 +++ gcc-4.8.1/libgo/go/debug/dwarf/line.go 2013-10-01 16:06:44.056554283 +0000 26459 30138 @@ -112,7 +112,7 @@ 26460 30139 func (d *Data) readAddressRanges(off Offset, base uint64, u *unit) error { … … 26468 30147 diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go gcc-4.8.1/libgo/go/debug/dwarf/type.go 26469 30148 --- 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+000030149 +++ gcc-4.8.1/libgo/go/debug/dwarf/type.go 2013-10-01 16:06:44.056554283 +0000 26471 30150 @@ -435,7 +435,9 @@ 26472 30151 goto Error … … 26482 30161 diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go gcc-4.8.1/libgo/go/debug/dwarf/unit.go 26483 30162 --- 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+000030163 +++ gcc-4.8.1/libgo/go/debug/dwarf/unit.go 2013-10-01 16:06:44.056554283 +0000 26485 30164 @@ -10,17 +10,31 @@ 26486 30165 // Each unit has its own abbreviation table and address size. … … 26579 30258 diff -Naur gcc-4.8.1.orig/libgo/go/debug/elf/file.go gcc-4.8.1/libgo/go/debug/elf/file.go 26580 30259 --- 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+000030260 +++ gcc-4.8.1/libgo/go/debug/elf/file.go 2013-10-01 16:06:44.056554283 +0000 26582 30261 @@ -422,6 +422,10 @@ 26583 30262 return nil, nil, errors.New("cannot load string table section") … … 26637 30316 diff -Naur gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go gcc-4.8.1/libgo/go/debug/gosym/symtab.go 26638 30317 --- 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+000030318 +++ gcc-4.8.1/libgo/go/debug/gosym/symtab.go 2013-10-01 16:06:44.056554283 +0000 26640 30319 @@ -99,31 +99,116 @@ 26641 30320 } … … 26795 30474 diff -Naur gcc-4.8.1.orig/libgo/go/debug/macho/file.go gcc-4.8.1/libgo/go/debug/macho/file.go 26796 30475 --- 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+000030476 +++ gcc-4.8.1/libgo/go/debug/macho/file.go 2013-10-01 16:06:44.056554283 +0000 26798 30477 @@ -142,6 +142,8 @@ 26799 30478 * Mach-O reader … … 26807 30486 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go 26808 30487 --- 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+000030488 +++ gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go 2013-10-01 16:06:44.056554283 +0000 26810 30489 @@ -296,5 +296,4 @@ 26811 30490 nn, d.readErr = d.r.Read(d.buf[d.nbuf:]) … … 26816 30495 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go gcc-4.8.1/libgo/go/encoding/asn1/marshal.go 26817 30496 --- 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+000030497 +++ gcc-4.8.1/libgo/go/encoding/asn1/marshal.go 2013-10-01 16:06:44.056554283 +0000 26819 30498 @@ -460,7 +460,6 @@ 26820 30499 default: … … 26827 30506 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go gcc-4.8.1/libgo/go/encoding/base32/base32.go 26828 30507 --- 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+000030508 +++ gcc-4.8.1/libgo/go/encoding/base32/base32.go 2013-10-01 16:06:44.056554283 +0000 26830 30509 @@ -6,8 +6,10 @@ 26831 30510 package base32 … … 27004 30683 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go gcc-4.8.1/libgo/go/encoding/base32/base32_test.go 27005 30684 --- 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+000030685 +++ gcc-4.8.1/libgo/go/encoding/base32/base32_test.go 2013-10-01 16:06:44.056554283 +0000 27007 30686 @@ -8,6 +8,7 @@ 27008 30687 "bytes" … … 27153 30832 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go gcc-4.8.1/libgo/go/encoding/base64/base64.go 27154 30833 --- 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+000030834 +++ gcc-4.8.1/libgo/go/encoding/base64/base64.go 2013-10-01 16:06:44.056554283 +0000 27156 30835 @@ -6,8 +6,10 @@ 27157 30836 package base64 … … 27285 30964 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go gcc-4.8.1/libgo/go/encoding/base64/base64_test.go 27286 30965 --- 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+000030966 +++ gcc-4.8.1/libgo/go/encoding/base64/base64_test.go 2013-10-01 16:06:44.056554283 +0000 27288 30967 @@ -9,6 +9,7 @@ 27289 30968 "errors" … … 27405 31084 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go gcc-4.8.1/libgo/go/encoding/binary/binary.go 27406 31085 --- 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+000031086 +++ gcc-4.8.1/libgo/go/encoding/binary/binary.go 2013-10-01 16:06:44.056554283 +0000 27408 31087 @@ -167,9 +167,9 @@ 27409 31088 default: … … 27526 31205 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go gcc-4.8.1/libgo/go/encoding/binary/binary_test.go 27527 31206 --- 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+000031207 +++ gcc-4.8.1/libgo/go/encoding/binary/binary_test.go 2013-10-01 16:06:44.060554283 +0000 27529 31208 @@ -9,6 +9,7 @@ 27530 31209 "io" … … 27561 31240 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go gcc-4.8.1/libgo/go/encoding/binary/varint.go 27562 31241 --- 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+000031242 +++ gcc-4.8.1/libgo/go/encoding/binary/varint.go 2013-10-01 16:06:44.060554283 +0000 27564 31243 @@ -120,7 +120,6 @@ 27565 31244 x |= uint64(b&0x7f) << s … … 27572 31251 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go gcc-4.8.1/libgo/go/encoding/csv/reader.go 27573 31252 --- 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 +000031253 +++ gcc-4.8.1/libgo/go/encoding/csv/reader.go 2013-10-01 16:06:44.060554283 +0000 27575 31254 @@ -171,7 +171,6 @@ 27576 31255 } … … 27599 31278 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go gcc-4.8.1/libgo/go/encoding/gob/codec_test.go 27600 31279 --- 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 +000031280 +++ gcc-4.8.1/libgo/go/encoding/gob/codec_test.go 2013-10-01 16:06:44.060554283 +0000 27602 31281 @@ -1191,10 +1191,8 @@ 27603 31282 if v1 != nil || v2 != nil { … … 27615 31294 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go gcc-4.8.1/libgo/go/encoding/gob/decode.go 27616 31295 --- 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 +000031296 +++ gcc-4.8.1/libgo/go/encoding/gob/decode.go 2013-10-01 16:06:44.060554283 +0000 27618 31297 @@ -1066,7 +1066,6 @@ 27619 31298 case reflect.Struct: … … 27626 31305 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go 27627 31306 --- 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 +000031307 +++ gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go 2013-10-01 16:06:44.060554283 +0000 27629 31308 @@ -1,4 +1,4 @@ 27630 31309 -// Copyright 20011 The Go Authors. All rights reserved. … … 27644 31323 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go gcc-4.8.1/libgo/go/encoding/gob/timing_test.go 27645 31324 --- 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 +000031325 +++ gcc-4.8.1/libgo/go/encoding/gob/timing_test.go 2013-10-01 16:06:44.060554283 +0000 27647 31326 @@ -50,49 +50,51 @@ 27648 31327 } … … 27721 31400 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/type.go gcc-4.8.1/libgo/go/encoding/gob/type.go 27722 31401 --- 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+000031402 +++ gcc-4.8.1/libgo/go/encoding/gob/type.go 2013-10-01 16:06:44.060554283 +0000 27724 31403 @@ -526,7 +526,6 @@ 27725 31404 default: … … 27732 31411 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode.go gcc-4.8.1/libgo/go/encoding/json/decode.go 27733 31412 --- 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+000031413 +++ gcc-4.8.1/libgo/go/encoding/json/decode.go 2013-10-01 16:06:44.060554283 +0000 27735 31414 @@ -33,6 +33,10 @@ 27736 31415 // the value pointed at by the pointer. If the pointer is nil, Unmarshal … … 27819 31498 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go gcc-4.8.1/libgo/go/encoding/json/decode_test.go 27820 31499 --- 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+000031500 +++ gcc-4.8.1/libgo/go/encoding/json/decode_test.go 2013-10-01 16:06:44.060554283 +0000 27822 31501 @@ -11,6 +11,7 @@ 27823 31502 "reflect" … … 27940 31619 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode.go gcc-4.8.1/libgo/go/encoding/json/encode.go 27941 31620 --- 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+000031621 +++ gcc-4.8.1/libgo/go/encoding/json/encode.go 2013-10-01 16:06:44.060554283 +0000 27943 31622 @@ -3,7 +3,8 @@ 27944 31623 // license that can be found in the LICENSE file. … … 28089 31768 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go gcc-4.8.1/libgo/go/encoding/json/encode_test.go 28090 31769 --- 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+000031770 +++ gcc-4.8.1/libgo/go/encoding/json/encode_test.go 2013-10-01 16:06:44.060554283 +0000 28092 31771 @@ -206,3 +206,107 @@ 28093 31772 t.Errorf("got %q, want %q", got, want) … … 28200 31879 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go gcc-4.8.1/libgo/go/encoding/json/scanner_test.go 28201 31880 --- 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+000031881 +++ gcc-4.8.1/libgo/go/encoding/json/scanner_test.go 2013-10-01 16:06:44.060554283 +0000 28203 31882 @@ -277,9 +277,6 @@ 28204 31883 if f > n { … … 28213 31892 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go gcc-4.8.1/libgo/go/encoding/xml/marshal.go 28214 31893 --- 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+000031894 +++ gcc-4.8.1/libgo/go/encoding/xml/marshal.go 2013-10-01 16:06:44.060554283 +0000 28216 31895 @@ -81,8 +81,7 @@ 28217 31896 func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { … … 28412 32091 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go 28413 32092 --- 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+000032093 +++ gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go 2013-10-01 16:06:44.060554283 +0000 28415 32094 @@ -7,6 +7,7 @@ 28416 32095 import ( … … 28548 32227 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read.go gcc-4.8.1/libgo/go/encoding/xml/read.go 28549 32228 --- 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+000032229 +++ gcc-4.8.1/libgo/go/encoding/xml/read.go 2013-10-01 16:06:44.060554283 +0000 28551 32230 @@ -263,7 +263,7 @@ 28552 32231 strv := finfo.value(sv) … … 28583 32262 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go gcc-4.8.1/libgo/go/encoding/xml/read_test.go 28584 32263 --- 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+000032264 +++ gcc-4.8.1/libgo/go/encoding/xml/read_test.go 2013-10-01 16:06:44.064554283 +0000 28586 32265 @@ -6,6 +6,7 @@ 28587 32266 … … 28819 32498 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go 28820 32499 --- 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+000032500 +++ gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go 2013-10-01 16:06:44.064554283 +0000 28822 32501 @@ -70,20 +70,19 @@ 28823 32502 if t.Kind() == reflect.Ptr { … … 28890 32569 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go gcc-4.8.1/libgo/go/encoding/xml/xml.go 28891 32570 --- 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+000032571 +++ gcc-4.8.1/libgo/go/encoding/xml/xml.go 2013-10-01 16:06:44.064554283 +0000 28893 32572 @@ -169,6 +169,11 @@ 28894 32573 // the CharsetReader's result values must be non-nil. … … 29016 32695 diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go gcc-4.8.1/libgo/go/encoding/xml/xml_test.go 29017 32696 --- 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+000032697 +++ gcc-4.8.1/libgo/go/encoding/xml/xml_test.go 2013-10-01 16:06:44.064554283 +0000 29019 32698 @@ -5,6 +5,7 @@ 29020 32699 package xml … … 137325 141004 diff -Naur gcc-4.8.1.orig/libgo/go/fmt/doc.go gcc-4.8.1/libgo/go/fmt/doc.go 137326 141005 --- 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+0000141006 +++ gcc-4.8.1/libgo/go/fmt/doc.go 2013-10-01 16:06:44.148554281 +0000 137328 141007 @@ -74,7 +74,8 @@ 137329 141008 - pad with spaces on the right rather than the left (left-justify the field) … … 137355 141034 diff -Naur gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go gcc-4.8.1/libgo/go/fmt/fmt_test.go 137356 141035 --- 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+0000141036 +++ gcc-4.8.1/libgo/go/fmt/fmt_test.go 2013-10-01 16:06:44.148554281 +0000 137358 141037 @@ -9,7 +9,7 @@ 137359 141038 . "fmt" … … 137469 141148 diff -Naur gcc-4.8.1.orig/libgo/go/fmt/print.go gcc-4.8.1/libgo/go/fmt/print.go 137470 141149 --- 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+0000141150 +++ gcc-4.8.1/libgo/go/fmt/print.go 2013-10-01 16:06:44.148554281 +0000 137472 141151 @@ -47,7 +47,7 @@ 137473 141152 } … … 137571 141250 diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter.go gcc-4.8.1/libgo/go/go/ast/filter.go 137572 141251 --- 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+0000141252 +++ gcc-4.8.1/libgo/go/go/ast/filter.go 2013-10-01 16:06:44.148554281 +0000 137574 141253 @@ -284,6 +284,27 @@ 137575 141254 FilterImportDuplicates … … 137620 141299 diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go gcc-4.8.1/libgo/go/go/ast/filter_test.go 137621 141300 --- 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+0000141301 +++ gcc-4.8.1/libgo/go/go/ast/filter_test.go 2013-10-01 16:06:44.148554281 +0000 137623 141302 @@ -0,0 +1,86 @@ 137624 141303 +// Copyright 2013 The Go Authors. All rights reserved. … … 137710 141389 diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/print.go gcc-4.8.1/libgo/go/go/ast/print.go 137711 141390 --- 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+0000141391 +++ gcc-4.8.1/libgo/go/go/ast/print.go 2013-10-01 16:06:44.148554281 +0000 137713 141392 @@ -34,7 +34,7 @@ 137714 141393 // … … 137722 141401 diff -Naur gcc-4.8.1.orig/libgo/go/go/build/build.go gcc-4.8.1/libgo/go/go/build/build.go 137723 141402 --- 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+0000141403 +++ gcc-4.8.1/libgo/go/go/build/build.go 2013-10-01 16:06:44.148554281 +0000 137725 141404 @@ -27,15 +27,31 @@ 137726 141405 … … 137993 141672 diff -Naur gcc-4.8.1.orig/libgo/go/go/build/deps_test.go gcc-4.8.1/libgo/go/go/build/deps_test.go 137994 141673 --- 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+0000141674 +++ gcc-4.8.1/libgo/go/go/build/deps_test.go 2013-10-01 16:06:44.148554281 +0000 137996 141675 @@ -5,10 +5,9 @@ 137997 141676 // This file exercises the import parser but also checks that … … 138044 141723 diff -Naur gcc-4.8.1.orig/libgo/go/go/build/doc.go gcc-4.8.1/libgo/go/go/build/doc.go 138045 141724 --- 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+0000141725 +++ gcc-4.8.1/libgo/go/go/build/doc.go 2013-10-01 16:06:44.148554281 +0000 138047 141726 @@ -91,14 +91,22 @@ 138048 141727 // … … 138074 141753 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/doc.go gcc-4.8.1/libgo/go/go/doc/doc.go 138075 141754 --- 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+0000141755 +++ gcc-4.8.1/libgo/go/go/doc/doc.go 2013-10-01 16:06:44.148554281 +0000 138077 141756 @@ -17,7 +17,10 @@ 138078 141757 ImportPath string … … 138116 141795 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example.go gcc-4.8.1/libgo/go/go/doc/example.go 138117 141796 --- 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+0000141797 +++ gcc-4.8.1/libgo/go/go/doc/example.go 2013-10-01 16:06:44.148554281 +0000 138119 141798 @@ -18,6 +18,7 @@ 138120 141799 "unicode/utf8" … … 138161 141840 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example_test.go gcc-4.8.1/libgo/go/go/doc/example_test.go 138162 141841 --- 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+0000141842 +++ gcc-4.8.1/libgo/go/go/doc/example_test.go 2013-10-01 16:06:44.148554281 +0000 138164 141843 @@ -18,6 +18,7 @@ 138165 141844 package foo_test … … 138272 141951 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/filter.go gcc-4.8.1/libgo/go/go/doc/filter.go 138273 141952 --- 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+0000141953 +++ gcc-4.8.1/libgo/go/go/doc/filter.go 2013-10-01 16:06:44.148554281 +0000 138275 141954 @@ -94,7 +94,7 @@ 138276 141955 } … … 138284 141963 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/reader.go gcc-4.8.1/libgo/go/go/doc/reader.go 138285 141964 --- 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+0000141965 +++ gcc-4.8.1/libgo/go/go/doc/reader.go 2013-10-01 16:06:44.152554280 +0000 138287 141966 @@ -148,7 +148,7 @@ 138288 141967 // package properties … … 138420 142099 diff -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 138421 142100 --- 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+0000142101 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden 2013-10-01 16:06:44.152554280 +0000 138423 142102 @@ -8,6 +8,25 @@ 138424 142103 testdata/a0.go … … 138451 142130 diff -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 138452 142131 --- 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+0000142132 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden 2013-10-01 16:06:44.152554280 +0000 138454 142133 @@ -8,6 +8,25 @@ 138455 142134 testdata/a0.go … … 138482 142161 diff -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 138483 142162 --- 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+0000142163 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden 2013-10-01 16:06:44.152554280 +0000 138485 142164 @@ -8,6 +8,25 @@ 138486 142165 testdata/a0.go … … 138513 142192 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go gcc-4.8.1/libgo/go/go/doc/testdata/a0.go 138514 142193 --- 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+0000142194 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a0.go 2013-10-01 16:06:44.152554280 +0000 138516 142195 @@ -6,3 +6,35 @@ 138517 142196 package a … … 138552 142231 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go gcc-4.8.1/libgo/go/go/doc/testdata/a1.go 138553 142232 --- 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+0000142233 +++ gcc-4.8.1/libgo/go/go/doc/testdata/a1.go 2013-10-01 16:06:44.152554280 +0000 138555 142234 @@ -6,3 +6,7 @@ 138556 142235 package a … … 138563 142242 diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt gcc-4.8.1/libgo/go/go/doc/testdata/template.txt 138564 142243 --- 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+0000142244 +++ gcc-4.8.1/libgo/go/go/doc/testdata/template.txt 2013-10-01 16:06:44.152554280 +0000 138566 142245 @@ -60,6 +60,9 @@ 138567 142246 {{end}}{{end}}{{end}}{{/* … … 138580 142259 diff -Naur gcc-4.8.1.orig/libgo/go/go/format/format.go gcc-4.8.1/libgo/go/go/format/format.go 138581 142260 --- 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+0000142261 +++ gcc-4.8.1/libgo/go/go/format/format.go 2013-10-01 16:06:44.152554280 +0000 138583 142262 @@ -69,15 +69,14 @@ 138584 142263 return config.Fprint(dst, fset, node) … … 138603 142282 diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/error_test.go gcc-4.8.1/libgo/go/go/parser/error_test.go 138604 142283 --- 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+0000142284 +++ gcc-4.8.1/libgo/go/go/parser/error_test.go 2013-10-01 16:06:44.152554280 +0000 138606 142285 @@ -89,8 +89,6 @@ 138607 142286 prev = pos … … 138630 142309 diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/interface.go gcc-4.8.1/libgo/go/go/parser/interface.go 138631 142310 --- 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+0000142311 +++ gcc-4.8.1/libgo/go/go/parser/interface.go 2013-10-01 16:06:44.152554280 +0000 138633 142312 @@ -52,12 +52,13 @@ 138634 142313 type Mode uint … … 138748 142427 diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser.go gcc-4.8.1/libgo/go/go/parser/parser.go 138749 142428 --- 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+0000142429 +++ gcc-4.8.1/libgo/go/go/parser/parser.go 2013-10-01 16:06:44.152554280 +0000 138751 142430 @@ -48,7 +48,8 @@ 138752 142431 syncCnt int // number of calls to syncXXX without progress … … 138934 142613 diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go gcc-4.8.1/libgo/go/go/parser/parser_test.go 138935 142614 --- 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+0000142615 +++ gcc-4.8.1/libgo/go/go/parser/parser_test.go 2013-10-01 16:06:44.152554280 +0000 138937 142616 @@ -68,7 +68,7 @@ 138938 142617 … … 138964 142643 diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/short_test.go gcc-4.8.1/libgo/go/go/parser/short_test.go 138965 142644 --- 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+0000142645 +++ gcc-4.8.1/libgo/go/go/parser/short_test.go 2013-10-01 16:06:44.152554280 +0000 138967 142646 @@ -71,6 +71,9 @@ 138968 142647 `package p; func f() { _ = (<-<- /* ERROR "expected 'chan'" */ chan int)(nil) };`, … … 138977 142656 diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/nodes.go gcc-4.8.1/libgo/go/go/printer/nodes.go 138978 142657 --- 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+0000142658 +++ gcc-4.8.1/libgo/go/go/printer/nodes.go 2013-10-01 16:06:44.152554280 +0000 138980 142659 @@ -271,12 +271,12 @@ 138981 142660 // if there are multiple parameter names for this par … … 138995 142674 diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/printer.go gcc-4.8.1/libgo/go/go/printer/printer.go 138996 142675 --- 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+0000142676 +++ gcc-4.8.1/libgo/go/go/printer/printer.go 2013-10-01 16:06:44.152554280 +0000 138998 142677 @@ -395,35 +395,6 @@ 138999 142678 } … … 139054 142733 diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden 139055 142734 --- 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+0000142735 +++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden 2013-10-01 16:06:44.152554280 +0000 139057 142736 @@ -912,3 +912,28 @@ 139058 142737 func _(x chan<- (chan int)) … … 139086 142765 diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input 139087 142766 --- 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+0000142767 +++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input 2013-10-01 16:06:44.152554280 +0000 139089 142768 @@ -921,3 +921,28 @@ 139090 142769 func _(x chan<-(chan int)) … … 139118 142797 diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go gcc-4.8.1/libgo/go/go/scanner/scanner.go 139119 142798 --- 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+0000142799 +++ gcc-4.8.1/libgo/go/go/scanner/scanner.go 2013-10-01 16:06:44.152554280 +0000 139121 142800 @@ -48,6 +48,8 @@ 139122 142801 ErrorCount int // number of errors encountered … … 139162 142841 diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go gcc-4.8.1/libgo/go/go/scanner/scanner_test.go 139163 142842 --- 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+0000142843 +++ gcc-4.8.1/libgo/go/go/scanner/scanner_test.go 2013-10-01 16:06:44.152554280 +0000 139165 142844 @@ -695,7 +695,10 @@ 139166 142845 {"0X", token.INT, 0, "illegal hexadecimal number"}, … … 139177 142856 diff -Naur gcc-4.8.1.orig/libgo/go/go/token/token.go gcc-4.8.1/libgo/go/go/token/token.go 139178 142857 --- 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+0000142858 +++ gcc-4.8.1/libgo/go/go/token/token.go 2013-10-01 16:06:44.152554280 +0000 139180 142859 @@ -243,8 +243,8 @@ 139181 142860 // A set of constants for precedence-based expression parsing. … … 146882 150561 diff -Naur gcc-4.8.1.orig/libgo/go/html/template/doc.go gcc-4.8.1/libgo/go/html/template/doc.go 146883 150562 --- 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+0000150563 +++ gcc-4.8.1/libgo/go/html/template/doc.go 2013-10-01 16:06:44.160554280 +0000 146885 150564 @@ -119,7 +119,7 @@ 146886 150565 Non-string values can be used in JavaScript contexts. … … 146894 150573 diff -Naur gcc-4.8.1.orig/libgo/go/html/template/template.go gcc-4.8.1/libgo/go/html/template/template.go 146895 150574 --- 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+0000150575 +++ gcc-4.8.1/libgo/go/html/template/template.go 2013-10-01 16:06:44.160554280 +0000 146897 150576 @@ -45,18 +45,24 @@ 146898 150577 return m … … 146930 150609 diff -Naur gcc-4.8.1.orig/libgo/go/html/template/transition.go gcc-4.8.1/libgo/go/html/template/transition.go 146931 150610 --- 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+0000150611 +++ gcc-4.8.1/libgo/go/html/template/transition.go 2013-10-01 16:06:44.160554280 +0000 146933 150612 @@ -71,7 +71,6 @@ 146934 150613 } … … 146957 150636 diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader.go gcc-4.8.1/libgo/go/image/gif/reader.go 146958 150637 --- 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+0000150638 +++ gcc-4.8.1/libgo/go/image/gif/reader.go 2013-10-01 16:06:44.160554280 +0000 146960 150639 @@ -17,6 +17,11 @@ 146961 150640 "io" … … 147150 150829 diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go gcc-4.8.1/libgo/go/image/gif/reader_test.go 147151 150830 --- 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+0000150831 +++ gcc-4.8.1/libgo/go/image/gif/reader_test.go 2013-10-01 16:06:44.160554280 +0000 147153 150832 @@ -0,0 +1,138 @@ 147154 150833 +package gif … … 147292 150971 diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go gcc-4.8.1/libgo/go/image/jpeg/reader.go 147293 150972 --- 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+0000150973 +++ gcc-4.8.1/libgo/go/image/jpeg/reader.go 2013-10-01 16:06:44.160554280 +0000 147295 150974 @@ -245,10 +245,38 @@ 147296 150975 if err != nil { … … 147336 151015 diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go gcc-4.8.1/libgo/go/image/jpeg/reader_test.go 147337 151016 --- 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+0000151017 +++ gcc-4.8.1/libgo/go/image/jpeg/reader_test.go 2013-10-01 16:06:44.160554280 +0000 147339 151018 @@ -8,8 +8,11 @@ 147340 151019 "bytes" … … 147418 151097 diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go gcc-4.8.1/libgo/go/image/jpeg/scan.go 147419 151098 --- 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+0000151099 +++ gcc-4.8.1/libgo/go/image/jpeg/scan.go 2013-10-01 16:06:44.160554280 +0000 147421 151100 @@ -109,9 +109,11 @@ 147422 151101 myy := (d.height + 8*v0 - 1) / (8 * v0) … … 147436 151115 diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go gcc-4.8.1/libgo/go/image/jpeg/writer_test.go 147437 151116 --- 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+0000151117 +++ gcc-4.8.1/libgo/go/image/jpeg/writer_test.go 2013-10-01 16:06:44.160554280 +0000 147439 151118 @@ -148,29 +148,38 @@ 147440 151119 t.Error(tc.filename, err) … … 147493 151172 diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader.go gcc-4.8.1/libgo/go/image/png/reader.go 147494 151173 --- 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+0000151174 +++ gcc-4.8.1/libgo/go/image/png/reader.go 2013-10-01 16:06:44.160554280 +0000 147496 151175 @@ -652,10 +652,11 @@ 147497 151176 } … … 147510 151189 diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader_test.go gcc-4.8.1/libgo/go/image/png/reader_test.go 147511 151190 --- 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+0000151191 +++ gcc-4.8.1/libgo/go/image/png/reader_test.go 2013-10-01 16:06:44.160554280 +0000 147513 151192 @@ -38,6 +38,14 @@ 147514 151193 "basn6a16", … … 147616 151295 diff -Naur gcc-4.8.1.orig/libgo/go/image/png/writer.go gcc-4.8.1/libgo/go/image/png/writer.go 147617 151296 --- 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+0000151297 +++ gcc-4.8.1/libgo/go/image/png/writer.go 2013-10-01 16:06:44.160554280 +0000 147619 151298 @@ -436,7 +436,7 @@ 147620 151299 // also rejected. … … 147628 151307 diff -Naur gcc-4.8.1.orig/libgo/go/io/io.go gcc-4.8.1/libgo/go/io/io.go 147629 151308 --- 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+0000151309 +++ gcc-4.8.1/libgo/go/io/io.go 2013-10-01 16:06:44.160554280 +0000 147631 151310 @@ -34,6 +34,11 @@ 147632 151311 // middle of reading a fixed-size block or data structure. … … 147756 151435 diff -Naur gcc-4.8.1.orig/libgo/go/io/io_test.go gcc-4.8.1/libgo/go/io/io_test.go 147757 151436 --- 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+0000151437 +++ gcc-4.8.1/libgo/go/io/io_test.go 2013-10-01 16:06:44.160554280 +0000 147759 151438 @@ -6,6 +6,8 @@ 147760 151439 … … 147849 151528 diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go gcc-4.8.1/libgo/go/io/ioutil/ioutil.go 147850 151529 --- 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+0000151530 +++ gcc-4.8.1/libgo/go/io/ioutil/ioutil.go 2013-10-01 16:06:44.160554280 +0000 147852 151531 @@ -144,7 +144,6 @@ 147853 151532 return … … 147860 151539 diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go 147861 151540 --- 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+0000151541 +++ gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go 2013-10-01 16:06:44.160554280 +0000 147863 151542 @@ -2,10 +2,9 @@ 147864 151543 // Use of this source code is governed by a BSD-style … … 147875 151554 diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go 147876 151555 --- 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+0000151556 +++ gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go 2013-10-01 16:06:44.160554280 +0000 147878 151557 @@ -2,10 +2,9 @@ 147879 151558 // Use of this source code is governed by a BSD-style … … 147890 151569 diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go gcc-4.8.1/libgo/go/log/syslog/syslog.go 147891 151570 --- 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+0000151571 +++ gcc-4.8.1/libgo/go/log/syslog/syslog.go 2013-10-01 16:06:44.164554280 +0000 147893 151572 @@ -6,7 +6,11 @@ 147894 151573 … … 148144 151823 diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go 148145 151824 --- 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+0000151825 +++ gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go 2013-10-01 16:06:44.164554280 +0000 148147 151826 @@ -23,17 +23,17 @@ 148148 151827 … … 148169 151848 diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go gcc-4.8.1/libgo/go/log/syslog/syslog_test.go 148170 151849 --- 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+0000151850 +++ gcc-4.8.1/libgo/go/log/syslog/syslog_test.go 2013-10-01 16:06:44.164554280 +0000 148172 151851 @@ -7,38 +7,169 @@ 148173 151852 package syslog … … 148503 152182 diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go 148504 152183 --- 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 +0000152184 +++ gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go 2013-10-01 16:06:44.164554280 +0000 148506 152185 @@ -17,11 +17,9 @@ 148507 152186 func unixSyslog() (conn serverConn, err error) { … … 148519 152198 diff -Naur gcc-4.8.1.orig/libgo/go/math/big/int.go gcc-4.8.1/libgo/go/math/big/int.go 148520 152199 --- 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 +0000152200 +++ gcc-4.8.1/libgo/go/math/big/int.go 2013-10-01 16:06:44.164554280 +0000 148522 152201 @@ -53,7 +53,7 @@ 148523 152202 … … 148566 152245 diff -Naur gcc-4.8.1.orig/libgo/go/math/big/nat.go gcc-4.8.1/libgo/go/math/big/nat.go 148567 152246 --- 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 +0000152247 +++ gcc-4.8.1/libgo/go/math/big/nat.go 2013-10-01 16:06:44.164554280 +0000 148569 152248 @@ -1021,8 +1021,6 @@ 148570 152249 default: … … 148578 152257 diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat.go gcc-4.8.1/libgo/go/math/big/rat.go 148579 152258 --- 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 +0000152259 +++ gcc-4.8.1/libgo/go/math/big/rat.go 2013-10-01 16:06:44.164554280 +0000 148581 152260 @@ -163,16 +163,16 @@ 148582 152261 return … … 148605 152284 diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat_test.go gcc-4.8.1/libgo/go/math/big/rat_test.go 148606 152285 --- 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 +0000152286 +++ gcc-4.8.1/libgo/go/math/big/rat_test.go 2013-10-01 16:06:44.164554280 +0000 148608 152287 @@ -500,12 +500,10 @@ 148609 152288 } … … 148745 152424 diff -Naur gcc-4.8.1.orig/libgo/go/math/hypot.go gcc-4.8.1/libgo/go/math/hypot.go 148746 152425 --- 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 +0000152426 +++ gcc-4.8.1/libgo/go/math/hypot.go 2013-10-01 16:06:44.164554280 +0000 148748 152427 @@ -12,8 +12,10 @@ 148749 152428 // unnecessary overflow and underflow. … … 148761 152440 diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/exp.go gcc-4.8.1/libgo/go/math/rand/exp.go 148762 152441 --- 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+0000152442 +++ gcc-4.8.1/libgo/go/math/rand/exp.go 2013-10-01 16:06:44.164554280 +0000 148764 152443 @@ -43,7 +43,6 @@ 148765 152444 return x … … 148772 152451 diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/normal.go gcc-4.8.1/libgo/go/math/rand/normal.go 148773 152452 --- 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+0000152453 +++ gcc-4.8.1/libgo/go/math/rand/normal.go 2013-10-01 16:06:44.164554280 +0000 148775 152454 @@ -63,7 +63,6 @@ 148776 152455 return x … … 148783 152462 diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/zipf.go gcc-4.8.1/libgo/go/math/rand/zipf.go 148784 152463 --- 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+0000152464 +++ gcc-4.8.1/libgo/go/math/rand/zipf.go 2013-10-01 16:06:44.164554280 +0000 148786 152465 @@ -34,7 +34,6 @@ 148787 152466 … … 148808 152487 diff -Naur gcc-4.8.1.orig/libgo/go/math/sqrt.go gcc-4.8.1/libgo/go/math/sqrt.go 148809 152488 --- 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+0000152489 +++ gcc-4.8.1/libgo/go/math/sqrt.go 2013-10-01 16:06:44.164554280 +0000 148811 152490 @@ -4,14 +4,6 @@ 148812 152491 … … 148826 152505 diff -Naur gcc-4.8.1.orig/libgo/go/math/tanh.go gcc-4.8.1/libgo/go/math/tanh.go 148827 152506 --- 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+0000152507 +++ gcc-4.8.1/libgo/go/math/tanh.go 2013-10-01 16:06:44.164554280 +0000 148829 152508 @@ -65,7 +65,7 @@ 148830 152509 4.84406305325125486048E3, … … 148838 152517 diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go gcc-4.8.1/libgo/go/mime/multipart/multipart.go 148839 152518 --- 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+0000152519 +++ gcc-4.8.1/libgo/go/mime/multipart/multipart.go 2013-10-01 16:06:44.164554280 +0000 148841 152520 @@ -28,7 +28,12 @@ 148842 152521 type Part struct { … … 148868 152547 diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go 148869 152548 --- 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+0000152549 +++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go 2013-10-01 16:06:44.164554280 +0000 148871 152550 @@ -3,6 +3,10 @@ 148872 152551 // license that can be found in the LICENSE file. … … 148942 152621 diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go 148943 152622 --- 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+0000152623 +++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go 2013-10-01 16:06:44.164554280 +0000 148945 152624 @@ -5,11 +5,18 @@ 148946 152625 package multipart … … 149130 152809 diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_unix.go gcc-4.8.1/libgo/go/mime/type_unix.go 149131 152810 --- 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+0000152811 +++ gcc-4.8.1/libgo/go/mime/type_unix.go 2013-10-01 16:06:44.168554280 +0000 149133 152812 @@ -23,15 +23,11 @@ 149134 152813 if err != nil { … … 149163 152842 diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_windows.go gcc-4.8.1/libgo/go/mime/type_windows.go 149164 152843 --- 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+0000152844 +++ gcc-4.8.1/libgo/go/mime/type_windows.go 2013-10-01 16:06:44.168554280 +0000 149166 152845 @@ -58,7 +58,6 @@ 149167 152846 … … 149174 152853 diff -Naur gcc-4.8.1.orig/libgo/go/net/cgo_unix.go gcc-4.8.1/libgo/go/net/cgo_unix.go 149175 152854 --- 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+0000152855 +++ gcc-4.8.1/libgo/go/net/cgo_unix.go 2013-10-01 16:06:44.168554280 +0000 149177 152856 @@ -103,6 +103,7 @@ 149178 152857 var hints syscall.Addrinfo … … 149194 152873 diff -Naur gcc-4.8.1.orig/libgo/go/net/conn_test.go gcc-4.8.1/libgo/go/net/conn_test.go 149195 152874 --- 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+0000152875 +++ gcc-4.8.1/libgo/go/net/conn_test.go 2013-10-01 16:06:44.168554280 +0000 149197 152876 @@ -2,10 +2,12 @@ 149198 152877 // Use of this source code is governed by a BSD-style … … 149338 153017 diff -Naur gcc-4.8.1.orig/libgo/go/net/dial.go gcc-4.8.1/libgo/go/net/dial.go 149339 153018 --- 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+0000153019 +++ gcc-4.8.1/libgo/go/net/dial.go 2013-10-01 16:06:44.168554280 +0000 149341 153020 @@ -5,10 +5,55 @@ 149342 153021 package net … … 149658 153337 diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_gen.go gcc-4.8.1/libgo/go/net/dial_gen.go 149659 153338 --- 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+0000153339 +++ gcc-4.8.1/libgo/go/net/dial_gen.go 2013-10-01 16:06:44.168554280 +0000 149661 153340 @@ -0,0 +1,73 @@ 149662 153341 +// Copyright 2012 The Go Authors. All rights reserved. … … 149735 153414 diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_test.go gcc-4.8.1/libgo/go/net/dial_test.go 149736 153415 --- 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+0000153416 +++ gcc-4.8.1/libgo/go/net/dial_test.go 2013-10-01 16:06:44.168554280 +0000 149738 153417 @@ -9,6 +9,7 @@ 149739 153418 "fmt" … … 149879 153558 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_bsd.go gcc-4.8.1/libgo/go/net/fd_bsd.go 149880 153559 --- 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+0000153560 +++ gcc-4.8.1/libgo/go/net/fd_bsd.go 2013-10-01 16:06:44.168554280 +0000 149882 153561 @@ -33,6 +33,8 @@ 149883 153562 return p, nil … … 150092 153771 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_plan9.go gcc-4.8.1/libgo/go/net/fd_plan9.go 150093 153772 --- 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+0000153773 +++ gcc-4.8.1/libgo/go/net/fd_plan9.go 2013-10-01 16:06:44.168554280 +0000 150095 153774 @@ -23,28 +23,22 @@ 150096 153775 func sysInit() { … … 150191 153870 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go gcc-4.8.1/libgo/go/net/fd_poll_runtime.go 150192 153871 --- 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+0000153872 +++ gcc-4.8.1/libgo/go/net/fd_poll_runtime.go 2013-10-01 16:06:44.168554280 +0000 150194 153873 @@ -0,0 +1,119 @@ 150195 153874 +// Copyright 2013 The Go Authors. All rights reserved. … … 150314 153993 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go gcc-4.8.1/libgo/go/net/fd_poll_unix.go 150315 153994 --- 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+0000153995 +++ gcc-4.8.1/libgo/go/net/fd_poll_unix.go 2013-10-01 16:06:44.168554280 +0000 150317 153996 @@ -0,0 +1,360 @@ 150318 153997 +// Copyright 2013 The Go Authors. All rights reserved. … … 150678 154357 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix.go gcc-4.8.1/libgo/go/net/fd_unix.go 150679 154358 --- 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+0000154359 +++ gcc-4.8.1/libgo/go/net/fd_unix.go 2013-10-01 16:06:44.168554280 +0000 150681 154360 @@ -9,7 +9,6 @@ 150682 154361 import ( … … 151244 154923 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go gcc-4.8.1/libgo/go/net/fd_unix_test.go 151245 154924 --- 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+0000154925 +++ gcc-4.8.1/libgo/go/net/fd_unix_test.go 2013-10-01 16:06:44.168554280 +0000 151247 154926 @@ -12,54 +12,6 @@ 151248 154927 "testing" … … 151302 154981 diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_windows.go gcc-4.8.1/libgo/go/net/fd_windows.go 151303 154982 --- 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+0000154983 +++ gcc-4.8.1/libgo/go/net/fd_windows.go 2013-10-01 16:06:44.168554280 +0000 151305 154984 @@ -37,6 +37,7 @@ 151306 154985 } … … 151409 155088 diff -Naur gcc-4.8.1.orig/libgo/go/net/file_plan9.go gcc-4.8.1/libgo/go/net/file_plan9.go 151410 155089 --- 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+0000155090 +++ gcc-4.8.1/libgo/go/net/file_plan9.go 2013-10-01 16:06:44.168554280 +0000 151412 155091 @@ -5,16 +5,139 @@ 151413 155092 package net … … 151562 155241 diff -Naur gcc-4.8.1.orig/libgo/go/net/file_test.go gcc-4.8.1/libgo/go/net/file_test.go 151563 155242 --- 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+0000155243 +++ gcc-4.8.1/libgo/go/net/file_test.go 2013-10-01 16:06:44.168554280 +0000 151565 155244 @@ -89,7 +89,7 @@ 151566 155245 … … 151574 155253 diff -Naur gcc-4.8.1.orig/libgo/go/net/file_windows.go gcc-4.8.1/libgo/go/net/file_windows.go 151575 155254 --- 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+0000155255 +++ gcc-4.8.1/libgo/go/net/file_windows.go 2013-10-01 16:06:44.168554280 +0000 151577 155256 @@ -9,16 +9,28 @@ 151578 155257 "syscall" … … 151606 155285 diff -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 151607 155286 --- 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+0000155287 +++ gcc-4.8.1/libgo/go/net/http/cgi/host_test.go 2013-10-01 16:06:44.168554280 +0000 151609 155288 @@ -19,7 +19,6 @@ 151610 155289 "runtime" … … 151630 155309 diff -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 151631 155310 --- 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+0000155311 +++ gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go 2013-10-01 16:06:44.168554280 +0000 151633 155312 @@ -0,0 +1,21 @@ 151634 155313 +// Copyright 2013 The Go Authors. All rights reserved. … … 151655 155334 diff -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 151656 155335 --- 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+0000155336 +++ gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi 2013-10-01 16:06:44.168554280 +0000 151658 155337 @@ -24,7 +24,8 @@ 151659 155338 print "\r\n"; … … 151668 155347 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client.go gcc-4.8.1/libgo/go/net/http/client.go 151669 155348 --- 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+0000155349 +++ gcc-4.8.1/libgo/go/net/http/client.go 2013-10-01 16:06:44.168554280 +0000 151671 155350 @@ -19,12 +19,16 @@ 151672 155351 "strings" … … 151692 155371 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client_test.go gcc-4.8.1/libgo/go/net/http/client_test.go 151693 155372 --- 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+0000155373 +++ gcc-4.8.1/libgo/go/net/http/client_test.go 2013-10-01 16:06:44.168554280 +0000 151695 155374 @@ -51,10 +51,10 @@ 151696 155375 return b, err … … 151882 155561 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go 151883 155562 --- 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+0000155563 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go 2013-10-01 16:06:44.172554280 +0000 151885 155564 @@ -0,0 +1,497 @@ 151886 155565 +// Copyright 2012 The Go Authors. All rights reserved. … … 152383 156062 diff -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 152384 156063 --- 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+0000156064 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go 2013-10-01 16:06:44.172554280 +0000 152386 156065 @@ -0,0 +1,1267 @@ 152387 156066 +// Copyright 2013 The Go Authors. All rights reserved. … … 153654 157333 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go 153655 157334 --- 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+0000157335 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go 2013-10-01 16:06:44.172554280 +0000 153657 157336 @@ -0,0 +1,159 @@ 153658 157337 +// Copyright 2012 The Go Authors. All rights reserved. … … 153817 157496 diff -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 153818 157497 --- 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+0000157498 +++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go 2013-10-01 16:06:44.172554280 +0000 153820 157499 @@ -0,0 +1,161 @@ 153821 157500 +// Copyright 2012 The Go Authors. All rights reserved. … … 153982 157661 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/example_test.go gcc-4.8.1/libgo/go/net/http/example_test.go 153983 157662 --- 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+0000157663 +++ gcc-4.8.1/libgo/go/net/http/example_test.go 2013-10-01 16:06:44.172554280 +0000 153985 157664 @@ -51,6 +51,20 @@ 153986 157665 } … … 154007 157686 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/export_test.go gcc-4.8.1/libgo/go/net/http/export_test.go 154008 157687 --- 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+0000157688 +++ gcc-4.8.1/libgo/go/net/http/export_test.go 2013-10-01 16:06:44.172554280 +0000 154010 157689 @@ -16,10 +16,16 @@ 154011 157690 return newLoggingConn(baseName, c) … … 154046 157725 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go gcc-4.8.1/libgo/go/net/http/fcgi/child.go 154047 157726 --- 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+0000157727 +++ gcc-4.8.1/libgo/go/net/http/fcgi/child.go 2013-10-01 16:06:44.172554280 +0000 154049 157728 @@ -10,10 +10,12 @@ 154050 157729 "errors" … … 154176 157855 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go gcc-4.8.1/libgo/go/net/http/filetransport_test.go 154177 157856 --- 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+0000157857 +++ gcc-4.8.1/libgo/go/net/http/filetransport_test.go 2013-10-01 16:06:44.172554280 +0000 154179 157858 @@ -2,11 +2,10 @@ 154180 157859 // Use of this source code is governed by a BSD-style … … 154211 157890 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fs_test.go gcc-4.8.1/libgo/go/net/http/fs_test.go 154212 157891 --- 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+0000157892 +++ gcc-4.8.1/libgo/go/net/http/fs_test.go 2013-10-01 16:06:44.172554280 +0000 154214 157893 @@ -54,6 +54,7 @@ 154215 157894 } … … 154355 158034 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header.go gcc-4.8.1/libgo/go/net/http/header.go 154356 158035 --- 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+0000158036 +++ gcc-4.8.1/libgo/go/net/http/header.go 2013-10-01 16:06:44.172554280 +0000 154358 158037 @@ -103,21 +103,41 @@ 154359 158038 values []string … … 154429 158108 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header_test.go gcc-4.8.1/libgo/go/net/http/header_test.go 154430 158109 --- 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+0000158110 +++ gcc-4.8.1/libgo/go/net/http/header_test.go 2013-10-01 16:06:44.172554280 +0000 154432 158111 @@ -175,38 +175,33 @@ 154433 158112 } … … 154493 158172 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go gcc-4.8.1/libgo/go/net/http/httptest/server.go 154494 158173 --- 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+0000158174 +++ gcc-4.8.1/libgo/go/net/http/httptest/server.go 2013-10-01 16:06:44.172554280 +0000 154496 158175 @@ -21,7 +21,11 @@ 154497 158176 type Server struct { … … 154577 158256 diff -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 154578 158257 --- 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+0000158258 +++ gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go 2013-10-01 16:06:44.172554280 +0000 154580 158259 @@ -68,7 +68,7 @@ 154581 158260 … … 154598 158277 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go 154599 158278 --- 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+0000158279 +++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go 2013-10-01 16:06:44.172554280 +0000 154601 158280 @@ -81,6 +81,19 @@ 154602 158281 } … … 154659 158338 diff -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 154660 158339 --- 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+0000158340 +++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go 2013-10-01 16:06:44.176554280 +0000 154662 158341 @@ -29,6 +29,9 @@ 154663 158342 if c := r.Header.Get("Connection"); c != "" { … … 154680 158359 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/jar.go gcc-4.8.1/libgo/go/net/http/jar.go 154681 158360 --- 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+0000158361 +++ gcc-4.8.1/libgo/go/net/http/jar.go 2013-10-01 16:06:44.176554280 +0000 154683 158362 @@ -12,6 +12,8 @@ 154684 158363 // … … 154692 158371 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/npn_test.go gcc-4.8.1/libgo/go/net/http/npn_test.go 154693 158372 --- 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+0000158373 +++ gcc-4.8.1/libgo/go/net/http/npn_test.go 2013-10-01 16:06:44.176554280 +0000 154695 158374 @@ -0,0 +1,118 @@ 154696 158375 +// Copyright 2013 The Go Authors. All rights reserved. … … 154814 158493 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go gcc-4.8.1/libgo/go/net/http/pprof/pprof.go 154815 158494 --- 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+0000158495 +++ gcc-4.8.1/libgo/go/net/http/pprof/pprof.go 2013-10-01 16:06:44.176554280 +0000 154817 158496 @@ -172,7 +172,7 @@ 154818 158497 // listing the available profiles. … … 154826 158505 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request.go gcc-4.8.1/libgo/go/net/http/request.go 154827 158506 --- 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+0000158507 +++ gcc-4.8.1/libgo/go/net/http/request.go 2013-10-01 16:06:44.176554280 +0000 154829 158508 @@ -48,7 +48,7 @@ 154830 158509 ErrUnexpectedTrailer = &ProtocolError{"trailer header without chunked transfer encoding"} … … 154914 158593 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request_test.go gcc-4.8.1/libgo/go/net/http/request_test.go 154915 158594 --- 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+0000158595 +++ gcc-4.8.1/libgo/go/net/http/request_test.go 2013-10-01 16:06:44.176554280 +0000 154917 158596 @@ -262,7 +262,39 @@ 154918 158597 t.Fatal(err) … … 155049 158728 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go gcc-4.8.1/libgo/go/net/http/requestwrite_test.go 155050 158729 --- 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+0000158730 +++ gcc-4.8.1/libgo/go/net/http/requestwrite_test.go 2013-10-01 16:06:44.176554280 +0000 155052 158731 @@ -93,13 +93,13 @@ 155053 158732 … … 155268 158947 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response.go gcc-4.8.1/libgo/go/net/http/response.go 155269 158948 --- 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+0000158949 +++ gcc-4.8.1/libgo/go/net/http/response.go 2013-10-01 16:06:44.176554280 +0000 155271 158950 @@ -46,6 +46,9 @@ 155272 158951 // The http Client and Transport guarantee that Body is always … … 155292 158971 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response_test.go gcc-4.8.1/libgo/go/net/http/response_test.go 155293 158972 --- 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+0000158973 +++ gcc-4.8.1/libgo/go/net/http/response_test.go 2013-10-01 16:06:44.176554280 +0000 155295 158974 @@ -112,8 +112,8 @@ 155296 158975 ProtoMinor: 0, … … 155413 159092 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/serve_test.go gcc-4.8.1/libgo/go/net/http/serve_test.go 155414 159093 --- 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+0000159094 +++ gcc-4.8.1/libgo/go/net/http/serve_test.go 2013-10-01 16:06:44.176554280 +0000 155416 159095 @@ -10,6 +10,7 @@ 155417 159096 "bufio" … … 156273 159952 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server.go gcc-4.8.1/libgo/go/net/http/server.go 156274 159953 --- 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+0000159954 +++ gcc-4.8.1/libgo/go/net/http/server.go 2013-10-01 16:06:44.176554280 +0000 156276 159955 @@ -4,9 +4,6 @@ 156277 159956 … … 157047 160726 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server_test.go gcc-4.8.1/libgo/go/net/http/server_test.go 157048 160727 --- 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+0000160728 +++ gcc-4.8.1/libgo/go/net/http/server_test.go 2013-10-01 16:06:44.176554280 +0000 157050 160729 @@ -2,9 +2,11 @@ 157051 160730 // Use of this source code is governed by a BSD-style … … 157103 160782 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go gcc-4.8.1/libgo/go/net/http/sniff_test.go 157104 160783 --- 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+0000160784 +++ gcc-4.8.1/libgo/go/net/http/sniff_test.go 2013-10-01 16:06:44.176554280 +0000 157106 160785 @@ -54,6 +54,7 @@ 157107 160786 } … … 157144 160823 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/status.go gcc-4.8.1/libgo/go/net/http/status.go 157145 160824 --- 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+0000160825 +++ gcc-4.8.1/libgo/go/net/http/status.go 2013-10-01 16:06:44.176554280 +0000 157147 160826 @@ -51,6 +51,13 @@ 157148 160827 StatusServiceUnavailable = 503 … … 157173 160852 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transfer.go gcc-4.8.1/libgo/go/net/http/transfer.go 157174 160853 --- 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+0000160854 +++ gcc-4.8.1/libgo/go/net/http/transfer.go 2013-10-01 16:06:44.176554280 +0000 157176 160855 @@ -194,10 +194,11 @@ 157177 160856 ncopy, err = io.Copy(w, t.Body) … … 157287 160966 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport.go gcc-4.8.1/libgo/go/net/http/transport.go 157288 160967 --- 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+0000160968 +++ gcc-4.8.1/libgo/go/net/http/transport.go 2013-10-01 16:06:44.176554280 +0000 157290 160969 @@ -17,7 +17,6 @@ 157291 160970 "errors" … … 157819 161498 diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport_test.go gcc-4.8.1/libgo/go/net/http/transport_test.go 157820 161499 --- 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+0000161500 +++ gcc-4.8.1/libgo/go/net/http/transport_test.go 2013-10-01 16:06:44.180554280 +0000 157822 161501 @@ -7,6 +7,7 @@ 157823 161502 package http_test … … 158498 162177 diff -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 158499 162178 --- 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+0000162179 +++ gcc-4.8.1/libgo/go/net/http/z_last_test.go 2013-10-01 16:06:44.180554280 +0000 158501 162180 @@ -0,0 +1,98 @@ 158502 162181 +// Copyright 2013 The Go Authors. All rights reserved. … … 158600 162279 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface.go gcc-4.8.1/libgo/go/net/interface.go 158601 162280 --- 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 +0000162281 +++ gcc-4.8.1/libgo/go/net/interface.go 2013-10-01 16:06:44.180554280 +0000 158603 162282 @@ -2,8 +2,6 @@ 158604 162283 // Use of this source code is governed by a BSD-style … … 158655 162334 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_bsd.go gcc-4.8.1/libgo/go/net/interface_bsd.go 158656 162335 --- 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+0000162336 +++ gcc-4.8.1/libgo/go/net/interface_bsd.go 2013-10-01 16:06:44.180554280 +0000 158658 162337 @@ -4,8 +4,6 @@ 158659 162338 … … 158844 162523 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_darwin.go gcc-4.8.1/libgo/go/net/interface_darwin.go 158845 162524 --- 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+0000162525 +++ gcc-4.8.1/libgo/go/net/interface_darwin.go 2013-10-01 16:06:44.180554280 +0000 158847 162526 @@ -2,8 +2,6 @@ 158848 162527 // Use of this source code is governed by a BSD-style … … 158925 162604 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go gcc-4.8.1/libgo/go/net/interface_freebsd.go 158926 162605 --- 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 +0000162606 +++ gcc-4.8.1/libgo/go/net/interface_freebsd.go 2013-10-01 16:06:44.180554280 +0000 158928 162607 @@ -2,8 +2,6 @@ 158929 162608 // Use of this source code is governed by a BSD-style … … 159006 162685 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_linux.go gcc-4.8.1/libgo/go/net/interface_linux.go 159007 162686 --- 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 +0000162687 +++ gcc-4.8.1/libgo/go/net/interface_linux.go 2013-10-01 16:06:44.180554280 +0000 159009 162688 @@ -2,8 +2,6 @@ 159010 162689 // Use of this source code is governed by a BSD-style … … 159199 162878 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go gcc-4.8.1/libgo/go/net/interface_netbsd.go 159200 162879 --- 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 +0000162880 +++ gcc-4.8.1/libgo/go/net/interface_netbsd.go 2013-10-01 16:06:44.180554280 +0000 159202 162881 @@ -2,13 +2,11 @@ 159203 162882 // Use of this source code is governed by a BSD-style … … 159220 162899 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go gcc-4.8.1/libgo/go/net/interface_openbsd.go 159221 162900 --- 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 +0000162901 +++ gcc-4.8.1/libgo/go/net/interface_openbsd.go 2013-10-01 16:06:44.180554280 +0000 159223 162902 @@ -2,13 +2,11 @@ 159224 162903 // Use of this source code is governed by a BSD-style … … 159241 162920 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_stub.go gcc-4.8.1/libgo/go/net/interface_stub.go 159242 162921 --- 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 +0000162922 +++ gcc-4.8.1/libgo/go/net/interface_stub.go 2013-10-01 16:06:44.180554280 +0000 159244 162923 @@ -4,8 +4,6 @@ 159245 162924 … … 159277 162956 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_test.go gcc-4.8.1/libgo/go/net/interface_test.go 159278 162957 --- 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 +0000162958 +++ gcc-4.8.1/libgo/go/net/interface_test.go 2013-10-01 16:06:44.180554280 +0000 159280 162959 @@ -5,18 +5,50 @@ 159281 162960 package net … … 159453 163132 diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_windows.go gcc-4.8.1/libgo/go/net/interface_windows.go 159454 163133 --- 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 +0000163134 +++ gcc-4.8.1/libgo/go/net/interface_windows.go 2013-10-01 16:06:44.180554280 +0000 159456 163135 @@ -2,8 +2,6 @@ 159457 163136 // Use of this source code is governed by a BSD-style … … 159527 163206 diff -Naur gcc-4.8.1.orig/libgo/go/net/ip.go gcc-4.8.1/libgo/go/net/ip.go 159528 163207 --- 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+0000163208 +++ gcc-4.8.1/libgo/go/net/ip.go 2013-10-01 16:06:44.180554280 +0000 159530 163209 @@ -36,7 +36,6 @@ 159531 163210 type IPNet struct { … … 159750 163429 diff -Naur gcc-4.8.1.orig/libgo/go/net/ip_test.go gcc-4.8.1/libgo/go/net/ip_test.go 159751 163430 --- 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+0000163431 +++ gcc-4.8.1/libgo/go/net/ip_test.go 2013-10-01 16:06:44.180554280 +0000 159753 163432 @@ -5,23 +5,12 @@ 159754 163433 package net … … 160066 163745 diff -Naur gcc-4.8.1.orig/libgo/go/net/ipraw_test.go gcc-4.8.1/libgo/go/net/ipraw_test.go 160067 163746 --- 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+0000163747 +++ gcc-4.8.1/libgo/go/net/ipraw_test.go 2013-10-01 16:06:44.180554280 +0000 160069 163748 @@ -2,32 +2,36 @@ 160070 163749 // Use of this source code is governed by a BSD-style … … 160586 164265 diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock.go gcc-4.8.1/libgo/go/net/iprawsock.go 160587 164266 --- 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+0000164267 +++ gcc-4.8.1/libgo/go/net/iprawsock.go 2013-10-01 16:06:44.180554280 +0000 160589 164268 @@ -2,8 +2,6 @@ 160590 164269 // Use of this source code is governed by a BSD-style … … 160623 164302 diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go gcc-4.8.1/libgo/go/net/iprawsock_plan9.go 160624 164303 --- 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+0000164304 +++ gcc-4.8.1/libgo/go/net/iprawsock_plan9.go 2013-10-01 16:06:44.180554280 +0000 160626 164305 @@ -2,8 +2,6 @@ 160627 164306 // Use of this source code is governed by a BSD-style … … 160653 164332 diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go gcc-4.8.1/libgo/go/net/iprawsock_posix.go 160654 164333 --- 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+0000164334 +++ gcc-4.8.1/libgo/go/net/iprawsock_posix.go 2013-10-01 16:06:44.180554280 +0000 160656 164335 @@ -4,8 +4,6 @@ 160657 164336 … … 160741 164420 diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock.go gcc-4.8.1/libgo/go/net/ipsock.go 160742 164421 --- 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+0000164422 +++ gcc-4.8.1/libgo/go/net/ipsock.go 2013-10-01 16:06:44.180554280 +0000 160744 164423 @@ -68,40 +68,94 @@ 160745 164424 func (e InvalidAddrError) Timeout() bool { return false } … … 160901 164580 diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go gcc-4.8.1/libgo/go/net/ipsock_plan9.go 160902 164581 --- 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+0000164582 +++ gcc-4.8.1/libgo/go/net/ipsock_plan9.go 2013-10-01 16:06:44.180554280 +0000 160904 164583 @@ -9,6 +9,7 @@ 160905 164584 import ( … … 161024 164703 diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go gcc-4.8.1/libgo/go/net/lookup_plan9.go 161025 164704 --- 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+0000164705 +++ gcc-4.8.1/libgo/go/net/lookup_plan9.go 2013-10-01 16:06:44.184554280 +0000 161027 164706 @@ -7,7 +7,6 @@ 161028 164707 import ( … … 161064 164743 diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_windows.go gcc-4.8.1/libgo/go/net/lookup_windows.go 161065 164744 --- 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+0000164745 +++ gcc-4.8.1/libgo/go/net/lookup_windows.go 2013-10-01 16:06:44.184554280 +0000 161067 164746 @@ -6,21 +6,17 @@ 161068 164747 … … 161417 165096 diff -Naur gcc-4.8.1.orig/libgo/go/net/multicast_test.go gcc-4.8.1/libgo/go/net/multicast_test.go 161418 165097 --- 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+0000165098 +++ gcc-4.8.1/libgo/go/net/multicast_test.go 2013-10-01 16:06:44.184554280 +0000 161420 165099 @@ -0,0 +1,184 @@ 161421 165100 +// Copyright 2011 The Go Authors. All rights reserved. … … 161605 165284 diff -Naur gcc-4.8.1.orig/libgo/go/net/net.go gcc-4.8.1/libgo/go/net/net.go 161606 165285 --- 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+0000165286 +++ gcc-4.8.1/libgo/go/net/net.go 2013-10-01 16:06:44.184554280 +0000 161608 165287 @@ -276,11 +276,23 @@ 161609 165288 … … 161635 165314 diff -Naur gcc-4.8.1.orig/libgo/go/net/net_test.go gcc-4.8.1/libgo/go/net/net_test.go 161636 165315 --- 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+0000165316 +++ gcc-4.8.1/libgo/go/net/net_test.go 2013-10-01 16:06:44.184554280 +0000 161638 165317 @@ -173,6 +173,10 @@ 161639 165318 } … … 161699 165378 diff -Naur gcc-4.8.1.orig/libgo/go/net/packetconn_test.go gcc-4.8.1/libgo/go/net/packetconn_test.go 161700 165379 --- 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+0000165380 +++ gcc-4.8.1/libgo/go/net/packetconn_test.go 2013-10-01 16:06:44.184554280 +0000 161702 165381 @@ -2,10 +2,12 @@ 161703 165382 // Use of this source code is governed by a BSD-style … … 161937 165616 diff -Naur gcc-4.8.1.orig/libgo/go/net/port_test.go gcc-4.8.1/libgo/go/net/port_test.go 161938 165617 --- 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+0000165618 +++ gcc-4.8.1/libgo/go/net/port_test.go 2013-10-01 16:06:44.184554280 +0000 161940 165619 @@ -46,7 +46,7 @@ 161941 165620 for i := 0; i < len(porttests); i++ { … … 161949 165628 diff -Naur gcc-4.8.1.orig/libgo/go/net/protoconn_test.go gcc-4.8.1/libgo/go/net/protoconn_test.go 161950 165629 --- 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+0000165630 +++ gcc-4.8.1/libgo/go/net/protoconn_test.go 2013-10-01 16:06:44.184554280 +0000 161952 165631 @@ -2,152 +2,161 @@ 161953 165632 // Use of this source code is governed by a BSD-style … … 162491 166170 diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/client.go gcc-4.8.1/libgo/go/net/rpc/client.go 162492 166171 --- 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+0000166172 +++ gcc-4.8.1/libgo/go/net/rpc/client.go 2013-10-01 16:06:44.184554280 +0000 162494 166173 @@ -71,7 +71,7 @@ 162495 166174 … … 162527 166206 diff -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 162528 166207 --- 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+0000166208 +++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go 2013-10-01 16:06:44.184554280 +0000 162530 166209 @@ -9,6 +9,7 @@ 162531 166210 "errors" … … 162561 166240 diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go 162562 166241 --- 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+0000166242 +++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go 2013-10-01 16:06:44.184554280 +0000 162564 166243 @@ -83,7 +83,7 @@ 162565 166244 … … 162573 166252 diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go gcc-4.8.1/libgo/go/net/rpc/server_test.go 162574 166253 --- 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+0000166254 +++ gcc-4.8.1/libgo/go/net/rpc/server_test.go 2013-10-01 16:06:44.184554280 +0000 162576 166255 @@ -399,12 +399,10 @@ 162577 166256 … … 162664 166343 diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go gcc-4.8.1/libgo/go/net/sendfile_freebsd.go 162665 166344 --- 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+0000166345 +++ gcc-4.8.1/libgo/go/net/sendfile_freebsd.go 2013-10-01 16:06:44.184554280 +0000 162667 166346 @@ -83,7 +83,7 @@ 162668 166347 break … … 162676 166355 diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go gcc-4.8.1/libgo/go/net/sendfile_linux.go 162677 166356 --- 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+0000166357 +++ gcc-4.8.1/libgo/go/net/sendfile_linux.go 2013-10-01 16:06:44.184554280 +0000 162679 166358 @@ -59,7 +59,7 @@ 162680 166359 break … … 162688 166367 diff -Naur gcc-4.8.1.orig/libgo/go/net/server_test.go gcc-4.8.1/libgo/go/net/server_test.go 162689 166368 --- 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+0000166369 +++ gcc-4.8.1/libgo/go/net/server_test.go 2013-10-01 16:06:44.184554280 +0000 162691 166370 @@ -9,6 +9,7 @@ 162692 166371 "io" … … 162902 166581 diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/auth.go gcc-4.8.1/libgo/go/net/smtp/auth.go 162903 166582 --- 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 +0000166583 +++ gcc-4.8.1/libgo/go/net/smtp/auth.go 2013-10-01 16:06:44.188554279 +0000 162905 166584 @@ -54,7 +54,16 @@ 162906 166585 … … 162923 166602 diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go gcc-4.8.1/libgo/go/net/smtp/smtp_test.go 162924 166603 --- 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 +0000166604 +++ gcc-4.8.1/libgo/go/net/smtp/smtp_test.go 2013-10-01 16:06:44.188554279 +0000 162926 166605 @@ -57,6 +57,41 @@ 162927 166606 } … … 162968 166647 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_bsd.go gcc-4.8.1/libgo/go/net/sock_bsd.go 162969 166648 --- 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 +0000166649 +++ gcc-4.8.1/libgo/go/net/sock_bsd.go 2013-10-01 16:06:44.188554279 +0000 162971 166650 @@ -4,8 +4,6 @@ 162972 166651 … … 163021 166700 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go gcc-4.8.1/libgo/go/net/sock_cloexec.go 163022 166701 --- 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+0000166702 +++ gcc-4.8.1/libgo/go/net/sock_cloexec.go 2013-10-01 16:06:44.188554279 +0000 163024 166703 @@ -44,20 +44,20 @@ 163025 166704 func accept(fd int) (int, syscall.Sockaddr, error) { … … 163050 166729 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_linux.go gcc-4.8.1/libgo/go/net/sock_linux.go 163051 166730 --- 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+0000166731 +++ gcc-4.8.1/libgo/go/net/sock_linux.go 2013-10-01 16:06:44.188554279 +0000 163053 166732 @@ -2,8 +2,6 @@ 163054 166733 // Use of this source code is governed by a BSD-style … … 163103 166782 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_posix.go gcc-4.8.1/libgo/go/net/sock_posix.go 163104 166783 --- 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+0000166784 +++ gcc-4.8.1/libgo/go/net/sock_posix.go 2013-10-01 16:06:44.188554279 +0000 163106 166785 @@ -4,8 +4,6 @@ 163107 166786 … … 163176 166855 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_solaris.go gcc-4.8.1/libgo/go/net/sock_solaris.go 163177 166856 --- 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+0000166857 +++ gcc-4.8.1/libgo/go/net/sock_solaris.go 2013-10-01 16:06:44.188554279 +0000 163179 166858 @@ -16,32 +16,3 @@ 163180 166859 // The kernel does not track the limit. … … 163212 166891 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_unix.go gcc-4.8.1/libgo/go/net/sock_unix.go 163213 166892 --- 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+0000166893 +++ gcc-4.8.1/libgo/go/net/sock_unix.go 2013-10-01 16:06:44.188554279 +0000 163215 166894 @@ -0,0 +1,36 @@ 163216 166895 +// Copyright 2009 The Go Authors. All rights reserved. … … 163252 166931 diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_windows.go gcc-4.8.1/libgo/go/net/sock_windows.go 163253 166932 --- 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+0000166933 +++ gcc-4.8.1/libgo/go/net/sock_windows.go 2013-10-01 16:06:44.188554279 +0000 163255 166934 @@ -2,14 +2,13 @@ 163256 166935 // Use of this source code is governed by a BSD-style … … 163304 166983 diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go gcc-4.8.1/libgo/go/net/sockopt_posix.go 163305 166984 --- 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+0000166985 +++ gcc-4.8.1/libgo/go/net/sockopt_posix.go 2013-10-01 16:06:44.188554279 +0000 163307 166986 @@ -11,7 +11,6 @@ 163308 166987 import ( … … 163340 167019 diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go gcc-4.8.1/libgo/go/net/sockopt_windows.go 163341 167020 --- 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+0000167021 +++ gcc-4.8.1/libgo/go/net/sockopt_windows.go 2013-10-01 16:06:44.188554279 +0000 163343 167022 @@ -9,6 +9,7 @@ 163344 167023 import ( … … 163373 167052 diff -Naur gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go gcc-4.8.1/libgo/go/net/sys_cloexec.go 163374 167053 --- 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+0000167054 +++ gcc-4.8.1/libgo/go/net/sys_cloexec.go 2013-10-01 16:06:44.188554279 +0000 163376 167055 @@ -35,14 +35,14 @@ 163377 167056 // descriptor as nonblocking and close-on-exec. … … 163394 167073 diff -Naur gcc-4.8.1.orig/libgo/go/net/tcp_test.go gcc-4.8.1/libgo/go/net/tcp_test.go 163395 167074 --- 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+0000167075 +++ gcc-4.8.1/libgo/go/net/tcp_test.go 2013-10-01 16:06:44.192554279 +0000 163397 167076 @@ -5,29 +5,58 @@ 163398 167077 package net … … 163609 167288 diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock.go gcc-4.8.1/libgo/go/net/tcpsock.go 163610 167289 --- 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+0000167290 +++ gcc-4.8.1/libgo/go/net/tcpsock.go 2013-10-01 16:06:44.188554279 +0000 163612 167291 @@ -2,8 +2,6 @@ 163613 167292 // Use of this source code is governed by a BSD-style … … 163645 167324 diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go gcc-4.8.1/libgo/go/net/tcpsock_plan9.go 163646 167325 --- 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+0000167326 +++ gcc-4.8.1/libgo/go/net/tcpsock_plan9.go 2013-10-01 16:06:44.188554279 +0000 163648 167327 @@ -2,8 +2,6 @@ 163649 167328 // Use of this source code is governed by a BSD-style … … 163710 167389 diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go gcc-4.8.1/libgo/go/net/tcpsock_posix.go 163711 167390 --- 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+0000167391 +++ gcc-4.8.1/libgo/go/net/tcpsock_posix.go 2013-10-01 16:06:44.188554279 +0000 163713 167392 @@ -4,8 +4,6 @@ 163714 167393 … … 163858 167537 diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader.go gcc-4.8.1/libgo/go/net/textproto/reader.go 163859 167538 --- 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+0000167539 +++ gcc-4.8.1/libgo/go/net/textproto/reader.go 2013-10-01 16:06:44.192554279 +0000 163861 167540 @@ -128,6 +128,17 @@ 163862 167541 return line, nil … … 163904 167583 diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go gcc-4.8.1/libgo/go/net/textproto/reader_test.go 163905 167584 --- 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+0000167585 +++ gcc-4.8.1/libgo/go/net/textproto/reader_test.go 2013-10-01 16:06:44.192554279 +0000 163907 167586 @@ -290,6 +290,7 @@ 163908 167587 `, "\n", "\r\n", -1) … … 163923 167602 diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go gcc-4.8.1/libgo/go/net/textproto/textproto.go 163924 167603 --- 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+0000167604 +++ gcc-4.8.1/libgo/go/net/textproto/textproto.go 2013-10-01 16:06:44.192554279 +0000 163926 167605 @@ -147,3 +147,8 @@ 163927 167606 func isASCIISpace(b byte) bool { … … 163935 167614 diff -Naur gcc-4.8.1.orig/libgo/go/net/timeout_test.go gcc-4.8.1/libgo/go/net/timeout_test.go 163936 167615 --- 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+0000167616 +++ gcc-4.8.1/libgo/go/net/timeout_test.go 2013-10-01 16:06:44.192554279 +0000 163938 167617 @@ -420,6 +420,11 @@ 163939 167618 } … … 164045 167724 diff -Naur gcc-4.8.1.orig/libgo/go/net/udp_test.go gcc-4.8.1/libgo/go/net/udp_test.go 164046 167725 --- 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+0000167726 +++ gcc-4.8.1/libgo/go/net/udp_test.go 2013-10-01 16:06:44.192554279 +0000 164048 167727 @@ -5,29 +5,45 @@ 164049 167728 package net … … 164226 167905 diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock.go gcc-4.8.1/libgo/go/net/udpsock.go 164227 167906 --- 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+0000167907 +++ gcc-4.8.1/libgo/go/net/udpsock.go 2013-10-01 16:06:44.192554279 +0000 164229 167908 @@ -2,8 +2,6 @@ 164230 167909 // Use of this source code is governed by a BSD-style … … 164262 167941 diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go gcc-4.8.1/libgo/go/net/udpsock_plan9.go 164263 167942 --- 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+0000167943 +++ gcc-4.8.1/libgo/go/net/udpsock_plan9.go 2013-10-01 16:06:44.192554279 +0000 164265 167944 @@ -2,8 +2,6 @@ 164266 167945 // Use of this source code is governed by a BSD-style … … 164369 168048 diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go gcc-4.8.1/libgo/go/net/udpsock_posix.go 164370 168049 --- 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+0000168050 +++ gcc-4.8.1/libgo/go/net/udpsock_posix.go 2013-10-01 16:06:44.192554279 +0000 164372 168051 @@ -4,8 +4,6 @@ 164373 168052 … … 164474 168153 diff -Naur gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go gcc-4.8.1/libgo/go/net/unicast_posix_test.go 164475 168154 --- 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+0000168155 +++ gcc-4.8.1/libgo/go/net/unicast_posix_test.go 2013-10-01 16:06:44.192554279 +0000 164477 168156 @@ -45,7 +45,7 @@ 164478 168157 // same port. … … 164579 168258 diff -Naur gcc-4.8.1.orig/libgo/go/net/unix_test.go gcc-4.8.1/libgo/go/net/unix_test.go 164580 168259 --- 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+0000168260 +++ gcc-4.8.1/libgo/go/net/unix_test.go 2013-10-01 16:06:44.192554279 +0000 164582 168261 @@ -0,0 +1,246 @@ 164583 168262 +// Copyright 2013 The Go Authors. All rights reserved. … … 164829 168508 diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock.go gcc-4.8.1/libgo/go/net/unixsock.go 164830 168509 --- 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+0000168510 +++ gcc-4.8.1/libgo/go/net/unixsock.go 2013-10-01 16:06:44.192554279 +0000 164832 168511 @@ -2,8 +2,6 @@ 164833 168512 // Use of this source code is governed by a BSD-style … … 164865 168544 diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go gcc-4.8.1/libgo/go/net/unixsock_plan9.go 164866 168545 --- 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+0000168546 +++ gcc-4.8.1/libgo/go/net/unixsock_plan9.go 2013-10-01 16:06:44.192554279 +0000 164868 168547 @@ -2,8 +2,6 @@ 164869 168548 // Use of this source code is governed by a BSD-style … … 164909 168588 diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go gcc-4.8.1/libgo/go/net/unixsock_posix.go 164910 168589 --- 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+0000168590 +++ gcc-4.8.1/libgo/go/net/unixsock_posix.go 2013-10-01 16:06:44.192554279 +0000 164912 168591 @@ -4,8 +4,6 @@ 164913 168592 … … 165071 168750 diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url.go gcc-4.8.1/libgo/go/net/url/url.go 165072 168751 --- 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+0000168752 +++ gcc-4.8.1/libgo/go/net/url/url.go 2013-10-01 16:06:44.192554279 +0000 165074 168753 @@ -220,6 +220,13 @@ 165075 168754 // … … 165304 168983 diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url_test.go gcc-4.8.1/libgo/go/net/url/url_test.go 165305 168984 --- 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+0000168985 +++ gcc-4.8.1/libgo/go/net/url/url_test.go 2013-10-01 16:06:44.192554279 +0000 165307 168986 @@ -251,6 +251,15 @@ 165308 168987 }, … … 167063 170742 diff -Naur gcc-4.8.1.orig/libgo/go/os/doc.go gcc-4.8.1/libgo/go/os/doc.go 167064 170743 --- 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+0000170744 +++ gcc-4.8.1/libgo/go/os/doc.go 2013-10-01 16:06:44.196554279 +0000 167066 170745 @@ -79,6 +79,8 @@ 167067 170746 // SysUsage returns system-dependent resource usage information about … … 167075 170754 diff -Naur gcc-4.8.1.orig/libgo/go/os/env_unix_test.go gcc-4.8.1/libgo/go/os/env_unix_test.go 167076 170755 --- 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+0000170756 +++ gcc-4.8.1/libgo/go/os/env_unix_test.go 2013-10-01 16:06:44.196554279 +0000 167078 170757 @@ -0,0 +1,30 @@ 167079 170758 +// Copyright 2013 The Go Authors. All rights reserved. … … 167109 170788 diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec.go gcc-4.8.1/libgo/go/os/exec/exec.go 167110 170789 --- 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+0000170790 +++ gcc-4.8.1/libgo/go/os/exec/exec.go 2013-10-01 16:06:44.196554279 +0000 167112 170791 @@ -235,6 +235,8 @@ 167113 170792 // Start starts the specified command but does not wait for it to complete. … … 167121 170800 diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go gcc-4.8.1/libgo/go/os/exec/exec_test.go 167122 170801 --- 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+0000170802 +++ gcc-4.8.1/libgo/go/os/exec/exec_test.go 2013-10-01 16:06:44.196554279 +0000 167124 170803 @@ -14,17 +14,23 @@ 167125 170804 "net/http" … … 167409 171088 diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go gcc-4.8.1/libgo/go/os/exec/lp_plan9.go 167410 171089 --- 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+0000171090 +++ gcc-4.8.1/libgo/go/os/exec/lp_plan9.go 2013-10-01 16:06:44.196554279 +0000 167412 171091 @@ -8,7 +8,6 @@ 167413 171092 "errors" … … 167429 171108 diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go gcc-4.8.1/libgo/go/os/exec/lp_unix.go 167430 171109 --- 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+0000171110 +++ gcc-4.8.1/libgo/go/os/exec/lp_unix.go 2013-10-01 16:06:44.196554279 +0000 167432 171111 @@ -42,6 +42,9 @@ 167433 171112 return "", &Error{file, err} … … 167442 171121 diff -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 167443 171122 --- 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+0000171123 +++ gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go 2013-10-01 16:06:44.196554279 +0000 167445 171124 @@ -0,0 +1,55 @@ 167446 171125 +// Copyright 2013 The Go Authors. All rights reserved. … … 167501 171180 diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go gcc-4.8.1/libgo/go/os/exec/lp_windows.go 167502 171181 --- 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+0000171182 +++ gcc-4.8.1/libgo/go/os/exec/lp_windows.go 2013-10-01 16:06:44.196554279 +0000 167504 171183 @@ -72,7 +72,7 @@ 167505 171184 return … … 167550 171229 diff -Naur gcc-4.8.1.orig/libgo/go/os/exec_posix.go gcc-4.8.1/libgo/go/os/exec_posix.go 167551 171230 --- 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+0000171231 +++ gcc-4.8.1/libgo/go/os/exec_posix.go 2013-10-01 16:06:44.196554279 +0000 167553 171232 @@ -118,9 +118,9 @@ 167554 171233 case status.Exited(): … … 167565 171244 diff -Naur gcc-4.8.1.orig/libgo/go/os/file_plan9.go gcc-4.8.1/libgo/go/os/file_plan9.go 167566 171245 --- 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+0000171246 +++ gcc-4.8.1/libgo/go/os/file_plan9.go 2013-10-01 16:06:44.196554279 +0000 167568 171247 @@ -104,7 +104,6 @@ 167569 171248 append = true … … 167617 171296 diff -Naur gcc-4.8.1.orig/libgo/go/os/file_posix.go gcc-4.8.1/libgo/go/os/file_posix.go 167618 171297 --- 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+0000171298 +++ gcc-4.8.1/libgo/go/os/file_posix.go 2013-10-01 16:06:44.196554279 +0000 167620 171299 @@ -46,8 +46,6 @@ 167621 171300 return string(b[0:n]), nil … … 167629 171308 diff -Naur gcc-4.8.1.orig/libgo/go/os/file_unix.go gcc-4.8.1/libgo/go/os/file_unix.go 167630 171309 --- 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+0000171310 +++ gcc-4.8.1/libgo/go/os/file_unix.go 2013-10-01 16:06:44.196554279 +0000 167632 171311 @@ -209,7 +209,6 @@ 167633 171312 … … 167640 171319 diff -Naur gcc-4.8.1.orig/libgo/go/os/getwd.go gcc-4.8.1/libgo/go/os/getwd.go 167641 171320 --- 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+0000171321 +++ gcc-4.8.1/libgo/go/os/getwd.go 2013-10-01 16:06:44.196554279 +0000 167643 171322 @@ -5,9 +5,15 @@ 167644 171323 package os … … 167698 171377 diff -Naur gcc-4.8.1.orig/libgo/go/os/os_test.go gcc-4.8.1/libgo/go/os/os_test.go 167699 171378 --- 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+0000171379 +++ gcc-4.8.1/libgo/go/os/os_test.go 2013-10-01 16:06:44.196554279 +0000 167701 171380 @@ -39,7 +39,6 @@ 167702 171381 sd = &sysDir{ … … 167709 171388 diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal.go gcc-4.8.1/libgo/go/os/signal/signal.go 167710 171389 --- 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+0000171390 +++ gcc-4.8.1/libgo/go/os/signal/signal.go 2013-10-01 16:06:44.196554279 +0000 167712 171391 @@ -5,7 +5,7 @@ 167713 171392 // Package signal implements access to incoming signals. … … 167850 171529 diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go gcc-4.8.1/libgo/go/os/signal/signal_stub.go 167851 171530 --- 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+0000171531 +++ gcc-4.8.1/libgo/go/os/signal/signal_stub.go 2013-10-01 16:06:44.196554279 +0000 167853 171532 @@ -8,4 +8,10 @@ 167854 171533 … … 167865 171544 diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go gcc-4.8.1/libgo/go/os/signal/signal_test.go 167866 171545 --- 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+0000171546 +++ gcc-4.8.1/libgo/go/os/signal/signal_test.go 2013-10-01 16:06:44.196554279 +0000 167868 171547 @@ -7,15 +7,17 @@ 167869 171548 package signal … … 168024 171703 diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go gcc-4.8.1/libgo/go/os/signal/signal_unix.go 168025 171704 --- 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+0000171705 +++ gcc-4.8.1/libgo/go/os/signal/signal_unix.go 2013-10-01 16:06:44.196554279 +0000 168027 171706 @@ -12,6 +12,7 @@ 168028 171707 ) … … 168068 171747 diff -Naur gcc-4.8.1.orig/libgo/go/os/stat.go gcc-4.8.1/libgo/go/os/stat.go 168069 171748 --- 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+0000171749 +++ gcc-4.8.1/libgo/go/os/stat.go 2013-10-01 16:06:44.200554279 +0000 168071 171750 @@ -9,9 +9,9 @@ 168072 171751 "time" … … 168084 171763 diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atim.go gcc-4.8.1/libgo/go/os/stat_atim.go 168085 171764 --- 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+0000171765 +++ gcc-4.8.1/libgo/go/os/stat_atim.go 2013-10-01 16:06:44.196554279 +0000 168087 171766 @@ -9,9 +9,9 @@ 168088 171767 "time" … … 168100 171779 diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go gcc-4.8.1/libgo/go/os/stat_atimespec.go 168101 171780 --- 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+0000171781 +++ gcc-4.8.1/libgo/go/os/stat_atimespec.go 2013-10-01 16:06:44.196554279 +0000 168103 171782 @@ -9,9 +9,9 @@ 168104 171783 "time" … … 168116 171795 diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_plan9.go gcc-4.8.1/libgo/go/os/stat_plan9.go 168117 171796 --- 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+0000171797 +++ gcc-4.8.1/libgo/go/os/stat_plan9.go 2013-10-01 16:06:44.200554279 +0000 168119 171798 @@ -9,9 +9,9 @@ 168120 171799 "time" … … 168132 171811 diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_solaris.go gcc-4.8.1/libgo/go/os/stat_solaris.go 168133 171812 --- 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+0000171813 +++ gcc-4.8.1/libgo/go/os/stat_solaris.go 2013-10-01 16:06:44.200554279 +0000 168135 171814 @@ -9,9 +9,9 @@ 168136 171815 "time" … … 168148 171827 diff -Naur gcc-4.8.1.orig/libgo/go/os/types.go gcc-4.8.1/libgo/go/os/types.go 168149 171828 --- 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+0000171829 +++ gcc-4.8.1/libgo/go/os/types.go 2013-10-01 16:06:44.200554279 +0000 168151 171830 @@ -99,21 +99,8 @@ 168152 171831 return m & ModePerm … … 168182 171861 diff -Naur gcc-4.8.1.orig/libgo/go/os/types_notwin.go gcc-4.8.1/libgo/go/os/types_notwin.go 168183 171862 --- 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+0000171863 +++ gcc-4.8.1/libgo/go/os/types_notwin.go 2013-10-01 16:06:44.200554279 +0000 168185 171864 @@ -0,0 +1,25 @@ 168186 171865 +// Copyright 2009 The Go Authors. All rights reserved. … … 168211 171890 diff -Naur gcc-4.8.1.orig/libgo/go/os/types_windows.go gcc-4.8.1/libgo/go/os/types_windows.go 168212 171891 --- 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+0000171892 +++ gcc-4.8.1/libgo/go/os/types_windows.go 2013-10-01 16:06:44.200554279 +0000 168214 171893 @@ -0,0 +1,104 @@ 168215 171894 +// Copyright 2009 The Go Authors. All rights reserved. … … 168319 171998 diff -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 168320 171999 --- 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+0000172000 +++ gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go 2013-10-01 16:06:44.200554279 +0000 168322 172001 @@ -0,0 +1,39 @@ 168323 172002 +// Copyright 2013 The Go Authors. All rights reserved. … … 168362 172041 diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go gcc-4.8.1/libgo/go/path/filepath/match_test.go 168363 172042 --- 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+0000172043 +++ gcc-4.8.1/libgo/go/path/filepath/match_test.go 2013-10-01 16:06:44.200554279 +0000 168365 172044 @@ -2,10 +2,9 @@ 168366 172045 // Use of this source code is governed by a BSD-style … … 168377 172056 diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path.go gcc-4.8.1/libgo/go/path/filepath/path.go 168378 172057 --- 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+0000172058 +++ gcc-4.8.1/libgo/go/path/filepath/path.go 2013-10-01 16:06:44.200554279 +0000 168380 172059 @@ -176,10 +176,7 @@ 168381 172060 // usually found in PATH or GOPATH environment variables. … … 168410 172089 diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go gcc-4.8.1/libgo/go/path/filepath/path_plan9.go 168411 172090 --- 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+0000172091 +++ gcc-4.8.1/libgo/go/path/filepath/path_plan9.go 2013-10-01 16:06:44.200554279 +0000 168413 172092 @@ -21,3 +21,10 @@ 168414 172093 func HasPrefix(p, prefix string) bool { … … 168424 172103 diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go gcc-4.8.1/libgo/go/path/filepath/path_test.go 168425 172104 --- 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+0000172105 +++ gcc-4.8.1/libgo/go/path/filepath/path_test.go 2013-10-01 16:06:44.200554279 +0000 168427 172106 @@ -91,7 +91,6 @@ 168428 172107 } … … 168510 172189 diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go gcc-4.8.1/libgo/go/path/filepath/path_unix.go 168511 172190 --- 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+0000172191 +++ gcc-4.8.1/libgo/go/path/filepath/path_unix.go 2013-10-01 16:06:44.200554279 +0000 168513 172192 @@ -23,3 +23,10 @@ 168514 172193 func HasPrefix(p, prefix string) bool { … … 168524 172203 diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go gcc-4.8.1/libgo/go/path/filepath/path_windows.go 168525 172204 --- 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+0000172205 +++ gcc-4.8.1/libgo/go/path/filepath/path_windows.go 2013-10-01 16:06:44.200554279 +0000 168527 172206 @@ -70,3 +70,36 @@ 168528 172207 } … … 168564 172243 diff -Naur gcc-4.8.1.orig/libgo/go/path/path_test.go gcc-4.8.1/libgo/go/path/path_test.go 168565 172244 --- 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+0000172245 +++ gcc-4.8.1/libgo/go/path/path_test.go 2013-10-01 16:06:44.200554279 +0000 168567 172246 @@ -64,7 +64,6 @@ 168568 172247 } … … 168610 172289 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/all_test.go gcc-4.8.1/libgo/go/reflect/all_test.go 168611 172290 --- 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+0000172291 +++ gcc-4.8.1/libgo/go/reflect/all_test.go 2013-10-01 16:06:44.200554279 +0000 168613 172292 @@ -13,7 +13,8 @@ 168614 172293 "math/rand" … … 168621 172300 "testing" 168622 172301 "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 } 168623 172329 @@ -1464,7 +1465,7 @@ 168624 172330 … … 168630 172336 } 168631 172337 168632 @@ -1480,2 3 +1481,23 @@172338 @@ -1480,24 +1481,93 @@ 168633 172339 if !ok { 168634 172340 t.Fatalf("method by name failed") … … 168660 172366 + if i != 325 { 168661 172367 + 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 + } 168670 172376 + i = v.Call([]Value{ValueOf(14)})[0].Int() 168671 172377 + if i != 350 { … … 168718 172424 + if tt := v.Type(); tt != tfunc { 168719 172425 + t.Errorf("Interface MethodByName Type is %s; want %s", tt, tfunc) 168720 +}172426 } 168721 172427 + i = v.Call([]Value{ValueOf(19)})[0].Int() 168722 172428 + if i != 475 { … … 168730 172436 + p := Point{3, 4} 168731 172437 + 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() 168739 172446 + i = ValueOf(v.Interface()).Call([]Value{ValueOf(10)})[0].Int() 168740 172447 if i != 250 { … … 168778 172485 168779 172486 // Curried method of interface value. 168780 @@ -1550, 18 +1620,207@@172487 @@ -1550,20 +1620,209 @@ 168781 172488 if tt := v.Type(); tt != tfunc { 168782 172489 t.Errorf("Interface Method Type is %s; want %s", tt, tfunc) … … 168799 172506 + if i != 375 { 168800 172507 + t.Errorf("Interface MethodByName returned %d; want 375", i) 168801 +}168802 +}168803 + 172508 } 172509 } 172510 168804 172511 +*/ 168805 172512 + … … 168894 172601 + t.Errorf("%s(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc) 168895 172602 + } 168896 }172603 + } 168897 172604 + */ 168898 172605 + … … 168989 172696 + vnil := ValueOf(&tnil).Elem() 168990 172697 + shouldPanic(func() { vnil.Method(0) }) 168991 }168992 172698 +} 172699 + 168993 172700 func TestInterfaceSet(t *testing.T) { 172701 p := &Point{3, 4} 172702 168994 172703 @@ -1891,6 +2150,7 @@ 168995 172704 func (*outer) m() {} … … 169078 172787 } 169079 172788 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 @@ 169081 172806 type T int 169082 172807 st := SliceOf(TypeOf(T(1))) … … 169089 172814 s := fmt.Sprint(v.Interface()) 169090 172815 want := "[0 1 2 3 4 5 6 7 8 9]" 169091 @@ -2769,13 +30 53,63 @@172816 @@ -2769,13 +3062,63 @@ 169092 172817 checkSameType(t, Zero(SliceOf(TypeOf(T1(1)))).Interface(), []T1{}) 169093 172818 } … … 169153 172878 sv1, _ := v.Recv() 169154 172879 sv2, _ := v.Recv() 169155 @@ -2790,13 +31 24,63 @@172880 @@ -2790,13 +3133,63 @@ 169156 172881 checkSameType(t, Zero(ChanOf(BothDir, TypeOf(T1(1)))).Interface(), (chan T1)(nil)) 169157 172882 } … … 169217 172942 s := fmt.Sprint(v.Interface()) 169218 172943 want := "map[a:1]" 169219 @@ -2806,6 +319 0,81 @@172944 @@ -2806,6 +3199,81 @@ 169220 172945 169221 172946 // check that type already in binary is found … … 169301 173026 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/deepequal.go gcc-4.8.1/libgo/go/reflect/deepequal.go 169302 173027 --- 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+0000173028 +++ gcc-4.8.1/libgo/go/reflect/deepequal.go 2013-10-01 16:06:44.200554279 +0000 169304 173029 @@ -118,8 +118,6 @@ 169305 173030 // Normal equality suffices … … 169313 173038 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc.go gcc-4.8.1/libgo/go/reflect/makefunc.go 169314 173039 --- 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" 169317 173046 "unsafe" 169318 173047 ) … … 169329 173058 // that wraps the function fn. When called, that new function 169330 173059 // does the following: 169331 @@ -37,45 +4 5,35@@173060 @@ -37,45 +46,54 @@ 169332 173061 panic("reflect: call of MakeFunc with non-Func type") 169333 173062 } 169334 173063 169335 173064 - ft := (*funcType)(unsafe.Pointer(typ.common())) 169336 + t := typ.common() 169337 + ftyp := (*funcType)(unsafe.Pointer(t)) 169338 173065 - 169339 173066 - // We will build a function that uses the C stdarg routines to 169340 173067 - // pull out the arguments. Since the stdarg routines require … … 169362 173089 - result = Kind(ft.out[0].kind) 169363 173090 - resultSize = ft.out[0].size 169364 - default: 173091 + switch runtime.GOARCH { 173092 + case "amd64", "386": 173093 default: 169365 173094 - 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} 169370 173111 +} 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() 169371 173119 + 169372 173120 +// makeMethodValue converts v from the rcvr+method index representation … … 169401 173149 + panic("reflect makeMethodValue not implemented") 169402 173150 } 173151 diff -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 173266 diff -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 173377 diff -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 +} 173393 diff -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 +} 173532 diff -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(®) 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(®), 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 +} 169403 174029 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/set_test.go gcc-4.8.1/libgo/go/reflect/set_test.go 169404 174030 --- 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+0000174031 +++ gcc-4.8.1/libgo/go/reflect/set_test.go 2013-10-01 16:06:44.200554279 +0000 169406 174032 @@ -81,7 +81,7 @@ 169407 174033 t.Errorf("#5 after SetMapIndex(b1, b2): %p (!= %p), %t (map=%v)", x, b2, ok, m) … … 169433 174059 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go gcc-4.8.1/libgo/go/reflect/tostring_test.go 169434 174060 --- 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+0000174061 +++ gcc-4.8.1/libgo/go/reflect/tostring_test.go 2013-10-01 16:06:44.204554279 +0000 169436 174062 @@ -92,5 +92,4 @@ 169437 174063 default: … … 169442 174068 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/type.go gcc-4.8.1/libgo/go/reflect/type.go 169443 174069 --- 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+0000174070 +++ gcc-4.8.1/libgo/go/reflect/type.go 2013-10-01 16:06:44.204554279 +0000 169445 174071 @@ -243,8 +243,8 @@ 169446 174072 size uintptr // size in bytes … … 169647 174273 diff -Naur gcc-4.8.1.orig/libgo/go/reflect/value.go gcc-4.8.1/libgo/go/reflect/value.go 169648 174274 --- 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 +0000174275 +++ gcc-4.8.1/libgo/go/reflect/value.go 2013-10-01 16:06:44.204554279 +0000 169650 174276 @@ -245,7 +245,7 @@ 169651 174277 panic(&ValueError{methodName(), 0}) … … 169750 174376 slice.Index(i).Set(x) 169751 174377 } 169752 @@ -462,6 +433, 10@@174378 @@ -462,6 +433,7 @@ 169753 174379 if v.flag&flagMethod != 0 { 169754 174380 nin++ 169755 174381 } 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) 169760 174383 params := make([]unsafe.Pointer, nin) 169761 174384 off := 0 169762 174385 if v.flag&flagMethod != 0 { 169763 @@ -471,7 +44 6,6 @@174386 @@ -471,7 +443,6 @@ 169764 174387 params[0] = unsafe.Pointer(p) 169765 174388 off = 1 … … 169769 174392 pv.mustBeExported() 169770 174393 targ := t.In(i).(*rtype) 169771 @@ -483,1 4 +457,17@@174394 @@ -483,11 +454,10 @@ 169772 174395 } else { 169773 174396 params[off] = pv.val … … 169782 174405 off++ 169783 174406 } 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 @@ 169792 174408 pr = &results[0] 169793 174409 } … … 169798 174414 return ret 169799 174415 } 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. 169804 174440 -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)) 169816 174452 +// methodReceiver returns information about the receiver 169817 174453 +// described by v. The Value v may or may not have the … … 169847 174483 + fn = unsafe.Pointer(&m.tfn) 169848 174484 + 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 } 169851 174534 + return 169852 174535 +} … … 169897 174580 + 169898 174581 + return 169899 +}169900 + 174582 } 174583 169901 174584 // 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 @@ 169905 174586 if v.flag == 0 { 169906 174587 panic(&ValueError{"reflect.Value.CanInterface", Invalid}) … … 169911 174592 169912 174593 // Interface returns v's current value as an interface{}. 169913 @@ -910,16 +9 75,15 @@174594 @@ -910,16 +907,15 @@ 169914 174595 if v.flag == 0 { 169915 174596 panic(&ValueError{"reflect.Value.Interface", 0}) … … 169931 174612 k := v.kind() 169932 174613 if k == Interface { 169933 @@ -974,7 + 1038,7 @@174614 @@ -974,7 +970,7 @@ 169934 174615 switch k { 169935 174616 case Chan, Func, Map, Ptr: … … 169940 174621 ptr := v.val 169941 174622 if v.flag&flagIndir != 0 { 169942 @@ -1093,7 +1 157,7 @@174623 @@ -1093,7 +1089,7 @@ 169943 174624 // Method returns a function value corresponding to v's i'th method. 169944 174625 // The arguments to a Call on the returned function should not include … … 169949 174630 if v.typ == nil { 169950 174631 panic(&ValueError{"reflect.Value.Method", Invalid}) 169951 @@ -1101,7 +1 165,10 @@174632 @@ -1101,7 +1097,10 @@ 169952 174633 if v.flag&flagMethod != 0 || i < 0 || i >= v.typ.NumMethod() { 169953 174634 panic("reflect: Method index out of range") … … 169961 174642 fl |= flag(i)<<flagMethodShift | flagMethod 169962 174643 return Value{v.typ, v.val, fl} 169963 @@ -1209,18 +12 76,43 @@174644 @@ -1209,18 +1208,43 @@ 169964 174645 // code using reflect cannot obtain unsafe.Pointers 169965 174646 // without importing the unsafe package explicitly. … … 170008 174689 return (*SliceHeader)(v.val).Data 170009 174690 } 170010 @@ -1243,7 +1 335,7 @@174691 @@ -1243,7 +1267,7 @@ 170011 174692 func (v Value) recv(nb bool) (val Value, ok bool) { 170012 174693 tt := (*chanType)(unsafe.Pointer(v.typ)) … … 170017 174698 word, selected, ok := chanrecv(v.typ, *(*iword)(v.iword()), nb) 170018 174699 if selected { 170019 @@ -1271,7 +1 363,7 @@174700 @@ -1271,7 +1295,7 @@ 170020 174701 func (v Value) send(x Value, nb bool) (selected bool) { 170021 174702 tt := (*chanType)(unsafe.Pointer(v.typ)) … … 170026 174707 x.mustBeExported() 170027 174708 x = x.assignTo("reflect.Value.Send", tt.elem, nil) 170028 @@ -1444,7 +1 536,7 @@174709 @@ -1444,7 +1468,7 @@ 170029 174710 } 170030 174711 … … 170035 174716 var ( 170036 174717 cap int 170037 @@ -1554,7 +1 646,7 @@174718 @@ -1554,7 +1578,7 @@ 170038 174719 // Method on interface. 170039 174720 tt := (*interfaceType)(unsafe.Pointer(v.typ)) … … 170044 174725 m := &tt.methods[i] 170045 174726 return toType(m.typ) 170046 @@ -1562,7 +1 654,7 @@174727 @@ -1562,7 +1586,7 @@ 170047 174728 // Method on concrete type. 170048 174729 ut := v.typ.uncommon() … … 170053 174734 m := &ut.methods[i] 170054 174735 return toType(m.mtyp) 170055 @@ -1611,14 +1 703,22 @@174736 @@ -1611,14 +1635,22 @@ 170056 174737 } 170057 174738 … … 170078 174759 Data uintptr 170079 174760 Len int 170080 @@ -1787,8 +18 87,9 @@174761 @@ -1787,8 +1819,9 @@ 170081 174762 } 170082 174763 … … 170090 174771 // boolean indicating whether the value corresponds to a send on the channel 170091 174772 // (as opposed to a zero value received because the channel is closed). 170092 @@ -2005,7 +2 106,7 @@174773 @@ -2005,7 +2038,7 @@ 170093 174774 // For a conversion to an interface type, target is a suggested scratch space to use. 170094 174775 func (v Value) assignTo(context string, dst *rtype, target *interface{}) Value { … … 170099 174780 170100 174781 switch { 170101 @@ -2039,7 +2 140,7 @@174782 @@ -2039,7 +2072,7 @@ 170102 174783 // of the value v to type t, Convert panics. 170103 174784 func (v Value) Convert(t Type) Value { … … 170110 174791 diff -Naur gcc-4.8.1.orig/libgo/go/regexp/exec_test.go gcc-4.8.1/libgo/go/regexp/exec_test.go 170111 174792 --- 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 +0000174793 +++ gcc-4.8.1/libgo/go/regexp/exec_test.go 2013-10-01 16:06:44.204554279 +0000 170113 174794 @@ -89,7 +89,7 @@ 170114 174795 txt = f … … 170169 174850 diff -Naur gcc-4.8.1.orig/libgo/go/regexp/regexp.go gcc-4.8.1/libgo/go/regexp/regexp.go 170170 174851 --- 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 +0000174852 +++ gcc-4.8.1/libgo/go/regexp/regexp.go 2013-10-01 16:06:44.204554279 +0000 170172 174853 @@ -8,6 +8,8 @@ 170173 174854 // general syntax used by Perl, Python, and other languages. … … 170240 174921 diff -Naur gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go gcc-4.8.1/libgo/go/regexp/syntax/doc.go 170241 174922 --- 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 +0000174923 +++ gcc-4.8.1/libgo/go/regexp/syntax/doc.go 2013-10-01 16:06:44.204554279 +0000 170243 174924 @@ -47,9 +47,9 @@ 170244 174925 x{n}? exactly n x … … 170256 174937 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/append_test.go gcc-4.8.1/libgo/go/runtime/append_test.go 170257 174938 --- 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 +0000174939 +++ gcc-4.8.1/libgo/go/runtime/append_test.go 2013-10-01 16:06:44.204554279 +0000 170259 174940 @@ -19,6 +19,67 @@ 170260 174941 } … … 170341 175022 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go 170342 175023 --- 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+0000175024 +++ gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go 2013-10-01 16:06:44.204554279 +0000 170344 175025 @@ -11,5 +11,80 @@ 170345 175026 ) … … 170426 175107 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_test.go gcc-4.8.1/libgo/go/runtime/crash_test.go 170427 175108 --- 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+0000175109 +++ gcc-4.8.1/libgo/go/runtime/crash_test.go 2013-10-01 16:06:44.204554279 +0000 170429 175110 @@ -7,21 +7,33 @@ 170430 175111 import ( … … 170625 175306 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go gcc-4.8.1/libgo/go/runtime/debug/garbage.go 170626 175307 --- 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+0000175308 +++ gcc-4.8.1/libgo/go/runtime/debug/garbage.go 2013-10-01 16:06:44.204554279 +0000 170628 175309 @@ -0,0 +1,101 @@ 170629 175310 +// Copyright 2013 The Go Authors. All rights reserved. … … 170730 175411 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go 170731 175412 --- 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+0000175413 +++ gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go 2013-10-01 16:06:44.204554279 +0000 170733 175414 @@ -0,0 +1,102 @@ 170734 175415 +// Copyright 2013 The Go Authors. All rights reserved. … … 170836 175517 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/export_test.go gcc-4.8.1/libgo/go/runtime/export_test.go 170837 175518 --- 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+0000175519 +++ gcc-4.8.1/libgo/go/runtime/export_test.go 2013-10-01 16:06:44.204554279 +0000 170839 175520 @@ -59,3 +59,9 @@ 170840 175521 begin, end := parforiters(desc, uintptr(tid)) … … 170849 175530 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/extern.go gcc-4.8.1/libgo/go/runtime/extern.go 170850 175531 --- 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+0000175532 +++ gcc-4.8.1/libgo/go/runtime/extern.go 2013-10-01 16:06:44.204554279 +0000 170852 175533 @@ -3,10 +3,54 @@ 170853 175534 // license that can be found in the LICENSE file. … … 170921 175602 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/gc_test.go gcc-4.8.1/libgo/go/runtime/gc_test.go 170922 175603 --- 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+0000175604 +++ gcc-4.8.1/libgo/go/runtime/gc_test.go 2013-10-01 16:06:44.208554279 +0000 170924 175605 @@ -5,12 +5,36 @@ 170925 175606 package runtime_test … … 171065 175746 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/map_test.go gcc-4.8.1/libgo/go/runtime/map_test.go 171066 175747 --- 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+0000175748 +++ gcc-4.8.1/libgo/go/runtime/map_test.go 2013-10-01 16:06:44.208554279 +0000 171068 175749 @@ -0,0 +1,380 @@ 171069 175750 +// Copyright 2013 The Go Authors. All rights reserved. … … 171449 176130 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go gcc-4.8.1/libgo/go/runtime/mapspeed_test.go 171450 176131 --- 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+0000176132 +++ gcc-4.8.1/libgo/go/runtime/mapspeed_test.go 2013-10-01 16:06:44.208554279 +0000 171452 176133 @@ -0,0 +1,208 @@ 171453 176134 +// Copyright 2013 The Go Authors. All rights reserved. … … 171661 176342 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go gcc-4.8.1/libgo/go/runtime/parfor_test.go 171662 176343 --- 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+0000176344 +++ gcc-4.8.1/libgo/go/runtime/parfor_test.go 2013-10-01 16:06:44.208554279 +0000 171664 176345 @@ -13,6 +13,8 @@ 171665 176346 "unsafe" … … 171696 176377 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go gcc-4.8.1/libgo/go/runtime/pprof/pprof.go 171697 176378 --- 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+0000176379 +++ gcc-4.8.1/libgo/go/runtime/pprof/pprof.go 2013-10-01 16:06:44.208554279 +0000 171699 176380 @@ -318,21 +318,33 @@ 171700 176381 // for a single stack trace. … … 171736 176417 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/proc_test.go gcc-4.8.1/libgo/go/runtime/proc_test.go 171737 176418 --- 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+0000176419 +++ gcc-4.8.1/libgo/go/runtime/proc_test.go 2013-10-01 16:06:44.208554279 +0000 171739 176420 @@ -5,9 +5,11 @@ 171740 176421 package runtime_test … … 171956 176637 diff -Naur gcc-4.8.1.orig/libgo/go/runtime/string_test.go gcc-4.8.1/libgo/go/runtime/string_test.go 171957 176638 --- 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+0000176639 +++ gcc-4.8.1/libgo/go/runtime/string_test.go 2013-10-01 16:06:44.208554279 +0000 171959 176640 @@ -1,3 +1,7 @@ 171960 176641 +// Copyright 2012 The Go Authors. All rights reserved. … … 171999 176680 diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go gcc-4.8.1/libgo/go/sort/example_keys_test.go 172000 176681 --- 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+0000176682 +++ gcc-4.8.1/libgo/go/sort/example_keys_test.go 2013-10-01 16:06:44.208554279 +0000 172002 176683 @@ -0,0 +1,96 @@ 172003 176684 +// Copyright 2013 The Go Authors. All rights reserved. … … 172099 176780 diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go gcc-4.8.1/libgo/go/sort/example_multi_test.go 172100 176781 --- 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+0000176782 +++ gcc-4.8.1/libgo/go/sort/example_multi_test.go 2013-10-01 16:06:44.208554279 +0000 172102 176783 @@ -0,0 +1,132 @@ 172103 176784 +// Copyright 2013 The Go Authors. All rights reserved. … … 172269 176950 diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_test.go gcc-4.8.1/libgo/go/sort/example_test.go 172270 176951 --- 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+0000176952 +++ gcc-4.8.1/libgo/go/sort/example_test.go 2013-10-01 16:06:44.208554279 +0000 172272 176953 @@ -15,3 +15,10 @@ 172273 176954 fmt.Println(s) … … 172283 176964 diff -Naur gcc-4.8.1.orig/libgo/go/sort/search_test.go gcc-4.8.1/libgo/go/sort/search_test.go 172284 176965 --- 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+0000176966 +++ gcc-4.8.1/libgo/go/sort/search_test.go 2013-10-01 16:06:44.208554279 +0000 172286 176967 @@ -5,6 +5,7 @@ 172287 176968 package sort_test … … 172327 177008 diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort.go gcc-4.8.1/libgo/go/sort/sort.go 172328 177009 --- 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+0000177010 +++ gcc-4.8.1/libgo/go/sort/sort.go 2013-10-01 16:06:44.208554279 +0000 172330 177011 @@ -6,8 +6,6 @@ 172331 177012 // collections. … … 172430 177111 diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort_test.go gcc-4.8.1/libgo/go/sort/sort_test.go 172431 177112 --- 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+0000177113 +++ gcc-4.8.1/libgo/go/sort/sort_test.go 2013-10-01 16:06:44.208554279 +0000 172433 177114 @@ -92,6 +92,23 @@ 172434 177115 } … … 172505 177186 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atof_test.go gcc-4.8.1/libgo/go/strconv/atof_test.go 172506 177187 --- 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+0000177188 +++ gcc-4.8.1/libgo/go/strconv/atof_test.go 2013-10-01 16:06:44.208554279 +0000 172508 177189 @@ -110,6 +110,7 @@ 172509 177190 {"1e", "0", ErrSyntax}, … … 172516 177197 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi.go gcc-4.8.1/libgo/go/strconv/atoi.go 172517 177198 --- 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+0000177199 +++ gcc-4.8.1/libgo/go/strconv/atoi.go 2013-10-01 16:06:44.208554279 +0000 172519 177200 @@ -20,7 +20,7 @@ 172520 177201 } … … 172528 177209 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go gcc-4.8.1/libgo/go/strconv/atoi_test.go 172529 177210 --- 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+0000177211 +++ gcc-4.8.1/libgo/go/strconv/atoi_test.go 2013-10-01 16:06:44.208554279 +0000 172531 177212 @@ -5,6 +5,7 @@ 172532 177213 package strconv_test … … 172576 177257 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/extfloat.go gcc-4.8.1/libgo/go/strconv/extfloat.go 172577 177258 --- 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+0000177259 +++ gcc-4.8.1/libgo/go/strconv/extfloat.go 2013-10-01 16:06:44.208554279 +0000 172579 177260 @@ -636,7 +636,6 @@ 172580 177261 1<<shift, multiplier*2) … … 172587 177268 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/fp_test.go gcc-4.8.1/libgo/go/strconv/fp_test.go 172588 177269 --- 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+0000177270 +++ gcc-4.8.1/libgo/go/strconv/fp_test.go 2013-10-01 16:06:44.208554279 +0000 172590 177271 @@ -7,7 +7,6 @@ 172591 177272 import ( … … 172629 177310 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/quote.go gcc-4.8.1/libgo/go/strconv/quote.go 172630 177311 --- 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+0000177312 +++ gcc-4.8.1/libgo/go/strconv/quote.go 2013-10-01 16:06:44.208554279 +0000 172632 177313 @@ -139,8 +139,9 @@ 172633 177314 return append(dst, QuoteRuneToASCII(r)...) … … 172644 177325 diff -Naur gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go gcc-4.8.1/libgo/go/strconv/strconv_test.go 172645 177326 --- 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+0000177327 +++ gcc-4.8.1/libgo/go/strconv/strconv_test.go 2013-10-01 16:06:44.208554279 +0000 172647 177328 @@ -24,14 +24,12 @@ 172648 177329 desc string … … 172690 177371 diff -Naur gcc-4.8.1.orig/libgo/go/strings/example_test.go gcc-4.8.1/libgo/go/strings/example_test.go 172691 177372 --- 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+0000177373 +++ gcc-4.8.1/libgo/go/strings/example_test.go 2013-10-01 16:06:44.212554279 +0000 172693 177374 @@ -179,3 +179,19 @@ 172694 177375 fmt.Println(strings.ToLower("Gopher")) … … 172713 177394 diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings.go gcc-4.8.1/libgo/go/strings/strings.go 172714 177395 --- 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+0000177396 +++ gcc-4.8.1/libgo/go/strings/strings.go 2013-10-01 16:06:44.212554279 +0000 172716 177397 @@ -26,7 +26,11 @@ 172717 177398 i, cur := 0, 0 … … 172907 177588 diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings_test.go gcc-4.8.1/libgo/go/strings/strings_test.go 172908 177589 --- 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+0000177590 +++ gcc-4.8.1/libgo/go/strings/strings_test.go 2013-10-01 16:06:44.212554279 +0000 172910 177591 @@ -496,8 +496,8 @@ 172911 177592 func TestTrimSpace(t *testing.T) { runStringTests(t, TrimSpace, "TrimSpace", trimSpaceTests) } … … 173048 177729 diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go 173049 177730 --- 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+0000177731 +++ gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go 2013-10-01 16:06:44.212554279 +0000 173051 177732 @@ -1119,7 +1119,7 @@ 173052 177733 d1 := X.data1 … … 173101 177782 diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/race.go gcc-4.8.1/libgo/go/sync/atomic/race.go 173102 177783 --- 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+0000177784 +++ gcc-4.8.1/libgo/go/sync/atomic/race.go 2013-10-01 16:06:44.212554279 +0000 173104 177785 @@ -25,6 +25,7 @@ 173105 177786 } … … 173224 177905 diff -Naur gcc-4.8.1.orig/libgo/go/sync/cond.go gcc-4.8.1/libgo/go/sync/cond.go 173225 177906 --- 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+0000177907 +++ gcc-4.8.1/libgo/go/sync/cond.go 2013-10-01 16:06:44.212554279 +0000 173227 177908 @@ -57,6 +57,7 @@ 173228 177909 // … … 173251 177932 diff -Naur gcc-4.8.1.orig/libgo/go/sync/example_test.go gcc-4.8.1/libgo/go/sync/example_test.go 173252 177933 --- 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+0000177934 +++ gcc-4.8.1/libgo/go/sync/example_test.go 2013-10-01 16:06:44.212554279 +0000 173254 177935 @@ -24,10 +24,10 @@ 173255 177936 wg.Add(1) … … 173276 177957 diff -Naur gcc-4.8.1.orig/libgo/go/sync/mutex.go gcc-4.8.1/libgo/go/sync/mutex.go 173277 177958 --- 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+0000177959 +++ gcc-4.8.1/libgo/go/sync/mutex.go 2013-10-01 16:06:44.212554279 +0000 173279 177960 @@ -81,6 +81,7 @@ 173280 177961 // arrange for another goroutine to unlock it. … … 173287 177968 diff -Naur gcc-4.8.1.orig/libgo/go/sync/rwmutex.go gcc-4.8.1/libgo/go/sync/rwmutex.go 173288 177969 --- 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+0000177970 +++ gcc-4.8.1/libgo/go/sync/rwmutex.go 2013-10-01 16:06:44.212554279 +0000 173290 177971 @@ -28,6 +28,7 @@ 173291 177972 // RLock locks rw for reading. … … 173322 178003 diff -Naur gcc-4.8.1.orig/libgo/go/sync/waitgroup.go gcc-4.8.1/libgo/go/sync/waitgroup.go 173323 178004 --- 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+0000178005 +++ gcc-4.8.1/libgo/go/sync/waitgroup.go 2013-10-01 16:06:44.212554279 +0000 173325 178006 @@ -34,10 +34,16 @@ 173326 178007 // G3: Wait() // G1 still hasn't run, G3 finds sema == 1, unblocked! Bug. … … 173351 178032 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go gcc-4.8.1/libgo/go/syscall/dir_plan9.go 173352 178033 --- 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+0000178034 +++ gcc-4.8.1/libgo/go/syscall/dir_plan9.go 2013-10-01 16:06:44.212554279 +0000 173354 178035 @@ -68,9 +68,9 @@ 173355 178036 b = pbit16(b, uint16(n)-2) … … 173378 178059 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go gcc-4.8.1/libgo/go/syscall/env_plan9.go 173379 178060 --- 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+0000178061 +++ gcc-4.8.1/libgo/go/syscall/env_plan9.go 2013-10-01 16:06:44.212554279 +0000 173381 178062 @@ -15,12 +15,15 @@ 173382 178063 // envOnce guards copyenv, which populates env. … … 173452 178133 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_unix.go gcc-4.8.1/libgo/go/syscall/env_unix.go 173453 178134 --- 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+0000178135 +++ gcc-4.8.1/libgo/go/syscall/env_unix.go 2013-10-01 16:06:44.212554279 +0000 173455 178136 @@ -71,6 +71,16 @@ 173456 178137 if len(key) == 0 { … … 173472 178153 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go gcc-4.8.1/libgo/go/syscall/exec_bsd.go 173473 178154 --- 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+0000178155 +++ gcc-4.8.1/libgo/go/syscall/exec_bsd.go 2013-10-01 16:06:44.212554279 +0000 173475 178156 @@ -38,10 +38,18 @@ 173476 178157 i int … … 173514 178195 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go gcc-4.8.1/libgo/go/syscall/exec_linux.go 173515 178196 --- 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+0000178197 +++ gcc-4.8.1/libgo/go/syscall/exec_linux.go 2013-10-01 16:06:44.212554279 +0000 173517 178198 @@ -43,11 +43,18 @@ 173518 178199 i int … … 173545 178226 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk gcc-4.8.1/libgo/go/syscall/mksyscall.awk 173546 178227 --- 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+0000178228 +++ gcc-4.8.1/libgo/go/syscall/mksyscall.awk 2013-10-01 16:06:44.212554279 +0000 173548 178229 @@ -53,7 +53,7 @@ 173549 178230 } … … 173566 178247 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go gcc-4.8.1/libgo/go/syscall/passfd_test.go 173567 178248 --- 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+0000178249 +++ gcc-4.8.1/libgo/go/syscall/passfd_test.go 2013-10-01 16:06:44.212554279 +0000 173569 178250 @@ -2,7 +2,7 @@ 173570 178251 // Use of this source code is governed by a BSD-style … … 173641 178322 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go gcc-4.8.1/libgo/go/syscall/route_bsd.go 173642 178323 --- 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+0000178324 +++ gcc-4.8.1/libgo/go/syscall/route_bsd.go 2013-10-01 16:06:44.212554279 +0000 173644 178325 @@ -8,9 +8,7 @@ 173645 178326 … … 173767 178448 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go gcc-4.8.1/libgo/go/syscall/route_darwin.go 173768 178449 --- 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+0000178450 +++ gcc-4.8.1/libgo/go/syscall/route_darwin.go 2013-10-01 16:06:44.212554279 +0000 173770 178451 @@ -6,36 +6,22 @@ 173771 178452 … … 173839 178520 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go gcc-4.8.1/libgo/go/syscall/route_freebsd.go 173840 178521 --- 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+0000178522 +++ gcc-4.8.1/libgo/go/syscall/route_freebsd.go 2013-10-01 16:06:44.212554279 +0000 173842 178523 @@ -6,40 +6,37 @@ 173843 178524 … … 173926 178607 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go gcc-4.8.1/libgo/go/syscall/route_netbsd.go 173927 178608 --- 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+0000178609 +++ gcc-4.8.1/libgo/go/syscall/route_netbsd.go 2013-10-01 16:06:44.212554279 +0000 173929 178610 @@ -6,30 +6,30 @@ 173930 178611 … … 173976 178657 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go gcc-4.8.1/libgo/go/syscall/route_openbsd.go 173977 178658 --- 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+0000178659 +++ gcc-4.8.1/libgo/go/syscall/route_openbsd.go 2013-10-01 16:06:44.212554279 +0000 173979 178660 @@ -6,30 +6,30 @@ 173980 178661 … … 174026 178707 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/security_windows.go gcc-4.8.1/libgo/go/syscall/security_windows.go 174027 178708 --- 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+0000178709 +++ gcc-4.8.1/libgo/go/syscall/security_windows.go 2013-10-01 16:06:44.212554279 +0000 174029 178710 @@ -70,7 +70,7 @@ 174030 178711 … … 174038 178719 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go 174039 178720 --- 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+0000178721 +++ gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go 2013-10-01 16:06:44.216554279 +0000 174041 178722 @@ -13,7 +13,7 @@ 174042 178723 "unsafe" … … 174098 178779 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket.go gcc-4.8.1/libgo/go/syscall/socket.go 174099 178780 --- 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+0000178781 +++ gcc-4.8.1/libgo/go/syscall/socket.go 2013-10-01 16:06:44.216554279 +0000 174101 178782 @@ -79,7 +79,7 @@ 174102 178783 func (sa *SockaddrUnix) sockaddr() (*RawSockaddrAny, Socklen_t, error) { … … 174138 178819 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go gcc-4.8.1/libgo/go/syscall/socket_bsd.go 174139 178820 --- 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+0000178821 +++ gcc-4.8.1/libgo/go/syscall/socket_bsd.go 2013-10-01 16:06:44.216554279 +0000 174141 178822 @@ -11,11 +11,11 @@ 174142 178823 const SizeofSockaddrUnix = 110 … … 174208 178889 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go gcc-4.8.1/libgo/go/syscall/socket_irix.go 174209 178890 --- 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+0000178891 +++ gcc-4.8.1/libgo/go/syscall/socket_irix.go 2013-10-01 16:06:44.216554279 +0000 174211 178892 @@ -64,6 +64,10 @@ 174212 178893 return n, nil … … 174222 178903 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go gcc-4.8.1/libgo/go/syscall/socket_linux.go 174223 178904 --- 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+0000178905 +++ gcc-4.8.1/libgo/go/syscall/socket_linux.go 2013-10-01 16:06:44.216554279 +0000 174225 178906 @@ -110,6 +110,15 @@ 174226 178907 return n, nil … … 174241 178922 diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go gcc-4.8.1/libgo/go/syscall/socket_solaris.go 174242 178923 --- 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+0000178924 +++ gcc-4.8.1/libgo/go/syscall/socket_solaris.go 2013-10-01 16:06:44.216554279 +0000 174244 178925 @@ -12,9 +12,9 @@ 174245 178926 … … 174320 179001 diff -Naur gcc-4.8.1.orig/libgo/go/testing/allocs.go gcc-4.8.1/libgo/go/testing/allocs.go 174321 179002 --- 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+0000179003 +++ gcc-4.8.1/libgo/go/testing/allocs.go 2013-10-01 16:06:44.216554279 +0000 174323 179004 @@ -0,0 +1,41 @@ 174324 179005 +// Copyright 2013 The Go Authors. All rights reserved. … … 174365 179046 diff -Naur gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go gcc-4.8.1/libgo/go/testing/iotest/reader.go 174366 179047 --- 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+0000179048 +++ gcc-4.8.1/libgo/go/testing/iotest/reader.go 2013-10-01 16:06:44.216554279 +0000 174368 179049 @@ -37,9 +37,11 @@ 174369 179050 return r.r.Read(p[0 : (len(p)+1)/2]) … … 174383 179064 diff -Naur gcc-4.8.1.orig/libgo/go/testing/quick/quick.go gcc-4.8.1/libgo/go/testing/quick/quick.go 174384 179065 --- 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+0000179066 +++ gcc-4.8.1/libgo/go/testing/quick/quick.go 2013-10-01 16:06:44.216554279 +0000 174386 179067 @@ -140,8 +140,6 @@ 174387 179068 default: … … 174395 179076 diff -Naur gcc-4.8.1.orig/libgo/go/testing/testing.go gcc-4.8.1/libgo/go/testing/testing.go 174396 179077 --- 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+0000179078 +++ gcc-4.8.1/libgo/go/testing/testing.go 2013-10-01 16:06:44.216554279 +0000 174398 179079 @@ -10,7 +10,7 @@ 174399 179080 // [a-z]) and serves to identify the test routine. … … 174628 179309 diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec.go gcc-4.8.1/libgo/go/text/template/exec.go 174629 179310 --- 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+0000179311 +++ gcc-4.8.1/libgo/go/text/template/exec.go 2013-10-01 16:06:44.216554279 +0000 174631 179312 @@ -5,6 +5,7 @@ 174632 179313 package template … … 174673 179354 diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec_test.go gcc-4.8.1/libgo/go/text/template/exec_test.go 174674 179355 --- 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+0000179356 +++ gcc-4.8.1/libgo/go/text/template/exec_test.go 2013-10-01 16:06:44.216554279 +0000 174676 179357 @@ -499,6 +499,8 @@ 174677 179358 {"bug8b", "{{4|dddArg 3}}", "", tVal, false}, … … 174761 179442 diff -Naur gcc-4.8.1.orig/libgo/go/text/template/funcs.go gcc-4.8.1/libgo/go/text/template/funcs.go 174762 179443 --- 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+0000179444 +++ gcc-4.8.1/libgo/go/text/template/funcs.go 2013-10-01 16:06:44.216554279 +0000 174764 179445 @@ -18,7 +18,7 @@ 174765 179446 // FuncMap is the type of the map defining the mapping from names to functions. … … 174773 179454 diff -Naur gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go gcc-4.8.1/libgo/go/text/template/parse/parse.go 174774 179455 --- 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+0000179456 +++ gcc-4.8.1/libgo/go/text/template/parse/parse.go 2013-10-01 16:06:44.216554279 +0000 174776 179457 @@ -429,7 +429,6 @@ 174777 179458 t.unexpected(token, context) … … 174792 179473 diff -Naur gcc-4.8.1.orig/libgo/go/time/example_test.go gcc-4.8.1/libgo/go/time/example_test.go 174793 179474 --- 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+0000179475 +++ gcc-4.8.1/libgo/go/time/example_test.go 2013-10-01 16:06:44.216554279 +0000 174795 179476 @@ -58,15 +58,52 @@ 174796 179477 } … … 174851 179532 diff -Naur gcc-4.8.1.orig/libgo/go/time/format.go gcc-4.8.1/libgo/go/time/format.go 174852 179533 --- 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+0000179534 +++ gcc-4.8.1/libgo/go/time/format.go 2013-10-01 16:06:44.216554279 +0000 174854 179535 @@ -6,15 +6,17 @@ 174855 179536 … … 175034 179715 diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep.go gcc-4.8.1/libgo/go/time/sleep.go 175035 179716 --- 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+0000179717 +++ gcc-4.8.1/libgo/go/time/sleep.go 2013-10-01 16:06:44.216554279 +0000 175037 179718 @@ -18,10 +18,25 @@ 175038 179719 i int32 … … 175094 179775 diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep_test.go gcc-4.8.1/libgo/go/time/sleep_test.go 175095 179776 --- 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+0000179777 +++ gcc-4.8.1/libgo/go/time/sleep_test.go 2013-10-01 16:06:44.216554279 +0000 175097 179778 @@ -60,10 +60,11 @@ 175098 179779 Sleep(Nanosecond) … … 175135 179816 diff -Naur gcc-4.8.1.orig/libgo/go/time/time_test.go gcc-4.8.1/libgo/go/time/time_test.go 175136 179817 --- 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+0000179818 +++ gcc-4.8.1/libgo/go/time/time_test.go 2013-10-01 16:06:44.216554279 +0000 175138 179819 @@ -479,6 +479,7 @@ 175139 179820 {"RubyDate", RubyDate, "Thu Feb 04 21:00:57 -0800 2010", true, true, 1, 0}, … … 175247 179928 diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo.go gcc-4.8.1/libgo/go/time/zoneinfo.go 175248 179929 --- 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+0000179930 +++ gcc-4.8.1/libgo/go/time/zoneinfo.go 2013-10-01 16:06:44.220554279 +0000 175250 179931 @@ -145,15 +145,36 @@ 175251 179932 } … … 175289 179970 diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go gcc-4.8.1/libgo/go/time/zoneinfo_read.go 175290 179971 --- 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+0000179972 +++ gcc-4.8.1/libgo/go/time/zoneinfo_read.go 2013-10-01 16:06:44.220554279 +0000 175292 179973 @@ -174,6 +174,12 @@ 175293 179974 } … … 175305 179986 diff -Naur gcc-4.8.1.orig/libgo/go/unicode/letter.go gcc-4.8.1/libgo/go/unicode/letter.go 175306 179987 --- 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+0000179988 +++ gcc-4.8.1/libgo/go/unicode/letter.go 2013-10-01 16:06:44.220554279 +0000 175308 179989 @@ -151,7 +151,7 @@ 175309 179990 return false … … 175317 179998 diff -Naur gcc-4.8.1.orig/libgo/go/unicode/tables.go gcc-4.8.1/libgo/go/unicode/tables.go 175318 179999 --- 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+0000180000 +++ gcc-4.8.1/libgo/go/unicode/tables.go 2013-10-01 16:06:44.220554279 +0000 175320 180001 @@ -2864,7 +2864,7 @@ 175321 180002 Lo = _Lo // Lo is the set of Unicode characters in category Lo. … … 175329 180010 diff -Naur gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go 175330 180011 --- 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+0000180012 +++ gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go 2013-10-01 16:06:44.220554279 +0000 175332 180013 @@ -124,7 +124,7 @@ 175333 180014 s := m.str … … 175359 180040 diff -Naur gcc-4.8.1.orig/libgo/merge.sh gcc-4.8.1/libgo/merge.sh 175360 180041 --- 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+0000180042 +++ gcc-4.8.1/libgo/merge.sh 2013-10-01 16:06:44.220554279 +0000 175362 180043 @@ -163,12 +163,12 @@ 175363 180044 done … … 175377 180058 diff -Naur gcc-4.8.1.orig/libgo/runtime/chan.c gcc-4.8.1/libgo/runtime/chan.c 175378 180059 --- 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+0000180060 +++ gcc-4.8.1/libgo/runtime/chan.c 2013-10-01 16:06:44.220554279 +0000 175380 180061 @@ -35,6 +35,8 @@ 175381 180062 SudoG* last; … … 175507 180188 diff -Naur gcc-4.8.1.orig/libgo/runtime/cpuprof.c gcc-4.8.1/libgo/runtime/cpuprof.c 175508 180189 --- 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+0000180190 +++ gcc-4.8.1/libgo/runtime/cpuprof.c 2013-10-01 16:06:44.224554278 +0000 175510 180191 @@ -121,7 +121,9 @@ 175511 180192 // LostProfileData is a no-op function used in profiles … … 175530 180211 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-cgo.c gcc-4.8.1/libgo/runtime/go-cgo.c 175531 180212 --- 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+0000180213 +++ gcc-4.8.1/libgo/runtime/go-cgo.c 2013-10-01 16:06:44.224554278 +0000 175533 180214 @@ -35,6 +35,9 @@ 175534 180215 M* m; … … 175584 180265 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-defer.c gcc-4.8.1/libgo/runtime/go-defer.c 175585 180266 --- 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+0000180267 +++ gcc-4.8.1/libgo/runtime/go-defer.c 2013-10-01 16:06:44.224554278 +0000 175587 180268 @@ -42,6 +42,7 @@ 175588 180269 { … … 175611 180292 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-main.c gcc-4.8.1/libgo/runtime/go-main.c 175612 180293 --- 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+0000180294 +++ gcc-4.8.1/libgo/runtime/go-main.c 2013-10-01 16:06:44.224554278 +0000 175614 180295 @@ -30,9 +30,6 @@ 175615 180296 … … 175639 180320 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-map-index.c gcc-4.8.1/libgo/runtime/go-map-index.c 175640 180321 --- 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+0000180322 +++ gcc-4.8.1/libgo/runtime/go-map-index.c 2013-10-01 16:06:44.224554278 +0000 175642 180323 @@ -98,7 +98,7 @@ 175643 180324 key_descriptor = descriptor->__map_descriptor->__key_type; … … 175651 180332 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-panic.c gcc-4.8.1/libgo/runtime/go-panic.c 175652 180333 --- 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+0000180334 +++ gcc-4.8.1/libgo/runtime/go-panic.c 2013-10-01 16:06:44.224554278 +0000 175654 180335 @@ -54,6 +54,7 @@ 175655 180336 { … … 175678 180359 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c gcc-4.8.1/libgo/runtime/go-reflect-call.c 175679 180360 --- 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 @@ 175706 180363 } 175707 180364 … … 175721 180378 + 175722 180379 + 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. */ 175726 180382 175727 180383 void … … 175731 180387 void **results) 175732 180388 { 175733 @@ -507,7 +5 28,7@@180389 @@ -507,7 +519,9 @@ 175734 180390 175735 180391 call_result = (unsigned char *) malloc (go_results_size (func_type)); 175736 180392 175737 180393 - ffi_call (&cif, func_addr, call_result, params); 180394 + if (!is_interface && !is_method) 180395 + __go_set_closure (func_val); 175738 180396 + ffi_call (&cif, func_val->fn, call_result, params); 175739 180397 175740 180398 /* Some day we may need to free result values if RESULTS is 175741 180399 NULL. */ 175742 @@ -521,7 +5 42,7 @@180400 @@ -521,7 +535,7 @@ 175743 180401 175744 180402 void … … 175751 180409 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c gcc-4.8.1/libgo/runtime/go-reflect-map.c 175752 180410 --- 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+0000180411 +++ gcc-4.8.1/libgo/runtime/go-reflect-map.c 2013-10-01 16:06:44.224554278 +0000 175754 180412 @@ -238,3 +238,12 @@ 175755 180413 __builtin_memcpy (ret, &map, sizeof (void *)); … … 175767 180425 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-signal.c gcc-4.8.1/libgo/runtime/go-signal.c 175768 180426 --- 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+0000180427 +++ gcc-4.8.1/libgo/runtime/go-signal.c 2013-10-01 16:06:44.224554278 +0000 175770 180428 @@ -12,6 +12,7 @@ 175771 180429 #include "runtime.h" … … 176003 180661 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c gcc-4.8.1/libgo/runtime/go-unsafe-new.c 176004 180662 --- 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+0000180663 +++ gcc-4.8.1/libgo/runtime/go-unsafe-new.c 2013-10-01 16:06:44.224554278 +0000 176006 180664 @@ -21,14 +21,5 @@ 176007 180665 void * … … 176022 180680 diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c 176023 180681 --- 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+0000180682 +++ gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c 2013-10-01 16:06:44.224554278 +0000 176025 180683 @@ -21,21 +21,5 @@ 176026 180684 void * … … 176048 180706 diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_futex.c gcc-4.8.1/libgo/runtime/lock_futex.c 176049 180707 --- 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+0000180708 +++ gcc-4.8.1/libgo/runtime/lock_futex.c 2013-10-01 16:06:44.224554278 +0000 176051 180709 @@ -41,7 +41,7 @@ 176052 180710 runtime_throw("runtime_lock: lock count"); … … 176146 180804 diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_sema.c gcc-4.8.1/libgo/runtime/lock_sema.c 176147 180805 --- 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+0000180806 +++ gcc-4.8.1/libgo/runtime/lock_sema.c 2013-10-01 16:06:44.224554278 +0000 176149 180807 @@ -43,7 +43,7 @@ 176150 180808 runtime_throw("runtime_lock: lock count"); … … 176257 180915 diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.goc gcc-4.8.1/libgo/runtime/malloc.goc 176258 180916 --- 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+0000180917 +++ gcc-4.8.1/libgo/runtime/malloc.goc 2013-10-01 16:06:44.224554278 +0000 176260 180918 @@ -18,7 +18,7 @@ 176261 180919 #include "go-type.h" … … 176564 181222 diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.h gcc-4.8.1/libgo/runtime/malloc.h 176565 181223 --- 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 +0000181224 +++ gcc-4.8.1/libgo/runtime/malloc.h 2013-10-01 16:06:44.224554278 +0000 176567 181225 @@ -86,6 +86,7 @@ 176568 181226 typedef struct MStats MStats; … … 176679 181337 diff -Naur gcc-4.8.1.orig/libgo/runtime/mcache.c gcc-4.8.1/libgo/runtime/mcache.c 176680 181338 --- 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 +0000181339 +++ gcc-4.8.1/libgo/runtime/mcache.c 2013-10-01 16:06:44.224554278 +0000 176682 181340 @@ -21,7 +21,7 @@ 176683 181341 l = &c->list[sizeclass]; … … 176700 181358 diff -Naur gcc-4.8.1.orig/libgo/runtime/mcentral.c gcc-4.8.1/libgo/runtime/mcentral.c 176701 181359 --- 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 +0000181360 +++ gcc-4.8.1/libgo/runtime/mcentral.c 2013-10-01 16:06:44.224554278 +0000 176703 181361 @@ -108,7 +108,7 @@ 176704 181362 int32 size; … … 176739 181397 diff -Naur gcc-4.8.1.orig/libgo/runtime/mem.c gcc-4.8.1/libgo/runtime/mem.c 176740 181398 --- 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 +0000181399 +++ gcc-4.8.1/libgo/runtime/mem.c 2013-10-01 16:06:44.224554278 +0000 176742 181400 @@ -78,7 +78,7 @@ 176743 181401 fd = dev_zero; … … 176771 181429 diff -Naur gcc-4.8.1.orig/libgo/runtime/mfinal.c gcc-4.8.1/libgo/runtime/mfinal.c 176772 181430 --- 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 +0000181431 +++ gcc-4.8.1/libgo/runtime/mfinal.c 2013-10-01 16:06:44.224554278 +0000 176774 181432 @@ -11,7 +11,7 @@ 176775 181433 typedef struct Fin Fin; … … 176810 181468 diff -Naur gcc-4.8.1.orig/libgo/runtime/mfixalloc.c gcc-4.8.1/libgo/runtime/mfixalloc.c 176811 181469 --- 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 +0000181470 +++ gcc-4.8.1/libgo/runtime/mfixalloc.c 2013-10-01 16:06:44.224554278 +0000 176813 181471 @@ -30,6 +30,11 @@ 176814 181472 runtime_FixAlloc_Alloc(FixAlloc *f) … … 176825 181483 diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.c gcc-4.8.1/libgo/runtime/mgc0.c 176826 181484 --- 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+0000181485 +++ gcc-4.8.1/libgo/runtime/mgc0.c 2013-10-01 16:06:44.228554278 +0000 176828 181486 @@ -21,8 +21,11 @@ 176829 181487 #define tab __methods … … 178227 182885 runfinq(void* dummy __attribute__ ((unused))) 178228 182886 { 178229 @@ -1731,11 +2263,1 2@@182887 @@ -1731,11 +2263,11 @@ 178230 182888 for(; fb; fb=next) { 178231 182889 next = fb->next; 178232 182890 for(i=0; i<(uint32)fb->cnt; i++) { 178233 182891 - void *params[1]; 178234 + void *param s[2];182892 + void *param; 178235 182893 178236 182894 f = &fb->fin[i]; 178237 params[0] = &f->arg;182895 - params[0] = &f->arg; 178238 182896 - reflect_call(f->ft, (void*)f->fn, 0, 0, params, nil); 178239 + param s[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, ¶m, nil); 178241 182899 f->fn = nil; 178242 182900 f->arg = nil; 178243 182901 } 178244 @@ -1757,11 +22 90,11 @@182902 @@ -1757,11 +2289,11 @@ 178245 182903 if(0) 178246 182904 runtime_printf("markallocated %p+%p\n", v, n); … … 178257 182915 178258 182916 for(;;) { 178259 @@ -1789,11 +232 2,11 @@182917 @@ -1789,11 +2321,11 @@ 178260 182918 if(0) 178261 182919 runtime_printf("markallocated %p+%p\n", v, n); … … 178272 182930 178273 182931 for(;;) { 178274 @@ -1819,11 +235 2,11 @@182932 @@ -1819,11 +2351,11 @@ 178275 182933 if(!runtime_checking) 178276 182934 return; … … 178287 182945 178288 182946 bits = *b>>shift; 178289 @@ -1842,7 +237 5,7 @@182947 @@ -1842,7 +2374,7 @@ 178290 182948 uintptr *b, off, shift; 178291 182949 byte *p; … … 178296 182954 178297 182955 p = v; 178298 @@ -1853,8 +238 6,8 @@182956 @@ -1853,8 +2385,8 @@ 178299 182957 // the entire span, and each bitmap word has bits for only 178300 182958 // one span, so no other goroutines are changing these … … 178307 182965 *b = (*b & ~(bitMask<<shift)) | (bitBlockBoundary<<shift); 178308 182966 } 178309 @@ -1866,14 +239 9,14 @@182967 @@ -1866,14 +2398,14 @@ 178310 182968 { 178311 182969 uintptr *p, *b, off; … … 178325 182983 if(n%wordsPerBitmapWord != 0) 178326 182984 runtime_throw("unmarkspan: unaligned length"); 178327 @@ -1894,8 +242 7,8 @@182985 @@ -1894,8 +2426,8 @@ 178328 182986 if(DebugMark) 178329 182987 return true; … … 178336 182994 178337 182995 return (*b & (bitSpecial<<shift)) != 0; 178338 @@ -1909,8 +244 2,8 @@182996 @@ -1909,8 +2441,8 @@ 178339 182997 if(DebugMark) 178340 182998 return; … … 178349 183007 diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.h gcc-4.8.1/libgo/runtime/mgc0.h 178350 183008 --- 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+0000183009 +++ gcc-4.8.1/libgo/runtime/mgc0.h 2013-10-01 16:06:44.228554278 +0000 178352 183010 @@ -12,17 +12,22 @@ 178353 183011 // Meaning of arguments: … … 178376 183034 diff -Naur gcc-4.8.1.orig/libgo/runtime/mheap.c gcc-4.8.1/libgo/runtime/mheap.c 178377 183035 --- 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+0000183036 +++ gcc-4.8.1/libgo/runtime/mheap.c 2013-10-01 16:06:44.228554278 +0000 178379 183037 @@ -37,6 +37,8 @@ 178380 183038 if(cap < h->nspancap*3/2) … … 178548 183206 diff -Naur gcc-4.8.1.orig/libgo/runtime/mprof.goc gcc-4.8.1/libgo/runtime/mprof.goc 178549 183207 --- 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+0000183208 +++ gcc-4.8.1/libgo/runtime/mprof.goc 2013-10-01 16:06:44.228554278 +0000 178551 183209 @@ -14,7 +14,43 @@ 178552 183210 #include "go-string.h" … … 178723 183381 diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll.goc gcc-4.8.1/libgo/runtime/netpoll.goc 178724 183382 --- 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+0000183383 +++ gcc-4.8.1/libgo/runtime/netpoll.goc 2013-10-01 16:06:44.228554278 +0000 178726 183384 @@ -0,0 +1,356 @@ 178727 183385 +// Copyright 2013 The Go Authors. All rights reserved. … … 179083 183741 diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c gcc-4.8.1/libgo/runtime/netpoll_epoll.c 179084 183742 --- 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+0000183743 +++ gcc-4.8.1/libgo/runtime/netpoll_epoll.c 2013-10-01 16:06:44.228554278 +0000 179086 183744 @@ -0,0 +1,158 @@ 179087 183745 +// Copyright 2013 The Go Authors. All rights reserved. … … 179245 183903 diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c gcc-4.8.1/libgo/runtime/netpoll_kqueue.c 179246 183904 --- 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+0000183905 +++ gcc-4.8.1/libgo/runtime/netpoll_kqueue.c 2013-10-01 16:06:44.228554278 +0000 179248 183906 @@ -0,0 +1,108 @@ 179249 183907 +// Copyright 2013 The Go Authors. All rights reserved. … … 179357 184015 diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c gcc-4.8.1/libgo/runtime/netpoll_stub.c 179358 184016 --- 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+0000184017 +++ gcc-4.8.1/libgo/runtime/netpoll_stub.c 2013-10-01 16:06:44.228554278 +0000 179360 184018 @@ -0,0 +1,18 @@ 179361 184019 +// Copyright 2013 The Go Authors. All rights reserved. … … 179379 184037 diff -Naur gcc-4.8.1.orig/libgo/runtime/panic.c gcc-4.8.1/libgo/runtime/panic.c 179380 184038 --- 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+0000184039 +++ gcc-4.8.1/libgo/runtime/panic.c 2013-10-01 16:06:44.228554278 +0000 179382 184040 @@ -3,6 +3,7 @@ 179383 184041 // license that can be found in the LICENSE file. … … 179428 184086 diff -Naur gcc-4.8.1.orig/libgo/runtime/parfor.c gcc-4.8.1/libgo/runtime/parfor.c 179429 184087 --- 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+0000184088 +++ gcc-4.8.1/libgo/runtime/parfor.c 2013-10-01 16:06:44.228554278 +0000 179431 184089 @@ -49,6 +49,7 @@ 179432 184090 runtime_parforsetup(ParFor *desc, uint32 nthr, uint32 n, void *ctx, bool wait, void (*body)(ParFor*, uint32)) … … 179469 184127 diff -Naur gcc-4.8.1.orig/libgo/runtime/print.c gcc-4.8.1/libgo/runtime/print.c 179470 184128 --- 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+0000184129 +++ gcc-4.8.1/libgo/runtime/print.c 2013-10-01 16:06:44.228554278 +0000 179472 184130 @@ -88,6 +88,9 @@ 179473 184131 case 'a': … … 179495 184153 diff -Naur gcc-4.8.1.orig/libgo/runtime/proc.c gcc-4.8.1/libgo/runtime/proc.c 179496 184154 --- 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+0000184155 +++ gcc-4.8.1/libgo/runtime/proc.c 2013-10-01 16:06:44.232554278 +0000 179498 184156 @@ -56,15 +56,8 @@ 179499 184157 … … 180556 185214 -{ 180557 185215 - uint32 v; 180558 185216 - 180559 185217 - schedlock(); 180560 185218 - runtime_gcwaiting = 1; … … 180579 185237 - if(!runtime_cas(&runtime_sched.atomic, v, v+(1<<waitstopShift))) 180580 185238 - continue; 180581 - 185239 180582 185240 - schedunlock(); 180583 185241 - runtime_notesleep(&runtime_sched.stopped); … … 180592 185250 - schedunlock(); 180593 185251 -} 180594 185252 - 180595 185253 -void 180596 185254 -runtime_starttheworld(void) … … 180605 185263 - if(max > MaxGcproc) 180606 185264 - max = MaxGcproc; 180607 - 185265 180608 185266 - schedlock(); 180609 185267 - runtime_gcwaiting = 0; … … 180854 185512 +#endif 180855 185513 +} 180856 + 185514 180857 185515 +// newextram allocates an m and puts it on the extra list. 180858 185516 +// It is called with a working local m, so that it can do things … … 180934 185592 + // Undo whatever initialization minit did during needm. 180935 185593 + runtime_unminit(); 180936 185594 + 180937 185595 + // Clear m and g, and return m to the extra list. 180938 185596 + // After the call to setmg we can only call nosplit functions. … … 181039 185697 + runtime_osyield(); 181040 185698 + continue; 181041 + }181042 + if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {181043 + runtime_osyield();181044 + continue;181045 185699 } 181046 185700 - if(gp->readyonstop) { … … 181056 185710 - // Compensate for increment in starttheworld(). 181057 185711 - runtime_sched.grunning--; 185712 + if(!runtime_casp(&runtime_extram, mp, MLOCKED)) { 185713 + runtime_osyield(); 185714 + continue; 185715 + } 181058 185716 + c = 0; 181059 185717 + for(mc = mp; mc != nil; mc = mc->schedlink) … … 181116 185774 + m->spinning = true; 181117 185775 +} 181118 + 185776 185777 - // Find (or wait for) g to run. Unlocks runtime_sched. 185778 - gp = nextgandunlock(); 185779 - gp->readyonstop = 0; 181119 185780 +// Schedules some M to run the p (creates an M if necessary). 181120 185781 +// If p==nil, tries to get an idle P, if no idle P's returns false. … … 181210 185871 +{ 181211 185872 + P *p; 181212 181213 - // Find (or wait for) g to run. Unlocks runtime_sched. 181214 - gp = nextgandunlock(); 181215 - gp->readyonstop = 0; 185873 + 181216 185874 + if(m->lockedg == nil || m->lockedg->lockedm != m) 181217 185875 + runtime_throw("stoplockedm: inconsistent locking"); … … 181289 185947 gp->m = m; 181290 185948 181291 @@ -1352, 30 +1449,261@@185949 @@ -1352,50 +1449,327 @@ 181292 185950 runtime_gogo(gp); 181293 185951 } … … 181484 186142 -runtime_park(void (*unlockf)(Lock*), Lock *lock, const char *reason) 181485 186143 +runtime_park(void(*unlockf)(Lock*), Lock *lock, const char *reason) 181486 +{ 186144 { 186145 - g->status = Gwaiting; 181487 186146 + m->waitlock = lock; 181488 186147 + m->waitunlockf = unlockf; 181489 + g->waitreason = reason; 186148 g->waitreason = reason; 186149 - if(unlockf) 186150 - unlockf(lock); 186151 - runtime_gosched(); 181490 186152 + runtime_mcall(park0); 181491 186153 +} … … 181541 186203 + runtime_racegoend(); 181542 186204 + 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. 181545 186218 +// runtime_goexit continuation on g0. 181546 186219 +static void 181547 186220 +goexit0(G *gp) 181548 { 181549 - g->status = Gwaiting; 181550 - g->waitreason = reason; 181551 - if(unlockf) 181552 - unlockf(lock); 181553 - runtime_gosched(); 186221 +{ 181554 186222 + gp->status = Gdead; 181555 186223 + gp->entry = nil; … … 181565 186233 + gfput(m->p, gp); 181566 186234 + 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. 181580 186298 void 181581 186299 -runtime_entersyscall(void) 181582 +runtime_entersyscall ()186300 +runtime_entersyscallblock(void) 181583 186301 { 181584 186302 - uint32 v; 181585 - 186303 + P *p; 186304 181586 186305 if(m->profilehz > 0) 181587 186306 runtime_setprof(false); 181588 181589 @@ -1406,7 +1729,11 @@ 186307 @@ -1406,7 +1780,7 @@ 181590 186308 &g->gcnext_segment, &g->gcnext_sp, 181591 186309 &g->gcinitial_sp); 181592 186310 #else 181593 186311 - g->gcnext_sp = (byte *) &v; 181594 + { 181595 + uint32 v; 181596 + 181597 + g->gcnext_sp = (byte *) &v; 181598 + } 186312 + g->gcnext_sp = (byte *) &p; 181599 186313 #endif 181600 186314 181601 186315 // Save the registers in the g structure so that any pointers 181602 @@ -1415,30 +17 42,57@@186316 @@ -1415,30 +1789,10 @@ 181603 186317 181604 186318 g->status = Gsyscall; … … 181615 186329 - if(!atomic_gwaiting(v) && (!atomic_waitstop(v) || atomic_mcpu(v) > atomic_mcpumax(v))) 181616 186330 - 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 - 181626 186332 - schedlock(); 181627 186333 - v = runtime_atomicload(&runtime_sched.atomic); … … 181633 186339 - runtime_xadd(&runtime_sched.atomic, -1<<waitstopShift); 181634 186340 - 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 - 181673 186343 - schedunlock(); 181674 186344 + p = releasep(); … … 182014 186684 -runtime_UnlockOSThread(void) 182015 186685 +runtime_LockOSThread(void) 182016 +{ 186686 { 186687 - if(m == &runtime_m0 && runtime_sched.init) { 186688 - runtime_sched.lockmain = false; 182017 186689 + m->locked |= LockExternal; 182018 186690 + LockOSThread(); … … 182028 186700 +static void 182029 186701 +UnlockOSThread(void) 182030 { 182031 - if(m == &runtime_m0 && runtime_sched.init) { 182032 - runtime_sched.lockmain = false; 186702 +{ 182033 186703 + if(m->locked != 0) 182034 186704 return; … … 182100 186770 return; 182101 186771 182102 @@ -1813,3 +2280,5 55 @@186772 @@ -1813,3 +2280,575 @@ 182103 186773 if(hz != 0) 182104 186774 runtime_resetcpuprofiler(hz); … … 182656 187326 + addroot((Obj){(byte*)&runtime_sched, sizeof runtime_sched, 0}); 182657 187327 +} 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 +} 182658 187348 diff -Naur gcc-4.8.1.orig/libgo/runtime/race.h gcc-4.8.1/libgo/runtime/race.h 182659 187349 --- 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+0000187350 +++ gcc-4.8.1/libgo/runtime/race.h 2013-10-01 16:06:44.232554278 +0000 182661 187351 @@ -11,17 +11,19 @@ 182662 187352 #endif … … 182684 187374 diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.c gcc-4.8.1/libgo/runtime/runtime.c 182685 187375 --- 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+0000187376 +++ gcc-4.8.1/libgo/runtime/runtime.c 2013-10-01 16:06:44.232554278 +0000 182687 187377 @@ -2,6 +2,7 @@ 182688 187378 // Use of this source code is governed by a BSD-style … … 182868 187558 diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.h gcc-4.8.1/libgo/runtime/runtime.h 182869 187559 --- 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+0000187560 +++ gcc-4.8.1/libgo/runtime/runtime.h 2013-10-01 16:06:44.232554278 +0000 182871 187561 @@ -54,23 +54,26 @@ 182872 187562 typedef uint8 byte; … … 182977 187667 { 182978 187668 // 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 @@ 182980 187678 uint32 selgen; // valid sudog pointer 182981 187679 const char* waitreason; // if status==Gwaiting … … 182994 187692 int32 writenbuf; 182995 187693 byte* writebuf; 182996 @@ -218,34 +23 8,45 @@187694 @@ -218,34 +239,45 @@ 182997 187695 { 182998 187696 G* g0; // goroutine with scheduling stack … … 183044 187742 uintptr settype_buf[1024]; 183045 187743 uintptr settype_bufsize; 183046 @@ -253,6 +28 4,38 @@187744 @@ -253,6 +285,38 @@ 183047 187745 uintptr end[]; 183048 187746 }; … … 183083 187781 { 183084 187782 int32 sig; 183085 @@ -265,6 +32 8,8 @@187783 @@ -265,6 +329,8 @@ 183086 187784 SigThrow = 1<<2, // if signal.Notify doesn't take it, exit loudly 183087 187785 SigPanic = 1<<3, // if the signal is from the kernel, panic … … 183092 187790 183093 187791 #ifndef NSIG 183094 @@ -313,7 +37 8,7 @@187792 @@ -313,7 +379,7 @@ 183095 187793 // a well-behaved function and not block. 183096 187794 int64 when; … … 183101 187799 }; 183102 187800 183103 @@ -337,6 +40 2,7 @@187801 @@ -337,6 +403,7 @@ 183104 187802 bool wait; // if true, wait while all threads finish processing, 183105 187803 // otherwise parfor may return while other threads are still working … … 183109 187807 uint64 nsteal; 183110 187808 uint64 nstealcnt; 183111 @@ -350,7 +41 6,7 @@187809 @@ -350,7 +417,7 @@ 183112 187810 struct CgoMal 183113 187811 { … … 183118 187816 183119 187817 /* 183120 @@ -363,6 +4 29,19 @@187818 @@ -363,6 +430,19 @@ 183121 187819 #define USED(v) ((void) v) 183122 187820 #define ROUND(x, n) (((x)+(n)-1)&~((n)-1)) /* all-caps to mark as macro: it evaluates n twice */ … … 183138 187836 * external data 183139 187837 */ 183140 @@ -370,21 +4 49,28 @@187838 @@ -370,21 +450,28 @@ 183141 187839 extern G* runtime_allg; 183142 187840 extern G* runtime_lastg; … … 183168 187866 void runtime_osinit(); 183169 187867 void runtime_goargs(void); 183170 @@ -394,42 +48 0,100 @@187868 @@ -394,42 +481,100 @@ 183171 187869 void runtime_panicstring(const char*) __attribute__ ((noreturn)); 183172 187870 void runtime_prints(const char*); … … 183275 187973 /* 183276 187974 * mutual exclusion locks. in the uncontended case, 183277 @@ -527,6 +67 1,7 @@187975 @@ -527,6 +672,7 @@ 183278 187976 * runtime go-called 183279 187977 */ … … 183283 187981 void runtime_printint(int64); 183284 187982 void runtime_printiface(Iface); 183285 @@ -538,53 +68 3,10 @@187983 @@ -538,53 +684,10 @@ 183286 187984 void runtime_printhex(uint64); 183287 187985 void runtime_printslice(Slice); … … 183338 188036 /* 183339 188037 * runtime c-called (but written in Go) 183340 @@ -599,14 +70 1,13 @@188038 @@ -599,14 +702,13 @@ 183341 188039 /* 183342 188040 * wrapped for go users … … 183355 188053 bool runtime_showframe(String, bool); 183356 188054 183357 @@ -622,12 +72 3,13 @@188055 @@ -622,12 +724,13 @@ 183358 188056 // This is a no-op on other systems. 183359 188057 void runtime_setprof(bool); … … 183371 188069 183372 188070 void runtime_check(void); 183373 @@ -652,5 +75 4,8@@188071 @@ -652,5 +755,11 @@ 183374 188072 extern struct backtrace_state *__go_get_backtrace_state(void); 183375 188073 extern _Bool __go_file_line(uintptr, String*, String*, intgo *); … … 183380 188078 + 183381 188079 +#define PREFETCH(p) __builtin_prefetch(p) 188080 + 188081 +void __go_set_closure(void*); 188082 +void* __go_get_closure(void); 183382 188083 diff -Naur gcc-4.8.1.orig/libgo/runtime/sema.goc gcc-4.8.1/libgo/runtime/sema.goc 183383 188084 --- 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+0000188085 +++ gcc-4.8.1/libgo/runtime/sema.goc 2013-10-01 16:06:44.232554278 +0000 183385 188086 @@ -44,12 +44,12 @@ 183386 188087 // Prime to not correlate with any user patterns. … … 183401 188102 diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.c gcc-4.8.1/libgo/runtime/signal_unix.c 183402 188103 --- 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+0000188104 +++ gcc-4.8.1/libgo/runtime/signal_unix.c 2013-10-01 16:06:44.232554278 +0000 183404 188105 @@ -8,6 +8,7 @@ 183405 188106 … … 183536 188237 diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.h gcc-4.8.1/libgo/runtime/signal_unix.h 183537 188238 --- 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+0000188239 +++ gcc-4.8.1/libgo/runtime/signal_unix.h 2013-10-01 16:06:44.232554278 +0000 183539 188240 @@ -0,0 +1,22 @@ 183540 188241 +// Copyright 2013 The Go Authors. All rights reserved. … … 183562 188263 diff -Naur gcc-4.8.1.orig/libgo/runtime/sigqueue.goc gcc-4.8.1/libgo/runtime/sigqueue.goc 183563 188264 --- 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+0000188265 +++ gcc-4.8.1/libgo/runtime/sigqueue.goc 2013-10-01 16:06:44.232554278 +0000 183565 188266 @@ -107,7 +107,7 @@ 183566 188267 new = HASWAITER; … … 183608 188309 diff -Naur gcc-4.8.1.orig/libgo/runtime/string.goc gcc-4.8.1/libgo/runtime/string.goc 183609 188310 --- 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+0000188311 +++ gcc-4.8.1/libgo/runtime/string.goc 2013-10-01 16:06:44.232554278 +0000 183611 188312 @@ -7,6 +7,7 @@ 183612 188313 #include "arch.h" … … 183619 188320 diff -Naur gcc-4.8.1.orig/libgo/runtime/thread.c gcc-4.8.1/libgo/runtime/thread.c 183620 188321 --- 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+0000188322 +++ gcc-4.8.1/libgo/runtime/thread.c 2013-10-01 16:06:44.232554278 +0000 183622 188323 @@ -133,27 +133,6 @@ 183623 188324 … … 183650 188351 diff -Naur gcc-4.8.1.orig/libgo/runtime/time.goc gcc-4.8.1/libgo/runtime/time.goc 183651 188352 --- 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+0000188353 +++ gcc-4.8.1/libgo/runtime/time.goc 2013-10-01 16:06:44.232554278 +0000 183653 188354 @@ -14,7 +14,6 @@ 183654 188355 … … 183677 188378 183678 188379 // 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 @@ 183689 188381 runtime_ready(e.__object); 183690 188382 } … … 183695 188387 void 183696 188388 runtime_tsleep(int64 ns, const char *reason) 183697 @@ -70,13 + 70,21 @@188389 @@ -70,13 +69,21 @@ 183698 188390 183699 188391 t.when = runtime_nanotime() + ns; … … 183718 188410 // if the new timer is earlier than any of the others. 183719 188411 static void 183720 @@ -119,8 +12 7,8 @@188412 @@ -119,8 +126,8 @@ 183721 188413 // Delete timer t from the heap. 183722 188414 // Do not need to update the timerproc: … … 183729 188421 int32 i; 183730 188422 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 @@ 183741 188424 siftdown(0); 183742 188425 t->i = -1; // mark as removed … … 183748 188431 if(raceenabled) 183749 188432 runtime_raceacquire(t); 183750 - f(now, arg);183751 + f(now, arg, &t->fv);188433 + __go_set_closure(t->fv); 188434 f(now, arg); 183752 188435 runtime_lock(&timers); 183753 188436 } 183754 if(delta < 0) {183755 188437 @@ -202,7 +210,7 @@ 183756 188438 timers.sleeping = true; … … 183762 188444 runtime_exitsyscall(); 183763 188445 } 188446 diff -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 +} 183764 188479 diff -Naur gcc-4.8.1.orig/libitm/acinclude.m4 gcc-4.8.1/libitm/acinclude.m4 183765 188480 --- 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+0000188481 +++ gcc-4.8.1/libitm/acinclude.m4 2013-10-01 16:06:44.232554278 +0000 183767 188482 @@ -121,6 +121,17 @@ 183768 188483 AC_DEFINE(HAVE_AS_RTM, 1, [Define to 1 if the assembler supports RTM.]) … … 183785 188500 diff -Naur gcc-4.8.1.orig/libitm/config/s390/sjlj.S gcc-4.8.1/libitm/config/s390/sjlj.S 183786 188501 --- 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+0000188502 +++ gcc-4.8.1/libitm/config/s390/sjlj.S 2013-10-01 16:06:44.232554278 +0000 183788 188503 @@ -0,0 +1,108 @@ 183789 188504 +/* Copyright (C) 2013 Free Software Foundation, Inc. … … 183897 188612 diff -Naur gcc-4.8.1.orig/libitm/config/s390/target.h gcc-4.8.1/libitm/config/s390/target.h 183898 188613 --- 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+0000188614 +++ gcc-4.8.1/libitm/config/s390/target.h 2013-10-01 16:06:44.236554278 +0000 183900 188615 @@ -0,0 +1,127 @@ 183901 188616 +/* Copyright (C) 2013 Free Software Foundation, Inc. … … 184028 188743 diff -Naur gcc-4.8.1.orig/libitm/config.h.in gcc-4.8.1/libitm/config.h.in 184029 188744 --- 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+0000188745 +++ gcc-4.8.1/libitm/config.h.in 2013-10-01 16:06:44.236554278 +0000 184031 188746 @@ -12,6 +12,9 @@ 184032 188747 /* Define if your assembler supports .cfi_* directives. */ … … 184061 188776 diff -Naur gcc-4.8.1.orig/libitm/configure gcc-4.8.1/libitm/configure 184062 188777 --- 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+0000188778 +++ gcc-4.8.1/libitm/configure 2013-10-01 16:06:44.236554278 +0000 184064 188779 @@ -15349,7 +15349,7 @@ 184065 188780 … … 184127 188842 diff -Naur gcc-4.8.1.orig/libitm/configure.ac gcc-4.8.1/libitm/configure.ac 184128 188843 --- 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+0000188844 +++ gcc-4.8.1/libitm/configure.ac 2013-10-01 16:06:44.236554278 +0000 184130 188845 @@ -160,7 +160,7 @@ 184131 188846 AC_STDC_HEADERS … … 184156 188871 diff -Naur gcc-4.8.1.orig/libitm/configure.tgt gcc-4.8.1/libitm/configure.tgt 184157 188872 --- 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+0000188873 +++ gcc-4.8.1/libitm/configure.tgt 2013-10-01 16:06:44.236554278 +0000 184159 188874 @@ -105,6 +105,10 @@ 184160 188875 XCFLAGS="${XCFLAGS} -mrtm" … … 185481 190196 diff -Naur gcc-4.8.1.orig/libjava/classpath/configure gcc-4.8.1/libjava/classpath/configure 185482 190197 --- 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+0000190198 +++ gcc-4.8.1/libjava/classpath/configure 2013-10-01 16:06:44.240554278 +0000 185484 190199 @@ -18779,8 +18779,9 @@ 185485 190200 succeeded=no … … 187412 192127 diff -Naur gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4 gcc-4.8.1/libjava/classpath/m4/pkg.m4 187413 192128 --- 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+0000192129 +++ gcc-4.8.1/libjava/classpath/m4/pkg.m4 2013-10-01 16:06:44.240554278 +0000 187415 192130 @@ -6,7 +6,7 @@ 187416 192131 succeeded=no … … 187424 192139 diff -Naur gcc-4.8.1.orig/libjava/configure gcc-4.8.1/libjava/configure 187425 192140 --- 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 +0000192141 +++ gcc-4.8.1/libjava/configure 2013-10-01 16:06:44.244554278 +0000 187427 192142 @@ -3206,7 +3206,7 @@ 187428 192143 -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \ … … 187688 192403 diff -Naur gcc-4.8.1.orig/libjava/pkg.m4 gcc-4.8.1/libjava/pkg.m4 187689 192404 --- 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 +0000192405 +++ gcc-4.8.1/libjava/pkg.m4 2013-10-01 16:06:44.244554278 +0000 187691 192406 @@ -6,7 +6,7 @@ 187692 192407 succeeded=no … … 187700 192415 diff -Naur gcc-4.8.1.orig/libobjc/exception.c gcc-4.8.1/libobjc/exception.c 187701 192416 --- 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 +0000192417 +++ gcc-4.8.1/libobjc/exception.c 2013-10-01 16:06:44.244554278 +0000 187703 192418 @@ -202,7 +202,7 @@ 187704 192419 #ifdef SJLJ_EXCEPTIONS … … 188664 193379 diff -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 188665 193380 --- 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+0000193381 +++ gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt 2013-10-01 16:06:44.244554278 +0000 188667 193382 @@ -543,6 +543,7 @@ 188668 193383 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@@GLIBCXX_LDBL_3.4 … … 188745 193460 OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11 188746 193461 OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11 193462 diff -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 188747 193473 diff -Naur gcc-4.8.1.orig/libstdc++-v3/configure.host gcc-4.8.1/libstdc++-v3/configure.host 188748 193474 --- 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+0000193475 +++ gcc-4.8.1/libstdc++-v3/configure.host 2013-10-01 16:06:44.248554278 +0000 188750 193476 @@ -330,7 +330,7 @@ 188751 193477 mips64*) … … 188759 193485 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am gcc-4.8.1/libstdc++-v3/include/Makefile.am 188760 193486 --- 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+0000193487 +++ gcc-4.8.1/libstdc++-v3/include/Makefile.am 2013-10-01 16:06:44.252554278 +0000 188762 193488 @@ -172,8 +172,7 @@ 188763 193489 ${bits_srcdir}/valarray_array.tcc \ … … 188831 193557 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in gcc-4.8.1/libstdc++-v3/include/Makefile.in 188832 193558 --- 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+0000193559 +++ gcc-4.8.1/libstdc++-v3/include/Makefile.in 2013-10-01 16:06:44.252554278 +0000 188834 193560 @@ -434,8 +434,7 @@ 188835 193561 ${bits_srcdir}/valarray_array.tcc \ … … 188903 193629 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config gcc-4.8.1/libstdc++-v3/include/bits/c++config 188904 193630 --- 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+0000193631 +++ gcc-4.8.1/libstdc++-v3/include/bits/c++config 2013-10-01 16:06:44.248554278 +0000 188906 193632 @@ -84,6 +84,12 @@ 188907 193633 # define _GLIBCXX_DEPRECATED … … 188919 193645 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h gcc-4.8.1/libstdc++-v3/include/bits/random.h 188920 193646 --- 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+0000193647 +++ gcc-4.8.1/libstdc++-v3/include/bits/random.h 2013-10-01 16:06:44.248554278 +0000 188922 193648 @@ -2178,7 +2178,7 @@ 188923 193649 */ … … 188968 193694 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc gcc-4.8.1/libstdc++-v3/include/bits/random.tcc 188969 193695 --- 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 = 188971 193706 @@ -1648,7 +1648,8 @@ 188972 193707 template<typename _UniformRandomNumberGenerator> … … 189004 193739 if (__p12 != __p) 189005 193740 __ret = __t - __ret; 193741 diff -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 193936 diff -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> 189006 193948 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h 189007 193949 --- 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+0000193950 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h 2013-10-01 16:06:44.248554278 +0000 189009 193951 @@ -520,7 +520,7 @@ 189010 193952 typedef _Bvector_base<_Alloc> _Base; … … 189018 193960 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h 189019 193961 --- 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+0000193962 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h 2013-10-01 16:06:44.248554278 +0000 189021 193963 @@ -690,7 +690,8 @@ 189022 193964 erase(const_iterator __position) … … 189031 193973 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h 189032 193974 --- 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+0000193975 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h 2013-10-01 16:06:44.248554278 +0000 189034 193976 @@ -596,6 +596,7 @@ 189035 193977 { return _M_t.erase(__position); } … … 189042 193984 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h 189043 193985 --- 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+0000193986 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h 2013-10-01 16:06:44.252554278 +0000 189045 193987 @@ -532,6 +532,7 @@ 189046 193988 * not touched in any way. Managing the pointer is the user's … … 189061 194003 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h 189062 194004 --- 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+0000194005 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h 2013-10-01 16:06:44.252554278 +0000 189064 194006 @@ -546,6 +546,7 @@ 189065 194007 * touched in any way. Managing the pointer is the user's … … 189080 194022 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h 189081 194023 --- 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+0000194024 +++ gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h 2013-10-01 16:06:44.252554278 +0000 189083 194025 @@ -336,21 +336,21 @@ 189084 194026 _Node_allocator; … … 189142 194084 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h 189143 194085 --- 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+0000194086 +++ gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h 2013-10-01 16:06:44.252554278 +0000 189145 194087 @@ -367,7 +367,7 @@ 189146 194088 _Pair&&>::value>::type> … … 189181 194123 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h 189182 194124 --- 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+0000194125 +++ gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h 2013-10-01 16:06:44.252554278 +0000 189184 194126 @@ -29,6 +29,8 @@ 189185 194127 #ifndef _GLIBCXX_ATOMICITY_H … … 189193 194135 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/random gcc-4.8.1/libstdc++-v3/include/ext/random 189194 194136 --- 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+0000194137 +++ gcc-4.8.1/libstdc++-v3/include/ext/random 2013-10-01 16:06:44.252554278 +0000 189196 194138 @@ -791,7 +791,7 @@ 189197 194139 result_type … … 189212 194154 189213 194155 #endif // _GLIBCXX_USE_C99_STDINT_TR1 194156 diff -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 189214 194171 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h 189215 194172 --- 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+0000194173 +++ gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h 2013-10-01 16:06:44.252554278 +0000 189217 194174 @@ -188,7 +188,7 @@ 189218 194175 _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_invalid()) … … 189247 194204 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h 189248 194205 --- 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+0000194206 +++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h 2013-10-01 16:06:44.252554278 +0000 189250 194207 @@ -0,0 +1,262 @@ 189251 194208 +// Profiling unordered containers implementation details -*- C++ -*- … … 189513 194470 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map gcc-4.8.1/libstdc++-v3/include/profile/unordered_map 189514 194471 --- 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+0000194472 +++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_map 2013-10-01 16:06:44.252554278 +0000 189516 194473 @@ -34,6 +34,7 @@ 189517 194474 # include <unordered_map> … … 189899 194856 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set gcc-4.8.1/libstdc++-v3/include/profile/unordered_set 189900 194857 --- 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+0000194858 +++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_set 2013-10-01 16:06:44.252554278 +0000 189902 194859 @@ -34,6 +34,7 @@ 189903 194860 # include <unordered_set> … … 190274 195231 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/vector gcc-4.8.1/libstdc++-v3/include/profile/vector 190275 195232 --- 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+0000195233 +++ gcc-4.8.1/libstdc++-v3/include/profile/vector 2013-10-01 16:06:44.256554278 +0000 190277 195234 @@ -374,6 +374,16 @@ 190278 195235 return iterator(__res, this); … … 190294 195251 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/bitset gcc-4.8.1/libstdc++-v3/include/std/bitset 190295 195252 --- 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+0000195253 +++ gcc-4.8.1/libstdc++-v3/include/std/bitset 2013-10-01 16:06:44.256554278 +0000 190297 195254 @@ -760,7 +760,7 @@ 190298 195255 } … … 190306 195263 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/complex gcc-4.8.1/libstdc++-v3/include/std/complex 190307 195264 --- 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+0000195265 +++ gcc-4.8.1/libstdc++-v3/include/std/complex 2013-10-01 16:06:44.256554278 +0000 190309 195266 @@ -142,11 +142,11 @@ 190310 195267 #if __cplusplus >= 201103L … … 190323 195280 diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/valarray gcc-4.8.1/libstdc++-v3/include/std/valarray 190324 195281 --- 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+0000195282 +++ gcc-4.8.1/libstdc++-v3/include/std/valarray 2013-10-01 16:06:44.256554278 +0000 190326 195283 @@ -819,8 +819,21 @@ 190327 195284 inline valarray<_Tp>& … … 190350 195307 diff -Naur gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc 190351 195308 --- 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+0000195309 +++ gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc 2013-10-01 16:06:44.256554278 +0000 190353 195310 @@ -58,8 +58,13 @@ 190354 195311 void run (void *p) … … 190387 195344 diff -Naur gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc 190388 195345 --- 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+0000195346 +++ gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc 2013-10-01 16:06:44.256554278 +0000 190390 195347 @@ -517,14 +517,21 @@ 190391 195348 extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe"; … … 190499 195456 diff -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 190500 195457 --- 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+0000195458 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc 2013-10-01 16:06:44.256554278 +0000 190502 195459 @@ -0,0 +1,77 @@ 190503 195460 +// { dg-options "-std=gnu++0x" } … … 190580 195537 diff -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 190581 195538 --- 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+0000195539 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc 2013-10-01 16:06:44.256554278 +0000 190583 195540 @@ -0,0 +1,36 @@ 190584 195541 +// { dg-do compile } … … 190620 195577 diff -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 190621 195578 --- 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+0000195579 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc 2013-10-01 16:06:44.256554278 +0000 190623 195580 @@ -0,0 +1,40 @@ 190624 195581 +// { dg-require-effective-target ia32 } … … 190755 195712 diff -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 190756 195713 --- 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+0000195714 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc 2013-10-01 16:06:44.256554278 +0000 190758 195715 @@ -0,0 +1,87 @@ 190759 195716 +// { dg-options "-std=gnu++0x" } … … 190846 195803 diff -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 190847 195804 --- 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+0000195805 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc 2013-10-01 16:06:44.256554278 +0000 190849 195806 @@ -0,0 +1,36 @@ 190850 195807 +// { dg-do compile } … … 190886 195843 diff -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 190887 195844 --- 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+0000195845 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc 2013-10-01 16:06:44.256554278 +0000 190889 195846 @@ -0,0 +1,40 @@ 190890 195847 +// { dg-require-effective-target ia32 } … … 191019 195976 diff -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 191020 195977 --- 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+0000195978 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc 2013-10-01 16:06:44.256554278 +0000 191022 195979 @@ -0,0 +1,85 @@ 191023 195980 +// { dg-options "-std=gnu++0x" } … … 191108 196065 diff -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 191109 196066 --- 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+0000196067 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc 2013-10-01 16:06:44.256554278 +0000 191111 196068 @@ -0,0 +1,39 @@ 191112 196069 +// { dg-do compile } … … 191151 196108 diff -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 191152 196109 --- 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+0000196110 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc 2013-10-01 16:06:44.256554278 +0000 191154 196111 @@ -0,0 +1,40 @@ 191155 196112 +// { dg-require-effective-target ia32 } … … 191274 196231 diff -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 191275 196232 --- 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+0000196233 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc 2013-10-01 16:06:44.256554278 +0000 191277 196234 @@ -0,0 +1,75 @@ 191278 196235 +// { dg-options "-std=gnu++0x" } … … 191353 196310 diff -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 191354 196311 --- 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+0000196312 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc 2013-10-01 16:06:44.256554278 +0000 191356 196313 @@ -0,0 +1,39 @@ 191357 196314 +// { dg-do compile } … … 191396 196353 diff -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 191397 196354 --- 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+0000196355 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc 2013-10-01 16:06:44.256554278 +0000 191399 196356 @@ -0,0 +1,40 @@ 191400 196357 +// { dg-require-effective-target ia32 } … … 191440 196397 diff -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 191441 196398 --- 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+0000196399 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C 2013-10-01 16:06:44.256554278 +0000 191443 196400 @@ -0,0 +1,51 @@ 191444 196401 +// { dg-options "-std=gnu++11" } … … 191495 196452 diff -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 191496 196453 --- 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+0000196454 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C 2013-10-01 16:06:44.260554277 +0000 191498 196455 @@ -0,0 +1,51 @@ 191499 196456 +// { dg-options "-std=gnu++11" } … … 191550 196507 diff -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 191551 196508 --- 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+0000196509 +++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc 2013-10-01 16:06:44.260554277 +0000 191553 196510 @@ -30,7 +30,7 @@ 191554 196511 }; … … 191560 196517 struct hash { 191561 196518 std::size_t operator()(const MoveOnly&) const { return 0; } 196519 diff -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 +} 196564 diff -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 } 191562 196602 diff -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 191563 196603 --- 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+0000196604 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc 2013-10-01 16:06:44.260554277 +0000 191565 196605 @@ -43,6 +43,17 @@ 191566 196606 std::binomial_distribution<> bd3(10, 0.75); … … 191583 196623 diff -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 191584 196624 --- 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+0000196625 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc 2013-10-01 16:06:44.260554277 +0000 191586 196626 @@ -35,7 +35,7 @@ 191587 196627 VERIFY( u.a() == 0.0 ); … … 191595 196635 diff -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 191596 196636 --- 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+0000196637 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc 2013-10-01 16:06:44.260554277 +0000 191598 196638 @@ -35,7 +35,7 @@ 191599 196639 VERIFY( u.a() == 5.0 ); … … 191607 196647 diff -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 191608 196648 --- 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+0000196649 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc 2013-10-01 16:06:44.260554277 +0000 191610 196650 @@ -34,7 +34,7 @@ 191611 196651 std::exponential_distribution<> u; … … 191619 196659 diff -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 191620 196660 --- 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+0000196661 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc 2013-10-01 16:06:44.260554277 +0000 191622 196662 @@ -34,7 +34,7 @@ 191623 196663 std::exponential_distribution<> u(0.5); … … 191631 196671 diff -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 191632 196672 --- 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+0000196673 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc 2013-10-01 16:06:44.260554277 +0000 191634 196674 @@ -35,7 +35,7 @@ 191635 196675 VERIFY( u.a() == 0.0 ); … … 191643 196683 diff -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 191644 196684 --- 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+0000196685 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc 2013-10-01 16:06:44.260554277 +0000 191646 196686 @@ -35,7 +35,7 @@ 191647 196687 VERIFY( u.a() == 5.0 ); … … 191653 196693 } 191654 196694 196695 diff -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 +} 191655 196733 diff -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 191656 196734 --- 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+0000196735 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc 2013-10-01 16:06:44.260554277 +0000 191658 196736 @@ -35,7 +35,7 @@ 191659 196737 VERIFY( u.mean() == 0.0 ); … … 191667 196745 diff -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 191668 196746 --- 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+0000196747 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc 2013-10-01 16:06:44.260554277 +0000 191670 196748 @@ -35,7 +35,7 @@ 191671 196749 VERIFY( u.mean() == 5.0 ); … … 191679 196757 diff -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 191680 196758 --- 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+0000196759 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc 2013-10-01 16:06:44.260554277 +0000 191682 196760 @@ -34,7 +34,7 @@ 191683 196761 std::student_t_distribution<> u; … … 191691 196769 diff -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 191692 196770 --- 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+0000196771 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc 2013-10-01 16:06:44.264554277 +0000 191694 196772 @@ -34,7 +34,7 @@ 191695 196773 std::student_t_distribution<> u(1.5); … … 191703 196781 diff -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 191704 196782 --- 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+0000196783 +++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C 2013-10-01 16:06:44.264554277 +0000 191706 196784 @@ -0,0 +1,37 @@ 191707 196785 +// Copyright (C) 2013 Free Software Foundation, Inc. … … 191744 196822 diff -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 191745 196823 --- 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+0000196824 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc 2013-10-01 16:06:44.264554277 +0000 191747 196825 @@ -25,4 +25,4 @@ 191748 196826 … … 191753 196831 diff -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 191754 196832 --- 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+0000196833 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc 2013-10-01 16:06:44.264554277 +0000 191756 196834 @@ -36,9 +36,9 @@ 191757 196835 VERIFY( u.varcov()[1] == 0.0 ); … … 191768 196846 diff -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 191769 196847 --- 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+0000196848 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc 2013-10-01 16:06:44.264554277 +0000 191771 196849 @@ -36,9 +36,9 @@ 191772 196850 VERIFY( u.varcov()[1] == 0.0 ); … … 191783 196861 diff -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 191784 196862 --- 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+0000196863 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc 2013-10-01 16:06:44.264554277 +0000 191786 196864 @@ -0,0 +1,44 @@ 191787 196865 +// { dg-options "-std=c++0x" } … … 191831 196909 diff -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 191832 196910 --- 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+0000196911 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc 2013-10-01 16:06:44.264554277 +0000 191834 196912 @@ -0,0 +1,44 @@ 191835 196913 +// { dg-options "-std=c++0x" } … … 191879 196957 diff -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 191880 196958 --- 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+0000196959 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc 2013-10-01 16:06:44.264554277 +0000 191882 196960 @@ -0,0 +1,42 @@ 191883 196961 +// { dg-options "-std=c++0x" } … … 191925 197003 diff -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 191926 197004 --- 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+0000197005 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc 2013-10-01 16:06:44.264554277 +0000 191928 197006 @@ -0,0 +1,42 @@ 191929 197007 +// { dg-options "-std=c++0x" } … … 191971 197049 diff -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 191972 197050 --- 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+0000197051 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc 2013-10-01 16:06:44.264554277 +0000 191974 197052 @@ -0,0 +1,44 @@ 191975 197053 +// { dg-options "-std=c++0x" } … … 192019 197097 diff -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 192020 197098 --- 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+0000197099 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc 2013-10-01 16:06:44.264554277 +0000 192022 197100 @@ -0,0 +1,26 @@ 192023 197101 +// { dg-do compile } … … 192049 197127 diff -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 192050 197128 --- 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+0000197129 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc 2013-10-01 16:06:44.264554277 +0000 192052 197130 @@ -0,0 +1,34 @@ 192053 197131 +// { dg-do compile } … … 192087 197165 diff -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 192088 197166 --- 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+0000197167 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc 2013-10-01 16:06:44.264554277 +0000 192090 197168 @@ -0,0 +1,43 @@ 192091 197169 +// { dg-options "-std=c++0x" } … … 192134 197212 diff -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 192135 197213 --- 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+0000197214 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc 2013-10-01 16:06:44.264554277 +0000 192137 197215 @@ -0,0 +1,43 @@ 192138 197216 +// { dg-options "-std=c++0x" } … … 192181 197259 diff -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 192182 197260 --- 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+0000197261 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc 2013-10-01 16:06:44.264554277 +0000 192184 197262 @@ -0,0 +1,42 @@ 192185 197263 +// { dg-options "-std=c++0x" } … … 192227 197305 diff -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 192228 197306 --- 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+0000197307 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc 2013-10-01 16:06:44.264554277 +0000 192230 197308 @@ -0,0 +1,42 @@ 192231 197309 +// { dg-options "-std=c++0x" } … … 192273 197351 diff -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 192274 197352 --- 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+0000197353 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc 2013-10-01 16:06:44.264554277 +0000 192276 197354 @@ -0,0 +1,44 @@ 192277 197355 +// { dg-options "-std=c++0x" } … … 192321 197399 diff -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 192322 197400 --- 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+0000197401 +++ 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 192324 197402 @@ -0,0 +1,26 @@ 192325 197403 +// { dg-do compile } … … 192351 197429 diff -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 192352 197430 --- 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+0000197431 +++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc 2013-10-01 16:06:44.264554277 +0000 192354 197432 @@ -0,0 +1,34 @@ 192355 197433 +// { dg-do compile } … … 192993 198071 - typedef test_type::param_type param_type; 192994 198072 -} 198073 diff -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 +} 198118 diff -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 +} 192995 198160 diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp 192996 198161 --- 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+0000198162 +++ gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp 2013-10-01 16:06:44.268554277 +0000 192998 198163 @@ -626,7 +626,7 @@ 192999 198164 # Compile with "-w" so that warnings issued by the compiler … … 193005 198170 error "could not compile $f" 193006 198171 } 198172 diff -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 +} 198241 diff -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 +} 198318 diff -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 +} 193007 198387 diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h 193008 198388 --- 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+0000198389 +++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h 2013-10-01 16:06:44.268554277 +0000 193010 198390 @@ -223,6 +223,58 @@ 193011 198391 template<typename _Tp> … … 193069 198449 diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc 193070 198450 --- 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+0000198451 +++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc 2013-10-01 16:06:44.268554277 +0000 193072 198452 @@ -19,9 +19,13 @@ 193073 198453 #include <stdexcept>
Note:
See TracChangeset
for help on using the changeset viewer.
