forked from OSchip/llvm-project
Darwin: pass -stdlib=libc++ down to cc1 whenever we're targeting libc++
Recent refactoring meant it only got passed down when explicitly specified, which breaks header search on Darwin. llvm-svn: 260755
This commit is contained in:
parent
df3857c7d4
commit
b534ce46bd
|
@ -0,0 +1,16 @@
|
|||
// RUN: %clang -target x86_64-apple-darwin -arch arm64 -miphoneos-version-min=7.0 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-LIBCXX
|
||||
// RUN: %clang -target x86_64-apple-darwin -mmacosx-version-min=10.8 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-LIBSTDCXX
|
||||
// RUN: %clang -target x86_64-apple-darwin -mmacosx-version-min=10.9 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-LIBCXX
|
||||
// RUN: %clang -target x86_64-apple-darwin -arch armv7s -miphoneos-version-min=6.1 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-LIBSTDCXX
|
||||
// RUN: %clang -target x86_64-apple-darwin -arch armv7s -miphoneos-version-min=7.0 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-LIBCXX
|
||||
// RUN: %clang -target x86_64-apple-darwin -arch armv7k %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-LIBCXX
|
||||
|
||||
// The purpose of this test is that the libc++ headers should be found
|
||||
// properly. At the moment this is done by passing -stdlib=libc++ down to the
|
||||
// cc1 invocation. If and when we change to finding them in the driver this test
|
||||
// should reflect that.
|
||||
|
||||
// CHECK-LIBCXX: -stdlib=libc++
|
||||
|
||||
// CHECK-LIBSTDCXX-NOT: -stdlib=libc++
|
||||
// CHECK-LIBSTDCXX-NOT: -stdlib=libstdc++
|
|
@ -1030,6 +1030,7 @@ DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args,
|
|||
const char *BoundArch) const {
|
||||
// First get the generic Apple args, before moving onto Darwin-specific ones.
|
||||
DerivedArgList *DAL = MachO::TranslateArgs(Args, BoundArch);
|
||||
const OptTable &Opts = getDriver().getOpts();
|
||||
|
||||
// If no architecture is bound, none of the translations here are relevant.
|
||||
if (!BoundArch)
|
||||
|
@ -1060,6 +1061,11 @@ DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args,
|
|||
}
|
||||
}
|
||||
|
||||
if (!Args.getLastArg(options::OPT_stdlib_EQ) &&
|
||||
GetDefaultCXXStdlibType() == ToolChain::CST_Libcxx)
|
||||
DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_stdlib_EQ),
|
||||
"libc++");
|
||||
|
||||
// Validate the C++ standard library choice.
|
||||
CXXStdlibType Type = GetCXXStdlibType(*DAL);
|
||||
if (Type == ToolChain::CST_Libcxx) {
|
||||
|
|
Loading…
Reference in New Issue