[PATCH] D54426: [clang-cl] Do not allow using both /Zc:dllexportInlines- and /fallback flag

Hans Wennborg via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 12 06:41:18 PST 2018


hans added inline comments.


================
Comment at: clang/include/clang/Basic/DiagnosticDriverKinds.td:164
 
-def warn_drv_non_fallback_argument_clang_cl : Warning<
-  "option '%0' is ignored when /fallback happens">,
-  InGroup<OptionIgnored>;
+def err_drv_both_fallback_and_dllexport_inlines_cannot_be_used_clang_cl : Error<
+  "option '/Zc:dllexportInlines-' is ABI-changing and not compatible with '/fallback'">;
----------------
Let's make the name shorter. I think "err_drv_dllexport_inlines_and_fallback" or something is descriptive enough.


================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:5529
+                  false)) {
+   Arg *dllexportInlines = Args.getLastArg(options::OPT__SLASH_Zc_dllexportInlines_);
+   if (Args.hasArg(options::OPT__SLASH_fallback) && dllexportInlines) {
----------------
We know there must be a OPT__SLASH_Zc_dllexportInlines_ flag at this point (because it's checked in the if above), so I think think you need "&& dllexportInlines" below.

In the previous version, you output the getAsString() of the arg to the diagnostic. Don't you want to do this still?


Repository:
  rL LLVM

https://reviews.llvm.org/D54426





More information about the cfe-commits mailing list