From 9cee7c3f6fd4fa30563fa22dd62334bb06667112 Mon Sep 17 00:00:00 2001
From: nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 9 Sep 2004 15:58:21 +0000
Subject: [PATCH] 	* cgraphunit.c (cgraph_mark_functions_to_output):
 Renable node 	dumping for development builds. 	* emit-rtl.c
 (verify_rtx_sharing): Give verbose failure for 	development builds
 only. 	* genattrtab.c (write_eligible_delay): Fix typo in previous 
 commit. 	* tree.c (iterative_hash_expr): Replace gcc_unreachable with 
 gcc_assert.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87241 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog    | 11 +++++++++++
 gcc/cgraphunit.c | 18 +++++++++++++++---
 gcc/emit-rtl.c   | 13 +++++++++----
 gcc/genattrtab.c |  2 +-
 gcc/tree.c       |  6 +++---
 5 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 652fbfb92f37..b1ec62627588 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* cgraphunit.c (cgraph_mark_functions_to_output): Renable node
+	dumping for development builds.
+	* emit-rtl.c (verify_rtx_sharing): Give verbose failure for
+	development builds only.
+	* genattrtab.c (write_eligible_delay): Fix typo in previous
+	commit.
+	* tree.c (iterative_hash_expr): Replace gcc_unreachable with
+	gcc_assert.
+
 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
 
 	* gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 81df30995134..d0048a837316 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -776,9 +776,21 @@ cgraph_mark_functions_to_output (void)
 	  && !DECL_EXTERNAL (decl))
 	node->output = 1;
       else
-	/* We should've reclaimed all functions that are not needed.  */
-	gcc_assert (node->global.inlined_to || !DECL_SAVED_TREE (decl)
-		    || DECL_EXTERNAL (decl));
+	{
+	  /* We should've reclaimed all functions that are not needed.  */
+#ifdef ENABLE_CHECKING
+	  if (!node->global.inlined_to && DECL_SAVED_TREE (decl)
+	      && !DECL_EXTERNAL (decl))
+	    {
+	      dump_cgraph_node (stderr, node);
+	      internal_error ("failed to reclaim unneeded function");
+	    }
+#endif
+	  gcc_assert (node->global.inlined_to || !DECL_SAVED_TREE (decl)
+		      || DECL_EXTERNAL (decl));
+
+	}
+      
     }
 }
 
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 9f9289bfad55..ab721fe8aa7d 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2260,15 +2260,18 @@ verify_rtx_sharing (rtx orig, rtx insn)
 
   /* This rtx may not be shared.  If it has already been seen,
      replace it with a copy of itself.  */
-
+#ifdef ENABLE_CHECKING
   if (RTX_FLAG (x, used))
     {
       error ("Invalid rtl sharing found in the insn");
       debug_rtx (insn);
       error ("Shared rtx");
       debug_rtx (x);
-      fatal_error ("Internal consistency failure");
+      internal_error ("Internal consistency failure");
     }
+#endif
+  gcc_assert (!RTX_FLAG (x, used));
+  
   RTX_FLAG (x, used) = 1;
 
   /* Now scan the subexpressions recursively.  */
@@ -2291,9 +2294,11 @@ verify_rtx_sharing (rtx orig, rtx insn)
 
 	      for (j = 0; j < len; j++)
 		{
-		  /* We allow sharing of ASM_OPERANDS inside single instruction.  */
+		  /* We allow sharing of ASM_OPERANDS inside single
+		     instruction.  */
 		  if (j && GET_CODE (XVECEXP (x, i, j)) == SET
-		      && GET_CODE (SET_SRC (XVECEXP (x, i, j))) == ASM_OPERANDS)
+		      && (GET_CODE (SET_SRC (XVECEXP (x, i, j)))
+			  == ASM_OPERANDS))
 		    verify_rtx_sharing (SET_DEST (XVECEXP (x, i, j)), insn);
 		  else
 		    verify_rtx_sharing (XVECEXP (x, i, j), insn);
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index f3385caa7dc1..dc8ff6ebcb31 100644
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -4125,7 +4125,7 @@ write_eligible_delay (const char *kind)
   printf ("{\n");
   printf ("  rtx insn;\n");
   printf ("\n");
-  printf ("  gcc_assert (slot < %d)\n", max_slots);
+  printf ("  gcc_assert (slot < %d);\n", max_slots);
   printf ("\n");
   /* Allow dbr_schedule to pass labels, etc.  This can happen if try_split
      converts a compound instruction into a loop.  */
diff --git a/gcc/tree.c b/gcc/tree.c
index 7b9c53f31a7e..c7031e16cbef 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -4044,8 +4044,10 @@ iterative_hash_expr (tree t, hashval_t val)
 	  /* Decls we can just compare by pointer.  */
 	  val = iterative_hash_pointer (t, val);
 	}
-      else if (IS_EXPR_CODE_CLASS (class))
+      else
 	{
+	  gcc_assert (IS_EXPR_CODE_CLASS (class));
+	  
 	  val = iterative_hash_object (code, val);
 
 	  /* Don't hash the type, that can lead to having nodes which
@@ -4080,8 +4082,6 @@ iterative_hash_expr (tree t, hashval_t val)
 	    for (i = first_rtl_op (code) - 1; i >= 0; --i)
 	      val = iterative_hash_expr (TREE_OPERAND (t, i), val);
 	}
-      else
-	gcc_unreachable ();
       return val;
       break;
     }
-- 
GitLab