diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a319c69032228988f5e4ecd28ff2f96dcb4d695..6aa5df572c3055eecdcfdbb5306045e5315c6da6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* calls.c (calls_function_1, expand_call): Only test
+	TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
+	* function.c (thread_prologue_and_epilogue_insns): Likewise.
+
 2000-08-16  Richard Henderson  <rth@cygnus.com>
 
 	* combine.c (simplify_shift_const): Revert previous two
diff --git a/gcc/calls.c b/gcc/calls.c
index cd4fed72825f20e26d7e22b8e7a4def776eb0153..2d0d52c40f64c53dc600d1626b50d7c60c55618b 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -281,8 +281,10 @@ calls_function_1 (exp, which)
     case CALL_EXPR:
       if (which == 0)
 	return 1;
-      else if (TYPE_RETURNS_STACK_DEPRESSED
-	       (TREE_TYPE (TREE_TYPE (TREE_OPERAND (exp, 0)))))
+      else if ((TREE_CODE (TREE_TYPE (TREE_TYPE (TREE_OPERAND (exp, 0))))
+		== FUNCTION_TYPE)
+	       && (TYPE_RETURNS_STACK_DEPRESSED
+		   (TREE_TYPE (TREE_TYPE (TREE_OPERAND (exp, 0))))))
 	return 1;
       else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
 	       && (TREE_CODE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0))
@@ -2195,7 +2197,8 @@ expand_call (exp, target, ignore)
     flags |= flags_from_decl_or_type (TREE_TYPE (TREE_TYPE (p)));
 
   /* Mark if the function returns with the stack pointer depressed.  */
-  if (TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (TREE_TYPE (p))))
+  if (TREE_CODE (TREE_TYPE (TREE_TYPE (p))) == FUNCTION_TYPE
+      && TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (TREE_TYPE (p))))
     {
       flags |= ECF_SP_DEPRESSED;
       flags &= ~ (ECF_PURE | ECF_CONST);
diff --git a/gcc/function.c b/gcc/function.c
index 975ecdd66d6af10c8a54a0a5dc202ef049ea936a..7601c94ef3612cd6d03fd30e35b94263262004f4 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -7058,7 +7058,8 @@ thread_prologue_and_epilogue_insns (f)
 
       /* If this function returns with the stack depressed, massage
 	 the epilogue to actually do that.  */
-      if (TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (current_function_decl)))
+      if (TREE_CODE (TREE_TYPE (current_function_decl)) == FUNCTION_TYPE
+	  && TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (current_function_decl)))
 	keep_stack_depressed (seq);
 
       emit_jump_insn (seq);