summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Driver/Driver.cpp4
-rw-r--r--clang/test/Driver/working-directory-and-abs.c1
2 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 31492a7b6d9..43e9e5d69f9 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1018,8 +1018,8 @@ void Driver::BuildInputs(const ToolChain &TC, const DerivedArgList &Args,
if (CheckInputsExist && memcmp(Value, "-", 2) != 0) {
SmallString<64> Path(Value);
if (Arg *WorkDir = Args.getLastArg(options::OPT_working_directory)) {
- SmallString<64> Directory(WorkDir->getValue(Args));
- if (llvm::sys::path::is_absolute(Directory.str())) {
+ if (!llvm::sys::path::is_absolute(Path.str())) {
+ SmallString<64> Directory(WorkDir->getValue(Args));
llvm::sys::path::append(Directory, Value);
Path.assign(Directory);
}
diff --git a/clang/test/Driver/working-directory-and-abs.c b/clang/test/Driver/working-directory-and-abs.c
new file mode 100644
index 00000000000..6738c776d40
--- /dev/null
+++ b/clang/test/Driver/working-directory-and-abs.c
@@ -0,0 +1 @@
+// RUN: %clang -working-directory=%S %S/working-directory-and-abs.c -fsyntax-only
OpenPOWER on IntegriCloud