diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2007-02-05 07:57:49 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2007-02-05 07:57:49 +0000 |
commit | 4fe70b3151497166c316c45e5eec842f9de3a3f2 (patch) | |
tree | 72e2ca11bf540b559a9b8d7dbb132697b28c88ff /gcc/cp/pt.c | |
parent | 3c1c7aaea2a967a51f6ec39b39bbd8d4fa6d6aed (diff) | |
download | gcc-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.c | 13 |
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: |