diff options
author | Josef Zlomek <zlomekj@suse.cz> | 2004-02-14 19:45:41 +0100 |
---|---|---|
committer | Josef Zlomek <zlomek@gcc.gnu.org> | 2004-02-14 18:45:41 +0000 |
commit | d4afac5bbd0dc69a47c800b0ad4ba3e469c48963 (patch) | |
tree | fa1b6177c06575af2d926341e2c6591f7db0f966 /gcc/emit-rtl.c | |
parent | 19b17484d033b444106949396c6d6abbe08d595f (diff) | |
download | gcc-d4afac5bbd0dc69a47c800b0ad4ba3e469c48963.zip gcc-d4afac5bbd0dc69a47c800b0ad4ba3e469c48963.tar.gz gcc-d4afac5bbd0dc69a47c800b0ad4ba3e469c48963.tar.bz2 |
emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of PARALLEL is NULL.
* emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
PARALLEL is NULL.
From-SVN: r77811
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 76f292c..2a14287 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -852,8 +852,16 @@ set_decl_incoming_rtl (tree t, rtx x) } if (GET_CODE (x) == PARALLEL) { - int i; - for (i = 0; i < XVECLEN (x, 0); i++) + int i, start; + + /* Check for a NULL entry, used to indicate that the parameter goes + both on the stack and in registers. */ + if (XEXP (XVECEXP (x, 0, 0), 0)) + start = 0; + else + start = 1; + + for (i = start; i < XVECLEN (x, 0); i++) { rtx y = XVECEXP (x, 0, i); if (REG_P (XEXP (y, 0))) |