summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2016-04-19 17:43:54 +0000
committerDouglas Katzman <dougk@google.com>2016-04-19 17:43:54 +0000
commit5a9a685405148c44dfe4deec6509894d6881a9c4 (patch)
tree5f57695e618810a6d1a6a5aac789b585032bef88
parentd5cb34118d140666a9b023bd99ac5e0549143ea1 (diff)
downloadbcm5719-llvm-5a9a685405148c44dfe4deec6509894d6881a9c4.tar.gz
bcm5719-llvm-5a9a685405148c44dfe4deec6509894d6881a9c4.zip
Pass dwarf-version to cc1as.
Fix PR26999 - crashing in cc1as with any '*bsd' target. llvm-svn: 266775
-rw-r--r--clang/lib/Driver/Tools.cpp6
-rw-r--r--clang/test/Driver/save-temps.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 4dd860227dd..853a8cc20b4 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -6314,6 +6314,12 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
// FIXME: Stop lying and consume only the appropriate driver flags
Args.ClaimAllArgs(options::OPT_W_Group);
+ // Assemblers that want to know the dwarf version can't assume a value,
+ // since the defaulting logic resides in the driver. Put in something
+ // reasonable now, in case a subsequent "-Wa,-g" changes it.
+ RenderDebugEnablingArgs(Args, CmdArgs, codegenoptions::NoDebugInfo,
+ getToolChain().GetDefaultDwarfVersion(),
+ llvm::DebuggerKind::Default);
CollectArgsForIntegratedAssembler(C, Args, CmdArgs,
getToolChain().getDriver());
diff --git a/clang/test/Driver/save-temps.c b/clang/test/Driver/save-temps.c
index c974d1582c3..29d1b7d9ac8 100644
--- a/clang/test/Driver/save-temps.c
+++ b/clang/test/Driver/save-temps.c
@@ -77,3 +77,8 @@
// CHECK-OBJ-NOO: "-o" "save-temps.s"
// CHECK-OBJ-NOO: "-o" "save-temps.o"
// CHECK-OBJ-NOO: "-o" "a.out"
+
+// RUN: %clang -target i386-unknown-freebsd -save-temps -g -c %s -### 2>&1 \
+// RUN: | FileCheck %s -check-prefix=CHECK-SAVE-TEMPS
+// CHECK-SAVE-TEMPS: "-cc1as"
+// CHECK-SAVE-TEMPS: "-dwarf-version={{.}}"
OpenPOWER on IntegriCloud