[gcc] 4.8.0-0.10

Jakub Jelinek jakub at fedoraproject.org
Fri Feb 8 18:18:37 UTC 2013


commit c9aef059c59da2de9835e73c74bb35da49caa4ab
Author: Jakub Jelinek <jakub at redhat.com>
Date:   Fri Feb 8 19:18:31 2013 +0100

    4.8.0-0.10

 .gitignore          |    1 +
 gcc.spec            |   36 ++++---
 gcc48-pr52448.patch |  191 ------------------------------
 gcc48-pr53948.patch |   72 ++++++++++++
 gcc48-pr55978.patch |   49 --------
 gcc48-pr56154.patch |  318 ---------------------------------------------------
 gcc48-pr56228.patch |   86 --------------
 gcc48-pr56245.patch |   47 ++++++++
 gcc48-pr56256.patch |   36 ++++++
 sources             |    2 +-
 10 files changed, 179 insertions(+), 659 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 9943373..cea4278 100644
--- a/.gitignore
+++ b/.gitignore
@@ -58,3 +58,4 @@
 /gcc-4.8.0-20130129.tar.bz2
 /gcc-4.8.0-20130131.tar.bz2
 /gcc-4.8.0-20130206.tar.bz2
+/gcc-4.8.0-20130208.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index 34bb0ea..ab4d70a 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20130206
-%global SVNREV 195813
+%global DATE 20130208
+%global SVNREV 195894
 %global gcc_version 4.8.0
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 0.9
+%global gcc_release 0.10
 %global _unpackaged_files_terminate_build 0
 %global multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
@@ -194,10 +194,9 @@ Patch10: gcc48-pr38757.patch
 Patch11: gcc48-libstdc++-docs.patch
 Patch12: gcc48-no-add-needed.patch
 Patch13: gcc48-pr55608.patch
-Patch14: gcc48-pr52448.patch
-Patch15: gcc48-pr55978.patch
-Patch16: gcc48-pr56154.patch
-Patch17: gcc48-pr56228.patch
+Patch14: gcc48-pr56256.patch
+Patch15: gcc48-pr53948.patch
+Patch16: gcc48-pr56245.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -750,10 +749,9 @@ package or when debugging this package.
 %endif
 %patch12 -p0 -b .no-add-needed~
 %patch13 -p0 -b .pr55608~
-%patch14 -p0 -b .pr52448~
-%patch15 -p0 -b .pr55978~
-%patch16 -p0 -b .pr56154~
-%patch17 -p0 -b .pr56228~
+%patch14 -p0 -b .pr56256~
+%patch15 -p0 -b .pr53948~
+%patch16 -p0 -b .pr56245~
 
 %if 0%{?_enable_debug_packages}
 cat > split-debuginfo.sh <<\EOF
@@ -817,9 +815,6 @@ tar xzf %{SOURCE4}
 tar xjf %{SOURCE10}
 %endif
 
-# Hack to work around PR56178
-echo 'urealp.o : ALL_ADAFLAGS += -fno-profile-use' >> gcc/ada/gcc-interface/Makefile.in
-
 sed -i -e 's/4\.8\.0/4.8.0/' gcc/BASE-VER
 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
 
@@ -2980,6 +2975,19 @@ fi
 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
 
 %changelog
