Use llvm::Triple's methods to parse FreeBSD version numbers.

Who could've thought that FreeBSD would ever reach version 10!
Patch from Dimitry Andric.

llvm-svn: 142349
This commit is contained in:
Benjamin Kramer 2011-10-18 10:10:08 +00:00
parent a5d653c7dd
commit 80ca407610
1 changed files with 5 additions and 4 deletions

View File

@ -247,11 +247,12 @@ protected:
MacroBuilder &Builder) const {
// FreeBSD defines; list based off of gcc output
// FIXME: Move version number handling to llvm::Triple.
StringRef Release = Triple.getOSName().substr(strlen("freebsd"), 1);
unsigned Release = Triple.getOSMajorVersion();
if (Release == 0U)
Release = 8;
Builder.defineMacro("__FreeBSD__", Release);
Builder.defineMacro("__FreeBSD_cc_version", Release + "00001");
Builder.defineMacro("__FreeBSD__", Twine(Release));
Builder.defineMacro("__FreeBSD_cc_version", Twine(Release * 100000U + 1U));
Builder.defineMacro("__KPRINTF_ATTRIBUTE__");
DefineStd(Builder, "unix", Opts);
Builder.defineMacro("__ELF__");