]> granicus.if.org Git - clang/commitdiff
Re-arrange and bitfieldify data members of CXXConstructExpr to save a
authorDouglas Gregor <dgregor@apple.com>
Mon, 26 Sep 2011 14:47:03 +0000 (14:47 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 26 Sep 2011 14:47:03 +0000 (14:47 +0000)
little storage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140529 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/ExprCXX.h
lib/AST/ExprCXX.cpp

index da479b1e3113d5e9b9d4f1c92f4875ed18fcac21..d42d12e4b5761580f548efbdab5296a340805c6b 100644 (file)
@@ -807,11 +807,11 @@ private:
 
   SourceLocation Loc;
   SourceRange ParenRange;
+  unsigned NumArgs : 16;
   bool Elidable : 1;
   bool ZeroInitialization : 1;
   unsigned ConstructKind : 2;
   Stmt **Args;
-  unsigned NumArgs;
 
 protected:
   CXXConstructExpr(ASTContext &C, StmtClass SC, QualType T,
@@ -824,15 +824,15 @@ protected:
 
   /// \brief Construct an empty C++ construction expression.
   CXXConstructExpr(StmtClass SC, EmptyShell Empty)
-    : Expr(SC, Empty), Constructor(0), Elidable(0), ZeroInitialization(0),
-      ConstructKind(0), Args(0), NumArgs(0) { }
+    : Expr(SC, Empty), Constructor(0), NumArgs(0), Elidable(0), 
+      ZeroInitialization(0), ConstructKind(0), Args(0) { }
 
 public:
   /// \brief Construct an empty C++ construction expression.
   explicit CXXConstructExpr(EmptyShell Empty)
     : Expr(CXXConstructExprClass, Empty), Constructor(0),
-      Elidable(0), ZeroInitialization(0),
-      ConstructKind(0), Args(0), NumArgs(0) { }
+      NumArgs(0), Elidable(0), ZeroInitialization(0),
+      ConstructKind(0), Args(0) { }
 
   static CXXConstructExpr *Create(ASTContext &C, QualType T,
                                   SourceLocation Loc,
index 1cad13a6cb1c540d49884d858672667987b6759f..95b03ee1832ee06759babeea8f5d25db474892b5 100644 (file)
@@ -665,9 +665,9 @@ CXXConstructExpr::CXXConstructExpr(ASTContext &C, StmtClass SC, QualType T,
          T->isDependentType(), T->isDependentType(),
          T->isInstantiationDependentType(),
          T->containsUnexpandedParameterPack()),
-    Constructor(D), Loc(Loc), ParenRange(ParenRange), Elidable(elidable),
-    ZeroInitialization(ZeroInitialization), ConstructKind(ConstructKind),
-    Args(0), NumArgs(numargs) 
+    Constructor(D), Loc(Loc), ParenRange(ParenRange),  NumArgs(numargs),
+    Elidable(elidable), ZeroInitialization(ZeroInitialization), 
+    ConstructKind(ConstructKind), Args(0)
 {
   if (NumArgs) {
     Args = new (C) Stmt*[NumArgs];