diff options
author | Eric Christopher <echristo@gmail.com> | 2013-02-22 01:33:46 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2013-02-22 01:33:46 +0000 |
commit | 5704d34444ecd7e1baa90026fb36c47207e0a3b7 (patch) | |
tree | b86be2cb8ae282c93d7f308097d2638a34fe7dbe | |
parent | f0b1a0ee4787cd60a34951950baa6dd7d3d53a64 (diff) |
Make sure we only use the output file as a base for debug splitting
if we're compiling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175851 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Driver/Tools.cpp | 2 | ||||
-rw-r--r-- | test/Driver/split-debug.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e830bdcc9c..ebbabcfdf9 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1723,7 +1723,7 @@ void Clang::SplitDebugInfo(Compilation &C, const JobAction &JA, // Add an output for the extract. Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o); const char *OutFile; - if (FinalOutput) { + if (FinalOutput && C.getArgs().hasArg(options::OPT_c)) { SmallString<128> T(FinalOutput->getValue()); llvm::sys::path::replace_extension(T, "dwo"); OutFile = Args.MakeArgString(T); diff --git a/test/Driver/split-debug.c b/test/Driver/split-debug.c index fb01953b0d..5c77e6e98c 100644 --- a/test/Driver/split-debug.c +++ b/test/Driver/split-debug.c @@ -12,3 +12,9 @@ // RUN: FileCheck -check-prefix=CHECK-NO-ACTIONS < %t %s // // CHECK-NO-ACTIONS-NOT: -split-dwarf + + +// RUN: %clang -target x86_64-unknown-linux-gnu -gsplit-dwarf -o Bad.x -### %s 2> %t +// RUN: FileCheck -check-prefix=CHECK-BAD < %t %s +// +// CHECK-BAD-NOT: "Bad.dwo" |