summaryrefslogtreecommitdiff
path: root/gcc/stmt.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-18 18:58:42 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-18 18:58:42 +0000
commit56753e9de9650a172a06e1174847f987227402f5 (patch)
treeecded0b3d9d01c7860ed19b11cbd0101a48394bd /gcc/stmt.c
parentb8b82f32906d7be3164715587689e690db0f44cd (diff)
downloadgcc-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.c6
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;
}