rpms/gcc/devel gcc43-pr34037.patch, NONE, 1.1 gcc43-pr36741-revert.patch, NONE, 1.1 .cvsignore, 1.243, 1.244 gcc43.spec, 1.43, 1.44 sources, 1.246, 1.247

Jakub Jelinek jakub at fedoraproject.org
Wed Sep 17 21:48:47 UTC 2008


Author: jakub

Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18456

Modified Files:
	.cvsignore gcc43.spec sources 
Added Files:
	gcc43-pr34037.patch gcc43-pr36741-revert.patch 
Log Message:
4.3.2-4


gcc43-pr34037.patch:

--- NEW FILE gcc43-pr34037.patch ---
2008-09-11  Jakub Jelinek  <jakub at redhat.com>

	PR debug/34037
	* gimplify.c (gimplify_type_sizes): When not optimizing, ensure
	TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
	VAR_DECL.
	* cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
	!DECL_IGNORED_P vars in unexpanded_var_list list for instantiate_decls,
	ggc_free other TREE_LIST nodes from that chain.
	* function.c (instantiate_decls): Instantiate also DECL_RTL
	of vars in cfun->unexpanded_var_list, free that list afterwards.

--- gcc/gimplify.c.jj	2008-09-10 20:50:11.000000000 +0200
+++ gcc/gimplify.c	2008-09-11 13:54:22.000000000 +0200
@@ -7105,6 +7105,18 @@ gimplify_type_sizes (tree type, gimple_s
       /* These types may not have declarations, so handle them here.  */
       gimplify_type_sizes (TREE_TYPE (type), list_p);
       gimplify_type_sizes (TYPE_DOMAIN (type), list_p);
+      /* When not optimizing, ensure VLA bounds aren't removed.  */
+      if (!optimize
+	  && TYPE_DOMAIN (type)
+	  && INTEGRAL_TYPE_P (TYPE_DOMAIN (type)))
+	{
+	  t = TYPE_MIN_VALUE (TYPE_DOMAIN (type));
+	  if (t && TREE_CODE (t) == VAR_DECL && DECL_ARTIFICIAL (t))
+	    DECL_IGNORED_P (t) = 0;
+	  t = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
+	  if (t && TREE_CODE (t) == VAR_DECL && DECL_ARTIFICIAL (t))
+	    DECL_IGNORED_P (t) = 0;
+	}
       break;
 
     case RECORD_TYPE:
--- gcc/cfgexpand.c.jj	2008-09-09 16:08:04.000000000 +0200
+++ gcc/cfgexpand.c	2008-09-11 15:01:00.000000000 +0200
@@ -1440,7 +1440,7 @@ estimated_stack_frame_size (void)
 static void
 expand_used_vars (void)
 {
-  tree t, outer_block = DECL_INITIAL (current_function_decl);
+  tree t, next, outer_block = DECL_INITIAL (current_function_decl);
 
   /* Compute the phase of the stack frame for this function.  */
   {
@@ -1453,11 +1453,15 @@ expand_used_vars (void)
 
   /* At this point all variables on the unexpanded_var_list with TREE_USED
      set are not associated with any block scope.  Lay them out.  */
-  for (t = cfun->unexpanded_var_list; t; t = TREE_CHAIN (t))
+  t = cfun->unexpanded_var_list;
+  cfun->unexpanded_var_list = NULL_TREE;
+  for (; t; t = next)
     {
       tree var = TREE_VALUE (t);
       bool expand_now = false;
 
+      next = TREE_CHAIN (t);
+
       /* We didn't set a block for static or extern because it's hard
 	 to tell the difference between a global variable (re)declared
 	 in a local scope, and one that's really declared there to
@@ -1484,9 +1488,25 @@ expand_used_vars (void)
       TREE_USED (var) = 1;
 
       if (expand_now)
-	expand_one_var (var, true, true);
+	{
+	  expand_one_var (var, true, true);
+	  if (DECL_ARTIFICIAL (var) && !DECL_IGNORED_P (var))
+	    {
+	      rtx rtl = DECL_RTL_IF_SET (var);
+
+	      /* Keep artificial non-ignored vars in cfun->unexpanded_var_list
+		 chain until instantiate_decls.  */
+	      if (rtl && (MEM_P (rtl) || GET_CODE (rtl) == CONCAT))
+		{
+		  TREE_CHAIN (t) = cfun->unexpanded_var_list;
+		  cfun->unexpanded_var_list = t;
+		  continue;
+		}
+	    }
+	}
+
+      ggc_free (t);
     }
-  cfun->unexpanded_var_list = NULL_TREE;
 
   /* At this point, all variables within the block tree with TREE_USED
      set are actually used by the optimized function.  Lay them out.  */
--- gcc/function.c.jj	2008-09-09 21:13:24.000000000 +0200
+++ gcc/function.c	2008-09-11 14:56:47.000000000 +0200
@@ -1645,7 +1645,7 @@ instantiate_decls_1 (tree let)
 static void
 instantiate_decls (tree fndecl)
 {
-  tree decl;
+  tree decl, t, next;
 
   /* Process all parameters of the function.  */
   for (decl = DECL_ARGUMENTS (fndecl); decl; decl = TREE_CHAIN (decl))
@@ -1661,6 +1661,17 @@ instantiate_decls (tree fndecl)
 
   /* Now process all variables defined in the function or its subblocks.  */
   instantiate_decls_1 (DECL_INITIAL (fndecl));
+
+  t = cfun->unexpanded_var_list;
+  cfun->unexpanded_var_list = NULL_TREE;
+  for (; t; t = next)
+    {
+      next = TREE_CHAIN (t);
+      decl = TREE_VALUE (t);
+      if (DECL_RTL_SET_P (decl))
+	instantiate_decl_rtl (DECL_RTL (decl));
+      ggc_free (t);
+    }
 }
 
 /* Pass through the INSNS of function FNDECL and convert virtual register

gcc43-pr36741-revert.patch:

--- NEW FILE gcc43-pr36741-revert.patch ---
Revert:
2008-08-28  Dodji Seketeli  <dodji at redhat.com>

	PR c++/36741
	* tree.c (int_fits_type_p): Don't forget unsigned integers
	  of type sizetype which higher end word equals -1.

	* g++.dg/other/new-size-type.C: New test.

--- gcc/tree.c	(revision 139711)
+++ gcc/tree.c	(revision 139710)
@@ -6296,21 +6296,6 @@ int_fits_type_p (const_tree c, const_tre
      for "unknown if constant fits", 0 for "constant known *not* to fit" and 1
      for "constant known to fit".  */
 
-  if (TREE_TYPE (c) == sizetype
-      && TYPE_UNSIGNED (TREE_TYPE (c))
-      && TREE_INT_CST_HIGH (c) == -1
-      && !TREE_OVERFLOW (c))
-      /* So c is an unsigned integer which type is sizetype.
-         sizetype'd integers are sign extended even though they are
-	 unsigned. If the integer value fits in the lower end word of c,
-	 and if the higher end word has all its bits set to 1, that
-	 means the higher end bits are set to 1 only for sign extension.
-	 So let's convert c into an equivalent zero extended unsigned
-	 integer.  */
-      c = force_fit_type_double (size_type_node,
-				 TREE_INT_CST_LOW (c),
-				 TREE_INT_CST_HIGH (c),
-				 false, false);
   /* Check if C >= type_low_bound.  */
   if (type_low_bound && TREE_CODE (type_low_bound) == INTEGER_CST)
     {
--- gcc/testsuite/g++.dg/other/new-size-type.C	(revision 139711)
+++ gcc/testsuite/g++.dg/other/new-size-type.C	(revision 139710)
@@ -1,10 +1,10 @@
 // Contributed by Dodji Seketeli <dodji at redhat.com>
 // Origin: PR c++/36741
 
 #include <stddef.h>
 const char*
 foo()
 {
-    return new char[~static_cast<size_t>(0)];// { dg-bogus "large" }
+    return new char[~static_cast<size_t>(0)];// { dg-bogus "large" "" { xfail *-*-* } }
 }
 


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.243
retrieving revision 1.244
diff -u -r1.243 -r1.244
--- .cvsignore	5 Sep 2008 08:43:54 -0000	1.243
+++ .cvsignore	17 Sep 2008 21:48:16 -0000	1.244
@@ -1,2 +1,2 @@
-gcc-4.3.2-20080905.tar.bz2
+gcc-4.3.2-20080917.tar.bz2
 fastjar-0.95.tar.gz


Index: gcc43.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc43.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- gcc43.spec	5 Sep 2008 22:20:50 -0000	1.43
+++ gcc43.spec	17 Sep 2008 21:48:16 -0000	1.44
@@ -1,9 +1,9 @@
-%define DATE 20080905
-%define SVNREV 140029
+%define DATE 20080917
+%define SVNREV 140410
 %define gcc_version 4.3.2
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%define gcc_release 3
+%define gcc_release 4
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %define include_gappletviewer 1
@@ -154,6 +154,8 @@
 Patch18: gcc43-pr37189.patch
 Patch19: gcc43-altivec-tests.patch
 Patch20: gcc43-libtool-no-rpath.patch
+Patch21: gcc43-pr36741-revert.patch
+Patch22: gcc43-pr34037.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -384,7 +386,7 @@
 The Java(tm) runtime library sources for use in Eclipse.
 
 %package -n cpp
-Summary: The C Preprocessor.
+Summary: The C Preprocessor
 Group: Development/Languages
 Prereq: /sbin/install-info
 %ifarch ia64
@@ -458,6 +460,8 @@
 %patch18 -p0 -b .pr37189~
 %patch19 -p0 -b .altivec-tests~
 %patch20 -p0 -b .libtool-no-rpath~
+%patch21 -p0 -b .pr36741-revert~
+%patch22 -p0 -b .pr34037~
 
 tar xzf %{SOURCE4}
 
@@ -484,7 +488,7 @@
 LC_ALL=C sed -i \
   -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \
   -e 's/\(Av\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \
-  -e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\)dola/Esp\xc3\xadndola/' \
+  -e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\|\xc3\xef\xbf\xbd\xadn\)dola/Esp\xc3\xadndola/' \
   -e 's/Schl\(u\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \
   -e 's/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \
   -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \
@@ -1706,6 +1710,13 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Wed Sep 17 2008 Jakub Jelinek <jakub at redhat.com> 4.3.2-4
+- update from 4.3 branch
+  - PRs c++/37389, fortran/35837, fortran/36214, fortran/37099, fortran/37199,
+	rtl-optimization/37408, target/37466, tree-optimization/36630
+- revert PR c++/36741 fix
+- fix VLA debuginfo at -O0 (PR debug/34037)
+
 * Sat Sep  6 2008 Jakub Jelinek <jakub at redhat.com> 4.3.2-3
 - don't run tests that require Altivec hw on non-Altivec powerpcs
 - make sure none of libgcj binaries/libraries contains /usr/%{lib} in


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/sources,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -r1.246 -r1.247
--- sources	5 Sep 2008 08:43:54 -0000	1.246
+++ sources	17 Sep 2008 21:48:16 -0000	1.247
@@ -1,2 +1,2 @@
-373bfd18d804b93123d89b793967fb3b  gcc-4.3.2-20080905.tar.bz2
+78b4e6400e20ea3011ae7c887f8338d2  gcc-4.3.2-20080917.tar.bz2
 92a70f9e56223b653bce0f58f90cf950  fastjar-0.95.tar.gz




More information about the fedora-extras-commits mailing list