]> granicus.if.org Git - clang/commitdiff
adjust to llvm mainline changes.
authorChris Lattner <sabre@nondot.org>
Sun, 29 Mar 2009 04:32:54 +0000 (04:32 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 29 Mar 2009 04:32:54 +0000 (04:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67980 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclBase.h
include/clang/AST/Type.h
include/clang/Parse/Ownership.h
lib/AST/DeclBase.cpp
lib/AST/DeclSerialization.cpp

index 0f9fb4569e85db5d329c853c642d8bca6f8a0730..e98a37850206df687afa33ce1777b76ec2ddfb23 100644 (file)
@@ -40,6 +40,23 @@ class LinkageSpecDecl;
 class BlockDecl;
 class DeclarationName;
 class CompoundStmt;
+}
+
+namespace llvm {
+// DeclContext* is only 4-byte aligned on 32-bit systems.
+template<>
+  class PointerLikeTypeTraits<clang::DeclContext*> {
+  typedef clang::DeclContext* PT;
+public:
+  static inline void *getAsVoidPointer(PT P) { return P; }
+  static inline PT getFromVoidPointer(void *P) {
+    return static_cast<PT>(P);
+  }
+  enum { NumLowBitsAvailable = 2 };
+};
+}
+
+namespace clang {
 
 /// Decl - This represents one declaration (or definition), e.g. a variable, 
 /// typedef, function, struct, etc.  
@@ -109,7 +126,7 @@ private:
   ///   }
   ///   void A::f(); // SemanticDC == namespace 'A'
   ///                // LexicalDC == global namespace
-  llvm::PointerIntPair<void*, 1, bool> DeclCtx;
+  llvm::PointerIntPair<DeclContext*, 1, bool> DeclCtx;
 
   struct MultipleDC {
     DeclContext *SemanticDC;
@@ -120,7 +137,7 @@ private:
   inline bool isOutOfSemaDC() const { return DeclCtx.getInt() != 0; }
   inline MultipleDC *getMultipleDC() const {
     assert(isOutOfSemaDC() && "Invalid accessor");
-    return static_cast<MultipleDC*>(DeclCtx.getPointer());
+    return reinterpret_cast<MultipleDC*>(DeclCtx.getPointer());
   }
 
   inline DeclContext *getSemanticDC() const {
index aa0861808a20336b5b3b09fc0211a54150e3b410..ea1b496cd31f1068f31fa430ad3e067353984990 100644 (file)
@@ -234,7 +234,7 @@ public:
     return clang::QualType::getFromOpaquePtr(P);
   }
   // CVR qualifiers go in low bits.
-  static inline unsigned getNumLowBitsAvailable() { return 0; }
+  enum { NumLowBitsAvailable = 0 };
 };
 } // end namespace llvm
 
index 362220fc6d6def3cb98cbd778b21779f93f1c33d..50bc5aee128877fdffde5f9d261b7cd66d654290 100644 (file)
@@ -57,7 +57,7 @@ namespace llvm {
     static inline clang::OpaquePtr<UID> getFromVoidPointer(void *P) {
       return clang::OpaquePtr<UID>::make(P);
     }
-    static inline unsigned getNumLowBitsAvailable() { return 3; }
+    enum { NumLowBitsAvailable = 3 };
   };
 }
 
index bc7ac569fc01ac87aa36e9e394984e0289b59260..9ab269d305f674ff62da28e4b56284643bbda71e 100644 (file)
@@ -141,7 +141,7 @@ void Decl::setLexicalDeclContext(DeclContext *DC) {
     MultipleDC *MDC = new MultipleDC();
     MDC->SemanticDC = getDeclContext();
     MDC->LexicalDC = DC;
-    DeclCtx.setPointer(MDC);
+    DeclCtx.setPointer(reinterpret_cast<DeclContext*>(MDC));
     DeclCtx.setInt(true);
   } else {
     getMultipleDC()->LexicalDC = DC;
index 7ac7ac49b09b251a6a349c699bcd5dbf2cf6b140..965874502d0c80eadec7750ee1850c6b195f7dec 100644 (file)
@@ -139,7 +139,7 @@ Decl* Decl::Create(Deserializer& D, ASTContext& C) {
   }
   else {
     MultipleDC *MDC = new MultipleDC();
-    Dcl->DeclCtx.setPointer(MDC);
+    Dcl->DeclCtx.setPointer(reinterpret_cast<DeclContext*>(MDC));
     Dcl->DeclCtx.setInt(true);
     // Allow back-patching.  Observe that we register the variable of the
     // *object* for back-patching. Its actual value will get filled in later.