4.3.2-4
This commit is contained in:
		
							parent
							
								
									34352b072b
								
							
						
					
					
						commit
						8b55e223d6
					
				| @ -1,2 +1,2 @@ | |||||||
| gcc-4.3.2-20080905.tar.bz2 | gcc-4.3.2-20080917.tar.bz2 | ||||||
| fastjar-0.95.tar.gz | fastjar-0.95.tar.gz | ||||||
|  | |||||||
							
								
								
									
										118
									
								
								gcc43-pr34037.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								gcc43-pr34037.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,118 @@ | |||||||
|  | 2008-09-11  Jakub Jelinek  <jakub@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 | ||||||
							
								
								
									
										47
									
								
								gcc43-pr36741-revert.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								gcc43-pr36741-revert.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | |||||||
|  | Revert: | ||||||
|  | 2008-08-28  Dodji Seketeli  <dodji@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@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 *-*-* } }
 | ||||||
|  |  } | ||||||
|  |   | ||||||
							
								
								
									
										21
									
								
								gcc43.spec
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								gcc43.spec
									
									
									
									
									
								
							| @ -1,9 +1,9 @@ | |||||||
| %define DATE 20080905 | %define DATE 20080917 | ||||||
| %define SVNREV 140029 | %define SVNREV 140410 | ||||||
| %define gcc_version 4.3.2 | %define gcc_version 4.3.2 | ||||||
| # Note, gcc_release must be integer, if you want to add suffixes to | # Note, gcc_release must be integer, if you want to add suffixes to | ||||||
| # %{release}, append them after %{gcc_release} on Release: line. | # %{release}, append them after %{gcc_release} on Release: line. | ||||||
| %define gcc_release 3 | %define gcc_release 4 | ||||||
| %define _unpackaged_files_terminate_build 0 | %define _unpackaged_files_terminate_build 0 | ||||||
| %define multilib_64_archs sparc64 ppc64 s390x x86_64 | %define multilib_64_archs sparc64 ppc64 s390x x86_64 | ||||||
| %define include_gappletviewer 1 | %define include_gappletviewer 1 | ||||||
| @ -154,6 +154,8 @@ Patch17: gcc43-x86_64-va_start.patch | |||||||
| Patch18: gcc43-pr37189.patch | Patch18: gcc43-pr37189.patch | ||||||
| Patch19: gcc43-altivec-tests.patch | Patch19: gcc43-altivec-tests.patch | ||||||
| Patch20: gcc43-libtool-no-rpath.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 | # On ARM EABI systems, we do want -gnueabi to be part of the | ||||||
| # target triple. | # target triple. | ||||||
| @ -384,7 +386,7 @@ Autoreq: true | |||||||
| The Java(tm) runtime library sources for use in Eclipse. | The Java(tm) runtime library sources for use in Eclipse. | ||||||
| 
 | 
 | ||||||
| %package -n cpp | %package -n cpp | ||||||
| Summary: The C Preprocessor. | Summary: The C Preprocessor | ||||||
| Group: Development/Languages | Group: Development/Languages | ||||||
| Prereq: /sbin/install-info | Prereq: /sbin/install-info | ||||||
| %ifarch ia64 | %ifarch ia64 | ||||||
| @ -458,6 +460,8 @@ which are required to run programs compiled with the GNAT. | |||||||
| %patch18 -p0 -b .pr37189~ | %patch18 -p0 -b .pr37189~ | ||||||
| %patch19 -p0 -b .altivec-tests~ | %patch19 -p0 -b .altivec-tests~ | ||||||
| %patch20 -p0 -b .libtool-no-rpath~ | %patch20 -p0 -b .libtool-no-rpath~ | ||||||
|  | %patch21 -p0 -b .pr36741-revert~ | ||||||
|  | %patch22 -p0 -b .pr34037~ | ||||||
| 
 | 
 | ||||||
| tar xzf %{SOURCE4} | tar xzf %{SOURCE4} | ||||||
| 
 | 
 | ||||||
| @ -484,7 +488,7 @@ perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-rec | |||||||
| LC_ALL=C sed -i \ | LC_ALL=C sed -i \ | ||||||
|   -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \ |   -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/\(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/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/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \ | ||||||
|   -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \ |   -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \ | ||||||
| @ -1706,6 +1710,13 @@ fi | |||||||
| %doc rpm.doc/changelogs/libmudflap/ChangeLog* | %doc rpm.doc/changelogs/libmudflap/ChangeLog* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Wed Sep 17 2008 Jakub Jelinek <jakub@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@redhat.com> 4.3.2-3 | * Sat Sep  6 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-3 | ||||||
| - don't run tests that require Altivec hw on non-Altivec powerpcs | - don't run tests that require Altivec hw on non-Altivec powerpcs | ||||||
| - make sure none of libgcj binaries/libraries contains /usr/%{lib} in | - make sure none of libgcj binaries/libraries contains /usr/%{lib} in | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user