From: Chris Lattner Date: Fri, 1 May 2009 23:47:59 +0000 (+0000) Subject: explicitly know that the alignment of Type* is 3 bits. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bfadf55ba5b736b13cc3e0fbc2b184569bc9f304;p=clang explicitly know that the alignment of Type* is 3 bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70602 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h index fbe4a7f3d5..eb1f1c64c4 100644 --- a/include/clang/AST/Type.h +++ b/include/clang/AST/Type.h @@ -29,15 +29,24 @@ using llvm::cast; using llvm::cast_or_null; using llvm::dyn_cast; using llvm::dyn_cast_or_null; +namespace clang { class Type; } namespace llvm { template class PointerLikeTypeTraits; + template<> + class PointerLikeTypeTraits< ::clang::Type*> { + public: + static inline void *getAsVoidPointer(::clang::Type *P) { return P; } + static inline ::clang::Type *getFromVoidPointer(void *P) { + return static_cast< ::clang::Type*>(P); + } + enum { NumLowBitsAvailable = 3 }; + }; } namespace clang { class ASTContext; - class Type; class TypedefDecl; class TemplateDecl; class TemplateTypeParmDecl;