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

    <tr>
        <th>Summary</th>
        <td>
            CommandLine Error: Option 'enable-fs-discriminator' 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>
          Qfrost911
      </td>
    </tr>
</table>

<pre>
    Env:
Ubuntu18
LLVM 17 (last commit: 0ec4cae146e37d97f39818d89e4f2209dcde38ee )

When I use a IR plugin in clang or opt, an error was raised.
`
root@qfrost:/mnt/c/pass# clang++ -fpass-plugin='build/NewModulePass.so' -o build/out.out test/default.cpp
clang (LLVM option parsing): CommandLine Error: Option 'enable-fs-discriminator' registered more than once!
fatal error: error in backend: inconsistency in registered CommandLine options
clang++: error: clang frontend command failed with exit code 70 (use -v to see invocation)
`
`
opt: CommandLine Error: Option 'enable-fs-discriminator' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Stack dump:
0. Program arguments: opt --load-pass-plugin=build/NewModulePass.so --passes=NewModulePass build/1-target_before.bc -o build/2-target_after.bc
`

I think this code can running perfect in LLVM16, and this error was introduced when I have updated my LLVM to 17.
`
struct NewModulePass : public PassInfoMixin<NewModulePass> {
 static bool isRequired() { return true; }

    PreservedAnalyses run(Module &M, llvm::AnalysisManager<llvm::Module>& PAM) {
        errs() << "[+] NewModulePass: " << M.getName() << '\n';
        return PreservedAnalyses::all();
    }
};

extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo() { \
    return {LLVM_PLUGIN_API_VERSION, "NewModulePass", "v0.1", [](::llvm::PassBuilder &PB) { \
 PB.registerPipelineParsingCallback([](::llvm::StringRef PassName, ::llvm::ModulePassManager &MPM,  \
 ::llvm::ArrayRef<::llvm::PassBuilder::PipelineElement>) { \
                    if (PassName == "NewModulePass") { \
 printf("[+] addPass\n");                                        \
 MPM.addPass(NewModulePass()); \
                        return true; \
                    } \
                    return false; \
 }); \
 PB.registerPipelineStartEPCallback( \
                    [](::llvm::ModulePassManager &MPM, ::llvm::OptimizationLevel Level) {                          \
 printf("[+] addPass\n"); \
                        MPM.addPass(NewModulePass()); \
                    }); \
 }}; \
}
`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vt1y4jgTfRpx04XLlgHjCy74yxT1hQwfmZ_LlGy1QTu25JFkMtmn35IEgTBJZndrx1QJW2p1nz591DYzRuwk4oQMZ2S46LHO7pWe_L_Sytg8SXqF4k-TpTyQdEriBYmnn4tO2i4Zh6fb2y9rSDIgdFwzY6FUTSMsSacQYzkoGSaDEaYZz7MqzcfJmI9zHFSUxjkvOaZjRCA0D77C-HWPElbQGQQGqy20dbcTEoSEsmZyB0qDai2hc2ASUGul4ZEZ0EwY5NHR0ygON1opSwbxd5-OS4HeNNISelMSetMyYwhNg19CZ4TOoF-52X4IStIFoVnRiZoTenOHj2vFuxo3zJjIKEIz6Cs4LavORqqzYNG4ABwr1tU2Kts2QAnoCR17ylRrhZLQMm2EC547yuaqaZjkt0IiLF1mbvJjsCQ0Q8mKGvuV6XNhSi0aIZlV2uHQuBPGokYOjdIIds8kKFkioUkIXzHL6sCX8xqIExIKVn5Dyd2ckKWSxvmR5ZNbu_B6CS1gNxdpBfKe_bqbkG6llbQoudcFkxwqJmrk8CjsHvCHcILhCFnsiHEl7x_AKjCIIORBlcxFOgvkVNbnG6eE30ycL9dyu_24_dcc3VtWfgPeNe3zKYoj2Gi106wBpnddg9Ia51-1Fvr9WjHefynEt1QIfW-IhqSLF2vPwkz6lukd2ocCK6UxKspL2dLTKqss6qgor6n24wrsXshvbjShZCWToDsphdxBi7rC0jo6HFvJKJxOHszPZ1RIqxXvSieAcMr37IDQtZxZV4Anv90JIMmuT7KxuistvEzRMdZ2RS1KcM8rWam1-OH4mr8wJOkSSDYLnsBYZkUJhVI1CLPF753QyAkdE5o7M9BoOy3B6g5JOgOSLS65AADYaDSoD8inktVPBo3jgtBxCAmEjtaOg7o-NK7k6TTYCbNmku1Qk3R-XgubSLokdASb6foI4xzNXai1OUFM5ySdA6HUNW3q-jZcpTt1qyfDdbRDe8cavN6fkeFcur_0KtiRgJ-yDHhZXQdPL_adWcoWzwthxB8WtTuJdB5gOS_n_B3kjdf5rSg000-ujl4KD9NPn7ar2edPy4evy-n_PJ8f0J43OMuLwpHh_AzomATJZt7V5vbzh9Xdw3Szeviy3N6vPt65ChFKX1JH6XH6EEfJ6cm_G12cV5DP3EFC7Wq-mf0MZDOLTi1iI1qshcRNaPpzVteu-zq_bwW4t1rI3RYrr-9Qw_lPBJ7hH-XlBbjxEryAcr1tqjV72mLl9fBmYseJI_Zlja5XebG-wvn1JSrX2E_Ywb1Q08XrpF97a7WQtvLFvdA549zv8MKlQYOvBX7tOvteb9bRyRMdX2Hxyg6O383tQmPPneI9e5It3jc4OqtYba68uSN1jegVYd1bpu1ycyGsXyB6S3bvCera1r1mG_Gnf1Pf4gFr8OOpoH-jGv-g0r8syH9S2dfodnO-sZ3nzh1vFPf4JOV5mrMeTpJRlo3paJQPe_sJzVkR52zIcZSUaZEmeZoVDBkmo0EeY9ITExrTNHa_0XCcDKLBkOd0wMsqKbOsSGIyiLFhoo4c55HSu54wpsPJKEkGWa9mBdbGf75TKvER_KJnctHTE7enX3Q7QwZxLYw1Zy9W2Bonv-HTqdfperK3tjXhi5vQm52w-66IStUQeuO1E_76rVZ_YOk-mD1uQ-iNz-uvAAAA___ft7St">