<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/101874>101874</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            CommandLine Error: Option 'XXXX' registered more than once!
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          meetxguo
      </td>
    </tr>
</table>

<pre>
    Hello, I am developing a program using Clang and LLVM  libraries. I got the following problem when running my program.
If I build the program with this library list (Clang first, then LLVM):
`
/usr/lib/llvm-18/lib/libclangFrontendTool.a /usr/lib/llvm-18/lib/libclangCodeGen.a /usr/lib/llvm-18/lib/libclangExtractAPI.a /usr/lib/llvm-18/lib/libclangRewriteFrontend.a /usr/lib/llvm-18/lib/libclangARCMigrate.a /usr/lib/llvm-18/lib/libclangStaticAnalyzerFrontend.a /usr/lib/llvm-18/lib/libclangStaticAnalyzerCheckers.a /usr/lib/llvm-18/lib/libclangStaticAnalyzerCore.a /usr/lib/llvm-18/lib/libclangCrossTU.a /usr/lib/llvm-18/lib/libclangIndex.a /usr/lib/llvm-18/lib/libclangFrontend.a /usr/lib/llvm-18/lib/libclangDriver.a /usr/lib/llvm-18/lib/libclangParse.a /usr/lib/llvm-18/lib/libclangSerialization.a /usr/lib/llvm-18/lib/libclangSema.a /usr/lib/llvm-18/lib/libclangAnalysis.a /usr/lib/llvm-18/lib/libclangASTMatchers.a /usr/lib/llvm-18/lib/libclangAPINotes.a /usr/lib/llvm-18/lib/libclangEdit.a /usr/lib/llvm-18/lib/libclangAST.a /usr/lib/llvm-18/lib/libclangSupport.a /usr/lib/llvm-18/lib/libclangFormat.a /usr/lib/llvm-18/lib/libclangToolingInclusions.a /usr/lib/llvm-18/lib/libclangToolingCore.a /usr/lib/llvm-18/lib/libclangRewrite.a /usr/lib/llvm-18/lib/libclangLex.a /usr/lib/llvm-18/lib/libclangBasic.a /usr/lib/llvm-18/lib/libLLVM-18.so.1 /usr/lib/llvm-18/lib/libLLVMIRReader.a /usr/lib/llvm-18/lib/libLLVMAsmParser.a /usr/lib/llvm-18/lib/libLLVMBitReader.a /usr/lib/llvm-18/lib/libLLVMCore.a /usr/lib/llvm-18/lib/libLLVMBinaryFormat.a /usr/lib/llvm-18/lib/libLLVMRemarks.a /usr/lib/llvm-18/lib/libLLVMTargetParser.a /usr/lib/llvm-18/lib/libLLVMBitstreamReader.a /usr/lib/llvm-18/lib/libLLVMSupport.a -lrt -ldl -lm /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libzstd.so /usr/lib/x86_64-linux-gnu/libtinfo.so /usr/lib/llvm-18/lib/libLLVMDemangle.a
`
the program runs as expected.

