Simplify llvm::cl::Option by using a bit field instead of manual bit packing.
authorDavid Blaikie <dblaikie@gmail.com>
Mon, 23 Jan 2012 22:22:44 +0000 (22:22 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Mon, 23 Jan 2012 22:22:44 +0000 (22:22 +0000)
commitc1bddefc56cd1db30326d6464f50db3dae6061eb
tree42c9e20481de860c6a8df557a8d14a2bafcc1b0f
parent3a678af71dec76a7e1474ad85a99b3588516906d
Simplify llvm::cl::Option by using a bit field instead of manual bit packing.

This still preserves the same total layout.

Previously it looked like:
*** Dumping AST Record Layout
   0 | class llvm::cl::Option
   0 |   (Option vtable pointer)
   8 |   int NumOccurrences
  12 |   int Flags
  16 |   unsigned int Position
  20 |   unsigned int AdditionalVals
  24 |   class llvm::cl::Option * NextRegistered
  32 |   const char * ArgStr
  40 |   const char * HelpStr
  48 |   const char * ValueStr
  sizeof=56, dsize=56, align=8
  nvsize=56, nvalign=8

Now it looks like:
*** Dumping AST Record Layout
   0 | class llvm::cl::Option
   0 |   (Option vtable pointer)
   8 |   int NumOccurrences
  12 |   enum NumOccurrencesFlag Occurrences
  12 |   unsigned int Value
  12 |   enum OptionHidden HiddenFlag
  12 |   enum FormattingFlags Formatting
  13 |   unsigned int Misc
  16 |   unsigned int Position
  20 |   unsigned int AdditionalVals
  24 |   class llvm::cl::Option * NextRegistered
  32 |   const char * ArgStr
  40 |   const char * HelpStr
  48 |   const char * ValueStr
  sizeof=56, dsize=56, align=8
  nvsize=56, nvalign=8

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148736 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/CommandLine.h