This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Change breaking the PA port




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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]