From 11742a8ab02bb4e1d4f2f72149ef2c0ea4dd340f Mon Sep 17 00:00:00 2001
From: Yuao Ma <c8ef@outlook.com>
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.43.0

