This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

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~


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