the TemplateName class. Nothing actually changes, but I find this less
objectionable (and it will factor into an upcoming change).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123508
91177308-0d34-0410-b5e6-
96231b3b80d8
class OverloadedTemplateStorage {
union {
unsigned Size;
- NamedDecl *Storage[1];
+ void *PointerAlignment;
};
-
+
friend class ASTContext;
OverloadedTemplateStorage(unsigned Size) : Size(Size) {}
NamedDecl **getStorage() {
- return &Storage[1];
+ return reinterpret_cast<NamedDecl **>(this + 1);
}
NamedDecl * const *getStorage() const {
- return &Storage[1];
+ return reinterpret_cast<NamedDecl *const *>(this + 1);
}
public: