diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f37a9205ead5d52b046e51554fc765ee757531f2..cc5919eea09402973cd328e06eb6e4753525d570 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
+	* dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
+	print_int_cst_octal with something that's not an INTEGER_CST.
+
 	* config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
 	and not a SUBREG to a FLOAT rtl.
 
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 7af36a1b441cc0057fc357ff472935d5ae26b170..c34d1a1d541be78a551db744c7578214e37a6e90 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -1176,6 +1176,10 @@ dbxout_type (type, full, show_arg_types)
 	     and hence they can't span same size unsigned types.  */
 
  	  if (use_gnu_debug_info_extensions
+	      && TYPE_MIN_VALUE (type) != 0
+	      && TREE_CODE (TYPE_MIN_VALUE (type)) == INTEGER_CST
+	      && TYPE_MAX_VALUE (type) != 0
+	      && TREE_CODE (TYPE_MAX_VALUE (type)) == INTEGER_CST
 	      && (TYPE_PRECISION (type) > TYPE_PRECISION (integer_type_node)
 		  || (TYPE_PRECISION (type) == TYPE_PRECISION (integer_type_node)
 		      && TREE_UNSIGNED (type))
@@ -1650,7 +1654,7 @@ print_int_cst_octal (c)
 		  << (HOST_BITS_PER_WIDE_INT / 3 * 3))
 		 - 1);
 
-      fprintf (asmfile, "%o%01o", (int)beg, (int)middle);
+      fprintf (asmfile, "%o%01o", (int) beg, (int) middle);
       print_octal (end, HOST_BITS_PER_WIDE_INT / 3);
     }
 }
@@ -1663,7 +1667,7 @@ print_octal (value, digits)
   int i;
 
   for (i = digits - 1; i >= 0; i--)
-    fprintf (asmfile, "%01o", (int)((value >> (3 * i)) & 7));
+    fprintf (asmfile, "%01o", (int) ((value >> (3 * i)) & 7));
 }
 
 /* Output the name of type TYPE, with no punctuation.