[gcc(refs/vendors/ARM/heads/arm-struct-reorg-wip)] riscv: Fix up riscv_atomic_assign_expand_fenv [PR94950]
Tamar Christina
tnfchris@gcc.gnu.org
Fri Jul 17 14:58:12 GMT 2020
https://gcc.gnu.org/g:5454a13add37fa6a8eedbf9d2f6bdc63a7825e2c
commit 5454a13add37fa6a8eedbf9d2f6bdc63a7825e2c
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed May 6 09:40:33 2020 +0200
riscv: Fix up riscv_atomic_assign_expand_fenv [PR94950]
Similarly to the fixes on many other targets, riscv needs to use TARGET_EXPR
to avoid having the create_tmp_var_raw temporaries without proper DECL_CONTEXT
and not mentioned in local decls.
2020-05-06 Jakub Jelinek <jakub@redhat.com>
PR target/94950
* config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
Diff:
---
gcc/ChangeLog | 6 ++++++
gcc/config/riscv/riscv-builtins.c | 4 ++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c80642c85e..c948d829d6b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/94950
+ * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
+ TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
+
2020-05-06 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/94873
diff --git a/gcc/config/riscv/riscv-builtins.c b/gcc/config/riscv/riscv-builtins.c
index 201fdb52f20..a45108e0355 100644
--- a/gcc/config/riscv/riscv-builtins.c
+++ b/gcc/config/riscv/riscv-builtins.c
@@ -283,8 +283,8 @@ riscv_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
tree fsflags = GET_BUILTIN_DECL (CODE_FOR_riscv_fsflags);
tree old_flags = create_tmp_var_raw (RISCV_ATYPE_USI);
- *hold = build2 (MODIFY_EXPR, RISCV_ATYPE_USI, old_flags,
- build_call_expr (frflags, 0));
+ *hold = build4 (TARGET_EXPR, RISCV_ATYPE_USI, old_flags,
+ build_call_expr (frflags, 0), NULL_TREE, NULL_TREE);
*clear = build_call_expr (fsflags, 1, old_flags);
*update = NULL_TREE;
}
More information about the Gcc-cvs
mailing list