From: Nico Weber Date: Mon, 19 Mar 2012 15:00:03 +0000 (+0000) Subject: Fix a regression where ':' in CPLUS_INCLUDE_PATH and friends would no longer separate... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=09c5c39590caa92aa7ce660607a070ea275f5ad7;p=clang Fix a regression where ':' in CPLUS_INCLUDE_PATH and friends would no longer separate paths. This regressed in r152583. Also add a test to make sure it doesn't regress again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153034 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 52ba4899fa..c38767d432 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -107,9 +107,9 @@ static void addDirectoryList(const ArgList &Args, CmdArgs.push_back("."); } else { CmdArgs.push_back(ArgName); - CmdArgs.push_back(Args.MakeArgString(Dirs.split(Delim).first)); + CmdArgs.push_back(Args.MakeArgString(Dirs.substr(0, Delim))); } - Dirs = Dirs.split(Delim).second; + Dirs = Dirs.substr(Delim + 1); } if (Dirs.empty()) { // Trailing colon. diff --git a/test/Driver/cpath.c b/test/Driver/cpath.c index 7caa014b2a..5b3a94a339 100644 --- a/test/Driver/cpath.c +++ b/test/Driver/cpath.c @@ -1,20 +1,22 @@ -// RUN: mkdir -p %T/test1 %T/test2 +// RUN: mkdir -p %T/test1 %T/test2 %T/test3 -// RUN: env CPATH=%T/test1 %clang -x c -E -v %s 2>&1 | FileCheck %s -check-prefix=CPATH +// RUN: env CPATH=%T/test1:%T/test2 %clang -x c -E -v %s 2>&1 | FileCheck %s -check-prefix=CPATH // CPATH: -I {{.*}}/test1 +// CPATH: -I {{.*}}/test2 // CPATH: search starts here // CPATH: test1 +// CPATH: test2 -// RUN: env OBJC_INCLUDE_PATH=%T/test1 OBJCPLUS_INCLUDE_PATH=%T/test1 CPLUS_INCLUDE_PATH=%T/test1 C_INCLUDE_PATH=%T/test2 %clang -x c -E -v %s 2>&1 | FileCheck %s -check-prefix=C_INCLUDE_PATH -// C_INCLUDE_PATH: -c-isystem {{"?.*}}/test2{{"?}} -cxx-isystem {{"?.*}}/test1{{"?}} -objc-isystem {{"?.*}}/test1{{"?}} -objcxx-isystem {{"?.*}}/test1{{"?}} +// RUN: env OBJC_INCLUDE_PATH=%T/test1:%T/test2 OBJCPLUS_INCLUDE_PATH=%T/test1 CPLUS_INCLUDE_PATH=%T/test1:%t/test2 C_INCLUDE_PATH=%T/test3 %clang -x c -E -v %s 2>&1 | FileCheck %s -check-prefix=C_INCLUDE_PATH +// C_INCLUDE_PATH: -c-isystem {{"?.*}}/test3{{"?}} -cxx-isystem {{"?.*}}/test1{{"?}} -cxx-isystem {{"?.*}}/test2{{"?}} -objc-isystem {{"?.*}}/test1{{"?}} -objc-isystem {{"?.*}}/test2{{"?}} -objcxx-isystem {{"?.*}}/test1{{"?}} // C_INCLUDE_PATH: search starts here // C_INCLUDE_PATH-NOT: test1 -// C_INCLUDE_PATH: test2 +// C_INCLUDE_PATH: test3 // C_INCLUDE_PATH-NOT: test1 -// RUN: env OBJC_INCLUDE_PATH=%T/test1 OBJCPLUS_INCLUDE_PATH=%T/test2 CPLUS_INCLUDE_PATH=%T/test2 C_INCLUDE_PATH=%T/test1 %clang -x objective-c++ -E -v %s 2>&1 | FileCheck %s -check-prefix=OBJCPLUS_INCLUDE_PATH -// OBJCPLUS_INCLUDE_PATH: -c-isystem {{"?.*}}/test1{{"?}} -cxx-isystem {{"?.*}}/test2{{"?}} -objc-isystem {{"?.*}}/test1{{"?}} -objcxx-isystem {{"?.*}}/test2{{"?}} +// RUN: env OBJC_INCLUDE_PATH=%T/test1 OBJCPLUS_INCLUDE_PATH=%T/test3 CPLUS_INCLUDE_PATH=%T/test3 C_INCLUDE_PATH=%T/test1 %clang -x objective-c++ -E -v %s 2>&1 | FileCheck %s -check-prefix=OBJCPLUS_INCLUDE_PATH +// OBJCPLUS_INCLUDE_PATH: -c-isystem {{"?.*}}/test1{{"?}} -cxx-isystem {{"?.*}}/test3{{"?}} -objc-isystem {{"?.*}}/test1{{"?}} -objcxx-isystem {{"?.*}}/test3{{"?}} // OBJCPLUS_INCLUDE_PATH: search starts here // OBJCPLUS_INCLUDE_PATH-NOT: test1 -// OBJCPLUS_INCLUDE_PATH: test2 +// OBJCPLUS_INCLUDE_PATH: test3 // OBJCPLUS_INCLUDE_PATH-NOT: test1