[PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value
authorThomas Schwinge <thomas@codesourcery.com>
Mon, 2 May 2016 11:25:17 +0000 (13:25 +0200)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Mon, 2 May 2016 11:25:17 +0000 (13:25 +0200)
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
gcc/config/nvptx/nvptx.c

index 49a314aebc72965051b9f17122c5b158ba0fb741..f344e0ff0702e5007fa2784e539e9d8e0350bd39 100644 (file)
@@ -1,3 +1,9 @@
+2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
+
+       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  <ebotcazou@adacore.com>
 
        PR rtl-optimization/70886
index b088cf89bb9669ac1fff33406ce54b5008ef35fe..a6c90b633f91c32695ee6b4cbb2f6dd19829559e 100644 (file)
@@ -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);
     }