Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Jan 2014 15:54:13 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r260230 - in stable/10/contrib/gcc: . cp
Message-ID:  <201401031554.s03FsDp4024041@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Fri Jan  3 15:54:12 2014
New Revision: 260230
URL: http://svnweb.freebsd.org/changeset/base/260230

Log:
  MFC	r259655 (partial), r259944:
  
  gcc: merge small upstream changes.
  
  Fix for PR c++/29928
  
  Backport from mainline:
  2007-04-24  Hui-May Chang <hm.chang@apple.com>
  
  * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
  instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
  
  Obtained from:	gcc 4.3 (rev. r124115, 124724: GPLv2)

Modified:
  stable/10/contrib/gcc/ChangeLog.gcc43
  stable/10/contrib/gcc/cp/ChangeLog.gcc43
  stable/10/contrib/gcc/cp/rtti.c
  stable/10/contrib/gcc/reload1.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/gcc/ChangeLog.gcc43
==============================================================================
--- stable/10/contrib/gcc/ChangeLog.gcc43	Fri Jan  3 15:09:59 2014	(r260229)
+++ stable/10/contrib/gcc/ChangeLog.gcc43	Fri Jan  3 15:54:12 2014	(r260230)
@@ -145,6 +145,11 @@
 	alignment for amdfam10 architecture. Increasing the max loop
 	alignment to 24 bytes.
 
+2007-04-24  Hui-May Chang <hm.chang@apple.com> (r124115)
+
+	* reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
+	instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
+
 2007-04-16  Lawrence Crowl  <crowl@google.com> (r123909)
 
 	* doc/invoke.texi (Debugging Options): Add documentation for the

Modified: stable/10/contrib/gcc/cp/ChangeLog.gcc43
==============================================================================
--- stable/10/contrib/gcc/cp/ChangeLog.gcc43	Fri Jan  3 15:09:59 2014	(r260229)
+++ stable/10/contrib/gcc/cp/ChangeLog.gcc43	Fri Jan  3 15:54:12 2014	(r260230)
@@ -33,6 +33,12 @@
 
 	* mangle.c (write_real_cst): Use 'unsigned long' for %lx.
 
+2007-05-14  Paolo Carlini  <pcarlini@suse.de> (r124724)
+
+	PR c++/29928
+	* rtti.c (get_tinfo_decl_dynamic, get_typeid): Try to complete the
+	type only if is a class type (5.2.8/4).
+
 2007-05-05  Geoffrey Keating  <geoffk@apple.com> (r124467)
 
 	PR 31775

Modified: stable/10/contrib/gcc/cp/rtti.c
==============================================================================
--- stable/10/contrib/gcc/cp/rtti.c	Fri Jan  3 15:09:59 2014	(r260229)
+++ stable/10/contrib/gcc/cp/rtti.c	Fri Jan  3 15:54:12 2014	(r260230)
@@ -238,7 +238,7 @@ get_tinfo_decl_dynamic (tree exp)
   /* Peel off cv qualifiers.  */
   type = TYPE_MAIN_VARIANT (type);
 
-  if (!VOID_TYPE_P (type))
+  if (CLASS_TYPE_P (type))
     type = complete_type_or_else (type, exp);
 
   if (!type)
@@ -430,7 +430,7 @@ get_typeid (tree type)
      that is the operand of typeid are always ignored.  */
   type = TYPE_MAIN_VARIANT (type);
 
-  if (!VOID_TYPE_P (type))
+  if (CLASS_TYPE_P (type))
     type = complete_type_or_else (type, NULL_TREE);
 
   if (!type)

Modified: stable/10/contrib/gcc/reload1.c
==============================================================================
--- stable/10/contrib/gcc/reload1.c	Fri Jan  3 15:09:59 2014	(r260229)
+++ stable/10/contrib/gcc/reload1.c	Fri Jan  3 15:54:12 2014	(r260230)
@@ -6238,15 +6238,23 @@ merge_assigned_reloads (rtx insn)
 		transfer_replacements (i, j);
 	      }
 
-	  /* If this is now RELOAD_OTHER, look for any reloads that load
-	     parts of this operand and set them to RELOAD_FOR_OTHER_ADDRESS
-	     if they were for inputs, RELOAD_OTHER for outputs.  Note that
-	     this test is equivalent to looking for reloads for this operand
-	     number.  */
-	  /* We must take special care with RELOAD_FOR_OUTPUT_ADDRESS; it may
-	     share registers with a RELOAD_FOR_INPUT, so we can not change it
-	     to RELOAD_FOR_OTHER_ADDRESS.  We should never need to, since we
-	     do not modify RELOAD_FOR_OUTPUT.  */
+	  /* If this is now RELOAD_OTHER, look for any reloads that
+	     load parts of this operand and set them to
+	     RELOAD_FOR_OTHER_ADDRESS if they were for inputs,
+	     RELOAD_OTHER for outputs.  Note that this test is
+	     equivalent to looking for reloads for this operand
+	     number.
+
+	     We must take special care with RELOAD_FOR_OUTPUT_ADDRESS;
+	     it may share registers with a RELOAD_FOR_INPUT, so we can
+	     not change it to RELOAD_FOR_OTHER_ADDRESS.  We should
+	     never need to, since we do not modify RELOAD_FOR_OUTPUT.
+
+	     It is possible that the RELOAD_FOR_OPERAND_ADDRESS
+	     instruction is assigned the same register as the earlier
+	     RELOAD_FOR_OTHER_ADDRESS instruction.  Merging these two
+	     instructions will cause the RELOAD_FOR_OTHER_ADDRESS
+	     instruction to be deleted later on.  */
 
 	  if (rld[i].when_needed == RELOAD_OTHER)
 	    for (j = 0; j < n_reloads; j++)
@@ -6254,6 +6262,7 @@ merge_assigned_reloads (rtx insn)
 		  && rld[j].when_needed != RELOAD_OTHER
 		  && rld[j].when_needed != RELOAD_FOR_OTHER_ADDRESS
 		  && rld[j].when_needed != RELOAD_FOR_OUTPUT_ADDRESS
+		  && rld[j].when_needed != RELOAD_FOR_OPERAND_ADDRESS
 		  && (! conflicting_input
 		      || rld[j].when_needed == RELOAD_FOR_INPUT_ADDRESS
 		      || rld[j].when_needed == RELOAD_FOR_INPADDR_ADDRESS)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401031554.s03FsDp4024041>