diff options
| -rw-r--r-- | clang/include/clang/AST/ASTContext.h | 5 | ||||
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 5 | 
2 files changed, 7 insertions, 3 deletions
diff --git a/clang/include/clang/AST/ASTContext.h b/clang/include/clang/AST/ASTContext.h index 2778d46dd2d..e56752e8498 100644 --- a/clang/include/clang/AST/ASTContext.h +++ b/clang/include/clang/AST/ASTContext.h @@ -1345,6 +1345,11 @@ private:    // by DeclContext objects.  This probably should not be in ASTContext,    // but we include it here so that ASTContext can quickly deallocate them.    llvm::PointerIntPair<StoredDeclsMap*,1> LastSDM; + +  /// \brief A counter used to uniquely identify "blocks". +  unsigned int UniqueBlockByRefTypeID; +  unsigned int UniqueBlockParmTypeID; +      friend class DeclContext;    friend class DeclarationNameTable;    void ReleaseDeclContextMaps(); diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 2db5c5e914a..bb62e9efd58 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -142,7 +142,8 @@ ASTContext::ASTContext(const LangOptions& LOpts, SourceManager &SM,    BuiltinInfo(builtins),    DeclarationNames(*this),    ExternalSource(0), PrintingPolicy(LOpts), -  LastSDM(0, 0) { +  LastSDM(0, 0), +  UniqueBlockByRefTypeID(0), UniqueBlockParmTypeID(0) {    ObjCIdRedefinitionType = QualType();    ObjCClassRedefinitionType = QualType();    ObjCSelRedefinitionType = QualType(); @@ -3154,7 +3155,6 @@ QualType ASTContext::BuildByRefType(const char *DeclName, QualType Ty) {    bool HasCopyAndDispose = BlockRequiresCopying(Ty);    // FIXME: Move up -  static unsigned int UniqueBlockByRefTypeID = 0;    llvm::SmallString<36> Name;    llvm::raw_svector_ostream(Name) << "__Block_byref_" <<                                    ++UniqueBlockByRefTypeID << '_' << DeclName; @@ -3206,7 +3206,6 @@ QualType ASTContext::getBlockParmType(    llvm::SmallVectorImpl<const Expr *> &Layout) {    // FIXME: Move up -  static unsigned int UniqueBlockParmTypeID = 0;    llvm::SmallString<36> Name;    llvm::raw_svector_ostream(Name) << "__block_literal_"                                    << ++UniqueBlockParmTypeID;  | 

