rpms/gcc/devel fastjar-man.patch, NONE, 1.1 gcc44-pr44492.patch, NONE, 1.1 gcc44-pr44542.patch, NONE, 1.1 gcc44-pr44610.patch, NONE, 1.1 .cvsignore, 1.316, 1.317 gcc.spec, 1.98, 1.99 import.log, 1.22, 1.23 sources, 1.321, 1.322 gcc44-rh341221.patch, 1.1, NONE

Jakub Jelinek jakub at fedoraproject.org
Thu Jun 24 20:18:32 UTC 2010


Author: jakub

Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv12999/devel

Modified Files:
	.cvsignore gcc.spec import.log sources 
Added Files:
	fastjar-man.patch gcc44-pr44492.patch gcc44-pr44542.patch 
	gcc44-pr44610.patch 
Removed Files:
	gcc44-rh341221.patch 
Log Message:
4.4.4-9


fastjar-man.patch:
 Makefile.am |    2 +-
 Makefile.in |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- NEW FILE fastjar-man.patch ---
2010-03-24  Jan Kratochvil  <jan.kratochvil at redhat.com>

	* Makefile.am (POD2MAN): Provide --date from ChangeLog.
	* Makefile.in: Regenerate.

--- fastjar-0.97/Makefile.am.jj	2008-10-16 04:24:55.000000000 -0400
+++ fastjar-0.97/Makefile.am	2010-06-21 09:29:41.021398000 -0400
@@ -39,7 +39,7 @@ EXTRA_DIST = \
 	texi2pod.pl
 
 TEXI2POD = perl $(srcdir)/texi2pod.pl
-POD2MAN = pod2man --center="GNU" --release=@VERSION@
+POD2MAN = pod2man --center="GNU" --release=@VERSION@ --date=$(shell sed -n '1s/ .*//p' <$(srcdir)/ChangeLog)
 
 .pod.1:
 	-($(POD2MAN) --section=1 $< > $(@).T$$$$ && \
--- fastjar-0.97/Makefile.in.jj	2008-10-16 04:15:16.000000000 -0400
+++ fastjar-0.97/Makefile.in	2010-06-21 09:30:15.882810000 -0400
@@ -515,7 +515,7 @@ EXTRA_DIST = \
 	texi2pod.pl
 
 TEXI2POD = perl $(srcdir)/texi2pod.pl
-POD2MAN = pod2man --center="GNU" --release=@VERSION@
+POD2MAN = pod2man --center="GNU" --release=@VERSION@ --date=$(shell sed -n '1s/ .*//p' <$(srcdir)/ChangeLog)
 
 #SPLINT_FLAGS=-I . -I $(srcdir)/lib -I $(srcdir) -DHAVE_CONFIG_H +posixlib +weak
 SPLINT_FLAGS = -I . -I $(srcdir)/lib -I $(srcdir) -DHAVE_CONFIG_H -DPRIx32= -warnposix +weak

gcc44-pr44492.patch:
 doc/md.texi                        |   17 ++++++++++-
 recog.c                            |   54 ++++++++++++++++++++++++++++++++++++-
 recog.h                            |    3 ++
 testsuite/g++.dg/torture/pr44492.C |   31 +++++++++++++++++++++
 4 files changed, 102 insertions(+), 3 deletions(-)

--- NEW FILE gcc44-pr44492.patch ---
2010-06-24  Jakub Jelinek  <jakub at redhat.com>

	PR middle-end/44492
	* recog.h (struct recog_data): Add is_asm field.
	* recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
	present in constraints of inline-asm operand and memory operand
	contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
	(extract_insn): Initialize recog_data.is_asm.
	* doc/md.texi (Constraints): Document operand side-effect rules.

	* g++.dg/torture/pr44492.C: New test.

--- gcc/doc/md.texi	(revision 161327)
+++ gcc/doc/md.texi	(revision 161328)
@@ -1052,6 +1052,10 @@ an operand may be in a register, and whi
 operand can be a memory reference, and which kinds of address; whether the
 operand may be an immediate constant, and which possible values it may
 have.  Constraints can also require two operands to match.
+Side-effects aren't allowed in operands of inline @code{asm}, unless
+ at samp{<} or @samp{>} constraints are used, because there is no guarantee
+that the side-effects will happen exactly once in an instruction that can update
+the addressing register.
 
 @ifset INTERNALS
 @menu
@@ -1129,12 +1133,21 @@ would fit the @samp{m} constraint but no
 @cindex @samp{<} in constraint
 @item @samp{<}
 A memory operand with autodecrement addressing (either predecrement or
-postdecrement) is allowed.
+postdecrement) is allowed.  In inline @code{asm} this constraint is only
+allowed if the operand is used exactly once in an instruction that can
+handle the side-effects.  Not using an operand with @samp{<} in constraint
+string in the inline @code{asm} pattern at all or using it in multiple
+instructions isn't valid, because the side-effects wouldn't be performed
+or would be performed more than once.  Furthermore, on some targets
+the operand with @samp{<} in constraint string must be accompanied by
+special instruction suffixes like @code{%U0} instruction suffix on PowerPC
+or @code{%P0} on IA-64.
 
 @cindex @samp{>} in constraint
 @item @samp{>}
 A memory operand with autoincrement addressing (either preincrement or
-postincrement) is allowed.
+postincrement) is allowed.  In inline @code{asm} the same restrictions
+as for @samp{<} apply.
 
 @cindex @samp{r} in constraint
 @cindex registers in constraints
--- gcc/recog.c	(revision 161327)
+++ gcc/recog.c	(revision 161328)
@@ -1601,6 +1601,9 @@ int
 asm_operand_ok (rtx op, const char *constraint, const char **constraints)
 {
   int result = 0;
+#ifdef AUTO_INC_DEC
+  bool incdec_ok = false;
+#endif
 
   /* Use constrain_operands after reload.  */
   gcc_assert (!reload_completed);
@@ -1608,7 +1611,7 @@ asm_operand_ok (rtx op, const char *cons
   /* Empty constraint string is the same as "X,...,X", i.e. X for as
      many alternatives as required to match the other operands.  */
   if (*constraint == '\0')
-    return 1;
+    result = 1;
 
   while (*constraint)
     {
@@ -1685,6 +1688,9 @@ asm_operand_ok (rtx op, const char *cons
 		  || GET_CODE (XEXP (op, 0)) == PRE_DEC
 		  || GET_CODE (XEXP (op, 0)) == POST_DEC))
 	    result = 1;
+#ifdef AUTO_INC_DEC
+	  incdec_ok = true;
+#endif
 	  break;
 
 	case '>':
@@ -1693,6 +1699,9 @@ asm_operand_ok (rtx op, const char *cons
 		  || GET_CODE (XEXP (op, 0)) == PRE_INC
 		  || GET_CODE (XEXP (op, 0)) == POST_INC))
 	    result = 1;
+#ifdef AUTO_INC_DEC
+	  incdec_ok = true;
+#endif
 	  break;
 
 	case 'E':
@@ -1814,6 +1823,23 @@ asm_operand_ok (rtx op, const char *cons
 	return 0;
     }
 
+#ifdef AUTO_INC_DEC
+  /* For operands without < or > constraints reject side-effects.  */
+  if (!incdec_ok && result && MEM_P (op))
+    switch (GET_CODE (XEXP (op, 0)))
+      {
+      case PRE_INC:
+      case POST_INC:
+      case PRE_DEC:
+      case POST_DEC:
+      case PRE_MODIFY:
+      case POST_MODIFY:
+	return 0;
+      default:
+	break;
+      }
+#endif
+
   return result;
 }
 
@@ -2039,6 +2065,7 @@ extract_insn (rtx insn)
   recog_data.n_operands = 0;
   recog_data.n_alternatives = 0;
   recog_data.n_dups = 0;
+  recog_data.is_asm = false;
 
   switch (GET_CODE (body))
     {
@@ -2085,6 +2112,7 @@ extract_insn (rtx insn)
 	      while (*p)
 		recog_data.n_alternatives += (*p++ == ',');
 	    }
+	  recog_data.is_asm = true;
 	  break;
 	}
       fatal_insn_not_found (insn);
@@ -2699,6 +2727,30 @@ constrain_operands (int strict)
 		    = recog_data.operand[funny_match[funny_match_index].this_op];
 		}
 
+#ifdef AUTO_INC_DEC
+	      /* For operands without < or > constraints reject side-effects.  */
+	      if (recog_data.is_asm)
+		{
+		  for (opno = 0; opno < recog_data.n_operands; opno++)
+		    if (MEM_P (recog_data.operand[opno]))
+		      switch (GET_CODE (XEXP (recog_data.operand[opno], 0)))
+			{
+			case PRE_INC:
+			case POST_INC:
+			case PRE_DEC:
+			case POST_DEC:
+			case PRE_MODIFY:
+			case POST_MODIFY:
+			  if (strchr (recog_data.constraints[opno], '<') == NULL
+			      || strchr (recog_data.constraints[opno], '>')
+				 == NULL)
+			    return 0;
+			  break;
+			default:
+			  break;
+			}
+		}
+#endif
 	      return 1;
 	    }
 	}
