https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86593

--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
This patch seems to work

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index b67481dd2db..6ecdc4562d0 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -14304,7 +14304,8 @@ based_loc_descr (rtx reg, poly_int64 offset,
       if (elim != reg)
   {
     elim = strip_offset_and_add (elim, &offset);
-    gcc_assert ((SUPPORTS_STACK_ALIGNMENT
+    gcc_assert (((SUPPORTS_STACK_ALIGNMENT
+        || !crtl->stack_realign_tried)
             && (elim == hard_frame_pointer_rtx
            || elim == stack_pointer_rtx))
                 || elim == (frame_pointer_needed
@@ -20492,7 +20493,8 @@ compute_frame_pointer_to_fb_displacement (poly_int64
offset)
      this, assume that while we cannot provide a proper value for
      frame_pointer_fb_offset, we won't need one either.  */
   frame_pointer_fb_offset_valid
-    = ((SUPPORTS_STACK_ALIGNMENT
+    = (((SUPPORTS_STACK_ALIGNMENT
+   || !crtl->stack_realign_tried)
   && (elim == hard_frame_pointer_rtx
       || elim == stack_pointer_rtx))
        || elim == (frame_pointer_needed

Reply via email to