aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2008-03-06 18:28:54 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2008-03-06 18:28:54 +0100
commit251923f5e4950ce2e43020f663723f84b7cfe31a (patch)
tree47a7934fccf7b621bf8bfc543f09205c27cf5284 /gcc/gimplify.c
parente8645a4001a8d117dd336ea75942aac49101af49 (diff)
downloadgcc-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/gimplify.c')
-rw-r--r--gcc/gimplify.c5
1 files changed, 4 insertions, 1 deletions
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;