Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/FSF]: src/external/gpl3/gcc/dist Import gcc 4.8.3 which has 98 bugs fixe...



details:   https://anonhg.NetBSD.org/src/rev/4c0e32b4d6b7
branches:  FSF
changeset: 746653:4c0e32b4d6b7
user:      skrll <skrll%NetBSD.org@localhost>
date:      Tue May 27 08:49:56 2014 +0000

description:
Import gcc 4.8.3 which has 98 bugs fixed on gcc-4-8-3-pre-r208254

diffstat:

 external/gpl3/gcc/dist/config/ChangeLog                     |     4 +
 external/gpl3/gcc/dist/gcc/builtins.c                       |    28 +-
 external/gpl3/gcc/dist/gcc/c-family/ChangeLog               |    64 +
 external/gpl3/gcc/dist/gcc/c-family/c-common.c              |    18 +-
 external/gpl3/gcc/dist/gcc/c-family/c-opts.c                |    25 +-
 external/gpl3/gcc/dist/gcc/c-family/c-pragma.c              |    13 +-
 external/gpl3/gcc/dist/gcc/c-family/c.opt                   |    10 +-
 external/gpl3/gcc/dist/gcc/c/ChangeLog                      |    20 +
 external/gpl3/gcc/dist/gcc/c/c-decl.c                       |     4 +-
 external/gpl3/gcc/dist/gcc/c/c-parser.c                     |     4 +-
 external/gpl3/gcc/dist/gcc/c/c-tree.h                       |     2 +
 external/gpl3/gcc/dist/gcc/c/c-typeck.c                     |    34 +-
 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.c         |    11 +-
 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.h         |     6 +-
 external/gpl3/gcc/dist/gcc/config/arm/arm.c                 |    47 +-
 external/gpl3/gcc/dist/gcc/config/arm/arm.h                 |    11 +-
 external/gpl3/gcc/dist/gcc/config/avr/avr.c                 |    25 +-
 external/gpl3/gcc/dist/gcc/config/avr/avr.md                |     8 +-
 external/gpl3/gcc/dist/gcc/config/darwin.c                  |    60 +-
 external/gpl3/gcc/dist/gcc/config/i386/i386.c               |    29 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/altivec.h          |    50 +
 external/gpl3/gcc/dist/gcc/config/rs6000/altivec.md         |  1956 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/constraints.md     |    66 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/crypto.md          |   101 +
 external/gpl3/gcc/dist/gcc/config/rs6000/darwin.h           |     3 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/dfp.md             |   406 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/htm.md             |   366 +
 external/gpl3/gcc/dist/gcc/config/rs6000/htmintrin.h        |   131 +
 external/gpl3/gcc/dist/gcc/config/rs6000/htmxlintrin.h      |   213 +
 external/gpl3/gcc/dist/gcc/config/rs6000/linux64.h          |    32 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/option-defaults.h  |     1 +
 external/gpl3/gcc/dist/gcc/config/rs6000/power8.md          |   373 +
 external/gpl3/gcc/dist/gcc/config/rs6000/ppc-asm.h          |    25 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/predicates.md      |   319 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-builtin.def |   540 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-c.c         |   934 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-cpus.def    |    28 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-modes.def   |     6 +
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-opts.h      |    11 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-protos.h    |    19 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c           |  6316 ++++++-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.h           |   310 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.md          |  4065 +++-
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.opt         |    81 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/sync.md            |   369 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/sysv4.h            |    32 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/sysv4le.h          |     7 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/t-linux64          |    10 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/t-linux64bele      |     7 +
 external/gpl3/gcc/dist/gcc/config/rs6000/t-linux64le        |     3 +
 external/gpl3/gcc/dist/gcc/config/rs6000/t-linux64lebe      |     7 +
 external/gpl3/gcc/dist/gcc/config/rs6000/t-rs6000           |     3 +
 external/gpl3/gcc/dist/gcc/config/rs6000/vector.md          |   132 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/vsx.md             |  1218 +-
 external/gpl3/gcc/dist/gcc/config/s390/s390.c               |     2 +-
 external/gpl3/gcc/dist/gcc/config/sh/sh.c                   |     7 +-
 external/gpl3/gcc/dist/gcc/config/sh/sh.md                  |     1 +
 external/gpl3/gcc/dist/gcc/config/sparc/sparc-protos.h      |     3 +-
 external/gpl3/gcc/dist/gcc/config/sparc/sparc.c             |   176 +-
 external/gpl3/gcc/dist/gcc/config/sparc/sparc.md            |   388 +-
 external/gpl3/gcc/dist/gcc/config/sparc/sparc.opt           |     4 +
 external/gpl3/gcc/dist/gcc/config/sparc/sync.md             |    19 +-
 external/gpl3/gcc/dist/gcc/cp/ChangeLog                     |    26 +
 external/gpl3/gcc/dist/gcc/cp/call.c                        |    21 +-
 external/gpl3/gcc/dist/gcc/cp/decl.c                        |     8 +
 external/gpl3/gcc/dist/gcc/cp/typeck.c                      |     2 +-
 external/gpl3/gcc/dist/gcc/cp/typeck2.c                     |    15 +-
 external/gpl3/gcc/dist/gcc/doc/aot-compile.1                |     6 +-
 external/gpl3/gcc/dist/gcc/doc/cpp.1                        |    73 +-
 external/gpl3/gcc/dist/gcc/doc/cpp.info                     |   Bin 
 external/gpl3/gcc/dist/gcc/doc/cppinternals.info            |   Bin 
 external/gpl3/gcc/dist/gcc/doc/extend.texi                  |   673 +-
 external/gpl3/gcc/dist/gcc/doc/fsf-funding.7                |     2 +-
 external/gpl3/gcc/dist/gcc/doc/g++.1                        |  9205 +++++++---
 external/gpl3/gcc/dist/gcc/doc/gc-analyze.1                 |     6 +-
 external/gpl3/gcc/dist/gcc/doc/gcc.1                        |  9205 +++++++---
 external/gpl3/gcc/dist/gcc/doc/gcc.info                     |   Bin 
 external/gpl3/gcc/dist/gcc/doc/gccinstall.info              |   Bin 
 external/gpl3/gcc/dist/gcc/doc/gccint.info                  |   Bin 
 external/gpl3/gcc/dist/gcc/doc/gcj-dbtool.1                 |     6 +-
 external/gpl3/gcc/dist/gcc/doc/gcj.1                        |     8 +-
 external/gpl3/gcc/dist/gcc/doc/gcj.info                     |   Bin 
 external/gpl3/gcc/dist/gcc/doc/gcov.1                       |    85 +-
 external/gpl3/gcc/dist/gcc/doc/gfdl.7                       |   104 +-
 external/gpl3/gcc/dist/gcc/doc/gfortran.1                   |   425 +-
 external/gpl3/gcc/dist/gcc/doc/gij.1                        |     6 +-
 external/gpl3/gcc/dist/gcc/doc/gpl.7                        |     2 +-
 external/gpl3/gcc/dist/gcc/doc/grmic.1                      |     6 +-
 external/gpl3/gcc/dist/gcc/doc/invoke.texi                  |   140 +-
 external/gpl3/gcc/dist/gcc/doc/jcf-dump.1                   |     6 +-
 external/gpl3/gcc/dist/gcc/doc/jv-convert.1                 |     6 +-
 external/gpl3/gcc/dist/gcc/doc/md.texi                      |    54 +-
 external/gpl3/gcc/dist/gcc/doc/rebuild-gcj-db.1             |     6 +-
 external/gpl3/gcc/dist/gcc/doc/sourcebuild.texi             |    31 +-
 external/gpl3/gcc/dist/gcc/dse.c                            |     3 +-
 external/gpl3/gcc/dist/gcc/lto/ChangeLog                    |     4 +
 external/gpl3/gcc/dist/gcc/objc/ChangeLog                   |    15 +
 external/gpl3/gcc/dist/gcc/objc/objc-next-runtime-abi-01.c  |    33 -
 external/gpl3/gcc/dist/gcc/objc/objc-next-runtime-abi-02.c  |    28 -
 external/gpl3/gcc/dist/gcc/objcp/ChangeLog                  |     4 +
 external/gpl3/gcc/dist/gcc/rtl.h                            |     2 +
 external/gpl3/gcc/dist/gcc/tree.c                           |    54 +
 102 files changed, 29410 insertions(+), 10023 deletions(-)

diffs (truncated from 60570 to 300 lines):

diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/config/ChangeLog
--- a/external/gpl3/gcc/dist/config/ChangeLog   Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/config/ChangeLog   Tue May 27 08:49:56 2014 +0000
@@ -1,3 +1,7 @@
+2014-05-22  Release Manager
+
+       * GCC 4.8.3 released.
+
 2013-10-16  Release Manager
 
        * GCC 4.8.2 released.
diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/gcc/builtins.c
--- a/external/gpl3/gcc/dist/gcc/builtins.c     Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/builtins.c     Tue May 27 08:49:56 2014 +0000
@@ -905,9 +905,24 @@
   if (! HAVE_nonlocal_goto)
 #endif
     {
+      /* First adjust our frame pointer to its actual value.  It was
+        previously set to the start of the virtual area corresponding to
+        the stacked variables when we branched here and now needs to be
+        adjusted to the actual hardware fp value.
+
+        Assignments to virtual registers are converted by
+        instantiate_virtual_regs into the corresponding assignment
+        to the underlying register (fp in this case) that makes
+        the original assignment true.
+        So the following insn will actually be decrementing fp by
+        STARTING_FRAME_OFFSET.  */
       emit_move_insn (virtual_stack_vars_rtx, hard_frame_pointer_rtx);
-      /* This might change the hard frame pointer in ways that aren't
-        apparent to early optimization passes, so force a clobber.  */
+
+      /* Restoring the frame pointer also modifies the hard frame pointer.
+        Mark it used (so that the previous assignment remains live once
+        the frame pointer is eliminated) and clobbered (to represent the
+        implicit update from the assignment).  */
+      emit_use (hard_frame_pointer_rtx);
       emit_clobber (hard_frame_pointer_rtx);
     }
 
