[PATCH] D25696: [Driver] Parse Debian version as integer when possible. NFC
This revision was automatically updated to reflect the committed changes. Closed by commit rL284770: [Driver] Parse Debian version as integer when possible. NFC (authored by mgorny). Changed prior to commit: https://reviews.llvm.org/D25696?vs=75269&id=75345#toc Repository: rL LLVM https://reviews.llvm.org/D25696 Files: cfe/trunk/lib/Driver/ToolChains.cpp Index: cfe/trunk/lib/Driver/ToolChains.cpp === --- cfe/trunk/lib/Driver/ToolChains.cpp +++ cfe/trunk/lib/Driver/ToolChains.cpp @@ -3905,17 +3905,30 @@ File = D.getVFS().getBufferForFile("/etc/debian_version"); if (File) { StringRef Data = File.get()->getBuffer(); -if (Data[0] == '5') - return DebianLenny; -else if (Data.startswith("squeeze/sid") || Data[0] == '6') - return DebianSqueeze; -else if (Data.startswith("wheezy/sid") || Data[0] == '7') - return DebianWheezy; -else if (Data.startswith("jessie/sid") || Data[0] == '8') - return DebianJessie; -else if (Data.startswith("stretch/sid") || Data[0] == '9') - return DebianStretch; -return UnknownDistro; +// Contents: < major.minor > or < codename/sid > +int MajorVersion; +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { + case 5: +return DebianLenny; + case 6: +return DebianSqueeze; + case 7: +return DebianWheezy; + case 8: +return DebianJessie; + case 9: +return DebianStretch; + default: +return UnknownDistro; + } +} +return llvm::StringSwitch(Data.split("\n").first) +.Case("squeeze/sid", DebianSqueeze) +.Case("wheezy/sid", DebianWheezy) +.Case("jessie/sid", DebianJessie) +.Case("stretch/sid", DebianStretch) +.Default(UnknownDistro); } if (D.getVFS().exists("/etc/SuSE-release")) Index: cfe/trunk/lib/Driver/ToolChains.cpp === --- cfe/trunk/lib/Driver/ToolChains.cpp +++ cfe/trunk/lib/Driver/ToolChains.cpp @@ -3905,17 +3905,30 @@ File = D.getVFS().getBufferForFile("/etc/debian_version"); if (File) { StringRef Data = File.get()->getBuffer(); -if (Data[0] == '5') - return DebianLenny; -else if (Data.startswith("squeeze/sid") || Data[0] == '6') - return DebianSqueeze; -else if (Data.startswith("wheezy/sid") || Data[0] == '7') - return DebianWheezy; -else if (Data.startswith("jessie/sid") || Data[0] == '8') - return DebianJessie; -else if (Data.startswith("stretch/sid") || Data[0] == '9') - return DebianStretch; -return UnknownDistro; +// Contents: < major.minor > or < codename/sid > +int MajorVersion; +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { + case 5: +return DebianLenny; + case 6: +return DebianSqueeze; + case 7: +return DebianWheezy; + case 8: +return DebianJessie; + case 9: +return DebianStretch; + default: +return UnknownDistro; + } +} +return llvm::StringSwitch(Data.split("\n").first) +.Case("squeeze/sid", DebianSqueeze) +.Case("wheezy/sid", DebianWheezy) +.Case("jessie/sid", DebianJessie) +.Case("stretch/sid", DebianStretch) +.Default(UnknownDistro); } if (D.getVFS().exists("/etc/SuSE-release")) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D25696: [Driver] Parse Debian version as integer when possible. NFC
mgorny added a comment. Thanks for the review. I'll now look into updating the code for other distros to follow suit. https://reviews.llvm.org/D25696 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D25696: [Driver] Parse Debian version as integer when possible. NFC
bruno accepted this revision. bruno added a comment. This revision is now accepted and ready to land. LGTM! https://reviews.llvm.org/D25696 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D25696: [Driver] Parse Debian version as integer when possible. NFC
mgorny updated this revision to Diff 75269. mgorny added a comment. Restructured and reformatted as requested. https://reviews.llvm.org/D25696 Files: lib/Driver/ToolChains.cpp Index: lib/Driver/ToolChains.cpp === --- lib/Driver/ToolChains.cpp +++ lib/Driver/ToolChains.cpp @@ -3905,17 +3905,30 @@ File = D.getVFS().getBufferForFile("/etc/debian_version"); if (File) { StringRef Data = File.get()->getBuffer(); -if (Data[0] == '5') - return DebianLenny; -else if (Data.startswith("squeeze/sid") || Data[0] == '6') - return DebianSqueeze; -else if (Data.startswith("wheezy/sid") || Data[0] == '7') - return DebianWheezy; -else if (Data.startswith("jessie/sid") || Data[0] == '8') - return DebianJessie; -else if (Data.startswith("stretch/sid") || Data[0] == '9') - return DebianStretch; -return UnknownDistro; +// Contents: < major.minor > or < codename/sid > +int MajorVersion; +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { + case 5: +return DebianLenny; + case 6: +return DebianSqueeze; + case 7: +return DebianWheezy; + case 8: +return DebianJessie; + case 9: +return DebianStretch; + default: +return UnknownDistro; + } +} +return llvm::StringSwitch(Data.split("\n").first) +.Case("squeeze/sid", DebianSqueeze) +.Case("wheezy/sid", DebianWheezy) +.Case("jessie/sid", DebianJessie) +.Case("stretch/sid", DebianStretch) +.Default(UnknownDistro); } if (D.getVFS().exists("/etc/SuSE-release")) Index: lib/Driver/ToolChains.cpp === --- lib/Driver/ToolChains.cpp +++ lib/Driver/ToolChains.cpp @@ -3905,17 +3905,30 @@ File = D.getVFS().getBufferForFile("/etc/debian_version"); if (File) { StringRef Data = File.get()->getBuffer(); -if (Data[0] == '5') - return DebianLenny; -else if (Data.startswith("squeeze/sid") || Data[0] == '6') - return DebianSqueeze; -else if (Data.startswith("wheezy/sid") || Data[0] == '7') - return DebianWheezy; -else if (Data.startswith("jessie/sid") || Data[0] == '8') - return DebianJessie; -else if (Data.startswith("stretch/sid") || Data[0] == '9') - return DebianStretch; -return UnknownDistro; +// Contents: < major.minor > or < codename/sid > +int MajorVersion; +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { + case 5: +return DebianLenny; + case 6: +return DebianSqueeze; + case 7: +return DebianWheezy; + case 8: +return DebianJessie; + case 9: +return DebianStretch; + default: +return UnknownDistro; + } +} +return llvm::StringSwitch(Data.split("\n").first) +.Case("squeeze/sid", DebianSqueeze) +.Case("wheezy/sid", DebianWheezy) +.Case("jessie/sid", DebianJessie) +.Case("stretch/sid", DebianStretch) +.Default(UnknownDistro); } if (D.getVFS().exists("/etc/SuSE-release")) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D25696: [Driver] Parse Debian version as integer when possible. NFC
bruno added inline comments. Comment at: lib/Driver/ToolChains.cpp:3903 +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { +case 5: clang-format the `switch`: `case`'s should be aligned with it. Comment at: lib/Driver/ToolChains.cpp:3917 + } +} else { + return llvm::StringSwitch(Data.split("\n").first) You can remove the `else` and just `return llvm::StringSwitch...` https://reviews.llvm.org/D25696 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D25696: [Driver] Parse Debian version as integer when possible. NFC
mgorny created this revision. mgorny added reviewers: bkramer, bruno, rafael. mgorny added a subscriber: cfe-commits. Replace the string matching for /etc/debian_version with split integer/string matching algorithm. When the file contains 'major.minor' version number, parse the major version as integer and use a switch clause to match it. Otherwise, attempt 'codename/sid' matching using a StringSwitch. https://reviews.llvm.org/D25696 Files: lib/Driver/ToolChains.cpp Index: lib/Driver/ToolChains.cpp === --- lib/Driver/ToolChains.cpp +++ lib/Driver/ToolChains.cpp @@ -3897,17 +3897,31 @@ File = D.getVFS().getBufferForFile("/etc/debian_version"); if (File) { StringRef Data = File.get()->getBuffer(); -if (Data[0] == '5') - return DebianLenny; -else if (Data.startswith("squeeze/sid") || Data[0] == '6') - return DebianSqueeze; -else if (Data.startswith("wheezy/sid") || Data[0] == '7') - return DebianWheezy; -else if (Data.startswith("jessie/sid") || Data[0] == '8') - return DebianJessie; -else if (Data.startswith("stretch/sid") || Data[0] == '9') - return DebianStretch; -return UnknownDistro; +// Contents: < major.minor > or < codename/sid > +int MajorVersion; +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { +case 5: + return DebianLenny; +case 6: + return DebianSqueeze; +case 7: + return DebianWheezy; +case 8: + return DebianJessie; +case 9: + return DebianStretch; +default: + return UnknownDistro; + } +} else { + return llvm::StringSwitch(Data.split("\n").first) + .Case("squeeze/sid", DebianSqueeze) + .Case("wheezy/sid", DebianWheezy) + .Case("jessie/sid", DebianJessie) + .Case("stretch/sid", DebianStretch) + .Default(UnknownDistro); +} } if (D.getVFS().exists("/etc/SuSE-release")) Index: lib/Driver/ToolChains.cpp === --- lib/Driver/ToolChains.cpp +++ lib/Driver/ToolChains.cpp @@ -3897,17 +3897,31 @@ File = D.getVFS().getBufferForFile("/etc/debian_version"); if (File) { StringRef Data = File.get()->getBuffer(); -if (Data[0] == '5') - return DebianLenny; -else if (Data.startswith("squeeze/sid") || Data[0] == '6') - return DebianSqueeze; -else if (Data.startswith("wheezy/sid") || Data[0] == '7') - return DebianWheezy; -else if (Data.startswith("jessie/sid") || Data[0] == '8') - return DebianJessie; -else if (Data.startswith("stretch/sid") || Data[0] == '9') - return DebianStretch; -return UnknownDistro; +// Contents: < major.minor > or < codename/sid > +int MajorVersion; +if (!Data.split('.').first.getAsInteger(10, MajorVersion)) { + switch (MajorVersion) { +case 5: + return DebianLenny; +case 6: + return DebianSqueeze; +case 7: + return DebianWheezy; +case 8: + return DebianJessie; +case 9: + return DebianStretch; +default: + return UnknownDistro; + } +} else { + return llvm::StringSwitch(Data.split("\n").first) + .Case("squeeze/sid", DebianSqueeze) + .Case("wheezy/sid", DebianWheezy) + .Case("jessie/sid", DebianJessie) + .Case("stretch/sid", DebianStretch) + .Default(UnknownDistro); +} } if (D.getVFS().exists("/etc/SuSE-release")) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits