]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fortran: remove redundant code related to constant pointer in atomic_cas
authorYuao Ma <c8ef@outlook.com>
Thu, 30 Oct 2025 13:53:17 +0000 (21:53 +0800)
committerc8ef <c8ef@outlook.com>
Fri, 31 Oct 2025 15:05:51 +0000 (23:05 +0800)
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
gcc/fortran/trans-intrinsic.cc

index 9012c2a5746dd292d82991d9c4dbec6c184dcd22..b2d1e4559883e48b726a8ab0ae64150e6850ae03 100644 (file)
@@ -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
 
index 89a03d874ecb9bac0077f3d65613e971a548fcb7..5b9111d3faee14126008057fd8340f5596d85519 100644 (file)
@@ -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);