r361314 - [Driver] Verify GCCInstallation is valid
Nick Desaulniers via cfe-commits
cfe-commits at lists.llvm.org
Tue May 21 14:21:35 PDT 2019
Author: nickdesaulniers
Date: Tue May 21 14:21:35 2019
New Revision: 361314
URL: http://llvm.org/viewvc/llvm-project?rev=361314&view=rev
Log:
[Driver] Verify GCCInstallation is valid
Summary:
Values returned by GCCInstallation.getParentLibPath() and
GCCInstallation.getTriple() are not valid unless
GCCInstallation.isValid() returns true. This has previously been
ignored, and the former two values were used without checking whether
GCCInstallation is valid. This led to the bad path "/../bin" being added
to the list of program paths.
author: danielmentz "Daniel Mentz <danielmentz at google.com>"
Reviewers: #clang, tstellar, srhines
Reviewed By: srhines
Subscribers: danielmentz, ormris, nickdesaulniers, srhines, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57930
Modified:
cfe/trunk/lib/Driver/ToolChains/Linux.cpp
cfe/trunk/test/Driver/B-opt.c
Modified: cfe/trunk/lib/Driver/ToolChains/Linux.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Linux.cpp?rev=361314&r1=361313&r2=361314&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains/Linux.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp Tue May 21 14:21:35 2019
@@ -234,9 +234,11 @@ Linux::Linux(const Driver &D, const llvm
// used to target i386.
// FIXME: This seems unlikely to be Linux-specific.
ToolChain::path_list &PPaths = getProgramPaths();
- PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
- GCCInstallation.getTriple().str() + "/bin")
- .str());
+ if (GCCInstallation.isValid()) {
+ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+ GCCInstallation.getTriple().str() + "/bin")
+ .str());
+ }
Distro Distro(D.getVFS());
Modified: cfe/trunk/test/Driver/B-opt.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/B-opt.c?rev=361314&r1=361313&r2=361314&view=diff
==============================================================================
--- cfe/trunk/test/Driver/B-opt.c (original)
+++ cfe/trunk/test/Driver/B-opt.c Tue May 21 14:21:35 2019
@@ -20,3 +20,8 @@
// RUN: -B %S/Inputs/B_opt_tree/dir2 2>&1 -fuse-ld=ld \
// RUN: | FileCheck --check-prefix=CHECK-B-OPT-MULT %s
// CHECK-B-OPT-MULT: "{{.*}}/Inputs/B_opt_tree/dir3{{/|\\\\}}prefix-ld"
+//
+// RUN: %clang -B %S/Inputs/does_not_exist -print-search-dirs \
+// RUN: -target aarch64-linux-gnu \
+// RUN: | FileCheck --check-prefix=CHECK-B-OPT-INVALID %s
+// CHECK-B-OPT-INVALID-NOT: /..//bin
More information about the cfe-commits
mailing list