Pages

2011-08-03

The frame size of xxx bytes is larger than 1024 bytes

Maybe a stack-allocated local variable inside a function which is larger than 1024 bytes.

From a stack-overflow thread:
STACK_CHECK_MAX_FRAME_SIZE
The maximum size of a stack frame, in bytes. GNU CC will generate probe instructions in non-leaf functions to ensure at least this many bytes of stack are available. If a stack frame is larger than this size, stack checking will not be reliable and GNU CC will issue a warning. The default is chosen so that GNU CC only generates one instruction on most systems. You should normally not change the default value of this macro.

STACK_CHECK_FIXED_FRAME_SIZE
GNU CC uses this value to generate the above warning message. It represents the amount of fixed frame used by a function, not including space for any callee-saved registers, temporaries and user variables. You need only specify an upper bound for this amount and will normally use the default of four words.

STACK_CHECK_MAX_VAR_SIZE
The maximum size, in bytes, of an object that GNU CC will place in the fixed area of the stack frame when the user specifies `-fstack-check'. GNU CC computed the default from the values of the above macros and you will normally not need to override that default.

No comments:

Post a Comment