diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-18 18:58:42 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-18 18:58:42 +0000 |
commit | 56753e9de9650a172a06e1174847f987227402f5 (patch) | |
tree | ecded0b3d9d01c7860ed19b11cbd0101a48394bd /gcc/stmt.c | |
parent | b8b82f32906d7be3164715587689e690db0f44cd (diff) | |
download | gcc-56753e9de9650a172a06e1174847f987227402f5.tar.gz |
PR middle-end/26334
* stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
instead of DECL_REGISTER.
* gcc.c-torture/compile/20060217-1.c: New test.
* gcc.dg/20060218-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111247 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c index be192169e00..38a7f909e1b 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -567,9 +567,9 @@ decl_overlaps_hard_reg_set_p (tree *declp, int *walk_subtrees ATTRIBUTE_UNUSED, tree decl = *declp; const HARD_REG_SET *regs = data; - if (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == PARM_DECL) + if (TREE_CODE (decl) == VAR_DECL) { - if (DECL_REGISTER (decl) + if (DECL_HARD_REGISTER (decl) && REG_P (DECL_RTL (decl)) && REGNO (DECL_RTL (decl)) < FIRST_PSEUDO_REGISTER) { @@ -585,7 +585,7 @@ decl_overlaps_hard_reg_set_p (tree *declp, int *walk_subtrees ATTRIBUTE_UNUSED, } walk_subtrees = 0; } - else if (TYPE_P (decl)) + else if (TYPE_P (decl) || TREE_CODE (decl) == PARM_DECL) walk_subtrees = 0; return NULL_TREE; } |