+* Fri Feb  8 2013 Jakub Jelinek <jakub at redhat.com> 4.8.0-0.10
+- updated from trunk
+  - PRs bootstrap/56227, c++/56235, c++/56237, c++/56239, c++/56241,
+	debug/53363, fortran/54339, fortran/55789, libstdc++/56193,
+	libstdc++/56216, lto/56231, middle-end/56181,
+	rtl-optimization/56195, rtl-optimization/56225, target/50678,
+	target/54009, target/54131, tree-optimization/56250
+  - fix Ada frontend miscompilation with profiledbootstrap (#906516,
+    PR rtl-optimization/56178)
+- restore parsing of ppc inline asm dialects (#909298, PR target/56256)
+- fix up libiberty old regex (PR other/56245)
+- fix IRA -O0 -g code debug regression (PR debug/53948)
+
 * Wed Feb  6 2013 Jakub Jelinek <jakub at redhat.com> 4.8.0-0.9
 - updated from trunk
   - PRs c++/54122, c++/56177, c++/56208, debug/54793, fortran/47517,
diff --git a/gcc48-pr53948.patch b/gcc48-pr53948.patch
new file mode 100644
index 0000000..e9847a2
--- /dev/null
+++ b/gcc48-pr53948.patch
@@ -0,0 +1,72 @@
+2013-02-08  Jeff Law  <law at redhat.com>
+
+	PR debug/53948
+	* emit-rtl.c (reg_is_parm_p): New function.
+	* regs.h (reg_is_parm_p): New prototype.
+	* ira-conflicts.c (ira_build_conflicts): Allow parameters in
+	callee-clobbered registers.
+
+	* gcc.dg/debug/dwarf2/pr53948.c: New test.
+
+--- gcc/emit-rtl.c
++++ gcc/emit-rtl.c
+@@ -919,6 +919,18 @@ gen_reg_rtx (enum machine_mode mode)
+   return val;
+ }
+ 
++/* Return TRUE if REG is a PARM_DECL, FALSE otherwise.  */
++
++bool
++reg_is_parm_p (rtx reg)
++{
++  tree decl;
++
++  gcc_assert (REG_P (reg));
++  decl = REG_EXPR (reg);
++  return (decl && TREE_CODE (decl) == PARM_DECL);
++}
++
+ /* Update NEW with the same attributes as REG, but with OFFSET added
+    to the REG_OFFSET.  */
+ 
+--- gcc/ira-conflicts.c
++++ gcc/ira-conflicts.c
+@@ -895,8 +895,12 @@ ira_build_conflicts (void)
+ 
+ 	  if ((! flag_caller_saves && ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
+ 	      /* For debugging purposes don't put user defined variables in
+-		 callee-clobbered registers.  */
+-	      || (optimize == 0 && REG_USERVAR_P (allocno_reg)))
++		 callee-clobbered registers.  However, do allow parameters
++		 in callee-clobbered registers to improve debugging.  This
++		 is a bit of a fragile hack.  */
++	      || (optimize == 0
++		  && REG_USERVAR_P (allocno_reg)
++		  && ! reg_is_parm_p (allocno_reg)))
+ 	    {
+ 	      IOR_HARD_REG_SET (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
+ 				call_used_reg_set);
+--- gcc/regs.h
++++ gcc/regs.h
+@@ -89,6 +89,8 @@ REG_N_SETS (int regno)
+ #define SET_REG_N_SETS(N,V) (regstat_n_sets_and_refs[N].sets = V)
+ #define INC_REG_N_SETS(N,V) (regstat_n_sets_and_refs[N].sets += V)
+ 
++/* Given a REG, return TRUE if the reg is a PARM_DECL, FALSE otherwise.  */
++extern bool reg_is_parm_p (rtx);
+ 
+ /* Functions defined in regstat.c.  */
+ extern void regstat_init_n_sets_and_refs (void);
+--- gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c	2012-11-17 15:43:17.572007394 +0100
++++ gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c	2013-02-08 19:10:23.000000000 +0100
+@@ -0,0 +1,10 @@
++/* Test that we emit a .line directive for the line
++   with local variable initializations.  */
++/* { dg-options "-O0 -g -dA" } */
++/* { dg-final { scan-assembler ".loc 1 8 0|# line 8" } } */
++
++
++int f (register int a, register int b) {
++  register int x = b, y = a;
++  return x + y; }
++
diff --git a/gcc48-pr56245.patch b/gcc48-pr56245.patch
new file mode 100644
index 0000000..874e39b
--- /dev/null
+++ b/gcc48-pr56245.patch
@@ -0,0 +1,47 @@
+2013-02-08  Jakub Jelinek  <jakub at redhat.com>
+
+	PR other/56245
+	* regex.c (PTR_INT_TYPE): Define.
+	(EXTEND_BUFFER): Change incr type from int to PTR_INT_TYPE.
+
+--- gcc/regex.c.jj	2011-05-02 18:39:35.000000000 +0200
++++ gcc/regex.c	2013-02-08 18:33:18.136802070 +0100
+@@ -46,9 +46,11 @@
+ 
+ # if defined STDC_HEADERS && !defined emacs
+ #  include <stddef.h>
++#  define PTR_INT_TYPE ptrdiff_t
+ # else
+ /* We need this for `regex.h', and perhaps for the Emacs include files.  */
+ #  include <sys/types.h>
++#  define PTR_INT_TYPE long
+ # endif
+ 
+ # define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
+@@ -2045,7 +2047,7 @@ static reg_errcode_t byte_compile_range
+     /* How many characters the new buffer can have?  */			\
+     wchar_count = bufp->allocated / sizeof(UCHAR_T);			\
+     if (wchar_count == 0) wchar_count = 1;				\
+-    /* Truncate the buffer to CHAR_T align.  */			\
++    /* Truncate the buffer to CHAR_T align.  */				\
+     bufp->allocated = wchar_count * sizeof(UCHAR_T);			\
+     RETALLOC (COMPILED_BUFFER_VAR, wchar_count, UCHAR_T);		\
+     bufp->buffer = (char*)COMPILED_BUFFER_VAR;				\
+@@ -2054,7 +2056,7 @@ static reg_errcode_t byte_compile_range
+     /* If the buffer moved, move all the pointers into it.  */		\
+     if (old_buffer != COMPILED_BUFFER_VAR)				\
+       {									\
+-	int incr = COMPILED_BUFFER_VAR - old_buffer;			\
++	PTR_INT_TYPE incr = COMPILED_BUFFER_VAR - old_buffer;		\
+ 	MOVE_BUFFER_POINTER (b);					\
+ 	MOVE_BUFFER_POINTER (begalt);					\
+ 	if (fixup_alt_jump)						\
+@@ -2082,7 +2084,7 @@ static reg_errcode_t byte_compile_range
+     /* If the buffer moved, move all the pointers into it.  */		\
+     if (old_buffer != COMPILED_BUFFER_VAR)				\
+       {									\
+-	int incr = COMPILED_BUFFER_VAR - old_buffer;			\
++	PTR_INT_TYPE incr = COMPILED_BUFFER_VAR - old_buffer;		\
+ 	MOVE_BUFFER_POINTER (b);					\
+ 	MOVE_BUFFER_POINTER (begalt);					\
+ 	if (fixup_alt_jump)						\
diff --git a/gcc48-pr56256.patch b/gcc48-pr56256.patch
new file mode 100644
index 0000000..622c5cb
--- /dev/null
+++ b/gcc48-pr56256.patch
@@ -0,0 +1,36 @@
+2013-02-08  Jakub Jelinek  <jakub at redhat.com>
+
+	PR target/56256
+	* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
+
+	* gcc.target/powerpc/pr56256.c: New test.
+
+--- gcc/config/rs6000/rs6000.h.jj	2013-01-11 09:03:12.000000000 +0100
++++ gcc/config/rs6000/rs6000.h	2013-02-08 16:46:35.988977363 +0100
+@@ -356,6 +356,12 @@ extern const char *host_detect_local_cpu
+ #define PROCESSOR_DEFAULT   PROCESSOR_PPC603
+ #define PROCESSOR_DEFAULT64 PROCESSOR_RS64A
+ 
++/* Specify the dialect of assembler to use.  Only new mnemonics are supported
++   starting with GCC 4.8, i.e. just one dialect, but for backwards
++   compatibility with older inline asm ASSEMBLER_DIALECT needs to be
++   defined.  */
++#define ASSEMBLER_DIALECT 1
++
+ /* Debug support */
+ #define MASK_DEBUG_STACK	0x01	/* debug stack applications */
+ #define	MASK_DEBUG_ARG		0x02	/* debug argument handling */
+--- gcc/testsuite/gcc.target/powerpc/pr56256.c.jj	2013-02-08 17:00:11.096171281 +0100
++++ gcc/testsuite/gcc.target/powerpc/pr56256.c	2013-02-08 17:09:05.448004295 +0100
+@@ -0,0 +1,11 @@
++/* PR target/56256 */
++/* { dg-do assemble } */
++/* { dg-options "-O2" } */
++
++int
++foo (void)
++{
++  int a;
++  __asm__ ("{lil|li} %0,%1" : "=r" (a) : "I" (26));
++  return a;
++}
diff --git a/sources b/sources
index a2b8afd..53d82cb 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
 be78a47bd82523250eb3e91646db5b3d  cloog-0.18.0.tar.gz
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
 bce1586384d8635a76d2f017fb067cd2  isl-0.11.1.tar.bz2
-c357247b133cc019759496a4983ceb79  gcc-4.8.0-20130206.tar.bz2
+94f2b1c221e6f1561a93525c6679080c  gcc-4.8.0-20130208.tar.bz2


More information about the scm-commits mailing list