@@ -948,8 +963,7 @@
 
   /* We must not allow the code we just generated to be reordered by
      scheduling.  Specifically, the update of the frame pointer must
-     happen immediately, not later.  Similarly, we must block
-     (frame-related) register values to be used across this code.  */
+     happen immediately, not later.  */
   emit_insn (gen_blockage ());
 }
 
@@ -5861,6 +5875,9 @@
   switch (fcode)
     {
     CASE_FLT_FN (BUILT_IN_FABS):
+    case BUILT_IN_FABSD32:
+    case BUILT_IN_FABSD64:
+    case BUILT_IN_FABSD128:
       target = expand_builtin_fabs (exp, target, subtarget);
       if (target)
        return target;
@@ -10313,6 +10330,9 @@
       return fold_builtin_strlen (loc, type, arg0);
 
     CASE_FLT_FN (BUILT_IN_FABS):
+    case BUILT_IN_FABSD32:
+    case BUILT_IN_FABSD64:
+    case BUILT_IN_FABSD128:
       return fold_builtin_fabs (loc, arg0, type);
 
     case BUILT_IN_ABS:
diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/gcc/c-family/ChangeLog
--- a/external/gpl3/gcc/dist/gcc/c-family/ChangeLog     Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-family/ChangeLog     Tue May 27 08:49:56 2014 +0000
@@ -1,3 +1,67 @@
+2014-05-22  Release Manager
+
+       * GCC 4.8.3 released.
+
+2014-05-06  Richard Biener  <rguenther%suse.de@localhost>
+
+       * c-opts.c (c_common_post_options): For -freestanding,
+       -fno-hosted and -fno-builtin disable pattern recognition
+       if not enabled explicitely.
+
+2014-04-10  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       Backport from mainline
+       2014-03-28  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       PR c++/60689
+       * c-common.c (add_atomic_size_parameter): When creating new
+       params vector, push the size argument first.
+
+       2014-03-22  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       PR debug/60603
+       * c-opts.c (c_finish_options): Restore cb_file_change call to
+       <built-in>.
+
+       2014-03-13  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       PR middle-end/36282
+       * c-pragma.c (apply_pragma_weak): Only look at
+       TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if
+       DECL_ASSEMBLER_NAME_SET_P (decl).
+       (maybe_apply_pending_pragma_weaks): Exit early if
+       vec_safe_is_empty (pending_weaks) rather than only when
+       !pending_weaks.
+       (maybe_apply_pragma_weak): Likewise.  If !DECL_ASSEMBLER_NAME_SET_P,
+       set assembler name back to NULL afterwards.
+
+2014-04-07  Dominique d'Humieres <dominiq%lps.ens.fr@localhost>    
+
+       Backport from mainline
+       2013-09-14  Iain Sandoe <iains%gcc.gnu.org@localhost>
+
+       PR target/48094
+       * c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version,
+       fobjc-gc, freplace-objc-classes): Accept for LTO.
+
+2014-03-06  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       Backport from mainline
+       2014-02-19  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       PR c/37743
+       * c-common.c (c_common_nodes_and_builtins): When initializing
+       c_uint{16,32,64}_type_node, also set corresponding
+       uint{16,32,64}_type_node to the same value.
+
+       2014-02-12  Jakub Jelinek  <jakub%redhat.com@localhost>
+
+       PR c/60101
+       * c-common.c (merge_tlist): If copy is true, call new_tlist,
+       if false, add ADD itself, rather than vice versa.
+       (verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
+       copy.  For SAVE_EXPR, only call merge_tlist once.
+
 2013-11-29  Jakub Jelinek  <jakub%redhat.com@localhost>
 
        PR c/59280
diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/gcc/c-family/c-common.c
--- a/external/gpl3/gcc/dist/gcc/c-family/c-common.c    Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-family/c-common.c    Tue May 27 08:49:56 2014 +0000
@@ -2894,7 +2894,7 @@
          }
       if (!found)
        {
-         *end = copy ? add : new_tlist (NULL, add->expr, add->writer);
+         *end = copy ? new_tlist (NULL, add->expr, add->writer) : add;
          end = &(*end)->next;
          *end = 0;
        }
