From e91cacaedb0ef7c9674af7f8920de5952bbb7fbb Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 2 May 2016 13:25:17 +0200 Subject: [PATCH] [PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value gcc/ PR target/70860 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun. (nvptx_function_value): Assert non-NULL cfun. From-SVN: r235748 --- gcc/ChangeLog | 6 ++++++ gcc/config/nvptx/nvptx.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 49a314aebc7..f344e0ff070 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-05-02 Thomas Schwinge + + PR target/70860 + * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun. + (nvptx_function_value): Assert non-NULL cfun. + 2016-05-02 Eric Botcazou PR rtl-optimization/70886 diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index b088cf89bb9..a6c90b633f9 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -483,7 +483,7 @@ nvptx_strict_argument_naming (cumulative_args_t cum_v) static rtx nvptx_libcall_value (machine_mode mode, const_rtx) { - if (!cfun->machine->doing_call) + if (!cfun || !cfun->machine->doing_call) /* Pretend to return in a hard reg for early uses before pseudos can be generated. */ return gen_rtx_REG (mode, NVPTX_RETURN_REGNUM); @@ -502,6 +502,7 @@ nvptx_function_value (const_tree type, const_tree ARG_UNUSED (func), if (outgoing) { + gcc_assert (cfun); cfun->machine->return_mode = mode; return gen_rtx_REG (mode, NVPTX_RETURN_REGNUM); } -- 2.30.2