summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2013-03-07 08:28:53 +0000
committerNick Lewycky <nicholas@mxc.ca>2013-03-07 08:28:53 +0000
commit737a452173a67f88d111f27b688bf3696c260db9 (patch)
tree531f3405b459d11441ad7b9e4d5355f18446253f /clang/lib/Driver/Tools.cpp
parent492afe8127f88c37c9c346b15f0a36bec9b82c08 (diff)
downloadbcm5719-llvm-737a452173a67f88d111f27b688bf3696c260db9.tar.gz
bcm5719-llvm-737a452173a67f88d111f27b688bf3696c260db9.zip
Add flags for additional control over coverage generation. Pick the version
string to be emitted, and two properties about the files themselves. Use $PWD to absolut-ify the path to the coverage file. Yes, this is what GCC does. Reverts my own r175706. llvm-svn: 176617
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 5dce1ad9e2f..62b1febd529 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -2332,8 +2332,15 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (Output.isFilename()) {
CmdArgs.push_back("-coverage-file");
SmallString<128> CoverageFilename(Output.getFilename());
- if (!C.getArgs().hasArg(options::OPT_no_canonical_prefixes))
- llvm::sys::fs::make_absolute(CoverageFilename);
+ if (llvm::sys::path::is_relative(CoverageFilename.str())) {
+ if (const char *pwd = ::getenv("PWD")) {
+ if (llvm::sys::path::is_absolute(pwd)) {
+ SmallString<128> Pwd(pwd);
+ llvm::sys::path::append(Pwd, CoverageFilename.str());
+ CoverageFilename.swap(Pwd);
+ }
+ }
+ }
CmdArgs.push_back(Args.MakeArgString(CoverageFilename));
}
}
OpenPOWER on IntegriCloud