]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc: migrate from CONST_CAST2 macro to const_cast<>() [PR123892]
authorTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Fri, 30 Jan 2026 16:07:11 +0000 (17:07 +0100)
committerTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Tue, 3 Feb 2026 13:08:59 +0000 (14:08 +0100)
Prepare to remove CONST_CAST2 macro from gcc/system.h

gcc/ChangeLog:

PR middle-end/123892
* 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.cc: Likewise.
* tree-nested.cc: Likewise.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
gcc/collect2.cc
gcc/config/sparc/driver-sparc.cc
gcc/gcc-ar.cc
gcc/gcc.cc
gcc/toplev.cc
gcc/tree-nested.cc

index 228f2006d57ced79ec57f113560d10c057dabe7b..cebdb488781edb741fd3914978d94d4c1094848e 100644 (file)
@@ -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
index d22d36679c6aba71c3b45439c041b29ef091bd36..993dc020bea0b17b47a2fc4b2f43ded1d28a9d91 100644 (file)
@@ -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);
     }
index c173ee067e109efa1f16dc3ecde37d206a08dec8..755dbb88914103a7b5f280ed80462779c8638479 100644 (file)
@@ -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)
index 2fc743af3d90ac37d0817d8006205dd146ebc5be..bc66b795df0eda0bb79d41fb78bd83db28e0bfed 100644 (file)
@@ -7890,7 +7890,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)
     {
index 9c93eb8ce1dc297366eb2da51ec43ad7455ed2a7..682459220a20c2a2119c6f2de519792de6a32936 100644 (file)
@@ -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);
 
index 090d1b5264a4d8f742514fca603846dfed4b4c0f..cdccc51d33e139806a4ab9a71cd869ab665a3844 100644 (file)
@@ -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;
 }