From c47b6f3c9efcd6b3039856a39665a3aef1ed334e Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 5 Jun 2013 23:58:15 +0000 Subject: [PATCH] If we're splitting the dwarf for fission and don't want to use the integrated assembler then go ahead and still split the dwarf anyhow. Add two tests, one to exercise existing behavior of not splitting when we're just emitting assembly files and the other to test that we split when we're not in integrated as mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183355 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Tools.cpp | 8 ++++++++ test/Driver/split-debug.c | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e95d49dd49..8e670dbf0a 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -5887,6 +5887,14 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA, const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as")); C.addCommand(new Command(JA, *this, Exec, CmdArgs)); + + // Handle the debug info splitting at object creation time if we're + // creating an object. + // TODO: Currently only works on linux with newer objcopy. + if (Args.hasArg(options::OPT_gsplit_dwarf) && + (getToolChain().getTriple().getOS() == llvm::Triple::Linux)) + SplitDebugInfo(getToolChain(), C, *this, JA, Args, Output, + SplitDebugName(Args, Inputs)); } static void AddLibgcc(llvm::Triple Triple, const Driver &D, diff --git a/test/Driver/split-debug.c b/test/Driver/split-debug.c index d8a9fe841e..792abbd552 100644 --- a/test/Driver/split-debug.c +++ b/test/Driver/split-debug.c @@ -23,3 +23,13 @@ // RUN: FileCheck -check-prefix=CHECK-OPTION < %t %s // // CHECK-OPTION: "-split-dwarf-file" "split-debug.dwo" + +// RUN: %clang -target x86_64-unknown-linux-gnu -gsplit-dwarf -S -### %s 2> %t +// RUN: FileCheck -check-prefix=CHECK-ASM < %t %s +// +// CHECK-ASM-NOT: objcopy + +// RUN: %clang -target x86_64-unknown-linux-gnu -no-integrated-as -gsplit-dwarf -c -### %s 2> %t +// RUN: FileCheck -check-prefix=CHECK-IAS < %t %s +// +// CHECK-IAS: objcopy -- 2.40.0