calls.c (emit_library_call_value_1): Use slot_offset instead of offset when calculating bounds for indexing...
* calls.c (emit_library_call_value_1): Use slot_offset instead of offset when calculating bounds for indexing stack_usage_map. Fixes a buffer overflow with certain target setups. From-SVN: r144317
This commit is contained in:
parent
c69cd1f5cd
commit
5bc0807c06
@ -1,3 +1,9 @@
|
||||
2009-02-20 Jaka Mocnik <jaka@xlab.si>
|
||||
|
||||
* calls.c (emit_library_call_value_1): Use slot_offset instead of
|
||||
offset when calculating bounds for indexing stack_usage_map. Fixes
|
||||
a buffer overflow with certain target setups.
|
||||
|
||||
2009-02-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/39240
|
||||
|
@ -3646,10 +3646,10 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
||||
#ifdef ARGS_GROW_DOWNWARD
|
||||
/* stack_slot is negative, but we want to index stack_usage_map
|
||||
with positive values. */
|
||||
upper_bound = -argvec[argnum].locate.offset.constant + 1;
|
||||
upper_bound = -argvec[argnum].locate.slot_offset.constant + 1;
|
||||
lower_bound = upper_bound - argvec[argnum].locate.size.constant;
|
||||
#else
|
||||
lower_bound = argvec[argnum].locate.offset.constant;
|
||||
lower_bound = argvec[argnum].locate.slot_offset.constant;
|
||||
upper_bound = lower_bound + argvec[argnum].locate.size.constant;
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user