Commit d49debfe by Richard Kenner

(output_epilog): Don't crash if TYPE_SIZE of an arg is not set.

From-SVN: r4614
parent 433deffc
/* Subroutines used for code generation on ROMP. /* Subroutines used for code generation on ROMP.
Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc. Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@nyu.edu) Contributed by Richard Kenner (kenner@nyu.edu)
This file is part of GNU CC. This file is part of GNU CC.
...@@ -1144,10 +1144,18 @@ output_epilog (file, size) ...@@ -1144,10 +1144,18 @@ output_epilog (file, size)
int nargs = 0; /* words of arguments */ int nargs = 0; /* words of arguments */
tree argptr; tree argptr;
/* Compute the number of words of arguments. Since this is just for
the traceback table, we ignore arguments that don't have a size or
don't have a fixed size. */
for (argptr = DECL_ARGUMENTS (current_function_decl); for (argptr = DECL_ARGUMENTS (current_function_decl);
argptr; argptr = TREE_CHAIN (argptr)) argptr; argptr = TREE_CHAIN (argptr))
nargs += ((TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (argptr))) {
+ BITS_PER_WORD - 1) / BITS_PER_WORD); int this_size = int_size_in_bytes (TREE_TYPE (argptr));
if (this_size > 0)
nargs += (this_size + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
}
/* If the last insn was a BARRIER, we don't have to write anything except /* If the last insn was a BARRIER, we don't have to write anything except
the trace table. */ the trace table. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment