From 1a64b224fa014e772fb30f6bd69ceb24da5827e6 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sat, 19 Apr 2025 12:35:29 -0600 Subject: [PATCH] [RISC-V][PR target/119865] Don't free ggc allocated memory Kaiweng's patch to stop freeing riscv_arch_string was correct, but incomplete as there's another path that was freeing that node, which is just plain wrong for a node allocated by the GC system. This patch removes that call to free() which fixes the test. I've spun it in my tester and will obviously wait for the pre-commit system to render a verdict before moving forward. PR target/119865 gcc/ * config/riscv/riscv.cc (parse_features_for_version): Do not explicitly free the architecture string. --- gcc/config/riscv/riscv.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index d3656a7a430..bad59e248d0 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -13136,9 +13136,6 @@ parse_features_for_version (tree decl, DECL_SOURCE_LOCATION (decl)); gcc_assert (parse_res); - if (arch_string != default_opts->x_riscv_arch_string) - free (CONST_CAST (void *, (const void *) arch_string)); - cl_target_option_restore (&global_options, &global_options_set, &cur_target); }