From: Nico Weber Date: Fri, 15 Apr 2016 14:35:06 +0000 (+0000) Subject: Revert r266415, it broke parsing SDK headers (PR27367). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e231a28806b135495717a4472e4b2d843d48310;p=clang Revert r266415, it broke parsing SDK headers (PR27367). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266431 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h index a13f595917..71004fc572 100644 --- a/include/clang/AST/Type.h +++ b/include/clang/AST/Type.h @@ -152,8 +152,8 @@ public: enum { /// The maximum supported address space number. - /// 23 bits should be enough for anyone. - MaxAddressSpace = 0x7fffffu, + /// 24 bits should be enough for anyone. + MaxAddressSpace = 0xffffffu, /// The width of the "fast" qualifier mask. FastWidth = 3, @@ -265,13 +265,6 @@ public: Mask |= mask; } - bool hasUnaligned() const { return Mask & UMask; } - void setUnaligned(bool flag) { - Mask = (Mask & ~UMask) | (flag ? UMask : 0); - } - void removeUnaligned() { Mask &= ~UMask; } - void addUnaligned() { Mask |= UMask; } - bool hasObjCGCAttr() const { return Mask & GCAttrMask; } GC getObjCGCAttr() const { return GC((Mask & GCAttrMask) >> GCAttrShift); } void setObjCGCAttr(GC type) { @@ -440,9 +433,7 @@ public: // ObjC lifetime qualifiers must match exactly. getObjCLifetime() == other.getObjCLifetime() && // CVR qualifiers may subset. - (((Mask & CVRMask) | (other.Mask & CVRMask)) == (Mask & CVRMask)) && - // U qualifier may superset. - (!(other.Mask & UMask) || (Mask & UMask)); + (((Mask & CVRMask) | (other.Mask & CVRMask)) == (Mask & CVRMask)); } /// \brief Determines if these qualifiers compatibly include another set of @@ -510,19 +501,16 @@ public: private: - // bits: |0 1 2|3|4 .. 5|6 .. 8|9 ... 31| - // |C R V|U|GCAttr|Lifetime|AddressSpace| + // bits: |0 1 2|3 .. 4|5 .. 7|8 ... 31| + // |C R V|GCAttr|Lifetime|AddressSpace| uint32_t Mask; - static const uint32_t UMask = 0x8; - static const uint32_t UShift = 3; - static const uint32_t GCAttrMask = 0x30; - static const uint32_t GCAttrShift = 4; - static const uint32_t LifetimeMask = 0x1C0; - static const uint32_t LifetimeShift = 6; - static const uint32_t AddressSpaceMask = - ~(CVRMask | UMask | GCAttrMask | LifetimeMask); - static const uint32_t AddressSpaceShift = 9; + static const uint32_t GCAttrMask = 0x18; + static const uint32_t GCAttrShift = 3; + static const uint32_t LifetimeMask = 0xE0; + static const uint32_t LifetimeShift = 5; + static const uint32_t AddressSpaceMask = ~(CVRMask|GCAttrMask|LifetimeMask); + static const uint32_t AddressSpaceShift = 8; }; /// A std::pair-like structure for storing a qualified type split diff --git a/include/clang/Basic/AddressSpaces.h b/include/clang/Basic/AddressSpaces.h index 63df61bedb..8dd75660c6 100644 --- a/include/clang/Basic/AddressSpaces.h +++ b/include/clang/Basic/AddressSpaces.h @@ -25,7 +25,7 @@ namespace LangAS { /// This uses a high starting offset so as not to conflict with any address /// space used by a target. enum ID { - Offset = 0x7FFF00, + Offset = 0xFFFF00, opencl_global = Offset, opencl_local, diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td index 52ab32eab6..1ae2c57b97 100644 --- a/include/clang/Basic/Attr.td +++ b/include/clang/Basic/Attr.td @@ -2149,6 +2149,10 @@ def InitSeg : Attr { }]; } +def Unaligned : IgnoredAttr { + let Spellings = [Keyword<"__unaligned">]; +} + def LoopHint : Attr { /// #pragma clang loop