Cleanup as discussed in 
https://gcc.gnu.org/pipermail/gcc-patches/2026-January/707217.html

Ok for trunk?

--

Prepare to remove CONST_CAST2 macro from gcc/system.h

gcc/ChangeLog:

        * collect2.cc: Migrate from CONST_CAST2() macro to
        const_cast<>() C++ expression.
        * config/sparc/driver-sparc.cc: Likewise.
        * gcc-ar.cc: Likewise.
        * gcc.cc: Likewise.
        * toplev.c: Likewise.
        * tree-nested.cc: Likewise.

Signed-off-by: Torbjörn SVENSSON <[email protected]>
---
 gcc/collect2.cc                  | 33 +++++++++++++++-----------------
 gcc/config/sparc/driver-sparc.cc |  5 ++---
 gcc/gcc-ar.cc                    |  5 ++---
 gcc/gcc.cc                       |  2 +-
 gcc/toplev.cc                    |  3 +--
 gcc/tree-nested.cc               |  2 +-
 6 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/gcc/collect2.cc b/gcc/collect2.cc
index 228f2006d57..09ae31dcfce 100644
--- a/gcc/collect2.cc
+++ b/gcc/collect2.cc
@@ -579,7 +579,7 @@ static void
 maybe_run_lto_and_relink (char **lto_ld_argv, char **object_lst,
                          const char **object, bool force)
 {
-  const char **object_file = CONST_CAST2 (const char **, char **, object_lst);
+  const char **object_file = const_cast<const char **> (object_lst);
 
   int num_lto_c_args = 1;    /* Allow space for the terminating NULL.  */
 
@@ -623,7 +623,7 @@ maybe_run_lto_and_relink (char **lto_ld_argv, char 
**object_lst,
         objects removed.  */
 
       lto_c_argv = (char **) xcalloc (num_lto_c_args, sizeof (char *));
-      lto_c_ptr = CONST_CAST2 (const char **, char **, lto_c_argv);
+      lto_c_ptr = const_cast<const char **> (lto_c_argv);
 
       *lto_c_ptr++ = lto_wrapper;
 
@@ -921,11 +921,11 @@ main (int argc, char **argv)
      set first, in case a diagnostic is issued.  */
 
   ld1_argv = XCNEWVEC (char *, argc + 4);
-  ld1 = CONST_CAST2 (const char **, char **, ld1_argv);
+  ld1 = const_cast<const char **> (ld1_argv);
   ld2_argv = XCNEWVEC (char *, argc + 11);
-  ld2 = CONST_CAST2 (const char **, char **, ld2_argv);
+  ld2 = const_cast<const char **> (ld2_argv);
   object_lst = XCNEWVEC (char *, argc);
-  object = CONST_CAST2 (const char **, char **, object_lst);
+  object = const_cast<const char **> (object_lst);
 
 #ifdef DEBUG
   debug = true;
@@ -1045,7 +1045,7 @@ main (int argc, char **argv)
   num_c_args += 8;
 
   c_argv = XCNEWVEC (char *, num_c_args);
-  c_ptr = CONST_CAST2 (const char **, char **, c_argv);
+  c_ptr = const_cast<const char **> (c_argv);
 
   if (argc < 2)
     fatal_error (input_location, "no arguments");
@@ -1348,13 +1348,12 @@ main (int argc, char **argv)
                      if (add_nbr >= add_max)
                        {
                          int pos =
-                           object - CONST_CAST2 (const char **, char **,
-                                                 object_lst);
+                           object - const_cast<const char **> (object_lst);
                          add_max = (add_max == 0) ? 16 : add_max * 2;
                          object_lst = XRESIZEVEC (char *, object_lst,
                                                    object_nbr + add_max);
-                         object = CONST_CAST2 (const char **, char **,
-                                               object_lst) + pos;
+                         object =
+                           const_cast<const char **> (object_lst) + pos;
                          object_nbr += add_max;
                        }
                      *object++ = xstrdup (buf);
@@ -1518,8 +1517,7 @@ main (int argc, char **argv)
      would otherwise reference them all, hence drag all the corresponding
      objects even if nothing else is referenced.  */
   {
-    const char **export_object_lst
-      = CONST_CAST2 (const char **, char **, object_lst);
+    const char **export_object_lst = const_cast<const char **> (object_lst);
 
     struct id *list = libs.first;
 
@@ -1709,8 +1707,8 @@ main (int argc, char **argv)
       if (strip_flag)
        {
          char **real_strip_argv = XCNEWVEC (char *, 3);
-         const char ** strip_argv = CONST_CAST2 (const char **, char **,
-                                                 real_strip_argv);
+         const char ** strip_argv =
+           const_cast<const char **> (real_strip_argv);
 
          strip_argv[0] = strip_file_name;
          strip_argv[1] = output_file;
@@ -2343,7 +2341,7 @@ scan_prog_file (const char *prog_name, scanpass 
which_pass,
   void (*quit_handler) (int);
 #endif
   char *real_nm_argv[4];
-  const char **nm_argv = CONST_CAST2 (const char **, char**, real_nm_argv);
+  const char **nm_argv = const_cast<const char **>(real_nm_argv);
   int argc = 0;
   struct pex_obj *pex;
   const char *errmsg;
@@ -2527,7 +2525,7 @@ scan_libraries (const char *prog_name)
   void (*quit_handler) (int);
 #endif
   char *real_ldd_argv[4];
-  const char **ldd_argv = CONST_CAST2 (const char **, char **, real_ldd_argv);
+  const char **ldd_argv = const_cast<const char **>(real_ldd_argv);
   int argc = 0;
   struct pex_obj *pex;
   const char *errmsg;
@@ -3029,8 +3027,7 @@ do_dsymutil (const char *output_file) {
   const char *dsymutil = 0;
   struct pex_obj *pex;
   char **real_argv = XCNEWVEC (char *, verbose ? 4 : 3);
-  const char ** argv = CONST_CAST2 (const char **, char **,
-                                   real_argv);
+  const char ** argv = const_cast<const char **>(real_argv);
 /* For cross-builds search the PATH using target-qualified name if we
    have not already found a suitable dsymutil.  In practice, all modern
    versions of dsymutil handle all supported archs, however the approach
diff --git a/gcc/config/sparc/driver-sparc.cc b/gcc/config/sparc/driver-sparc.cc
index d22d36679c6..993dc020bea 100644
--- a/gcc/config/sparc/driver-sparc.cc
+++ b/gcc/config/sparc/driver-sparc.cc
@@ -127,13 +127,12 @@ host_detect_local_cpu (int argc, const char **argv)
   kc = kstat_open ();
   if (kc != NULL)
     {
-      ksp = kstat_lookup (kc, CONST_CAST2 (char *, const char *, "cpu_info"),
-                         -1, NULL);
+      ksp = kstat_lookup (kc, const_cast<char *> ("cpu_info"), -1, NULL);
       if (ksp != NULL
          && kstat_read (kc, ksp, NULL) != -1
          && ksp->ks_type == KSTAT_TYPE_NAMED)
        brand = (kstat_named_t *)
-         kstat_data_lookup (ksp, CONST_CAST2 (char *, const char *, "brand"));
+         kstat_data_lookup (ksp, const_cast<char *> ("brand"));
       if (brand != NULL && brand->data_type == KSTAT_DATA_STRING)
        buf = KSTAT_NAMED_STR_PTR (brand);
     }
diff --git a/gcc/gcc-ar.cc b/gcc/gcc-ar.cc
index c173ee067e1..755dbb88914 100644
--- a/gcc/gcc-ar.cc
+++ b/gcc/gcc-ar.cc
@@ -249,8 +249,7 @@ main (int ac, char **av)
          fprintf (stderr, "Cannot open temporary file %s\n", rsp_file);
          exit (1);
        }
-      status = writeargv (
-         CONST_CAST2 (char * const *, const char **, nargv) + 1, f);
+      status = writeargv (const_cast<char * const *> (nargv) + 1, f);
       if (status)
        {
          fprintf (stderr, "Cannot write to temporary file %s\n", rsp_file);
@@ -273,7 +272,7 @@ main (int ac, char **av)
   /* ??? the const is misplaced in pex_one's argv? */
   err_msg = pex_one (PEX_LAST|PEX_SEARCH,
                     exe_name,
-                    CONST_CAST2 (char * const *, const char **, nargv),
+                    const_cast<char * const *> (nargv),
                     concat ("gcc-", exe_name, NULL),
                     NULL,NULL,  &status, &err);
   if (err_msg)
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 6b6f6f87c52..f906198359d 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -7891,7 +7891,7 @@ run_attempt (const char **new_argv, const char *out_temp,
     fatal_error (input_location, "%<pex_init%> failed: %m");
 
   errmsg = pex_run (pex, pex_flags, new_argv[0],
-                   CONST_CAST2 (char *const *, const char **, &new_argv[1]),
+                   const_cast<char *const *> (&new_argv[1]),
                    out_temp, err_temp, &err);
   if (errmsg != NULL)
     {
diff --git a/gcc/toplev.cc b/gcc/toplev.cc
index 9c93eb8ce1d..682459220a2 100644
--- a/gcc/toplev.cc
+++ b/gcc/toplev.cc
@@ -2328,8 +2328,7 @@ toplev::main (int argc, char **argv)
 
   /* Convert the options to an array.  */
   decode_cmdline_options_to_array_default_mask (argc,
-                                               CONST_CAST2 (const char **,
-                                                            char **, argv),
+                                               const_cast<const char **> 
(argv),
                                                &save_decoded_options,
                                                &save_decoded_options_count);
 
diff --git a/gcc/tree-nested.cc b/gcc/tree-nested.cc
index 090d1b5264a..cdccc51d33e 100644
--- a/gcc/tree-nested.cc
+++ b/gcc/tree-nested.cc
@@ -3397,7 +3397,7 @@ fixup_vla_decls (tree block)
 bool
 fold_mem_refs (tree *const &e, void *data ATTRIBUTE_UNUSED)
 {
-  tree *ref_p = CONST_CAST2 (tree *, const tree *, (const tree *)e);
+  tree *ref_p = const_cast<tree *> (e);
   *ref_p = fold (*ref_p);
   return true;
 }
-- 
2.43.0

Reply via email to