@@ -3052,7 +3052,7 @@
       verify_tree (TREE_OPERAND (x, 0), &tmp_before, &tmp_list2, NULL_TREE);
       warn_for_collisions (tmp_list2);
       merge_tlist (pbefore_sp, tmp_before, 0);
-      merge_tlist (pbefore_sp, tmp_list2, 1);
+      merge_tlist (pbefore_sp, tmp_list2, 0);
 
       tmp_list3 = tmp_nosp = 0;
       verify_tree (TREE_OPERAND (x, 1), &tmp_list3, &tmp_nosp, NULL_TREE);
@@ -3156,12 +3156,7 @@
            warn_for_collisions (tmp_nosp);
 
            tmp_list3 = 0;
-           while (tmp_nosp)
-             {
-               struct tlist *t = tmp_nosp;
-               tmp_nosp = t->next;
-               merge_tlist (&tmp_list3, t, 0);
-             }
+           merge_tlist (&tmp_list3, tmp_nosp, 0);
            t->cache_before_sp = tmp_before;
            t->cache_after_sp = tmp_list3;
          }
@@ -5511,13 +5506,13 @@
     uint8_type_node =
       TREE_TYPE (identifier_global_value (c_get_ident (UINT8_TYPE)));
   if (UINT16_TYPE)
-    c_uint16_type_node =
+    c_uint16_type_node = uint16_type_node =
       TREE_TYPE (identifier_global_value (c_get_ident (UINT16_TYPE)));
   if (UINT32_TYPE)
-    c_uint32_type_node =
+    c_uint32_type_node = uint32_type_node =
       TREE_TYPE (identifier_global_value (c_get_ident (UINT32_TYPE)));
   if (UINT64_TYPE)
-    c_uint64_type_node =
+    c_uint64_type_node = uint64_type_node =
       TREE_TYPE (identifier_global_value (c_get_ident (UINT64_TYPE)));
   if (INT_LEAST8_TYPE)
     int_least8_type_node =
@@ -10207,6 +10202,7 @@
 
       len = params->length ();
       vec_alloc (v, len + 1);
+      v->quick_push (build_int_cst (size_type_node, n));
       for (z = 0; z < len; z++)
        v->quick_push ((*params)[z]);
       f = build_function_call_vec (loc, function, v, NULL);
diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/gcc/c-family/c-opts.c
--- a/external/gpl3/gcc/dist/gcc/c-family/c-opts.c      Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-family/c-opts.c      Tue May 27 08:49:56 2014 +0000
@@ -840,6 +840,12 @@
   if (flag_objc_exceptions && !flag_objc_sjlj_exceptions)
     flag_exceptions = 1;
 
