diff options
author | Richard Henderson <rth@cygnus.com> | 2000-03-22 15:09:29 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-03-22 15:09:29 -0800 |
commit | ea2e5dbeca4179d9c4ab0544d17413b4b2c0715e (patch) | |
tree | cd5b3be82233e7e4fa30070ce38808522b8e6bb3 /gcc | |
parent | 5d64361bdcda957ce1bb002593d3fb2c0de7df3d (diff) | |
download | gcc-ea2e5dbeca4179d9c4ab0544d17413b4b2c0715e.zip gcc-ea2e5dbeca4179d9c4ab0544d17413b4b2c0715e.tar.gz gcc-ea2e5dbeca4179d9c4ab0544d17413b4b2c0715e.tar.bz2 |
alpha.c (function_arg): Check for void_type_node before using MUST_PASS_IN_STACK.
* config/alpha/alpha.c (function_arg): Check for void_type_node
before using MUST_PASS_IN_STACK.
From-SVN: r32692
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fe40d1..4a08c32 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-03-21 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (function_arg): Check for void_type_node + before using MUST_PASS_IN_STACK. + 2000-03-21 Stephane Carrez <stcarrez@worldnet.fr> * regmove.c (combine_stack_adjustments_for_block): Check that diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 601c1d2..7c53f52 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -3697,10 +3697,15 @@ function_arg(cum, mode, type, named) { int basereg; - if (cum >= 6 || MUST_PASS_IN_STACK (mode, type)) + if (cum >= 6) return NULL_RTX; - if (FUNCTION_ARG_PASS_BY_REFERENCE (cum, mode, type, named)) + /* VOID is passed as a special flag for "last argument". */ + if (type == void_type_node) + basereg = 16; + else if (MUST_PASS_IN_STACK (mode, type)) + return NULL_RTX; + else if (FUNCTION_ARG_PASS_BY_REFERENCE (cum, mode, type, named)) basereg = 16; else if (TARGET_FPREGS && (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT |