From: Torbjörn SVENSSON Date: Fri, 30 Jan 2026 16:07:11 +0000 (+0100) Subject: gcc: migrate from CONST_CAST2 macro to const_cast<>() [PR123892] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=945cdc58c4c6d82301e003127d2aa73e569b11b2;p=thirdparty%2Fgcc.git gcc: migrate from CONST_CAST2 macro to const_cast<>() [PR123892] 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 --- diff --git a/gcc/collect2.cc b/gcc/collect2.cc index 228f2006d57..cebdb488781 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 (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 (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 (ld1_argv); ld2_argv = XCNEWVEC (char *, argc + 11); - ld2 = CONST_CAST2 (const char **, char **, ld2_argv); + ld2 = const_cast (ld2_argv); object_lst = XCNEWVEC (char *, argc); - object = CONST_CAST2 (const char **, char **, object_lst); + object = const_cast (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 (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 (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 (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 (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 (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 (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 (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 (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 ("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 ("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 (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 (nargv), concat ("gcc-", exe_name, NULL), NULL,NULL, &status, &err); if (err_msg) diff --git a/gcc/gcc.cc b/gcc/gcc.cc index 2fc743af3d9..bc66b795df0 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc @@ -7890,7 +7890,7 @@ run_attempt (const char **new_argv, const char *out_temp, fatal_error (input_location, "% failed: %m"); errmsg = pex_run (pex, pex_flags, new_argv[0], - CONST_CAST2 (char *const *, const char **, &new_argv[1]), + const_cast (&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 (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 (e); *ref_p = fold (*ref_p); return true; }