diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a9b6627340bc25c01a1e539fc4f97f8d4be9a79c..bbea1d40a97ffa3a396d02eb66126a8f7335ec49 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-30  Diego Novillo  <dnovillo@redhat.com>
+
+	* tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
+	in COMPONENT_REF nodes.
+
 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
 	PR c++/15378
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 1cc5e7494c340188a1518d85def4b128ea0b8534..da30d89ecf26c2610d7c5f8427402c1ad69631f8 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -627,12 +627,15 @@ dump_generic_node (pretty_printer *buffer, tree node, int spc, int flags,
       pp_string (buffer, str);
       dump_generic_node (buffer, TREE_OPERAND (node, 1), spc, flags, false);
 
-      op0 = component_ref_field_offset (node);
-      if (op0 && TREE_CODE (op0) != INTEGER_CST)
+      if (TREE_CODE (op0) != VALUE_HANDLE)
 	{
-	  pp_string (buffer, "{off: ");
-	  dump_generic_node (buffer, op0, spc, flags, false);
-	  pp_character (buffer, '}');
+	  op0 = component_ref_field_offset (node);
+	  if (op0 && TREE_CODE (op0) != INTEGER_CST)
+	    {
+	      pp_string (buffer, "{off: ");
+	      dump_generic_node (buffer, op0, spc, flags, false);
+	      pp_character (buffer, '}');
+	    }
 	}
       break;