]> granicus.if.org Git - clang/commitdiff
Use bitfilds.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 26 Apr 2013 12:31:12 +0000 (12:31 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 26 Apr 2013 12:31:12 +0000 (12:31 +0000)
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

include/clang/AST/DeclCXX.h

index ab6fcba4d7eb941e38e9702a9b6e3b0a644faa9a..c483dde1f5189511fc5388bd43639ad02c986d28 100644 (file)
@@ -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; }