re PR c++/59813 (tail-call elimination didn't fire for left-shift of char to cout)
authorJakub Jelinek <jakub@redhat.com>
Sat, 11 May 2019 09:33:22 +0000 (11:33 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 11 May 2019 09:33:22 +0000 (11:33 +0200)
PR c++/59813
* config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.

From-SVN: r271093

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index 09552a1c036e920c54db5557f8d08a04d451ce7c..e4b0099552fc26f72e996aea8322c520ad63d6a7 100644 (file)
@@ -1,3 +1,9 @@
+2019-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/59813
+       * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
+       EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
+
 2019-05-11  Uroš Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
index c3c88c80bbe52173f99c30184410a63e81fac61e..1f904671c6909573290fa97858b7c933b431d8f2 100644 (file)
@@ -5913,7 +5913,7 @@ aarch64_expand_epilogue (bool for_sibcall)
     }
 
   /* Stack adjustment for exception handler.  */
-  if (crtl->calls_eh_return)
+  if (crtl->calls_eh_return && !for_sibcall)
     {
       /* We need to unwind the stack by the offset computed by
         EH_RETURN_STACKADJ_RTX.  We have already reset the CFA