+  /* If -ffreestanding, -fno-hosted or -fno-builtin then disable
+     pattern recognition.  */
+  if (!global_options_set.x_flag_tree_loop_distribute_patterns
+      && flag_no_builtin)
+    flag_tree_loop_distribute_patterns = 0;
+
   /* -Woverlength-strings is off by default, but is enabled by -Wpedantic.
      It is never enabled in C++, as the minimum limit is not normative
      in that standard.  */
@@ -1258,17 +1264,18 @@
     {
       size_t i;
 
-      {
-       /* Make sure all of the builtins about to be declared have
-         BUILTINS_LOCATION has their source_location.  */
-       source_location builtins_loc = BUILTINS_LOCATION;
-       cpp_force_token_locations (parse_in, &builtins_loc);
+      cb_file_change (parse_in,
+                     linemap_add (line_table, LC_RENAME, 0,
+                                  _("<built-in>"), 0));
+      /* Make sure all of the builtins about to be declared have
+        BUILTINS_LOCATION has their source_location.  */
+      source_location builtins_loc = BUILTINS_LOCATION;
+      cpp_force_token_locations (parse_in, &builtins_loc);
 
-       cpp_init_builtins (parse_in, flag_hosted);
-       c_cpp_builtins (parse_in);
+      cpp_init_builtins (parse_in, flag_hosted);
+      c_cpp_builtins (parse_in);
 
-       cpp_stop_forcing_token_locations (parse_in);
-      }
+      cpp_stop_forcing_token_locations (parse_in);
 
       /* We're about to send user input to cpplib, so make it warn for
         things that we previously (when we sent it internal definitions)
diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/gcc/c-family/c-pragma.c
--- a/external/gpl3/gcc/dist/gcc/c-family/c-pragma.c    Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-family/c-pragma.c    Tue May 27 08:49:56 2014 +0000
@@ -259,6 +259,7 @@
 
   if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl)
       && !DECL_WEAK (decl) /* Don't complain about a redundant #pragma.  */
+      && DECL_ASSEMBLER_NAME_SET_P (decl)
       && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
     warning (OPT_Wpragmas, "applying #pragma weak %q+D after first use "
             "results in unspecified behavior", decl);
@@ -276,7 +277,7 @@
   /* Avoid asking for DECL_ASSEMBLER_NAME when it's not needed.  */
 
   /* No weak symbols pending, take the short-cut.  */
-  if (!pending_weaks)
+  if (vec_safe_is_empty (pending_weaks))
     return;
   /* If it's not visible outside this file, it doesn't matter whether
      it's weak.  */
@@ -288,7 +289,13 @@
   if (TREE_CODE (decl) != FUNCTION_DECL && TREE_CODE (decl) != VAR_DECL)
     return;
 
-  id = DECL_ASSEMBLER_NAME (decl);
+  if (DECL_ASSEMBLER_NAME_SET_P (decl))
+    id = DECL_ASSEMBLER_NAME (decl);
+  else
+    {
+      id = DECL_ASSEMBLER_NAME (decl);
+      SET_DECL_ASSEMBLER_NAME (decl, NULL_TREE);
+    }
 
   FOR_EACH_VEC_ELT (*pending_weaks, i, pe)
     if (id == pe->name)
@@ -309,7 +316,7 @@
   pending_weak *pe;
   symtab_node target;
 
-  if (!pending_weaks)
+  if (vec_safe_is_empty (pending_weaks))
     return;
 
   FOR_EACH_VEC_ELT (*pending_weaks, i, pe)
diff -r 9cf9df6d5500 -r 4c0e32b4d6b7 external/gpl3/gcc/dist/gcc/c-family/c.opt
--- a/external/gpl3/gcc/dist/gcc/c-family/c.opt Tue May 27 08:39:48 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-family/c.opt Tue May 27 08:49:56 2014 +0000
@@ -933,7 +933,7 @@
 Recognize GNU-defined keywords
 
 fgnu-runtime
-ObjC ObjC++ Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
+ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
 Generate code for GNU runtime environment



Home | Main Index | Thread Index | Old Index