Fix too small buffer problem found by ia64 port.
* except.c (start_dynamic_handler): Compute size using STACK_SAVEAREA_MODE. From-SVN: r29275
This commit is contained in:
parent
ffb9f2f152
commit
007598f98b
@ -1,3 +1,8 @@
|
|||||||
|
Fri Sep 10 13:21:21 1999 Jim Wilson <wilson@cygnus.com>
|
||||||
|
|
||||||
|
* except.c (start_dynamic_handler): Compute size using
|
||||||
|
STACK_SAVEAREA_MODE.
|
||||||
|
|
||||||
Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
* protoize.c: Remove various __STDC__ and POSIX hacks. Don't
|
* protoize.c: Remove various __STDC__ and POSIX hacks. Don't
|
||||||
|
11
gcc/except.c
11
gcc/except.c
@ -1273,9 +1273,14 @@ start_dynamic_handler ()
|
|||||||
|
|
||||||
#ifndef DONT_USE_BUILTIN_SETJMP
|
#ifndef DONT_USE_BUILTIN_SETJMP
|
||||||
/* The number of Pmode words for the setjmp buffer, when using the
|
/* The number of Pmode words for the setjmp buffer, when using the
|
||||||
builtin setjmp/longjmp, see expand_builtin, case
|
builtin setjmp/longjmp, see expand_builtin, case BUILT_IN_LONGJMP. */
|
||||||
BUILT_IN_LONGJMP. */
|
/* We use 2 words here before calling expand_builtin_setjmp.
|
||||||
size = 5;
|
expand_builtin_setjmp uses 2 words, and then calls emit_stack_save.
|
||||||
|
emit_stack_save needs space of size STACK_SAVEAREA_MODE (SAVE_NONLOCAL).
|
||||||
|
Subtract one, because the assign_stack_local call below adds 1. */
|
||||||
|
size = (2 + 2 + (GET_MODE_SIZE (STACK_SAVEAREA_MODE (SAVE_NONLOCAL))
|
||||||
|
/ GET_MODE_SIZE (Pmode))
|
||||||
|
- 1);
|
||||||
#else
|
#else
|
||||||
#ifdef JMP_BUF_SIZE
|
#ifdef JMP_BUF_SIZE
|
||||||
size = JMP_BUF_SIZE;
|
size = JMP_BUF_SIZE;
|
||||||
|
Loading…
Reference in New Issue
Block a user