[PATCH] D55150: Emit warnings from the driver for use of -mllvm or -Xclang options.

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 6 12:15:58 PST 2018


NoQ added a comment.

In D55150#1321793 <https://reviews.llvm.org/D55150#1321793>, @jyknight wrote:

> In D55150#1321759 <https://reviews.llvm.org/D55150#1321759>, @george.karpenkov wrote:
>
> > Using `-Xclang` is the only way to pass options to the static analyzer, I don't think we should warn on it.
>
>
> Well,, that seems unfortunate if we have the only supported interface for the static analyzer be an internal interface. Perhaps it can be given a different option? Even discounting this change, I that seems like it would be appropriate.


It's not really "supported" as in "we encourage users to use it". However, there's a third layer of "supported" here: we encourage external GUIs for the Static Analyzer to take advantage of these options.

Static Analyzer is, by design, almost unusable as a stand-alone command line tool and is only intended to be used via either the `scan-build` tool (a command-line tool that turns Static Analyzer's output into a fancy HTML output), or IDE intergration.

Different GUI developers will always want to use different internal flags and we cannot really control it. So, as a middle-ground solution, we keep these flags internal because people are not supposed to specify them manually (other than while developing the Static Analyzer itself), but GUIs are anyway allowed to take advantage of arbitrary combinations of them at their own risk.

It will be a good idea for us to settle at supporting different combinations, but we're not there yet. It might be a good idea to duplicate options that will be supported forever into frontend options, but this also needs work.

If the `-Wwarn-drv-xclang-option` is introduced, GUIs that use `-Xclang` and also display warnings will start displaying that warning, and will not stop doing it until they themselves are updated. This makes it harder to use new clang with old GUIs. Which is not a huge deal, but may have unexpected annoying consequences.

So, well, i'm not super against that, the overall idea seems good long-term, but i'm worried that there'd be a certain time interval of increased annoyance while the various GUI tools adapt.


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

https://reviews.llvm.org/D55150





More information about the cfe-commits mailing list