Change breaking the PA port

Jeffrey A Law law@cygnus.com
Fri Jul 21 17:29:00 GMT 2000


2000-07-13  Jakub Jelinek  <jakub@redhat.com>

        * calls.c (stored_args_map): New variable.
        (check_sibcall_argument_overlap_1): New.
        (check_sibcall_argument_overlap): New.
        (expand_call): Initialize stored_args_map.
        Call check_sibcall_argument_overlap.

check_sibcall_argument_overlap has code like this:

 low = arg->offset.constant;
  for (high = low + arg->size.constant; low < high; low++)
    SET_BIT (stored_args_map, low);


If arg->offset.constant is negative (as happens regularly on the PA), then
we segfault or just set random bits elsewhere in memory.  Bad.


jeff



More information about the Gcc mailing list