From 8d53476614157bba06b14e672621cef7e7ee7497 Mon Sep 17 00:00:00 2001 From: Bruno Ricci Date: Mon, 6 Aug 2018 14:33:45 +0000 Subject: [PATCH] [AST] Move the enum in ObjCMethodDeclBitfields Move the enum { ObjCMethodFamilyBitWidth = 4 } to the top of the class. For some dark reason having the enum between the bitfields breaks the packing with gcc version 7.3-win32 20180312. Reported by: Abramo Bagnara (by email) llvm-svn: 339017 --- clang/include/clang/AST/DeclBase.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/include/clang/AST/DeclBase.h b/clang/include/clang/AST/DeclBase.h index 3f7f756a3426..85357111221e 100644 --- a/clang/include/clang/AST/DeclBase.h +++ b/clang/include/clang/AST/DeclBase.h @@ -1554,8 +1554,6 @@ class DeclContext { /// methods in ObjCMethodDecl should be updated appropriately. class ObjCMethodDeclBitfields { friend class ObjCMethodDecl; - /// For the bits in DeclContextBitfields. - uint64_t : NumDeclContextBits; /// This is needed for the bitwidth of Family below but /// is defined in Basic/IdentifierTable.h which we do not include. @@ -1564,6 +1562,9 @@ class DeclContext { /// that these two ObjCMethodFamilyBitWidth are equal. enum { ObjCMethodFamilyBitWidth = 4 }; + /// For the bits in DeclContextBitfields. + uint64_t : NumDeclContextBits; + /// The conventional meaning of this method; an ObjCMethodFamily. /// This is not serialized; instead, it is computed on demand and /// cached.