* function.c (assign_stack_local_1): Issue an error message if
the frame size overflows in the signed target arithmetics.
From-SVN: r106717
+2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * function.c (assign_stack_local_1): Issue an error message if
+ the frame size overflows in the signed target arithmetics.
+
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (build_qualified_type): Chain the new type to the original
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (build_qualified_type): Chain the new type to the original
function->x_stack_slot_list
= gen_rtx_EXPR_LIST (VOIDmode, x, function->x_stack_slot_list);
function->x_stack_slot_list
= gen_rtx_EXPR_LIST (VOIDmode, x, function->x_stack_slot_list);
+ /* Try to detect frame size overflows. */
+ if ((FRAME_GROWS_DOWNWARD
+ ? (unsigned HOST_WIDE_INT) -function->x_frame_offset
+ : (unsigned HOST_WIDE_INT) function->x_frame_offset)
+ > ((unsigned HOST_WIDE_INT) 1 << (BITS_PER_WORD - 1))
+ /* Leave room for the fixed part of the frame. */
+ - 64 * UNITS_PER_WORD)
+ {
+ error ("%Jtotal size of local objects too large", function->decl);
+ /* Avoid duplicate error messages as much as possible. */
+ function->x_frame_offset = 0;
+ }
+