aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2007-02-05 07:57:49 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2007-02-05 07:57:49 +0000
commit4fe70b3151497166c316c45e5eec842f9de3a3f2 (patch)
tree72e2ca11bf540b559a9b8d7dbb132697b28c88ff /gcc/cp/pt.c
parent3c1c7aaea2a967a51f6ec39b39bbd8d4fa6d6aed (diff)
downloadgcc-4fe70b3151497166c316c45e5eec842f9de3a3f2.zip
gcc-4fe70b3151497166c316c45e5eec842f9de3a3f2.tar.gz
gcc-4fe70b3151497166c316c45e5eec842f9de3a3f2.tar.bz2
cp-tree.h (OMP_ATOMIC_CODE): Delete.
2007-02-05 Paolo Bonzini <bonzini@gnu.org> * cp-tree.h (OMP_ATOMIC_CODE): Delete. (OMP_ATOMIC_DEPENDENT_P): Rewrite. * pt.c (tsubst_expr): Adjust for new format of dependent OMP_ATOMIC expressions. * semantics.c (finish_omp_atomic): Store a whole expression node in operand 1, and integer_zero_node in operand 0, for dependent OMP_ATOMIC. Rewrite to make flow easier to understand. From-SVN: r121592
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 21e014b..ba20353 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -8917,12 +8917,13 @@ tsubst_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl,
break;
case OMP_ATOMIC:
- {
- tree op0, op1;
- op0 = RECUR (TREE_OPERAND (t, 0));
- op1 = RECUR (TREE_OPERAND (t, 1));
- finish_omp_atomic (OMP_ATOMIC_CODE (t), op0, op1);
- }
+ if (OMP_ATOMIC_DEPENDENT_P (t))
+ {
+ tree op1 = TREE_OPERAND (t, 1);
+ tree lhs = RECUR (TREE_OPERAND (op1, 0));
+ tree rhs = RECUR (TREE_OPERAND (op1, 1));
+ finish_omp_atomic (TREE_CODE (op1), lhs, rhs);
+ }
break;
default: