]> granicus.if.org Git - clang/commitdiff
Pass dwarf-version to cc1as.
authorDouglas Katzman <dougk@google.com>
Tue, 19 Apr 2016 17:43:54 +0000 (17:43 +0000)
committerDouglas Katzman <dougk@google.com>
Tue, 19 Apr 2016 17:43:54 +0000 (17:43 +0000)
Fix PR26999 - crashing in cc1as with any '*bsd' target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266775 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/Driver/save-temps.c

index 4dd860227ddafede91460f4b10ac875dedcdcf0f..853a8cc20b46a5a2552e391cec309064f949a8cc 100644 (file)
@@ -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());
 
index c974d1582c3203534aaaf6a8a4fe78d6d7da9875..29d1b7d9ac8d78e6ddb5e45ed47aa4ba3689b650 100644 (file)
@@ -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={{.}}"