forked from OSchip/llvm-project
parent
6dbbd0f343
commit
7b953b6455
|
@ -133,6 +133,7 @@ CODEGENOPT(NoDwarfDirectoryAsm , 1, 0) ///< Set when -fno-dwarf-directory-asm is
|
|||
CODEGENOPT(NoExecStack , 1, 0) ///< Set when -Wa,--noexecstack is enabled.
|
||||
CODEGENOPT(FatalWarnings , 1, 0) ///< Set when -Wa,--fatal-warnings is
|
||||
///< enabled.
|
||||
CODEGENOPT(NoWarn , 1, 0) ///< Set when -Wa,--no-warn is enabled.
|
||||
CODEGENOPT(EnableSegmentedStacks , 1, 0) ///< Set when -fsplit-stack is enabled.
|
||||
CODEGENOPT(NoImplicitFloat , 1, 0) ///< Set when -mno-implicit-float is enabled.
|
||||
CODEGENOPT(NoInfsFPMath , 1, 0) ///< Assume FP arguments, results not +-Inf.
|
||||
|
|
|
@ -200,6 +200,8 @@ def compress_debug_sections_EQ : Joined<["-", "--"], "compress-debug-sections=">
|
|||
HelpText<"DWARF debug sections compression type">;
|
||||
def mno_exec_stack : Flag<["-"], "mnoexecstack">,
|
||||
HelpText<"Mark the file as not needing an executable stack">;
|
||||
def massembler_no_warn : Flag<["-"], "massembler-no-warn">,
|
||||
HelpText<"Make assembler not emit warnings">;
|
||||
def massembler_fatal_warnings : Flag<["-"], "massembler-fatal-warnings">,
|
||||
HelpText<"Make assembler warnings fatal">;
|
||||
def mrelax_relocations : Flag<["--"], "mrelax-relocations">,
|
||||
|
|
|
@ -493,6 +493,7 @@ static void initTargetOptions(llvm::TargetOptions &Options,
|
|||
CodeGenOpts.IncrementalLinkerCompatible;
|
||||
Options.MCOptions.MCPIECopyRelocations = CodeGenOpts.PIECopyRelocations;
|
||||
Options.MCOptions.MCFatalWarnings = CodeGenOpts.FatalWarnings;
|
||||
Options.MCOptions.MCNoWarn = CodeGenOpts.NoWarn;
|
||||
Options.MCOptions.AsmVerbose = CodeGenOpts.AsmVerbose;
|
||||
Options.MCOptions.PreserveAsmComments = CodeGenOpts.PreserveAsmComments;
|
||||
Options.MCOptions.ABIName = TargetOpts.ABI;
|
||||
|
|
|
@ -2169,6 +2169,8 @@ static void CollectArgsForIntegratedAssembler(Compilation &C,
|
|||
CmdArgs.push_back("-msave-temp-labels");
|
||||
} else if (Value == "--fatal-warnings") {
|
||||
CmdArgs.push_back("-massembler-fatal-warnings");
|
||||
} else if (Value == "--no-warn") {
|
||||
CmdArgs.push_back("-massembler-no-warn");
|
||||
} else if (Value == "--noexecstack") {
|
||||
UseNoExecStack = true;
|
||||
} else if (Value.startswith("-compress-debug-sections") ||
|
||||
|
|
|
@ -888,6 +888,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
|
|||
Opts.NumRegisterParameters = getLastArgIntValue(Args, OPT_mregparm, 0, Diags);
|
||||
Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack);
|
||||
Opts.FatalWarnings = Args.hasArg(OPT_massembler_fatal_warnings);
|
||||
Opts.NoWarn = Args.hasArg(OPT_massembler_no_warn);
|
||||
Opts.EnableSegmentedStacks = Args.hasArg(OPT_split_stacks);
|
||||
Opts.RelaxAll = Args.hasArg(OPT_mrelax_all);
|
||||
Opts.IncrementalLinkerCompatible =
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,--no-warn 2>&1 | FileCheck -check-prefix=CHECK-NOIAS %s
|
||||
// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu -integrated-as -Wa,--no-warn 2>&1 | FileCheck %s
|
||||
// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as -Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
|
||||
// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
|
||||
// RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as -Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s
|
||||
// RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s
|
||||
|
||||
// CHECK: "-cc1" {{.*}} "-massembler-no-warn"
|
||||
// CHECK-NOIAS: "--no-warn"
|
||||
// CHECK-AS-NOWARN-NOT: warning:
|
||||
// CHECK-AS-FATAL-NOT: warning:
|
||||
// CHECK-AS-FATAL: error
|
||||
|
||||
__asm(".warning");
|
|
@ -131,6 +131,7 @@ struct AssemblerInvocation {
|
|||
unsigned RelaxAll : 1;
|
||||
unsigned NoExecStack : 1;
|
||||
unsigned FatalWarnings : 1;
|
||||
unsigned NoWarn : 1;
|
||||
unsigned IncrementalLinkerCompatible : 1;
|
||||
unsigned EmbedBitcode : 1;
|
||||
|
||||
|
@ -156,6 +157,7 @@ public:
|
|||
RelaxAll = 0;
|
||||
NoExecStack = 0;
|
||||
FatalWarnings = 0;
|
||||
NoWarn = 0;
|
||||
IncrementalLinkerCompatible = 0;
|
||||
DwarfVersion = 0;
|
||||
EmbedBitcode = 0;
|
||||
|
@ -285,6 +287,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
|
|||
Opts.RelaxAll = Args.hasArg(OPT_mrelax_all);
|
||||
Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack);
|
||||
Opts.FatalWarnings = Args.hasArg(OPT_massembler_fatal_warnings);
|
||||
Opts.NoWarn = Args.hasArg(OPT_massembler_no_warn);
|
||||
Opts.RelocationModel = Args.getLastArgValue(OPT_mrelocation_model, "pic");
|
||||
Opts.TargetABI = Args.getLastArgValue(OPT_target_abi);
|
||||
Opts.IncrementalLinkerCompatible =
|
||||
|
@ -432,6 +435,8 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,
|
|||
raw_pwrite_stream *Out = FDOS.get();
|
||||
std::unique_ptr<buffer_ostream> BOS;
|
||||
|
||||
MCOptions.MCNoWarn = Opts.NoWarn;
|
||||
MCOptions.MCFatalWarnings = Opts.FatalWarnings;
|
||||
MCOptions.ABIName = Opts.TargetABI;
|
||||
|
||||
// FIXME: There is a bit of code duplication with addPassesToEmitFile.
|
||||
|
|
Loading…
Reference in New Issue