From eb0c163aada970b8351067b17121f013fc58dbc9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christoph=20M=C3=BCllner?= Date: Mon, 15 Jul 2024 23:42:39 +0200 Subject: [PATCH] Revert "RISC-V: Attribute parser: Use alloca() instead of new + std::unique_ptr" This reverts commit 5040c273484d7123a40a99cdeb434cecbd17a2e9. --- gcc/config/riscv/riscv-target-attr.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gcc/config/riscv/riscv-target-attr.cc b/gcc/config/riscv/riscv-target-attr.cc index 57235c9c0a7..1645a669217 100644 --- a/gcc/config/riscv/riscv-target-attr.cc +++ b/gcc/config/riscv/riscv-target-attr.cc @@ -101,7 +101,8 @@ riscv_target_attr_parser::parse_arch (const char *str) { /* Parsing the extension list like "+[,+]*". */ size_t len = strlen (str); - char *str_to_check = (char *) alloca (len + 1); + std::unique_ptr buf (new char[len+1]); + char *str_to_check = buf.get (); strcpy (str_to_check, str); const char *token = strtok_r (str_to_check, ",", &str_to_check); const char *local_arch_str = global_options.x_riscv_arch_string; @@ -253,7 +254,8 @@ riscv_process_one_target_attr (char *arg_str, return false; } - char *str_to_check = (char *) alloca (len + 1); + std::unique_ptr buf (new char[len+1]); + char *str_to_check = buf.get(); strcpy (str_to_check, arg_str); char *arg = strchr (str_to_check, '='); @@ -339,7 +341,8 @@ riscv_process_target_attr (tree args, location_t loc) return false; } - char *str_to_check = (char *) alloca (len + 1); + std::unique_ptr buf (new char[len+1]); + char *str_to_check = buf.get (); strcpy (str_to_check, TREE_STRING_POINTER (args)); /* Used to catch empty spaces between semi-colons i.e. -- 2.47.3