This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch] Don't expand targetm.stack_protect_fail if it's NULL_TREE
- From: Jiong Wang <jiong dot wang at foss dot arm dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 20 Oct 2016 16:28:47 +0100
- Subject: [Patch] Don't expand targetm.stack_protect_fail if it's NULL_TREE
- Authentication-results: sourceware.org; auth=none
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);
}