mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Summary: Currently there is no way to disable deprecated warning from asm like this
clang -target arm deprecated-asm.s -c deprecated-asm.s:30:9: warning: use of SP or PC in the list is deprecated stmia r4!, {r12-r14} We have to have an option what can disable it. Patched by Yin Ma! Reviewers: joey, echristo, weimingz Subscribers: llvm-commits, aemerson Differential Revision: https://reviews.llvm.org/D27219 llvm-svn: 288734
This commit is contained in:
parent
b73586a495
commit
404d8d84c6
@ -38,6 +38,7 @@ public:
|
||||
bool MCNoExecStack : 1;
|
||||
bool MCFatalWarnings : 1;
|
||||
bool MCNoWarn : 1;
|
||||
bool MCNoDeprecatedWarn : 1;
|
||||
bool MCSaveTempLabels : 1;
|
||||
bool MCUseDwarfDirectory : 1;
|
||||
bool MCIncrementalLinkerCompatible : 1;
|
||||
@ -65,6 +66,7 @@ inline bool operator==(const MCTargetOptions &LHS, const MCTargetOptions &RHS) {
|
||||
ARE_EQUAL(MCNoExecStack) &&
|
||||
ARE_EQUAL(MCFatalWarnings) &&
|
||||
ARE_EQUAL(MCNoWarn) &&
|
||||
ARE_EQUAL(MCNoDeprecatedWarn) &&
|
||||
ARE_EQUAL(MCSaveTempLabels) &&
|
||||
ARE_EQUAL(MCUseDwarfDirectory) &&
|
||||
ARE_EQUAL(MCIncrementalLinkerCompatible) &&
|
||||
|
@ -53,6 +53,9 @@ cl::opt<bool> FatalWarnings("fatal-warnings",
|
||||
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<bool> NoDeprecatedWarn("no-deprecated-warn",
|
||||
cl::desc("Suppress all deprecated warnings"));
|
||||
|
||||
cl::opt<std::string>
|
||||
ABIName("target-abi", cl::Hidden,
|
||||
cl::desc("The name of the ABI to be targeted from the backend."),
|
||||
@ -70,6 +73,7 @@ static inline MCTargetOptions InitMCTargetOptionsFromFlags() {
|
||||
Options.ABIName = ABIName;
|
||||
Options.MCFatalWarnings = FatalWarnings;
|
||||
Options.MCNoWarn = NoWarn;
|
||||
Options.MCNoDeprecatedWarn = NoDeprecatedWarn;
|
||||
return Options;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,8 @@ namespace llvm {
|
||||
|
||||
MCTargetOptions::MCTargetOptions()
|
||||
: SanitizeAddress(false), MCRelaxAll(false), MCNoExecStack(false),
|
||||
MCFatalWarnings(false), MCNoWarn(false), MCSaveTempLabels(false),
|
||||
MCFatalWarnings(false), MCNoWarn(false), MCNoDeprecatedWarn(false),
|
||||
MCSaveTempLabels(false),
|
||||
MCUseDwarfDirectory(false), MCIncrementalLinkerCompatible(false),
|
||||
MCPIECopyRelocations(false), ShowMCEncoding(false),
|
||||
ShowMCInst(false), AsmVerbose(false),
|
||||
|
43
test/CodeGen/ARM/deprecated-asm.s
Normal file
43
test/CodeGen/ARM/deprecated-asm.s
Normal file
@ -0,0 +1,43 @@
|
||||
// REQUIRES: asserts
|
||||
// RUN: llvm-mc < %s -triple=armv4t-linux-gnueabi -filetype=obj -o %t.o -no-deprecated-warn -stats 2>&1 | FileCheck %s
|
||||
// RUN: llvm-mc < %s -triple=armv4t-linux-gnueabi -filetype=obj -o %t.o 2>&1 | FileCheck %s -check-prefix=WARN
|
||||
|
||||
.text
|
||||
.syntax unified
|
||||
.eabi_attribute 67, "2.09" @ Tag_conformance
|
||||
.cpu arm7tdmi
|
||||
.eabi_attribute 6, 2 @ Tag_CPU_arch
|
||||
.eabi_attribute 8, 1 @ Tag_ARM_ISA_use
|
||||
.eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use
|
||||
.eabi_attribute 20, 1 @ Tag_ABI_FP_denormal
|
||||
.eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions
|
||||
.eabi_attribute 23, 3 @ Tag_ABI_FP_number_model
|
||||
.eabi_attribute 34, 0 @ Tag_CPU_unaligned_access
|
||||
.eabi_attribute 24, 1 @ Tag_ABI_align_needed
|
||||
.eabi_attribute 25, 1 @ Tag_ABI_align_preserved
|
||||
.eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format
|
||||
.eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t
|
||||
.eabi_attribute 26, 2 @ Tag_ABI_enum_size
|
||||
.eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use
|
||||
.file "t.c"
|
||||
.globl foo
|
||||
.p2align 2
|
||||
.type foo,%function
|
||||
foo: @ @foo
|
||||
.fnstart
|
||||
@ BB#0: @ %entry
|
||||
mov r0, #0
|
||||
bx lr
|
||||
stmia r4!, {r12-r14}
|
||||
.Lfunc_end0:
|
||||
.Ltmp0:
|
||||
.size foo, .Ltmp0-foo
|
||||
.cantunwind
|
||||
.fnend
|
||||
|
||||
|
||||
|
||||
// CHECK: Statistic
|
||||
// CHECK-NOT: warning
|
||||
|
||||
// WARN: warning
|
@ -3199,7 +3199,9 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
|
||||
if (HasDeprecation) {
|
||||
OS << " std::string Info;\n";
|
||||
OS << " if (MII.get(Inst.getOpcode()).getDeprecatedInfo(Inst, getSTI(), Info)) {\n";
|
||||
OS << " if (!getParser().getTargetParser().\n";
|
||||
OS << " getTargetOptions().MCNoDeprecatedWarn &&\n";
|
||||
OS << " MII.get(Inst.getOpcode()).getDeprecatedInfo(Inst, getSTI(), Info)) {\n";
|
||||
OS << " SMLoc Loc = ((" << Target.getName()
|
||||
<< "Operand&)*Operands[0]).getStartLoc();\n";
|
||||
OS << " getParser().Warning(Loc, Info, None);\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user