diff options
Diffstat (limited to 'clang/lib/Driver/MSVCToolChain.cpp')
-rw-r--r-- | clang/lib/Driver/MSVCToolChain.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Driver/MSVCToolChain.cpp b/clang/lib/Driver/MSVCToolChain.cpp index fb8d20be2f1..190df24e5a0 100644 --- a/clang/lib/Driver/MSVCToolChain.cpp +++ b/clang/lib/Driver/MSVCToolChain.cpp @@ -819,7 +819,12 @@ MSVCToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, continue; StringRef OptStr = A->getValue(); for (size_t I = 0, E = OptStr.size(); I != E; ++I) { - const char &OptChar = *(OptStr.data() + I); + char OptChar = OptStr[I]; + char PrevChar = I > 0 ? OptStr[I - 1] : '0'; + if (PrevChar == 'b') { + // OptChar does not expand; it's an argument to the previous char. + continue; + } if (OptChar == '1' || OptChar == '2' || OptChar == 'x' || OptChar == 'd') ExpandChar = OptStr.data() + I; } |