[cfe-dev] Silencing "unused argument" for injected default arguments
Martin Storsjö via cfe-dev
cfe-dev at lists.llvm.org
Fri Sep 27 06:30:02 PDT 2019
On Fri, 27 Sep 2019, James Y Knight wrote:
> On Fri, Sep 13, 2019, 7:02 AM Martin Storsjö via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
> Hi,
>
> In my setups with clang, I'm using a thin frontend wrapper which
> passes a
> bunch of custom defaults (allowing using any stock clang
> executable,
> without requiring it to be built with CLANG_DEFAULT_* set to my
> desired
> state). The main set of flags I currently use is this:
>
> -target $TARGET -rtlib=compiler-rt -stdlib=libc++ -fuse-ld=lld
> -fuse-cxa-atexit
>
>
> Many of them are silent (like -fuse-ld=lld despite only
> compiling, not
> linking), but e.g. -stdlib=libc++ is considered unused if
> compiling C
> code. (Just looking at the driver name, clang vs clang++, isn't
> enough for
> deciding to omit it; it could also be "clang -x c++" etc, and
> I'd prefer
> not to try to deduce that in the wrapper.)
>
> In some cases it also adds a few -D and -Wl,-l<lib>, where the
> -Wl,-l also
> warns while compiling.
>
> To mitigate this, I'm also adding -Qunused-arguments, which
> works fine,
> but is a bit too overreaching.
>
> Would it make sense to add some mechanism to flag these
> arguments as
> default ones that clang shouldn't warn about being unused?
>
> That could be something like --start-no-unused-arguments <args>
> --end-no-unused-arguments.
>
> I know about the clang config files, which also allows setting
> default
> flags, which are exempt from unused warnings, and I've tried
> that, but for
> various reasons I'm still more comfortable with setting them via
> a
> wrapper. (E.g. on windows, the config file setup would require
> having N
> copies of clang.exe, one for each triple combination, while I
> currently
> can do with just copies of the wrapper and one single
> clang.exe.)
>
>
>
> Why not just have the wrapper script use a config file? E.g. have it call
> `clang --config whatever.conf`?
That could work, although it's a little bit less convenient than my
current setup. It ends up as quite a few files, as there's currently 4
different archs, times two environment variants (plain desktop or the UWP
environment), giving currently 8 different files to keep in sync (or
automate generation of).
// Martin
More information about the cfe-dev
mailing list