Skip to content

Commit

Permalink
[NFC] Reorder fields of VersionTuple to reduce size
Browse files Browse the repository at this point in the history
Differential revision: http://reviews.llvm.org/D19934

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275095 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
epilk committed Jul 11, 2016
1 parent 57615ee commit fe951c4
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions include/clang/Basic/VersionTuple.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,39 +25,44 @@ namespace clang {
/// \brief Represents a version number in the form major[.minor[.subminor[.build]]].
class VersionTuple {
unsigned Major : 31;

unsigned UsesUnderscores : 1;

unsigned Minor : 31;
unsigned Subminor : 31;
unsigned Build : 31;
unsigned HasMinor : 1;

unsigned Subminor : 31;
unsigned HasSubminor : 1;

unsigned Build : 31;
unsigned HasBuild : 1;
unsigned UsesUnderscores : 1;

public:
VersionTuple()
: Major(0), Minor(0), Subminor(0), Build(0), HasMinor(false),
HasSubminor(false), HasBuild(false), UsesUnderscores(false) {}
: Major(0), UsesUnderscores(false), Minor(0), HasMinor(false),
Subminor(0), HasSubminor(false), Build(0), HasBuild(false) {}

explicit VersionTuple(unsigned Major)
: Major(Major), Minor(0), Subminor(0), Build(0), HasMinor(false),
HasSubminor(false), HasBuild(false), UsesUnderscores(false) {}
: Major(Major), UsesUnderscores(false), Minor(0), HasMinor(false),
Subminor(0), HasSubminor(false), Build(0), HasBuild(false) {}

explicit VersionTuple(unsigned Major, unsigned Minor,
bool UsesUnderscores = false)
: Major(Major), Minor(Minor), Subminor(0), Build(0), HasMinor(true),
HasSubminor(false), HasBuild(false), UsesUnderscores(UsesUnderscores) {}
: Major(Major), UsesUnderscores(UsesUnderscores), Minor(Minor),
HasMinor(true), Subminor(0), HasSubminor(false), Build(0),
HasBuild(false) {}

explicit VersionTuple(unsigned Major, unsigned Minor, unsigned Subminor,
bool UsesUnderscores = false)
: Major(Major), Minor(Minor), Subminor(Subminor), Build(0),
HasMinor(true), HasSubminor(true), HasBuild(false),
UsesUnderscores(UsesUnderscores) {}
: Major(Major), UsesUnderscores(UsesUnderscores), Minor(Minor),
HasMinor(true), Subminor(Subminor), HasSubminor(true), Build(0),
HasBuild(false) {}

explicit VersionTuple(unsigned Major, unsigned Minor, unsigned Subminor,
unsigned Build, bool UsesUnderscores = false)
: Major(Major), Minor(Minor), Subminor(Subminor), Build(Build),
HasMinor(true), HasSubminor(true), HasBuild(true),
UsesUnderscores(UsesUnderscores) {}
: Major(Major), UsesUnderscores(UsesUnderscores), Minor(Minor),
HasMinor(true), Subminor(Subminor), HasSubminor(true), Build(Build),
HasBuild(true) {}

/// \brief Determine whether this version information is empty
/// (e.g., all version components are zero).
Expand Down

0 comments on commit fe951c4

Please sign in to comment.