Skip to content

Commit

Permalink
[clang-cl] Add warning for /Zc:dllexportInlines- when the flag is use…
Browse files Browse the repository at this point in the history
…d with /fallback

Summary:
This is followup of
https://reviews.llvm.org/D51340

Reviewers: hans, thakis

Reviewed By: hans

Subscribers: cfe-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D54298

llvm-svn: 346491
  • Loading branch information
atetubou committed Nov 9, 2018
1 parent ea51f98 commit 7bd78fc
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
4 changes: 4 additions & 0 deletions clang/include/clang/Basic/DiagnosticDriverKinds.td
Expand Up @@ -161,6 +161,10 @@ def warn_drv_yc_multiple_inputs_clang_cl : Warning<
"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<
Expand Down
6 changes: 6 additions & 0 deletions clang/lib/Driver/ToolChains/MSVC.cpp
Expand Up @@ -669,6 +669,12 @@ std::unique_ptr<Command> visualstudio::Compiler::GetCommand(
// them too.
Args.AddAllArgs(CmdArgs, options::OPT_UNKNOWN);

// Warning for ignored flag.
if (const Arg *dllexportInlines =
Args.getLastArg(options::OPT__SLASH_Zc_dllexportInlines_))
C.getDriver().Diag(clang::diag::warn_drv_non_fallback_argument_clang_cl)
<< dllexportInlines->getAsString(Args);

// Input filename.
assert(Inputs.size() == 1);
const InputInfo &II = Inputs[0];
Expand Down
2 changes: 2 additions & 0 deletions clang/test/Driver/cl-options.c
Expand Up @@ -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"
Expand Down

0 comments on commit 7bd78fc

Please sign in to comment.