aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2011-05-04 20:46:58 +0000
committerNick Lewycky <nicholas@mxc.ca>2011-05-04 20:46:58 +0000
commit5ea4f44e34449a78d6b38aa47c14b527839d7aac (patch)
tree94d54de826698e0de6f81a1d3fb9cd798b567956 /lib/Driver/Tools.cpp
parentb107dd02f5e365f60b036b8a27c784f2d0d0a855 (diff)
Record where the GCOV data files should be placed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130866 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r--lib/Driver/Tools.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 3592fc5ead..f4e0f2e359 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -1303,6 +1303,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.hasArg(options::OPT_coverage))
CmdArgs.push_back("-femit-coverage-data");
+ if (C.getArgs().hasArg(options::OPT_c) ||
+ C.getArgs().hasArg(options::OPT_S)) {
+ if (Output.isFilename()) {
+ llvm::StringRef CoverageDir =
+ llvm::sys::path::parent_path(Output.getFilename());
+ if (!CoverageDir.empty()) {
+ CmdArgs.push_back("-coverage-dir");
+ CmdArgs.push_back(Args.MakeArgString(CoverageDir));
+ }
+ }
+ }
+
Args.AddLastArg(CmdArgs, options::OPT_nostdinc);
Args.AddLastArg(CmdArgs, options::OPT_nostdincxx);
Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc);