]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
RISC-V: Fix mismatched new delete for unique_ptr
authorKito Cheng <kito.cheng@sifive.com>
Sat, 18 Nov 2023 10:37:11 +0000 (18:37 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Sat, 18 Nov 2023 10:41:30 +0000 (18:41 +0800)
gcc/ChangeLog:

* config/riscv/riscv-target-attr.cc
(riscv_target_attr_parser::parse_arch): Use char[] for
std::unique_ptr to prevent mismatched new delete issue.
(riscv_process_one_target_attr): Ditto.
(riscv_process_target_attr): Ditto.

gcc/config/riscv/riscv-target-attr.cc

index 78f259d0c96ee14163c4ed12938213172739c91b..c4bd99d8632a09c68ae9ebe4a99fd9a6480e0f44 100644 (file)
@@ -105,7 +105,7 @@ riscv_target_attr_parser::parse_arch (const char *str)
     {
       /* Parsing the extension list like "+<ext>[,+<ext>]*".  */
       size_t len = strlen (str);
-      std::unique_ptr<char> buf (new char[len]);
+      std::unique_ptr<char[]> buf (new char[len]);
       char *str_to_check = buf.get ();
       strcpy (str_to_check, str);
       const char *token = strtok_r (str_to_check, ",", &str_to_check);
@@ -241,7 +241,7 @@ riscv_process_one_target_attr (char *arg_str,
       return false;
     }
 
-  std::unique_ptr<char> buf (new char[len]);
+  std::unique_ptr<char[]> buf (new char[len]);
   char *str_to_check = buf.get();
   strcpy (str_to_check, arg_str);
 
@@ -327,7 +327,7 @@ riscv_process_target_attr (tree args, location_t loc, struct gcc_options *opts)
       return false;
     }
 
-  std::unique_ptr<char> buf (new char[len]);
+  std::unique_ptr<char[]> buf (new char[len]);
   char *str_to_check = buf.get ();
   strcpy (str_to_check, TREE_STRING_POINTER (args));