@@ -867,19 +867,18 @@ void ToolChain::addFlangRTLibPath(const ArgList &Args,
867
867
// Android target triples contain a target version. If we don't have libraries
868
868
// for the exact target version, we should fall back to the next newest version
869
869
// or a versionless path, if any.
870
- static
871
870
std::optional<std::string>
872
- getFallbackAndroidTargetPath (StringRef BaseDir, const llvm::Triple &T, llvm::vfs::FileSystem &VFS, DiagnosticsEngine *Diags) {
873
- llvm::Triple TripleWithoutLevel (T );
871
+ ToolChain:: getFallbackAndroidTargetPath (StringRef BaseDir) const {
872
+ llvm::Triple TripleWithoutLevel (getTriple () );
874
873
TripleWithoutLevel.setEnvironmentName (" android" ); // remove any version number
875
874
const std::string &TripleWithoutLevelStr = TripleWithoutLevel.str ();
876
- unsigned TripleVersion = T .getEnvironmentVersion ().getMajor ();
875
+ unsigned TripleVersion = getTriple () .getEnvironmentVersion ().getMajor ();
877
876
unsigned BestVersion = 0 ;
878
877
879
878
SmallString<32 > TripleDir;
880
879
bool UsingUnversionedDir = false ;
881
880
std::error_code EC;
882
- for (llvm::vfs::directory_iterator LI = VFS .dir_begin (BaseDir, EC), LE;
881
+ for (llvm::vfs::directory_iterator LI = getVFS () .dir_begin (BaseDir, EC), LE;
883
882
!EC && LI != LE; LI = LI.increment (EC)) {
884
883
StringRef DirName = llvm::sys::path::filename (LI->path ());
885
884
StringRef DirNameSuffix = DirName;
@@ -904,17 +903,12 @@ getFallbackAndroidTargetPath(StringRef BaseDir, const llvm::Triple &T, llvm::vfs
904
903
905
904
SmallString<128 > P (BaseDir);
906
905
llvm::sys::path::append (P, TripleDir);
907
- if (UsingUnversionedDir && Diags )
908
- Diags-> Report (diag::warn_android_unversioned_fallback) << P << T. getTriple ();
906
+ if (UsingUnversionedDir)
907
+ D. Diag (diag::warn_android_unversioned_fallback) << P << getTripleString ();
909
908
return std::string (P);
910
909
}
911
910
912
-
913
-
914
-
915
- // / Returns Triple without the OSs version.
916
- static
917
- llvm::Triple getTripleWithoutOSVersion (const llvm::Triple &Triple) {
911
+ llvm::Triple ToolChain::getTripleWithoutOSVersion () const {
918
912
return (Triple.hasEnvironment ()
919
913
? llvm::Triple (Triple.getArchName (), Triple.getVendorName (),
920
914
llvm::Triple::getOSTypeName (Triple.getOS ()),
@@ -924,15 +918,18 @@ llvm::Triple getTripleWithoutOSVersion(const llvm::Triple &Triple) {
924
918
llvm::Triple::getOSTypeName (Triple.getOS ())));
925
919
}
926
920
927
- static std::optional<std::string> getTargetSubDirPath (StringRef BaseDir, const llvm::Triple &T ,llvm::vfs::FileSystem &VFS, clang::DiagnosticsEngine *Diags ) {
928
- auto getPathForTriple = [&](const llvm::Triple &Triple) -> std::optional<std::string> {
921
+ std::optional<std::string>
922
+ ToolChain::getTargetSubDirPath (StringRef BaseDir) const {
923
+ auto getPathForTriple =
924
+ [&](const llvm::Triple &Triple) -> std::optional<std::string> {
929
925
SmallString<128 > P (BaseDir);
930
926
llvm::sys::path::append (P, Triple.str ());
931
- if (VFS .exists (P))
927
+ if (getVFS () .exists (P))
932
928
return std::string (P);
933
929
return {};
934
930
};
935
931
932
+ const llvm::Triple &T = getTriple ();
936
933
if (auto Path = getPathForTriple (T))
937
934
return *Path;
938
935
@@ -944,7 +941,7 @@ static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const
944
941
llvm::Triple::getOSTypeName (T.getOS ()));
945
942
} else {
946
943
// Strip the OS version from the triple.
947
- AIXTriple =getTripleWithoutOSVersion (T );
944
+ AIXTriple = getTripleWithoutOSVersion ();
948
945
}
949
946
if (auto Path = getPathForTriple (AIXTriple))
950
947
return *Path;
@@ -953,7 +950,7 @@ static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const
953
950
if (T.isOSzOS () &&
954
951
(!T.getOSVersion ().empty () || !T.getEnvironmentVersion ().empty ())) {
955
952
// Build the triple without version information
956
- const llvm::Triple &TripleWithoutVersion =getTripleWithoutOSVersion (T );
953
+ const llvm::Triple &TripleWithoutVersion = getTripleWithoutOSVersion ();
957
954
if (auto Path = getPathForTriple (TripleWithoutVersion))
958
955
return *Path;
959
956
}
@@ -981,25 +978,18 @@ static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const
981
978
}
982
979
983
980
if (T.isAndroid ())
984
- return getFallbackAndroidTargetPath (BaseDir, T, VFS, Diags );
981
+ return getFallbackAndroidTargetPath (BaseDir);
985
982
986
983
return {};
987
984
}
988
985
989
986
990
- std::optional<std::string>
991
- ToolChain::getTargetSubDirPath (StringRef BaseDir) const {
992
- return ::getTargetSubDirPath (BaseDir, getTriple (), getVFS (),& D.getDiags () );
993
- }
994
987
995
- std::optional< std::string> ToolChain::getDefaultIntrinsicModuleDir (StringRef ResourceDir, const llvm::Triple &T ,llvm::vfs::FileSystem &VFS, clang::DiagnosticsEngine *Diags ) {
996
- SmallString<128 > P (ResourceDir);
997
- llvm::sys::path::append (P, " finclude" );
998
- return ::getTargetSubDirPath (P, T, VFS, Diags );
999
- }
1000
988
1001
989
std::optional< std::string> ToolChain::getDefaultIntrinsicModuleDir ( ) const {
1002
- return ToolChain::getDefaultIntrinsicModuleDir (D.ResourceDir , getTriple (), getVFS (),& D.getDiags () );
990
+ SmallString<128 > P (D.ResourceDir );
991
+ llvm::sys::path::append (P, " finclude" );
992
+ return getTargetSubDirPath (P );
1003
993
}
1004
994
1005
995
std::optional<std::string> ToolChain::getRuntimePath () const {
0 commit comments