diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-03-06 18:28:54 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-03-06 18:28:54 +0100 |
commit | 251923f5e4950ce2e43020f663723f84b7cfe31a (patch) | |
tree | 47a7934fccf7b621bf8bfc543f09205c27cf5284 /gcc | |
parent | e8645a4001a8d117dd336ea75942aac49101af49 (diff) | |
download | gcc-251923f5e4950ce2e43020f663723f84b7cfe31a.zip gcc-251923f5e4950ce2e43020f663723f84b7cfe31a.tar.gz gcc-251923f5e4950ce2e43020f663723f84b7cfe31a.tar.bz2 |
gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes for the same VAR_DECL.
* gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
for the same VAR_DECL.
* testsuite/libgomp.c/atomic-3.c: New test.
From-SVN: r132977
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gimplify.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e39eae7..4bc1c28 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-03-06 Jakub Jelinek <jakub@redhat.com> + + * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes + for the same VAR_DECL. + 2008-03-06 Tom Tromey <tromey@redhat.com> * treelang: Delete. diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 04ed39c..cb7460e 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -5464,7 +5464,10 @@ goa_lhs_expr_p (tree expr, tree addr) expr = TREE_OPERAND (expr, 0); addr = TREE_OPERAND (addr, 0); } - return expr == addr; + if (expr == addr) + return true; + return (TREE_CODE (addr) == ADDR_EXPR && TREE_CODE (expr) == ADDR_EXPR + && TREE_OPERAND (addr, 0) == TREE_OPERAND (expr, 0)); } if (TREE_CODE (addr) == ADDR_EXPR && expr == TREE_OPERAND (addr, 0)) return true; |