--- gcc/recog.h	(revision 161327)
+++ gcc/recog.h	(revision 161328)
@@ -230,6 +230,9 @@ struct recog_data
   /* The number of alternatives in the constraints for the insn.  */
   char n_alternatives;
 
+  /* True if insn is ASM_OPERANDS.  */
+  bool is_asm;
+
   /* Specifies whether an insn alternative is enabled using the
      `enabled' attribute in the insn pattern definition.  For back
      ends not using the `enabled' attribute the array fields are
--- gcc/testsuite/g++.dg/torture/pr44492.C	(revision 0)
+++ gcc/testsuite/g++.dg/torture/pr44492.C	(revision 161328)
@@ -0,0 +1,31 @@
+// PR middle-end/44492
+// { dg-do run }
+
+struct T { unsigned long p; };
+struct S { T a, b, c; unsigned d; };
+
+__attribute__((noinline))
+void
+bar (const T &x, const T &y)
+{
+  if (x.p != 0x2348 || y.p != 0x2346)
+    __builtin_abort ();
+}
+
+__attribute__((noinline))
+void
+foo (S &s, T e)
+{
+  unsigned long a = e.p;
+  unsigned long b = s.b.p;
+  __asm__ volatile ("" : : "rm" (a), "rm" (b));
+  bar (e, s.b);
+}
+
+int
+main ()
+{
+  S s = { { 0x2345 }, { 0x2346 }, { 0x2347 }, 6 };
+  T t = { 0x2348 };
+  foo (s, t);
+}

gcc44-pr44542.patch:
 cfgexpand.c |   17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

--- NEW FILE gcc44-pr44542.patch ---
2010-06-17  Jakub Jelinek  <jakub at redhat.com>

	PR target/44542
	* cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
	of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
	instead of MAX_SUPPORTED_STACK_ALIGNMENT.
	(expand_one_var): Don't consider DECL_ALIGN for variables for
	which expand_one_stack_var_at has been already called.

--- gcc/cfgexpand.c.jj	2010-06-17 17:01:11.964198458 +0200
+++ gcc/cfgexpand.c	2010-06-17 18:25:18.940335757 +0200
@@ -839,7 +839,7 @@ static void
 expand_one_stack_var_at (tree decl, HOST_WIDE_INT offset)
 {
   /* Alignment is unsigned.   */
-  unsigned HOST_WIDE_INT align;
+  unsigned HOST_WIDE_INT align, max_align;
   rtx x;
 
   /* If this fails, we've overflowed the stack frame.  Error nicely?  */
