Replace all usage of CONST_CAST* macros with const_cast<> C++ expression. For the locations that may be used in both C and C++, especially header files. Expand the macro to do the preprocessor selection in place (only 3 locations in this patch series).
This patch series also replaces the need for https://gcc.gnu.org/pipermail/gcc-patches/2026-January/707241.html on trunk. The patch above is still valid for releases/gcc-15 though unless this entire series is to be backported to releases/gcc-15. This patch series have been regtested on top of r16-7257-g0ef6df1db19 for x86_64-pc-linux-gnu. In addition, I've built the source tree with target x86_64-w64-mingw and arm-none-eabi. Ok for trunk? Torbjörn SVENSSON (8): middle-end: replace CONST_CAST_RTX_INSN with const_cast<struct rtx_insn *> [PR123892] middle-end: replace CONST_CAST_RTX with const_cast<rtx> [PR123892] middle-end: replace CONST_CAST_BB with const_cast<basic_block> [PR123892] middle-end: replace CONST_CAST_GIMPLE with const_cast<gimple *> [PR123892] middle-end: replace CONST_CAST_TREE with const_cast<tree> [PR123892] gcc/tree.h: replace CONST_CAST2 with const_cast<> [PR123892] middle-end: replace CONST_CAST with const_cast<> [PR123892] libgcc: replace CONST_CAST2 macro gcc/alias.cc | 2 +- gcc/attribs.cc | 14 ++++---- gcc/builtins.cc | 10 +++--- gcc/c-family/c-common.cc | 2 +- gcc/c-family/c-gimplify.cc | 2 +- gcc/c-family/c-lex.cc | 6 ++-- gcc/c/c-decl.cc | 2 +- gcc/c/c-parser.cc | 2 +- gcc/collect2.cc | 2 +- gcc/config/aarch64/aarch64.cc | 5 +-- gcc/config/arm/arm.cc | 6 ++-- gcc/config/bpf/core-builtins.cc | 4 +-- gcc/config/darwin.cc | 6 ++-- gcc/config/gcn/mkoffload.cc | 13 +++++--- gcc/config/i386/x86-tune-sched-bd.cc | 2 +- gcc/config/nvptx/mkoffload.cc | 6 ++-- gcc/config/nvptx/nvptx.cc | 2 +- gcc/config/rs6000/rs6000.cc | 6 ++-- gcc/cp/call.cc | 4 +-- gcc/cp/constraint.cc | 2 +- gcc/cp/cp-lang.cc | 2 +- gcc/cp/cp-objcp-common.cc | 2 +- gcc/cp/cp-tree.h | 12 ++++--- gcc/cp/decl.cc | 2 +- gcc/cp/init.cc | 2 +- gcc/cp/parser.cc | 2 +- gcc/cp/pt.cc | 12 +++---- gcc/cp/reflect.cc | 6 ++-- gcc/cp/tree.cc | 32 +++++++++---------- gcc/cp/typeck.cc | 10 +++--- gcc/cp/typeck2.cc | 2 +- gcc/ctfc.cc | 6 ++-- gcc/d/d-builtins.cc | 2 +- gcc/d/d-incpath.cc | 4 +-- gcc/d/d-lang.cc | 4 +-- gcc/d/d-spec.cc | 4 +-- gcc/d/decl.cc | 4 +-- gcc/dumpfile.cc | 8 ++--- gcc/fold-const.cc | 15 +++++---- gcc/fortran/gfortran.h | 7 +++- gcc/fortran/module.cc | 14 ++++---- gcc/fortran/openmp.cc | 2 +- gcc/fortran/options.cc | 2 +- gcc/fortran/parse.cc | 2 +- gcc/fortran/scanner.cc | 4 +-- gcc/fortran/st.cc | 2 +- gcc/fortran/trans-intrinsic.cc | 2 +- gcc/gcc.cc | 36 ++++++++++----------- gcc/gcov.cc | 2 +- gcc/gengtype-parse.cc | 4 +-- gcc/gengtype-state.cc | 2 +- gcc/gengtype.cc | 28 ++++++++-------- gcc/genoutput.cc | 2 +- gcc/ggc-page.cc | 2 +- gcc/gimple-expr.cc | 2 +- gcc/gimple.h | 2 +- gcc/godump.cc | 12 +++---- gcc/lto-section-in.cc | 6 ++-- gcc/lto-wrapper.cc | 8 ++--- gcc/lto/lto-common.cc | 10 +++--- gcc/lto/lto.cc | 2 +- gcc/omp-offload.cc | 2 +- gcc/passes.cc | 4 +-- gcc/plugin.cc | 2 +- gcc/prefix.cc | 2 +- gcc/pretty-print.cc | 2 +- gcc/print-rtl.cc | 3 +- gcc/recog.cc | 2 +- gcc/rtlanal.cc | 3 +- gcc/rust/backend/rust-tree.cc | 16 +++++----- gcc/sched-deps.cc | 2 +- gcc/sel-sched-ir.cc | 4 +-- gcc/selftest.cc | 2 +- gcc/statistics.cc | 2 +- gcc/stringpool.cc | 4 +-- gcc/system.h | 48 ---------------------------- gcc/tracer.cc | 3 +- gcc/tree-cfg.cc | 4 +-- gcc/tree-object-size.cc | 4 +-- gcc/tree-profile.cc | 12 +++---- gcc/tree.cc | 4 +-- gcc/tree.h | 26 +++++++-------- gcc/tsystem.h | 3 -- gcc/var-tracking.cc | 2 +- gcc/varasm.cc | 6 ++-- gcc/vec.h | 2 +- libgcc/config/i386/gthr-win32.h | 17 ++++------ libgcc/config/pa/gthr-dce.h | 18 ++++------- 88 files changed, 266 insertions(+), 315 deletions(-) -- 2.43.0