But if the library list is (LLVM first, then Clang):
`
/usr/lib/llvm-18/lib/libLLVMIRReader.a /usr/lib/llvm-18/lib/libLLVMAsmParser.a /usr/lib/llvm-18/lib/libLLVMBitReader.a /usr/lib/llvm-18/lib/libLLVMCore.a /usr/lib/llvm-18/lib/libLLVMBinaryFormat.a /usr/lib/llvm-18/lib/libLLVMRemarks.a /usr/lib/llvm-18/lib/libLLVMTargetParser.a /usr/lib/llvm-18/lib/libLLVMBitstreamReader.a /usr/lib/llvm-18/lib/libLLVMSupport.a -lrt -ldl -lm /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libzstd.so /usr/lib/x86_64-linux-gnu/libtinfo.so /usr/lib/llvm-18/lib/libLLVMDemangle.a /usr/lib/llvm-18/lib/libclangFrontendTool.a /usr/lib/llvm-18/lib/libclangCodeGen.a /usr/lib/llvm-18/lib/libclangExtractAPI.a /usr/lib/llvm-18/lib/libclangRewriteFrontend.a /usr/lib/llvm-18/lib/libclangARCMigrate.a /usr/lib/llvm-18/lib/libclangStaticAnalyzerFrontend.a /usr/lib/llvm-18/lib/libclangStaticAnalyzerCheckers.a /usr/lib/llvm-18/lib/libclangStaticAnalyzerCore.a /usr/lib/llvm-18/lib/libclangCrossTU.a /usr/lib/llvm-18/lib/libclangIndex.a /usr/lib/llvm-18/lib/libclangFrontend.a /usr/lib/llvm-18/lib/libclangDriver.a /usr/lib/llvm-18/lib/libclangParse.a /usr/lib/llvm-18/lib/libclangSerialization.a /usr/lib/llvm-18/lib/libclangSema.a /usr/lib/llvm-18/lib/libclangAnalysis.a /usr/lib/llvm-18/lib/libclangASTMatchers.a /usr/lib/llvm-18/lib/libclangAPINotes.a /usr/lib/llvm-18/lib/libclangEdit.a /usr/lib/llvm-18/lib/libclangAST.a /usr/lib/llvm-18/lib/libclangSupport.a /usr/lib/llvm-18/lib/libclangFormat.a /usr/lib/llvm-18/lib/libclangToolingInclusions.a /usr/lib/llvm-18/lib/libclangToolingCore.a /usr/lib/llvm-18/lib/libclangRewrite.a /usr/lib/llvm-18/lib/libclangLex.a /usr/lib/llvm-18/lib/libclangBasic.a /usr/lib/llvm-18/lib/libLLVM-18.so.1
`
I got 
`: CommandLine Error: Option 'use-dereferenceable-at-point-semantics' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options`.


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsmEtvqzgUxz-N2VggcB4kCxZp0sxEaudWaWfU3cjAATzX2OjYNEk__cgkVR-a0cVXurtsUDDnf3x8HuQnuDGiVgAZmd2Q2SbgvW00Zi2APda9DnJdnrLfQUpN2JruKG9pCS8gdSdUTTntUNfIW9obd7-W3K2qkt7d_XVPqRQ5chRgIrqjtbbUNkArLaU-OPMOdS6hpYcGFMVeKbfYnt6cRiTekHi1q-iO5r2Q5SB_2_EgbENtI8xllxOVwlhK2OIcRSXQWBe0dd5dPIQtyWR1dkrm8eUH2_YGCdtKkburfGnDZPF-L_LCuduiVhZU-aS1jDgdqVrrEn4DNV5we7TIC7t62I3X7OGAwsJbhOOFq_36XtTILYzXPFpuRbFSXJ5eAf33_KxfN1B8BzQ_rdfoEfsatTFPf44X7FQJx_Hm_tnYoHgBHG__wNH4FAtQcCleuRXaowkfoeUeXeRqYYRHDVePT_fcFo1X4VcPuz-0BQ_FbSmsV1AeGeq7TqOH963GlnvYu9eMcA1YyN4IrTyOfZH6jcblHTJecOczGDfciGKUuXtNh8kiMjpKRprv9nvg5cgpcoKVaYc5Gq-4EdZzj9HZP7tXHE8eLeJEe2g5fh_XF87-iWMN1v_gxiLw1vP47_MRSrQ0lKWkoWy_qo-L-d_zaSiF6o9hrfrzg9fI6JGWxpajja1Qlf4P6_85wgZarmoJEf8CDB8ZBHtlKDcUjh0UFsoLsZyvN72lohqY5ROhCOMgZQCkz4wycMtPQsp1Eq6T8MsnwReErrB8heUrLF9h-QrLvxyWvwDD-WvL--JkRde6bbkq74QCeouo0S1-61y3U8LS3kBYAkIFCKoAnksIuQ07LZQNjfsLsKIwhKUUoRbGAkJJW41AbcMV1aoAwi5hDGxzu99_27s9hCq0Mk6iihMV6qODj0HpIRZD5vEnjArKbFIuJ0seQJakjKXzZLJIgiabz9NlAWnMczafMZjNGEs5TGKYsskyzVkgMhazabyIp_FiupwmUVWlFYuXHBK2rOJZSqYxtFzIyCU30lgHwpgesiROFuk0kDwHaYYvY4wpONDhKWGMzDYBZkNF8r42ZBo7sDPvbqywErIfZPz5-fn5R_kMepRZY21nHBSyLWHbWtimz6NCt5eueGuODvU_UFjCtkOchrDt5SAvGfs3AAD__-T2b_o">