diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-26 15:58:36 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-26 15:58:36 +0000 |
commit | d73fe9b70c5f6738d004744562287a62831f39bf (patch) | |
tree | d9d6e560bcdfe498144b9a58905b2bc833d82403 /lib/Driver/HostInfo.cpp | |
parent | 524b9fb54564ab8bc437118ed55ee7c9e8c1247d (diff) |
Driver: Move GetReleaseVersion to static Driver::GetReleaseVersion method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67754 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/HostInfo.cpp')
-rw-r--r-- | lib/Driver/HostInfo.cpp | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/lib/Driver/HostInfo.cpp b/lib/Driver/HostInfo.cpp index 8f762095b6..c02267fbdc 100644 --- a/lib/Driver/HostInfo.cpp +++ b/lib/Driver/HostInfo.cpp @@ -72,37 +72,6 @@ public: const char *ArchName) const; }; -/// GetReleaseVersion - Parse (([0-9]+)(.([0-9]+)(.([0-9]+)?))?)? and -/// return the grouped values as integers. Numbers which are not -/// provided are set to 0. -/// -/// \return True if the entire string was parsed (9.2), or all groups -/// were parsed (10.3.5extrastuff). -static bool GetReleaseVersion(const char *Str, unsigned &Major, - unsigned &Minor, unsigned &Micro) { - Major = Minor = Micro = 0; - if (*Str == '\0') - return true; - - char *End; - Major = (unsigned) strtol(Str, &End, 10); - if (*Str != '\0' && *End == '\0') - return true; - if (*End != '.') - return false; - - Str = End+1; - Minor = (unsigned) strtol(Str, &End, 10); - if (*Str != '\0' && *End == '\0') - return true; - if (*End != '.') - return false; - - Str = End+1; - Micro = (unsigned) strtol(Str, &End, 10); - return true; -} - DarwinHostInfo::DarwinHostInfo(const Driver &D, const char *_Arch, const char *_Platform, const char *_OS) : HostInfo(D, _Arch, _Platform, _OS) { @@ -114,8 +83,9 @@ DarwinHostInfo::DarwinHostInfo(const Driver &D, const char *_Arch, assert(memcmp(&getOSName()[0], "darwin", 6) == 0 && "Unknown Darwin platform."); const char *Release = &getOSName()[6]; - if (!GetReleaseVersion(Release, DarwinVersion[0], DarwinVersion[1], - DarwinVersion[2])) { + bool HadExtra; + if (!Driver::GetReleaseVersion(Release, DarwinVersion[0], DarwinVersion[1], + DarwinVersion[2], HadExtra)) { D.Diag(clang::diag::err_drv_invalid_darwin_version) << Release; } |