From: Rafael Espindola <rafael.espindola@gmail.com>
Date: Fri, 26 Apr 2013 12:31:12 +0000 (+0000)
Subject: Use bitfilds.
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4f1d1551ed48e2ac52f5614ba8f94e2931546b51;p=clang

Use bitfilds.

On a 32 bit build this moves LinkageSpecDecl from 52 to 48 bytes.

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

diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h
index ab6fcba4d7..c483dde1f5 100644
--- a/include/clang/AST/DeclCXX.h
+++ b/include/clang/AST/DeclCXX.h
@@ -2351,12 +2351,12 @@ public:
   };
 private:
   /// Language - The language for this linkage specification.
-  LanguageIDs Language;
+  unsigned Language : 3;
   /// True if this linkage spec has brances. This is needed so that hasBraces()
   /// returns the correct result while the linkage spec body is being parsed.
   /// Once RBraceLoc has been set this is not used, so it doesn't need to be
   /// serialized.
-  bool HasBraces;
+  unsigned HasBraces : 1;
   /// ExternLoc - The source location for the extern keyword.
   SourceLocation ExternLoc;
   /// RBraceLoc - The source location for the right brace (if valid).
@@ -2376,7 +2376,7 @@ public:
   static LinkageSpecDecl *CreateDeserialized(ASTContext &C, unsigned ID);
   
   /// \brief Return the language specified by this linkage specification.
-  LanguageIDs getLanguage() const { return Language; }
+  LanguageIDs getLanguage() const { return LanguageIDs(Language); }
   /// \brief Set the language specified by this linkage specification.
   void setLanguage(LanguageIDs L) { Language = L; }