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 <[email protected]>
---
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 4c9a72d1180..2f85bb21a4c 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.1