This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch-v2] Adjustments for Windows x64 SEH
On 2012-06-21 00:48, Tristan Gingold wrote:
> @@ -9142,9 +9152,12 @@ ix86_compute_frame_layout (struct ix86_frame *frame)
> {
> HOST_WIDE_INT diff;
>
> - /* If we can leave the frame pointer where it is, do so. */
> + /* If we can leave the frame pointer where it is, do so. Also, returns
> + the establisher frame for __builtin_frame_address (0). */
> diff = frame->stack_pointer_offset - frame->hard_frame_pointer_offset;
> - if (diff > 240 || (diff & 15) != 0)
> + if (diff <= SEH_MAX_FRAME_SIZE
> + && (diff > 240 || (diff & 15) != 0)
> + && !crtl->accesses_prior_frames)
> {
Can't this result in diff > 240 for access_prior_frames?
And is thus non-encodable in the unwind info?
Otherwise this looks pretty good...
r~