From e7b8d400208e886a167a4481a9024295a3ce17d1 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Fri, 26 Sep 2008 23:24:05 +0000 Subject: [PATCH] Forgot to check in header file with last commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56709 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/DeclGroup.h | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/include/clang/AST/DeclGroup.h b/include/clang/AST/DeclGroup.h index 75095d6c00..4ad2dfcd22 100644 --- a/include/clang/AST/DeclGroup.h +++ b/include/clang/AST/DeclGroup.h @@ -45,34 +45,27 @@ public: class DeclGroupRef { protected: enum Kind { DeclKind=0x0, DeclGroupKind=0x1, Mask=0x1 }; - uintptr_t ThePtr; - - Kind getKind() const { return (Kind) (ThePtr & Mask); } + union { Decl* D; uintptr_t Raw; }; + Kind getKind() const { return (Kind) (Raw & Mask); } public: - DeclGroupRef() : ThePtr(0) {} - - explicit DeclGroupRef(Decl* D) - : ThePtr(reinterpret_cast(D)) {} + DeclGroupRef() : Raw(0) {} - explicit DeclGroupRef(DeclGroup* D) - : ThePtr(reinterpret_cast(D) | DeclGroupKind) {} + explicit DeclGroupRef(Decl* d) : D(d) {} + explicit DeclGroupRef(DeclGroup* dg) + : Raw(reinterpret_cast(dg) | DeclGroupKind) {} typedef Decl** iterator; iterator begin() { - if (getKind() == DeclKind) - return ThePtr ? (Decl**) &ThePtr : 0; - - DeclGroup* G = reinterpret_cast(ThePtr & ~Mask); + if (getKind() == DeclKind) return Raw ? &D : 0; + DeclGroup* G = reinterpret_cast(Raw & ~Mask); return &(*G)[0]; } iterator end() { - if (getKind() == DeclKind) - return ThePtr ? ((Decl**) &ThePtr) + 1 : 0; - - DeclGroup* G = reinterpret_cast(ThePtr & ~Mask); + if (getKind() == DeclKind) return Raw ? &D + 1 : 0; + DeclGroup* G = reinterpret_cast(Raw & ~Mask); return &(*G)[0] + G->size(); } }; @@ -83,11 +76,11 @@ public: void Destroy(ASTContext& C); explicit DeclGroupOwningRef(DeclGroupOwningRef& R) - : DeclGroupRef(R) { R.ThePtr = 0; } + : DeclGroupRef(R) { R.Raw = 0; } DeclGroupOwningRef& operator=(DeclGroupOwningRef& R) { - ThePtr = R.ThePtr; - R.ThePtr = 0; + Raw = R.Raw; + R.Raw = 0; return *this; } }; -- 2.40.0