From 82384a2eda628a11a8bb6484b229f1feab8fa97b Mon Sep 17 00:00:00 2001 From: Yuao Ma Date: Thu, 30 Oct 2025 21:53:17 +0800 Subject: [PATCH] fortran: remove redundant code related to constant pointer in atomic_cas This part is unreachable after r16-4474-g2c1949bf152f8f. gcc/fortran/ChangeLog: * intrinsic.texi: Fix typo. * trans-intrinsic.cc (conv_intrinsic_atomic_cas): Remove unreachable code. --- gcc/fortran/intrinsic.texi | 2 +- gcc/fortran/trans-intrinsic.cc | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi index 9012c2a5746..b2d1e455988 100644 --- a/gcc/fortran/intrinsic.texi +++ b/gcc/fortran/intrinsic.texi @@ -2239,7 +2239,7 @@ is different, the value is converted to the kind of @var{ATOM}. program atomic use iso_fortran_env logical(atomic_logical_kind) :: atom[*], prev - call atomic_cas (atom[1], prev, .false., .true.)) + call atomic_cas (atom[1], prev, .false., .true.) end program atomic @end smallexample diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc index 89a03d874ec..5b9111d3fae 100644 --- a/gcc/fortran/trans-intrinsic.cc +++ b/gcc/fortran/trans-intrinsic.cc @@ -12844,14 +12844,6 @@ conv_intrinsic_atomic_cas (gfc_code *code) new_val = gfc_build_addr_expr (NULL_TREE, tmp); } - /* Convert a constant to a pointer. */ - if (!POINTER_TYPE_P (TREE_TYPE (comp))) - { - tmp = gfc_create_var (TREE_TYPE (TREE_TYPE (old)), "comp"); - gfc_add_modify (&block, tmp, fold_convert (TREE_TYPE (tmp), comp)); - comp = gfc_build_addr_expr (NULL_TREE, tmp); - } - gfc_init_se (&argse, NULL); gfc_get_caf_token_offset (&argse, &token, &offset, caf_decl, atom, atom_expr); -- 2.47.3