diff options
author | Colin LeMahieu <colinl@codeaurora.org> | 2015-07-27 22:39:14 +0000 |
---|---|---|
committer | Colin LeMahieu <colinl@codeaurora.org> | 2015-07-27 22:39:14 +0000 |
commit | fe36f83b119784b0b9a8da3730271bccd199b29e (patch) | |
tree | 345af55b4672381a6468df79927253030deadfef | |
parent | 7bdf4f2eb2c3404fb97a08c43f656947821f0f0e (diff) | |
download | bcm5719-llvm-fe36f83b119784b0b9a8da3730271bccd199b29e.tar.gz bcm5719-llvm-fe36f83b119784b0b9a8da3730271bccd199b29e.zip |
[llvm-mc] Add --no-warn flag with -W alias to disable outputting warnings while assembling.
llvm-svn: 243338
-rw-r--r-- | llvm/include/llvm/MC/MCTargetOptions.h | 2 | ||||
-rw-r--r-- | llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h | 4 | ||||
-rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/MC/MCTargetOptions.cpp | 2 | ||||
-rw-r--r-- | llvm/test/tools/llvm-mc/no_warnings.test | 5 |
5 files changed, 14 insertions, 1 deletions
diff --git a/llvm/include/llvm/MC/MCTargetOptions.h b/llvm/include/llvm/MC/MCTargetOptions.h index 7f4f23eda27..00a74de9d06 100644 --- a/llvm/include/llvm/MC/MCTargetOptions.h +++ b/llvm/include/llvm/MC/MCTargetOptions.h @@ -29,6 +29,7 @@ public: bool MCRelaxAll : 1; bool MCNoExecStack : 1; bool MCFatalWarnings : 1; + bool MCNoWarn : 1; bool MCSaveTempLabels : 1; bool MCUseDwarfDirectory : 1; bool ShowMCEncoding : 1; @@ -49,6 +50,7 @@ inline bool operator==(const MCTargetOptions &LHS, const MCTargetOptions &RHS) { ARE_EQUAL(MCRelaxAll) && ARE_EQUAL(MCNoExecStack) && ARE_EQUAL(MCFatalWarnings) && + ARE_EQUAL(MCNoWarn) && ARE_EQUAL(MCSaveTempLabels) && ARE_EQUAL(MCUseDwarfDirectory) && ARE_EQUAL(ShowMCEncoding) && diff --git a/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h b/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h index 1c08d1722f0..1240e135ea0 100644 --- a/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h +++ b/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h @@ -43,6 +43,9 @@ cl::opt<bool> ShowMCInst("asm-show-inst", cl::opt<bool> FatalWarnings("fatal-warnings", cl::desc("Treat warnings as errors")); +cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all warnings")); +cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"), cl::aliasopt(NoWarn)); + cl::opt<std::string> ABIName("target-abi", cl::Hidden, cl::desc("The name of the ABI to be targeted from the backend."), @@ -57,6 +60,7 @@ static inline MCTargetOptions InitMCTargetOptionsFromFlags() { Options.ShowMCInst = ShowMCInst; Options.ABIName = ABIName; Options.MCFatalWarnings = FatalWarnings; + Options.MCNoWarn = NoWarn; return Options; } diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 04d141389c9..3f45b3d85a3 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -553,6 +553,8 @@ void AsmParser::Note(SMLoc L, const Twine &Msg, ArrayRef<SMRange> Ranges) { } bool AsmParser::Warning(SMLoc L, const Twine &Msg, ArrayRef<SMRange> Ranges) { + if(getTargetParser().getTargetOptions().MCNoWarn) + return false; if (getTargetParser().getTargetOptions().MCFatalWarnings) return Error(L, Msg, Ranges); printMessage(L, SourceMgr::DK_Warning, Msg, Ranges); diff --git a/llvm/lib/MC/MCTargetOptions.cpp b/llvm/lib/MC/MCTargetOptions.cpp index 1258d9e29f2..64796af10c8 100644 --- a/llvm/lib/MC/MCTargetOptions.cpp +++ b/llvm/lib/MC/MCTargetOptions.cpp @@ -14,7 +14,7 @@ namespace llvm { MCTargetOptions::MCTargetOptions() : SanitizeAddress(false), MCRelaxAll(false), MCNoExecStack(false), - MCFatalWarnings(false), MCSaveTempLabels(false), + MCFatalWarnings(false), MCNoWarn(false), MCSaveTempLabels(false), MCUseDwarfDirectory(false), ShowMCEncoding(false), ShowMCInst(false), AsmVerbose(false), DwarfVersion(0), ABIName() {} diff --git a/llvm/test/tools/llvm-mc/no_warnings.test b/llvm/test/tools/llvm-mc/no_warnings.test new file mode 100644 index 00000000000..f542f1773c0 --- /dev/null +++ b/llvm/test/tools/llvm-mc/no_warnings.test @@ -0,0 +1,5 @@ +# RUN: llvm-mc --no-warn %s 2>&1 | FileCheck %s +# XFAIL: hexagon + +# CHECK-NOT: warning: +.warning |