From: Michal Gorny Date: Mon, 28 Nov 2016 21:11:18 +0000 (+0000) Subject: [Driver] Fix recognizing newer OpenSUSE versions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=059de9dbb95caea8a2e46827ecf19be09c9c9fed;p=clang [Driver] Fix recognizing newer OpenSUSE versions Fix recognizing newer OpenSUSE versions that combine the two version components into 'VERSION = x.y'. The check was written against an older version that kept those two split as VERSION and PATCHLEVEL. Differential Revision: https://reviews.llvm.org/D26850 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@288061 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp index 7a12643405..d305b17944 100644 --- a/lib/Driver/Distro.cpp +++ b/lib/Driver/Distro.cpp @@ -108,11 +108,14 @@ static Distro::DistroType DetectDistro(vfs::FileSystem &VFS) { if (!Line.trim().startswith("VERSION")) continue; std::pair SplitLine = Line.split('='); + // Old versions have split VERSION and PATCHLEVEL + // Newer versions use VERSION = x.y + std::pair SplitVer = SplitLine.second.trim().split('.'); int Version; + // OpenSUSE/SLES 10 and older are not supported and not compatible // with our rules, so just treat them as Distro::UnknownDistro. - if (!SplitLine.second.trim().getAsInteger(10, Version) && - Version > 10) + if (!SplitVer.first.getAsInteger(10, Version) && Version > 10) return Distro::OpenSUSE; return Distro::UnknownDistro; }