diff options
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
| -rw-r--r-- | clang/lib/Driver/Driver.cpp | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 40ea513..71c5280 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -308,9 +308,18 @@ InputArgList Driver::ParseArgStrings(ArrayRef<const char *> ArgStrings,      auto ArgString = A->getAsString(Args);      std::string Nearest;      if (getOpts().findNearest(ArgString, Nearest, VisibilityMask) > 1) { -      if (!IsCLMode() && -          getOpts().findExact(ArgString, Nearest, -                              llvm::opt::Visibility(options::CC1Option))) { +      if (IsFlangMode()) { +        if (getOpts().findExact(ArgString, Nearest, +                                llvm::opt::Visibility(options::FC1Option))) { +          DiagID = diag::err_drv_unknown_argument_with_suggestion; +          Diags.Report(DiagID) << ArgString << "-Xflang " + Nearest; +        } else { +          DiagID = diag::err_drv_unknown_argument; +          Diags.Report(DiagID) << ArgString; +        } +      } else if (!IsCLMode() && getOpts().findExact(ArgString, Nearest, +                                                    llvm::opt::Visibility( +                                                        options::CC1Option))) {          DiagID = diag::err_drv_unknown_argument_with_suggestion;          Diags.Report(DiagID) << ArgString << "-Xclang " + Nearest;        } else { | 
