From 3d7171582b026e043916fc5d65a7d7aada547206 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Mon, 12 Mar 2012 22:10:06 +0000 Subject: [PATCH] Address some of the concerns by Chandler. * s/AddDirectoryList/addDirectoryList/ * Move the call to ::getenv into the function. * FileCheck-ize the testcase. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152583 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Tools.cpp | 25 +++++++++++-------------- test/Driver/linker-opts.c | 4 ++-- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 02b69b5057..acd8b3a945 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -88,10 +88,11 @@ static void QuoteTarget(StringRef Target, } } -static void AddDirectoryList(const ArgList &Args, +static void addDirectoryList(const ArgList &Args, ArgStringList &CmdArgs, const char *ArgName, - const char *DirList) { + const char *EnvVar) { + const char *DirList = ::getenv(EnvVar); if (!DirList) return; // Nothing to do. @@ -106,9 +107,9 @@ static void AddDirectoryList(const ArgList &Args, CmdArgs.push_back("."); } else { CmdArgs.push_back(ArgName); - CmdArgs.push_back(Args.MakeArgString(Dirs.substr(0, Delim))); + CmdArgs.push_back(Args.MakeArgString(Dirs.split(Delim).first)); } - Dirs = Dirs.substr(Delim + 1); + Dirs = Dirs.split(Delim).second; } if (Dirs.empty()) { // Trailing colon. @@ -162,7 +163,7 @@ static void AddLinkerInputs(const ToolChain &TC, } // LIBRARY_PATH - included following the user specified library paths. - AddDirectoryList(Args, CmdArgs, "-L", ::getenv("LIBRARY_PATH")); + addDirectoryList(Args, CmdArgs, "-L", "LIBRARY_PATH"); } /// \brief Determine whether Objective-C automated reference counting is @@ -402,19 +403,15 @@ void Clang::AddPreprocessingOptions(Compilation &C, // frontend into the driver. It will allow deleting 4 otherwise unused flags. // CPATH - included following the user specified includes (but prior to // builtin and standard includes). - AddDirectoryList(Args, CmdArgs, "-I", ::getenv("CPATH")); + addDirectoryList(Args, CmdArgs, "-I", "CPATH"); // C_INCLUDE_PATH - system includes enabled when compiling C. - AddDirectoryList(Args, CmdArgs, "-c-isystem", - ::getenv("C_INCLUDE_PATH")); + addDirectoryList(Args, CmdArgs, "-c-isystem", "C_INCLUDE_PATH"); // CPLUS_INCLUDE_PATH - system includes enabled when compiling C++. - AddDirectoryList(Args, CmdArgs, "-cxx-isystem", - ::getenv("CPLUS_INCLUDE_PATH")); + addDirectoryList(Args, CmdArgs, "-cxx-isystem", "CPLUS_INCLUDE_PATH"); // OBJC_INCLUDE_PATH - system includes enabled when compiling ObjC. - AddDirectoryList(Args, CmdArgs, "-objc-isystem", - ::getenv("OBJC_INCLUDE_PATH")); + addDirectoryList(Args, CmdArgs, "-objc-isystem", "OBJC_INCLUDE_PATH"); // OBJCPLUS_INCLUDE_PATH - system includes enabled when compiling ObjC++. - AddDirectoryList(Args, CmdArgs, "-objcxx-isystem", - ::getenv("OBJCPLUS_INCLUDE_PATH")); + addDirectoryList(Args, CmdArgs, "-objcxx-isystem", "OBJCPLUS_INCLUDE_PATH"); // Add C++ include arguments, if needed. if (types::isCXX(Inputs[0].getType())) diff --git a/test/Driver/linker-opts.c b/test/Driver/linker-opts.c index a8d176cc1b..253ca7bcf1 100644 --- a/test/Driver/linker-opts.c +++ b/test/Driver/linker-opts.c @@ -1,2 +1,2 @@ -// RUN: env LIBRARY_PATH=%T/test1 %clang -x c %s -### -o foo 2> %t.log -// RUN: grep '".*ld.*" .*"-L" "%T/test1"' %t.log +// RUN: env LIBRARY_PATH=%T/test1 %clang -x c %s -### 2>&1 | FileCheck %s +// CHECK: "-L" "{{.*}}/test1" -- 2.40.0