https://gcc.gnu.org/g:8af296c290216e03bc20e7291e64c19e0d94cfd6

commit r15-6386-g8af296c290216e03bc20e7291e64c19e0d94cfd6
Author: Christoph Müllner <christoph.muell...@vrull.eu>
Date:   Thu Dec 19 20:59:36 2024 +0100

    RISC-V: List valid -mtune options only once
    
    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 <christoph.muell...@vrull.eu>

Diff:
---
 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_:

Reply via email to