diff options
author | Alan Modra <amodra@bigpond.net.au> | 2005-08-23 00:33:18 +0000 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2005-08-23 10:03:18 +0930 |
commit | c1fa753e4264554a1dd67262d37731aee99f36be (patch) | |
tree | 5dfa221dc93b36286a12b038316582aed1183061 /gcc/config | |
parent | a0940ff60840d35b17f9987b522009be9d2067af (diff) | |
download | gcc-c1fa753e4264554a1dd67262d37731aee99f36be.zip gcc-c1fa753e4264554a1dd67262d37731aee99f36be.tar.gz gcc-c1fa753e4264554a1dd67262d37731aee99f36be.tar.bz2 |
re PR target/23070 ([3.4 only] CALL_V4_CLEAR_FP_ARGS flag not properly set)
PR target/23070
* config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
stdarg functions, set/clear the fp marker even when no variable
args are passed.
* config/rs6000/sysv4.opt (mprototype): Describe.
From-SVN: r103375
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/sysv4.opt | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 04c02c3..2797d5f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -4997,9 +4997,10 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, if (mode == VOIDmode) { if (abi == ABI_V4 - && cum->nargs_prototype < 0 && (cum->call_cookie & CALL_LIBCALL) == 0 - && (cum->prototype || TARGET_NO_PROTOTYPE)) + && (cum->stdarg + || (cum->nargs_prototype < 0 + && (cum->prototype || TARGET_NO_PROTOTYPE)))) { /* For the SPE, we need to crxor CR6 always. */ if (TARGET_SPE_ABI) diff --git a/gcc/config/rs6000/sysv4.opt b/gcc/config/rs6000/sysv4.opt index 2fafba2..c483ea5 100644 --- a/gcc/config/rs6000/sysv4.opt +++ b/gcc/config/rs6000/sysv4.opt @@ -76,7 +76,7 @@ no description yet mprototype Target Mask(PROTOTYPE) -no description yet +Assume all variable arg functions are prototyped ;; FIXME: Does nothing. mno-traceback |