[PATCH] D105461: [Support] CommandLine.cpp - Fix thread race condition in addOption
    Wenju He via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Jul 28 18:54:06 PDT 2021
    
    
  
wenju added a comment.
The issue is that DefaultOptions is special and delay-processed in CommandLineParser::ParseCommandLineOptions. Suppose the main thread calls llvm:🆑:ParseCommandLineOptions, then DefaultOptions is processed but it is not cleared after processing.
Multithreads calling setCommandLineOpts in clang/lib/CodeGen/BackendUtil.cpp will have race condition on repeated and redundant processing of DefaultOptions. This race condition (SC->OptionsMap) is also explained in https://reviews.llvm.org/D99652
I find this issue is fixed (workaround) by https://reviews.llvm.org/D99740
If we can assume that ParseCommandLineOptions will never be called from setCommandLineOpts (CodeGen/BackendUtil.cpp) simultaneously by multiple threads, then we don't need to fix DefaultOptions.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105461/new/
https://reviews.llvm.org/D105461
    
    
More information about the llvm-commits
mailing list