From 8af296c290216e03bc20e7291e64c19e0d94cfd6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christoph=20M=C3=BCllner?= Date: Thu, 19 Dec 2024 20:59:36 +0100 Subject: [PATCH] RISC-V: List valid -mtune options only once MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch ensures that the list of valid -mtune options does not contain entries more than once. The -mtune option accepts CPU identifiers as well as tuning identifiers and there are cases where a CPU and its tuning have the same identifier. PR116347 gcc/ChangeLog: * common/config/riscv/riscv-common.cc (riscv_get_valid_option_values): Skip adding mtune entries that are already in the list. Signed-off-by: Christoph Müllner --- gcc/common/config/riscv/riscv-common.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index 4c9a72d1180a..2f85bb21a4c0 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -2437,7 +2437,19 @@ riscv_get_valid_option_values (int option_code, const riscv_cpu_info *cpu_info = &riscv_cpu_tables[0]; for (;cpu_info->name; ++cpu_info) - v.safe_push (cpu_info->name); + { + /* Skip duplicates. */ + bool skip = false; + int i; + const char *str; + FOR_EACH_VEC_ELT (v, i, str) + { + if (!strcmp (str, cpu_info->name)) + skip = true; + } + if (!skip) + v.safe_push (cpu_info->name); + } } break; case OPT_mcpu_: -- 2.47.2