[PATCH] D54298: [clang-cl] Add warning for /Zc:dllexportInlines- with /fallback
Takuto Ikuta via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 9 01:49:57 PST 2018
takuto.ikuta created this revision.
Herald added a subscriber: llvm-commits.
Repository:
rL LLVM
https://reviews.llvm.org/D54298
Files:
clang/include/clang/Basic/DiagnosticDriverKinds.td
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/cl-options.c
Index: clang/test/Driver/cl-options.c
===================================================================
--- clang/test/Driver/cl-options.c
+++ clang/test/Driver/cl-options.c
@@ -494,6 +494,8 @@
// NoDllExportInlines: "-fno-dllexport-inlines"
// RUN: %clang_cl /Zc:dllexportInlines /c -### -- %s 2>&1 | FileCheck -check-prefix=DllExportInlines %s
// DllExportInlines-NOT: "-fno-dllexport-inlines"
+// RUN: %clang_cl /fallback /Zc:dllexportInlines- /c -### -- %s 2>&1 | FileCheck -check-prefix=DllExportInlinesFallback %s
+// DllExportInlinesFallback: warning: option '/Zc:dllexportInlines-' is ignored when /fallback happens [-Woption-ignored]
// RUN: %clang_cl /Zi /c -### -- %s 2>&1 | FileCheck -check-prefix=Zi %s
// Zi: "-gcodeview"
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5500,10 +5500,17 @@
if (VolatileOptionID == options::OPT__SLASH_volatile_ms)
CmdArgs.push_back("-fms-volatile");
- if (Args.hasFlag(options::OPT__SLASH_Zc_dllexportInlines_,
- options::OPT__SLASH_Zc_dllexportInlines,
- false))
+ if (Args.hasFlag(options::OPT__SLASH_Zc_dllexportInlines_,
+ options::OPT__SLASH_Zc_dllexportInlines,
+ false)) {
CmdArgs.push_back("-fno-dllexport-inlines");
+ if (Args.hasArg(options::OPT__SLASH_fallback)) {
+ const Arg *dllexportinlines =
+ Args.getLastArg(options::OPT__SLASH_Zc_dllexportInlines_);
+ D.Diag(clang::diag::warn_drv_non_fallback_argument_clang_cl)
+ << dllexportinlines->getAsString(Args);
+ }
+ }
Arg *MostGeneralArg = Args.getLastArg(options::OPT__SLASH_vmg);
Arg *BestCaseArg = Args.getLastArg(options::OPT__SLASH_vmb);
Index: clang/include/clang/Basic/DiagnosticDriverKinds.td
===================================================================
--- clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -161,6 +161,10 @@
"support for '/Yc' with more than one source file not implemented yet; flag ignored">,
InGroup<ClangClPch>;
+def warn_drv_non_fallback_argument_clang_cl : Warning<
+ "option '%0' is ignored when /fallback happens">,
+ InGroup<OptionIgnored>;
+
def err_drv_invalid_value : Error<"invalid value '%1' in '%0'">;
def err_drv_invalid_int_value : Error<"invalid integral value '%1' in '%0'">;
def err_drv_invalid_remap_file : Error<
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54298.173285.patch
Type: text/x-patch
Size: 2538 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181109/704a7b8e/attachment.bin>
More information about the llvm-commits
mailing list