@@ -852,10 +852,10 @@ expand_one_stack_var_at (tree decl, HOST
   offset -= frame_phase;
   align = offset & -offset;
   align *= BITS_PER_UNIT;
-  if (align == 0)
-    align = STACK_BOUNDARY;
-  else if (align > MAX_SUPPORTED_STACK_ALIGNMENT)
-    align = MAX_SUPPORTED_STACK_ALIGNMENT;
+  max_align = MAX (crtl->max_used_stack_slot_alignment,
+		   PREFERRED_STACK_BOUNDARY);
+  if (align == 0 || align > max_align)
+    align = max_align;
   DECL_ALIGN (decl) = align;
   DECL_USER_ALIGN (decl) = 0;
 
@@ -1054,6 +1054,13 @@ expand_one_var (tree var, bool toplevel,
 	align = MINIMUM_ALIGNMENT (TREE_TYPE (var),
 				   TYPE_MODE (TREE_TYPE (var)),
 				   TYPE_ALIGN (TREE_TYPE (var)));
+      else if (DECL_HAS_VALUE_EXPR_P (var)
+	       || (DECL_RTL_SET_P (var) && MEM_P (DECL_RTL (var))))
+	/* Don't consider debug only variables with DECL_HAS_VALUE_EXPR_P set
+	   or variables which were assigned a stack slot already by
+	   expand_one_stack_var_at - in the latter case DECL_ALIGN has been
+	   changed from the offset chosen to it.  */
+	align = crtl->stack_alignment_estimated;
       else
 	align = MINIMUM_ALIGNMENT (var, DECL_MODE (var), DECL_ALIGN (var));
 

gcc44-pr44610.patch:
 simplify-rtx.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- NEW FILE gcc44-pr44610.patch ---
2010-06-23  Alexandre Oliva  <aoliva at redhat.com>

	PR debug/44610
	* simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
	address if the offset is unknown.

--- gcc/simplify-rtx.c.orig	2010-06-23 01:15:14.000000000 -0300
+++ gcc/simplify-rtx.c	2010-06-23 01:20:21.000000000 -0300
@@ -208,10 +208,11 @@ avoid_constant_pool_reference (rtx x)
 rtx
 delegitimize_mem_from_attrs (rtx x)
 {
+  /* MEMs without MEM_OFFSETs may have been offset, so we can't just
+     use their base addresses as equivalent.  */
   if (MEM_P (x)
       && MEM_EXPR (x)
-      && (!MEM_OFFSET (x)
-	  || GET_CODE (MEM_OFFSET (x)) == CONST_INT))
+      && MEM_OFFSET (x))
     {
       tree decl = MEM_EXPR (x);
       enum machine_mode mode = GET_MODE (x);
@@ -264,8 +265,7 @@ delegitimize_mem_from_attrs (rtx x)
 	{
 	  rtx newx;
 
-	  if (MEM_OFFSET (x))
-	    offset += INTVAL (MEM_OFFSET (x));
+	  offset += INTVAL (MEM_OFFSET (x));
 
 	  newx = DECL_RTL (decl);
 


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.316
retrieving revision 1.317
diff -u -p -r1.316 -r1.317
--- .cvsignore	11 Jun 2010 08:22:27 -0000	1.316
+++ .cvsignore	24 Jun 2010 20:18:30 -0000	1.317
@@ -1,2 +1,2 @@
 fastjar-0.97.tar.gz
-gcc-4.4.4-20100611.tar.bz2
+gcc-4.4.4-20100624.tar.bz2


Index: gcc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc.spec,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -p -r1.98 -r1.99
--- gcc.spec	11 Jun 2010 08:22:28 -0000	1.98
+++ gcc.spec	24 Jun 2010 20:18:31 -0000	1.99
@@ -1,9 +1,9 @@
-%global DATE 20100611
-%global SVNREV 160596
+%global DATE 20100624
+%global SVNREV 161335
 %global gcc_version 4.4.4
 # 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 8
+%global gcc_release 9
 %global _unpackaged_files_terminate_build 0
 %global multilib_64_archs sparc64 ppc64 s390x x86_64
 %if 0%{?fedora} >= 13 || 0%{?rhel} >= 6
@@ -164,22 +164,25 @@ Patch4: gcc44-java-nomulti.patch
 Patch5: gcc44-ppc32-retaddr.patch
 Patch6: gcc44-pr33763.patch
 Patch7: gcc44-rh330771.patch
-Patch8: gcc44-rh341221.patch
-Patch10: gcc44-i386-libgomp.patch
-Patch11: gcc44-sparc-config-detection.patch
-Patch12: gcc44-libgomp-omp_h-multilib.patch
-Patch13: gcc44-libtool-no-rpath.patch
-Patch14: gcc44-cloog-dl.patch
-Patch16: gcc44-unwind-debug-hook.patch
-Patch17: gcc44-pr38757.patch
-Patch18: gcc44-libstdc++-docs.patch
-Patch19: gcc44-ppc64-aixdesc.patch
-Patch20: gcc44-no-add-needed.patch
+Patch8: gcc44-i386-libgomp.patch
+Patch9: gcc44-sparc-config-detection.patch
+Patch10: gcc44-libgomp-omp_h-multilib.patch
+Patch11: gcc44-libtool-no-rpath.patch
+Patch12: gcc44-cloog-dl.patch
+Patch13: gcc44-unwind-debug-hook.patch
+Patch14: gcc44-pr38757.patch
+Patch15: gcc44-libstdc++-docs.patch
+Patch16: gcc44-ppc64-aixdesc.patch
+Patch17: gcc44-no-add-needed.patch
+Patch18: gcc44-pr44492.patch
+Patch19: gcc44-pr44542.patch
+Patch20: gcc44-pr44610.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
 Patch1002: fastjar-0.97-filename0.patch
 Patch1003: fastjar-CVE-2010-0831.patch
+Patch1004: fastjar-man.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -496,23 +499,25 @@ GNAT is a GNU Ada 95 front-end to GCC. T
 %patch5 -p0 -b .ppc32-retaddr~
 %patch6 -p0 -b .pr33763~
 %patch7 -p0 -b .rh330771~
-%patch8 -p0 -b .rh341221~
-%patch10 -p0 -b .i386-libgomp~
-%patch11 -p0 -b .sparc-config-detection~
-%patch12 -p0 -b .libgomp-omp_h-multilib~
-%patch13 -p0 -b .libtool-no-rpath~
+%patch8 -p0 -b .i386-libgomp~
+%patch9 -p0 -b .sparc-config-detection~
+%patch10 -p0 -b .libgomp-omp_h-multilib~
+%patch11 -p0 -b .libtool-no-rpath~
 %if %{build_cloog}
-%patch14 -p0 -b .cloog-dl~
+%patch12 -p0 -b .cloog-dl~
 %endif
-%patch16 -p0 -b .unwind-debug-hook~
-%patch17 -p0 -b .pr38757~
+%patch13 -p0 -b .unwind-debug-hook~
+%patch14 -p0 -b .pr38757~
 %if %{build_libstdcxx_docs}
-%patch18 -p0 -b .libstdc++-docs~
+%patch15 -p0 -b .libstdc++-docs~
 %endif
-%patch19 -p0 -b .ppc64-aixdesc~
+%patch16 -p0 -b .ppc64-aixdesc~
 %if 0%{?fedora} >= 13
-%patch20 -p0 -b .no-add-needed~
+%patch17 -p0 -b .no-add-needed~
 %endif
+%patch18 -p0 -b .pr44492~
+%patch19 -p0 -b .pr44542~
+%patch20 -p0 -b .pr44610~
 
 # This testcase doesn't compile.
 rm libjava/testsuite/libjava.lang/PR35020*
@@ -523,6 +528,7 @@ tar xzf %{SOURCE4}
 %patch1001 -p0 -b .fastjar-0.97-len1~
 %patch1002 -p0 -b .fastjar-0.97-filename0~
 %patch1003 -p0 -b .fastjar-CVE-2010-0831~
+%patch1004 -p0 -b .fastjar-man~
 
 %if %{bootstrap_java}
 tar xjf %{SOURCE10}
@@ -1929,7 +1935,7 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/adalib/libgnarl.a
 %endif
 %ifnarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib/libgnat.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib/libgnarl.a
 %endif
@@ -1998,6 +2004,25 @@ fi
 %endif
 
 %changelog
+* Thu Jun 24 2010 Jakub Jelinek <jakub at redhat.com> 4.4.4-9
+- update from gcc-4_4-branch
+  - PRs bootstrap/44426, bootstrap/44544, c++/44627, fortran/44536,
+	libgcj/44216, target/39690, target/43740, target/44261, target/44481,
+	target/44534, target/44615, testsuite/32843, testsuite/43739,
+	tree-optimization/44508
+- VTA backports
+  - PRs debug/43650, debug/44181, debug/44247
+- -Wunused-but-set-* ->*/.* fix (PR c++/44619)
+- undeprecate #ident and #sccs (#606069)
+%if 0%{?fedora} >= 14
+- fix up libgnat-static
+%endif
+- fixup dates in generated man pages even for fastjar and gcc/ man pages
+- don't realign stack on x86/x86-64 just because a DECL_ALIGN was set
+  too high by expansion code (#603924, PR target/44542)
+- don't allow side-effects in inline-asm memory operands unless
+  < or > is present in operand's constraint (#602359, PR middle-end/44492)
+
 * Fri Jun 11 2010 Jakub Jelinek <jakub at redhat.com> 4.4.4-8
 - update from gcc-4_4-branch
   - fix demangler (PR other/43838)


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/import.log,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -p -r1.22 -r1.23
--- import.log	11 Jun 2010 08:22:29 -0000	1.22
+++ import.log	24 Jun 2010 20:18:32 -0000	1.23
@@ -20,3 +20,4 @@ gcc-4_4_4-4_fc14:HEAD:gcc-4.4.4-4.fc14.s
 gcc-4_4_4-5_fc14:HEAD:gcc-4.4.4-5.fc14.src.rpm:1274827803
 gcc-4_4_4-7_fc14:HEAD:gcc-4.4.4-7.fc14.src.rpm:1275991256
 gcc-4_4_4-8_fc14:HEAD:gcc-4.4.4-8.fc14.src.rpm:1276244517
+gcc-4_4_4-9_fc14:HEAD:gcc-4.4.4-9.fc14.src.rpm:1277410688


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/sources,v
retrieving revision 1.321
retrieving revision 1.322
diff -u -p -r1.321 -r1.322
--- sources	11 Jun 2010 08:22:29 -0000	1.321
+++ sources	24 Jun 2010 20:18:32 -0000	1.322
@@ -1,2 +1,2 @@
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
-a896e6090fb9f4ef74a8b292fda42af4  gcc-4.4.4-20100611.tar.bz2
+32d385c34788faa23d93cd8b55fecd32  gcc-4.4.4-20100624.tar.bz2


--- gcc44-rh341221.patch DELETED ---



More information about the scm-commits mailing list