Fznamznon added inline comments.

================
Comment at: clang/lib/Driver/Driver.cpp:2571
     // No driver mode exposes -x and /TC or /TP; we don't support mixing them.
     assert(!Args.hasArg(options::OPT_x) && "-x and /TC or /TP is not allowed");
   }
----------------
MaskRay wrote:
> Fznamznon wrote:
> > MaskRay wrote:
> > > ```
> > > -    assert(!Args.hasArg(options::OPT_x) && "-x and /TC or /TP is not 
> > > allowed");
> > > +    if (auto *A = Args.getLastArg(options::OPT_x))
> > > +      Diag(diag::err_drv_unsupported_opt_with_suggestion)
> > > +          << A->getAsString(Args) << "/TC' or '/TP";
> > > ```
> > Thank you, the suggestion seems reasonable to me. Although, the concrete 
> > place doesn't.
> > The suggested line to change is under if (we have /TC or /TP argument), so 
> > if I put error emission there it won't be emitted if no /TC or /TP was 
> > passed and the original problem reported in 
> > https://github.com/llvm/llvm-project/issues/59307 won't be resolved. People 
> > will still be confused by the warning saying `-x c` passed after last input 
> > when in fact they passed `/clang:-x` before the input.
> > 
> > Also, the whole function doesn't return even if diagnostic is emitted, so I 
> > put error emission in a way to not emit a warning saying that -x is passed 
> > after last input together with it, because both errors emitted like this:
> > 
> > error: '-x c' after last input file has no effect
> > error: unsupported option '-x c'; did you mean '/TC' or '/TP'?
> > 
> > look confusing.
> You need to remove `assert(!Args.hasArg(options::OPT_x) && "-x and /TC or /TP 
> is not allowed");` as otherwise `/clang:-x /TC` leads to a crash in an assert 
> build of clang (`LLVM_ENABLE_ASSERTIONS=on`).
Ok, removed the assert. Verified there is no crash in the test.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142757/new/

https://reviews.llvm.org/D142757

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to