]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/17643 (ICE in propagate_one_insn, at flow.c:1582)
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Mon, 27 Dec 2004 00:20:56 +0000 (00:20 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Mon, 27 Dec 2004 00:20:56 +0000 (00:20 +0000)
PR target/17643
* pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
generating code for the portable runtime.

From-SVN: r92628

gcc/ChangeLog
gcc/config/pa/pa.c

index 15e364c3578b79d57165b72a509fbacf6a917b95..d4dff7786b4542cbde24d47dea41fd975a0d650e 100644 (file)
@@ -1,3 +1,9 @@
+2004-12-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/17643
+       * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
+       generating code for the portable runtime.
+
 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
 
        PR target/19147
index f0d15857f247b0e0c7f97f4b28169ebfe03f6890..8864cee7bc38f577c4a51ce0d3668062a9ba5fe0 100644 (file)
@@ -7933,6 +7933,9 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
 static bool
 pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
 {
+  if (TARGET_PORTABLE_RUNTIME)
+    return false;
+
   /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in
      single subspace mode and the call is not indirect.  As far as I know,
      there is no operating system support for the multiple subspace mode.
@@ -7950,9 +7953,8 @@ pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
   if (TARGET_64BIT)
     return false;
 
-  return (decl
-         && !TARGET_PORTABLE_RUNTIME
-         && !TREE_PUBLIC (decl));
+  /* Sibcalls are only ok within a translation unit.  */
+  return (decl && !TREE_PUBLIC (decl));
 }
 
 /* Returns 1 if the 6 operands specified in OPERANDS are suitable for