From c2c77c42efaf7a7c91be9428373ad8045a2d647c Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Fri, 26 Oct 2012 20:09:24 +0000 Subject: [PATCH] [driver] Before applying the working directory check if the input path is absolute. llvm-svn: 166808 --- clang/lib/Driver/Driver.cpp | 4 ++-- clang/test/Driver/working-directory-and-abs.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 clang/test/Driver/working-directory-and-abs.c diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 31492a7b6d91..43e9e5d69f92 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 000000000000..6738c776d40c --- /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 -- GitLab