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]

[Patch] Don't expand targetm.stack_protect_fail if it's NULL_TREE


The current code suppose targetm.stack_protect_fail always generate something.
But in case one target start to generate NULL_TREE, there will be ICE.  This
patch adds a simple sanity check to only call expand if it's not NULL_TREE.

OK for trunk?

gcc/
2016-10-20  Jiong Wang  <jiong.wang@arm.com>

        * function.c (stack_protect_epilogue): Only expands
        targetm.stack_protect_fail if it's not NULL_TREE.

diff --git a/gcc/function.c b/gcc/function.c
index cdd2721cdf904be6457d090fe20345d3dee0b4dd..304c32ed2b1ace06139786680f30502d8483a8ed 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5077,7 +5077,9 @@ stack_protect_epilogue (void)
   if (JUMP_P (tmp))
     predict_insn_def (tmp, PRED_NORETURN, TAKEN);
 
-  expand_call (targetm.stack_protect_fail (), NULL_RTX, /*ignore=*/true);
+  tree fail_check = targetm.stack_protect_fail ();
+  if (fail_check != NULL_TREE)
+    expand_call (fail_check, NULL_RTX, /*ignore=*/true);
   free_temp_slots ();
   emit_label (label);
 }

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