aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2011-03-28 22:49:24 +0000
committerDaniel Dunbar <daniel@zuster.org>2011-03-28 22:49:24 +0000
commit402adc3bc0ddbbb46cb0b8d29812a9c2f605ec4f (patch)
tree8ceb58cb25fb4943e680144858eb79a4215103e3
parent6305f721247f13707d9858b17d5696c1e3428a78 (diff)
Frontend/cc1as: Add support for -L.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128432 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Driver/CC1AsOptions.td6
-rw-r--r--tools/driver/cc1as_main.cpp4
2 files changed, 9 insertions, 1 deletions
diff --git a/include/clang/Driver/CC1AsOptions.td b/include/clang/Driver/CC1AsOptions.td
index 50472ffdf9..2643c4f0e8 100644
--- a/include/clang/Driver/CC1AsOptions.td
+++ b/include/clang/Driver/CC1AsOptions.td
@@ -29,6 +29,10 @@ def I : JoinedOrSeparate<"-I">, MetaVarName<"<directory>">,
HelpText<"Add directory to include search path">;
def n : Flag<"-n">,
HelpText<"Don't automatically start assembly file with a text section">;
+def L : Flag<"-L">,
+ HelpText<"Save temporary labels in the symbol table. "
+ "Note this may change .s semantics, it should almost never be used "
+ "on compiler generated code!">;
//===----------------------------------------------------------------------===//
// Frontend Options
@@ -72,4 +76,4 @@ def relax_all : Flag<"-relax-all">,
HelpText<"Relax all fixups (for performance testing)">;
def no_exec_stack : Flag<"--noexecstack">,
- HelpText<"Mark the file as not needing an executable stack">; \ No newline at end of file
+ HelpText<"Mark the file as not needing an executable stack">;
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp
index 643bd412be..0222f00dc6 100644
--- a/tools/driver/cc1as_main.cpp
+++ b/tools/driver/cc1as_main.cpp
@@ -71,6 +71,7 @@ struct AssemblerInvocation {
std::vector<std::string> IncludePaths;
unsigned NoInitialTextSection : 1;
+ unsigned SaveTemporaryLabels : 1;
/// @}
/// @name Frontend Options
@@ -156,6 +157,7 @@ void AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
// Language Options
Opts.IncludePaths = Args->getAllArgValues(OPT_I);
Opts.NoInitialTextSection = Args->hasArg(OPT_n);
+ Opts.SaveTemporaryLabels = Args->hasArg(OPT_L);
// Frontend Options
if (Args->hasArg(OPT_INPUT)) {
@@ -265,6 +267,8 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Diagnostic &Diags) {
const TargetAsmInfo *tai = new TargetAsmInfo(*TM);
MCContext Ctx(*MAI, tai);
+ if (Opts.SaveTemporaryLabels)
+ Ctx.setAllowTemporaryLabels(false);
OwningPtr<MCStreamer> Str;