On 2026-01-30 19:39, Richard Biener wrote:
On Fri, 30 Jan 2026, Torbjörn SVENSSON wrote:

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

Ok for trunk?

OK if this passes a build test and nobody objects within 24h.
Btw, I had created PR123892 for tracking this, so please mention it in
the changelog.

Updated the changelog to include the PR number.
Pushed as r16-7256-g945cdc58c4c.

Kind regards,
Torbjörn


Thanks,
Richard.

--

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;
  }



Reply via email to