Use a union instead of a bunch of magic casts to implement a variant. This removes the type-punning errors for DeclGroup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56708 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclGroup.cpp b/lib/AST/DeclGroup.cpp
index 5987d5a..10c3928 100644
--- a/lib/AST/DeclGroup.cpp
+++ b/lib/AST/DeclGroup.cpp
@@ -43,17 +43,17 @@
}
DeclGroupOwningRef::~DeclGroupOwningRef() {
- assert (ThePtr == 0 && "Destroy method not called.");
+ assert (Raw == 0 && "Destroy method not called.");
}
void DeclGroupOwningRef::Destroy(ASTContext& C) {
- if (!ThePtr)
+ if (!Raw)
return;
if (getKind() == DeclKind)
- reinterpret_cast<Decl*>(ThePtr)->Destroy(C);
+ reinterpret_cast<Decl*>(Raw)->Destroy(C);
else
- reinterpret_cast<DeclGroup*>(ThePtr & ~Mask)->Destroy(C);
+ reinterpret_cast<DeclGroup*>(Raw & ~Mask)->Destroy(C);
- ThePtr = 0;
+ Raw = 0;
}