diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2004-12-27 01:08:09 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2004-12-27 01:08:09 +0000 |
commit | 73096ba97f7b04b4ad454b2ad8a5307b578846b5 (patch) | |
tree | 3e79d248bcb7719df5e09a37fe8d4212fcc4e51c /gcc/config/pa | |
parent | e37ba56b5741e8a14268187423eebf002df81f66 (diff) | |
download | gcc-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.c | 8 |
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 |