stevewan marked an inline comment as done.
stevewan added inline comments.
================
Comment at: clang/lib/Driver/ToolChains/AIX.cpp:28
+ const char *LinkingOutput) const {
+ claimNoWarnArgs(Args);
+ ArgStringList CmdArgs;
----------------
stevewan wrote:
> Xiangling_L wrote:
> > The definition of `claimNoWarnArgs` is to suppress warnings for some
> > options if they are unused, can you explain a little bit about how did you
> > figure out that we don't want warnings for those?
> >
> > Some context of `claimNoWarnArgs`:
> >
> > ```
> > // Claim options we don't want to warn if they are unused. We do this for
> > // options that build systems might add but are unused when assembling or
> > only
> > // running the preprocessor for example.
> > void tools::claimNoWarnArgs(const ArgList &Args) {
> > // Don't warn about unused -f(no-)?lto. This can happen when we're
> > // preprocessing, precompiling or assembling.
> > Args.ClaimAllArgs(options::OPT_flto_EQ);
> > Args.ClaimAllArgs(options::OPT_flto);
> > Args.ClaimAllArgs(options::OPT_fno_lto);
> > }
> > ```
> >
> The original reason was that, since we are doing assembling here, and as
> stated in `claimNoWarnArgs`, there might be an unused `-f(no-)?lto` when
> we're assembling, and we'd like to suppress the warning(s) for that.
>
> Looking into it, the three options [[
> https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-flto
> | `flto`, `fno_lto` ]] , and [[
> https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-flto
> | `flto_EQ` ]] are used to enable/disable link time optimization, but LTO is
> not supported by the AIX system linker. Driver would just throw error if the
> user passes it `-flto` or `-flto=<arg>` on AIX, so claiming them or not
> currently makes no actual difference as far as I'm concerned.
>
> That being said, I don't have a strong opinion either way. Let's see how
> other people think.
It's probably also worth mentioning that, adding `claimNoWarnArgs` does not
affect those LTO options being parsed and consumed by the driver in
`Driver::setLTOMode`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69620/new/
https://reviews.llvm.org/D69620
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits