aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2004-12-27 01:08:09 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2004-12-27 01:08:09 +0000
commit73096ba97f7b04b4ad454b2ad8a5307b578846b5 (patch)
tree3e79d248bcb7719df5e09a37fe8d4212fcc4e51c /gcc/config/pa
parente37ba56b5741e8a14268187423eebf002df81f66 (diff)
downloadgcc-73096ba97f7b04b4ad454b2ad8a5307b578846b5.zip
gcc-73096ba97f7b04b4ad454b2ad8a5307b578846b5.tar.gz
gcc-73096ba97f7b04b4ad454b2ad8a5307b578846b5.tar.bz2
re PR target/17643 (ICE in propagate_one_insn, at flow.c:1582)
PR target/17643 * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when generating code for the portable runtime. From-SVN: r92629
Diffstat (limited to 'gcc/config/pa')
-rw-r--r--gcc/config/pa/pa.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 707bb5d..07de1cc 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -8091,6 +8091,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.
@@ -8108,9 +8111,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