aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2023-11-18 18:37:11 +0800
committerKito Cheng <kito.cheng@sifive.com>2023-11-18 18:41:30 +0800
commit5f4499606ea6ab49bec30e83209db71e52d0b267 (patch)
treeea6e3f2754646120c9c1879322b42b4e4db7ed40 /gcc
parent9419b408823d32e4b018699623c72cf85b1c1fdf (diff)
downloadgcc-5f4499606ea6ab49bec30e83209db71e52d0b267.zip
gcc-5f4499606ea6ab49bec30e83209db71e52d0b267.tar.gz
gcc-5f4499606ea6ab49bec30e83209db71e52d0b267.tar.bz2
RISC-V: Fix mismatched new delete for unique_ptr
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/riscv/riscv-target-attr.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/riscv/riscv-target-attr.cc b/gcc/config/riscv/riscv-target-attr.cc
index 78f259d0..c4bd99d 100644
--- a/gcc/config/riscv/riscv-target-attr.cc
+++ b/gcc/config/riscv/riscv-target-attr.cc
@@ -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));