From: Douglas Gregor Date: Fri, 9 Sep 2011 21:34:22 +0000 (+0000) Subject: In ASTReader, replace the never-NULL ASTContext pointer with an X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=359427794704666ff7a5a933ace11c5256fa3af7;p=clang In ASTReader, replace the never-NULL ASTContext pointer with an ASTContext reference. Remove all of the extra checking and logic that was used to cope with a NULL ASTContext. No effective functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139413 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Serialization/ASTReader.h b/include/clang/Serialization/ASTReader.h index e7019f311d..4d38a666f7 100644 --- a/include/clang/Serialization/ASTReader.h +++ b/include/clang/Serialization/ASTReader.h @@ -233,7 +233,7 @@ private: Preprocessor *PP; /// \brief The AST context into which we'll read the AST files. - ASTContext *Context; + ASTContext &Context; /// \brief The AST consumer. ASTConsumer *Consumer; @@ -752,8 +752,8 @@ public: /// \brief Set the Preprocessor to use. void setPreprocessor(Preprocessor &pp); - /// \brief Sets and initializes the given Context. - void InitializeContext(ASTContext &Context); + /// \brief Initializes the ASTContext + void InitializeContext(); /// \brief Add in-memory (virtual file) buffer. void addInMemoryBuffer(StringRef &FileName, llvm::MemoryBuffer *Buffer) { @@ -1267,7 +1267,7 @@ public: } /// \brief Retrieve the AST context that this AST reader supplements. - ASTContext *getContext() { return Context; } + ASTContext &getContext() { return Context; } // \brief Contains declarations that were loaded before we have // access to a Sema object. diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 55dd213286..f0b06259a7 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -498,7 +498,7 @@ ASTSelectorLookupTrait::ReadKeyDataLength(const unsigned char*& d) { ASTSelectorLookupTrait::internal_key_type ASTSelectorLookupTrait::ReadKey(const unsigned char* d, unsigned) { using namespace clang::io; - SelectorTable &SelTable = Reader.getContext()->Selectors; + SelectorTable &SelTable = Reader.getContext().Selectors; unsigned N = ReadUnalignedLE16(d); IdentifierInfo *FirstII = Reader.getLocalIdentifier(F, ReadUnalignedLE32(d)); @@ -632,7 +632,6 @@ IdentifierInfo *ASTIdentifierLookupTrait::ReadData(const internal_key_type& k, // Read all of the declarations visible at global scope with this // name. - if (Reader.getContext() == 0) return II; if (DataLen > 0) { SmallVector DeclIDs; for (; DataLen > 0; DataLen -= 4) @@ -706,7 +705,7 @@ ASTDeclContextNameLookupTrait::GetInternalKey( ASTDeclContextNameLookupTrait::external_key_type ASTDeclContextNameLookupTrait::GetExternalKey( const internal_key_type& Key) const { - ASTContext *Context = Reader.getContext(); + ASTContext &Context = Reader.getContext(); switch (Key.Kind) { case DeclarationName::Identifier: return DeclarationName((IdentifierInfo*)Key.Data); @@ -717,23 +716,23 @@ ASTDeclContextNameLookupTrait::GetExternalKey( return DeclarationName(Selector(Key.Data)); case DeclarationName::CXXConstructorName: - return Context->DeclarationNames.getCXXConstructorName( - Context->getCanonicalType(Reader.getLocalType(F, Key.Data))); + return Context.DeclarationNames.getCXXConstructorName( + Context.getCanonicalType(Reader.getLocalType(F, Key.Data))); case DeclarationName::CXXDestructorName: - return Context->DeclarationNames.getCXXDestructorName( - Context->getCanonicalType(Reader.getLocalType(F, Key.Data))); + return Context.DeclarationNames.getCXXDestructorName( + Context.getCanonicalType(Reader.getLocalType(F, Key.Data))); case DeclarationName::CXXConversionFunctionName: - return Context->DeclarationNames.getCXXConversionFunctionName( - Context->getCanonicalType(Reader.getLocalType(F, Key.Data))); + return Context.DeclarationNames.getCXXConversionFunctionName( + Context.getCanonicalType(Reader.getLocalType(F, Key.Data))); case DeclarationName::CXXOperatorName: - return Context->DeclarationNames.getCXXOperatorName( + return Context.DeclarationNames.getCXXOperatorName( (OverloadedOperatorKind)Key.Data); case DeclarationName::CXXLiteralOperatorName: - return Context->DeclarationNames.getCXXLiteralOperatorName( + return Context.DeclarationNames.getCXXLiteralOperatorName( (IdentifierInfo*)Key.Data); case DeclarationName::CXXUsingDirective: @@ -1934,14 +1933,12 @@ ASTReader::ReadASTBlock(Module &F) { } case TU_UPDATE_LEXICAL: { - DeclContext *TU = Context ? Context->getTranslationUnitDecl() : 0; + DeclContext *TU = Context.getTranslationUnitDecl(); DeclContextInfo &Info = F.DeclContextInfos[TU]; Info.LexicalDecls = reinterpret_cast(BlobStart); Info.NumLexicalDecls = static_cast(BlobLen / sizeof(KindDeclIDPair)); - if (TU) - TU->setHasExternalLexicalStorage(true); - + TU->setHasExternalLexicalStorage(true); break; } @@ -1952,8 +1949,8 @@ ASTReader::ReadASTBlock(Module &F) { (const unsigned char *)BlobStart + Record[Idx++], (const unsigned char *)BlobStart, ASTDeclContextNameLookupTrait(*this, F)); - if (ID == PREDEF_DECL_TRANSLATION_UNIT_ID && Context) { // Is it the TU? - DeclContext *TU = Context->getTranslationUnitDecl(); + if (ID == PREDEF_DECL_TRANSLATION_UNIT_ID) { // Is it the TU? + DeclContext *TU = Context.getTranslationUnitDecl(); F.DeclContextInfos[TU].NameLookupTableData = Table; TU->setHasExternalVisibleStorage(true); } else @@ -2635,8 +2632,7 @@ ASTReader::ASTReadResult ASTReader::ReadAST(const std::string &FileName, } } - if (Context) - InitializeContext(*Context); + InitializeContext(); if (DeserializationListener) DeserializationListener->ReaderInitialized(this); @@ -2797,59 +2793,38 @@ void ASTReader::setPreprocessor(Preprocessor &pp) { PP->getHeaderSearchInfo().SetExternalSource(this); } -void ASTReader::InitializeContext(ASTContext &Ctx) { - Context = &Ctx; - assert(Context && "Passed null context!"); - +void ASTReader::InitializeContext() { assert(PP && "Forgot to set Preprocessor ?"); PP->getIdentifierTable().setExternalIdentifierLookup(this); PP->setExternalSource(this); - // If we have any update blocks for the TU waiting, we have to add - // them before we deserialize anything. - TranslationUnitDecl *TU = Ctx.getTranslationUnitDecl(); - for (ModuleIterator M = ModuleMgr.begin(), MEnd = ModuleMgr.end(); - M != MEnd; ++M) { - Module::DeclContextInfosMap::iterator DCU - = (*M)->DeclContextInfos.find(0); - if (DCU != (*M)->DeclContextInfos.end()) { - // Insertion could invalidate map, so grab value first. - DeclContextInfo Info = DCU->second; - (*M)->DeclContextInfos.erase(DCU); - (*M)->DeclContextInfos[TU] = Info; - - if (Info.NumLexicalDecls) - TU->setHasExternalLexicalStorage(); - if (Info.NameLookupTableData) - TU->setHasExternalVisibleStorage(); - } - } - // If there's a listener, notify them that we "read" the translation unit. if (DeserializationListener) - DeserializationListener->DeclRead(PREDEF_DECL_TRANSLATION_UNIT_ID, TU); + DeserializationListener->DeclRead(PREDEF_DECL_TRANSLATION_UNIT_ID, + Context.getTranslationUnitDecl()); // Make sure we load the declaration update records for the translation unit, // if there are any. - loadDeclUpdateRecords(PREDEF_DECL_TRANSLATION_UNIT_ID, TU); + loadDeclUpdateRecords(PREDEF_DECL_TRANSLATION_UNIT_ID, + Context.getTranslationUnitDecl()); // FIXME: Find a better way to deal with collisions between these // built-in types. Right now, we just ignore the problem. // Load the special types. - if (Context->getBuiltinVaListType().isNull()) { - Context->setBuiltinVaListType( + if (Context.getBuiltinVaListType().isNull()) { + Context.setBuiltinVaListType( GetType(SpecialTypes[SPECIAL_TYPE_BUILTIN_VA_LIST])); } if (unsigned Proto = SpecialTypes[SPECIAL_TYPE_OBJC_PROTOCOL]) { - if (Context->ObjCProtoType.isNull()) - Context->ObjCProtoType = GetType(Proto); + if (Context.ObjCProtoType.isNull()) + Context.ObjCProtoType = GetType(Proto); } if (unsigned String = SpecialTypes[SPECIAL_TYPE_CF_CONSTANT_STRING]) { - if (!Context->CFConstantStringTypeDecl) - Context->setCFConstantStringType(GetType(String)); + if (!Context.CFConstantStringTypeDecl) + Context.setCFConstantStringType(GetType(String)); } if (unsigned File = SpecialTypes[SPECIAL_TYPE_FILE]) { @@ -2859,16 +2834,16 @@ void ASTReader::InitializeContext(ASTContext &Ctx) { return; } - if (!Context->FILEDecl) { + if (!Context.FILEDecl) { if (const TypedefType *Typedef = FileType->getAs()) - Context->setFILEDecl(Typedef->getDecl()); + Context.setFILEDecl(Typedef->getDecl()); else { const TagType *Tag = FileType->getAs(); if (!Tag) { Error("Invalid FILE type in AST file"); return; } - Context->setFILEDecl(Tag->getDecl()); + Context.setFILEDecl(Tag->getDecl()); } } } @@ -2880,16 +2855,16 @@ void ASTReader::InitializeContext(ASTContext &Ctx) { return; } - if (!Context->jmp_bufDecl) { + if (!Context.jmp_bufDecl) { if (const TypedefType *Typedef = Jmp_bufType->getAs()) - Context->setjmp_bufDecl(Typedef->getDecl()); + Context.setjmp_bufDecl(Typedef->getDecl()); else { const TagType *Tag = Jmp_bufType->getAs(); if (!Tag) { Error("Invalid jmp_buf type in AST file"); return; } - Context->setjmp_bufDecl(Tag->getDecl()); + Context.setjmp_bufDecl(Tag->getDecl()); } } } @@ -2901,41 +2876,41 @@ void ASTReader::InitializeContext(ASTContext &Ctx) { return; } - if (!Context->sigjmp_bufDecl) { + if (!Context.sigjmp_bufDecl) { if (const TypedefType *Typedef = Sigjmp_bufType->getAs()) - Context->setsigjmp_bufDecl(Typedef->getDecl()); + Context.setsigjmp_bufDecl(Typedef->getDecl()); else { const TagType *Tag = Sigjmp_bufType->getAs(); assert(Tag && "Invalid sigjmp_buf type in AST file"); - Context->setsigjmp_bufDecl(Tag->getDecl()); + Context.setsigjmp_bufDecl(Tag->getDecl()); } } } if (unsigned ObjCIdRedef = SpecialTypes[SPECIAL_TYPE_OBJC_ID_REDEFINITION]) { - if (Context->ObjCIdRedefinitionType.isNull()) - Context->ObjCIdRedefinitionType = GetType(ObjCIdRedef); + if (Context.ObjCIdRedefinitionType.isNull()) + Context.ObjCIdRedefinitionType = GetType(ObjCIdRedef); } if (unsigned ObjCClassRedef = SpecialTypes[SPECIAL_TYPE_OBJC_CLASS_REDEFINITION]) { - if (Context->ObjCClassRedefinitionType.isNull()) - Context->ObjCClassRedefinitionType = GetType(ObjCClassRedef); + if (Context.ObjCClassRedefinitionType.isNull()) + Context.ObjCClassRedefinitionType = GetType(ObjCClassRedef); } if (unsigned ObjCSelRedef = SpecialTypes[SPECIAL_TYPE_OBJC_SEL_REDEFINITION]) { - if (Context->ObjCSelRedefinitionType.isNull()) - Context->ObjCSelRedefinitionType = GetType(ObjCSelRedef); + if (Context.ObjCSelRedefinitionType.isNull()) + Context.ObjCSelRedefinitionType = GetType(ObjCSelRedef); } - ReadPragmaDiagnosticMappings(Context->getDiagnostics()); + ReadPragmaDiagnosticMappings(Context.getDiagnostics()); // If there were any CUDA special declarations, deserialize them. if (!CUDASpecialDeclRefs.empty()) { assert(CUDASpecialDeclRefs.size() == 1 && "More decl refs than expected!"); - Context->setcudaConfigureCallDecl( + Context.setcudaConfigureCallDecl( cast(GetDecl(CUDASpecialDeclRefs[0]))); } } @@ -3271,7 +3246,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { } QualType Base = readType(*Loc.F, Record, Idx); Qualifiers Quals = Qualifiers::fromOpaqueValue(Record[Idx++]); - return Context->getQualifiedType(Base, Quals); + return Context.getQualifiedType(Base, Quals); } case TYPE_COMPLEX: { @@ -3280,7 +3255,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType ElemType = readType(*Loc.F, Record, Idx); - return Context->getComplexType(ElemType); + return Context.getComplexType(ElemType); } case TYPE_POINTER: { @@ -3289,7 +3264,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType PointeeType = readType(*Loc.F, Record, Idx); - return Context->getPointerType(PointeeType); + return Context.getPointerType(PointeeType); } case TYPE_BLOCK_POINTER: { @@ -3298,7 +3273,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType PointeeType = readType(*Loc.F, Record, Idx); - return Context->getBlockPointerType(PointeeType); + return Context.getBlockPointerType(PointeeType); } case TYPE_LVALUE_REFERENCE: { @@ -3307,7 +3282,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType PointeeType = readType(*Loc.F, Record, Idx); - return Context->getLValueReferenceType(PointeeType, Record[1]); + return Context.getLValueReferenceType(PointeeType, Record[1]); } case TYPE_RVALUE_REFERENCE: { @@ -3316,7 +3291,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType PointeeType = readType(*Loc.F, Record, Idx); - return Context->getRValueReferenceType(PointeeType); + return Context.getRValueReferenceType(PointeeType); } case TYPE_MEMBER_POINTER: { @@ -3329,7 +3304,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { if (PointeeType.isNull() || ClassType.isNull()) return QualType(); - return Context->getMemberPointerType(PointeeType, ClassType.getTypePtr()); + return Context.getMemberPointerType(PointeeType, ClassType.getTypePtr()); } case TYPE_CONSTANT_ARRAY: { @@ -3338,7 +3313,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { unsigned IndexTypeQuals = Record[2]; unsigned Idx = 3; llvm::APInt Size = ReadAPInt(Record, Idx); - return Context->getConstantArrayType(ElementType, Size, + return Context.getConstantArrayType(ElementType, Size, ASM, IndexTypeQuals); } @@ -3346,7 +3321,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType ElementType = readType(*Loc.F, Record, Idx); ArrayType::ArraySizeModifier ASM = (ArrayType::ArraySizeModifier)Record[1]; unsigned IndexTypeQuals = Record[2]; - return Context->getIncompleteArrayType(ElementType, ASM, IndexTypeQuals); + return Context.getIncompleteArrayType(ElementType, ASM, IndexTypeQuals); } case TYPE_VARIABLE_ARRAY: { @@ -3355,7 +3330,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { unsigned IndexTypeQuals = Record[2]; SourceLocation LBLoc = ReadSourceLocation(*Loc.F, Record[3]); SourceLocation RBLoc = ReadSourceLocation(*Loc.F, Record[4]); - return Context->getVariableArrayType(ElementType, ReadExpr(*Loc.F), + return Context.getVariableArrayType(ElementType, ReadExpr(*Loc.F), ASM, IndexTypeQuals, SourceRange(LBLoc, RBLoc)); } @@ -3369,7 +3344,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType ElementType = readType(*Loc.F, Record, Idx); unsigned NumElements = Record[1]; unsigned VecKind = Record[2]; - return Context->getVectorType(ElementType, NumElements, + return Context.getVectorType(ElementType, NumElements, (VectorType::VectorKind)VecKind); } @@ -3381,7 +3356,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType ElementType = readType(*Loc.F, Record, Idx); unsigned NumElements = Record[1]; - return Context->getExtVectorType(ElementType, NumElements); + return Context.getExtVectorType(ElementType, NumElements); } case TYPE_FUNCTION_NO_PROTO: { @@ -3392,7 +3367,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType ResultType = readType(*Loc.F, Record, Idx); FunctionType::ExtInfo Info(Record[1], Record[2], Record[3], (CallingConv)Record[4], Record[5]); - return Context->getFunctionNoProtoType(ResultType, Info); + return Context.getFunctionNoProtoType(ResultType, Info); } case TYPE_FUNCTION_PROTO: { @@ -3426,13 +3401,13 @@ QualType ASTReader::readTypeRecord(unsigned Index) { } else if (EST == EST_ComputedNoexcept) { EPI.NoexceptExpr = ReadExpr(*Loc.F); } - return Context->getFunctionType(ResultType, ParamTypes.data(), NumParams, + return Context.getFunctionType(ResultType, ParamTypes.data(), NumParams, EPI); } case TYPE_UNRESOLVED_USING: { unsigned Idx = 0; - return Context->getTypeDeclType( + return Context.getTypeDeclType( ReadDeclAs(*Loc.F, Record, Idx)); } @@ -3445,12 +3420,12 @@ QualType ASTReader::readTypeRecord(unsigned Index) { TypedefNameDecl *Decl = ReadDeclAs(*Loc.F, Record, Idx); QualType Canonical = readType(*Loc.F, Record, Idx); if (!Canonical.isNull()) - Canonical = Context->getCanonicalType(Canonical); - return Context->getTypedefType(Decl, Canonical); + Canonical = Context.getCanonicalType(Canonical); + return Context.getTypedefType(Decl, Canonical); } case TYPE_TYPEOF_EXPR: - return Context->getTypeOfExprType(ReadExpr(*Loc.F)); + return Context.getTypeOfExprType(ReadExpr(*Loc.F)); case TYPE_TYPEOF: { if (Record.size() != 1) { @@ -3458,21 +3433,21 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType UnderlyingType = readType(*Loc.F, Record, Idx); - return Context->getTypeOfType(UnderlyingType); + return Context.getTypeOfType(UnderlyingType); } case TYPE_DECLTYPE: - return Context->getDecltypeType(ReadExpr(*Loc.F)); + return Context.getDecltypeType(ReadExpr(*Loc.F)); case TYPE_UNARY_TRANSFORM: { QualType BaseType = readType(*Loc.F, Record, Idx); QualType UnderlyingType = readType(*Loc.F, Record, Idx); UnaryTransformType::UTTKind UKind = (UnaryTransformType::UTTKind)Record[2]; - return Context->getUnaryTransformType(BaseType, UnderlyingType, UKind); + return Context.getUnaryTransformType(BaseType, UnderlyingType, UKind); } case TYPE_AUTO: - return Context->getAutoType(readType(*Loc.F, Record, Idx)); + return Context.getAutoType(readType(*Loc.F, Record, Idx)); case TYPE_RECORD: { if (Record.size() != 2) { @@ -3482,7 +3457,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { unsigned Idx = 0; bool IsDependent = Record[Idx++]; QualType T - = Context->getRecordType(ReadDeclAs(*Loc.F, Record, Idx)); + = Context.getRecordType(ReadDeclAs(*Loc.F, Record, Idx)); const_cast(T.getTypePtr())->setDependent(IsDependent); return T; } @@ -3495,7 +3470,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { unsigned Idx = 0; bool IsDependent = Record[Idx++]; QualType T - = Context->getEnumType(ReadDeclAs(*Loc.F, Record, Idx)); + = Context.getEnumType(ReadDeclAs(*Loc.F, Record, Idx)); const_cast(T.getTypePtr())->setDependent(IsDependent); return T; } @@ -3508,7 +3483,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType modifiedType = readType(*Loc.F, Record, Idx); QualType equivalentType = readType(*Loc.F, Record, Idx); AttributedType::Kind kind = static_cast(Record[2]); - return Context->getAttributedType(kind, modifiedType, equivalentType); + return Context.getAttributedType(kind, modifiedType, equivalentType); } case TYPE_PAREN: { @@ -3517,7 +3492,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return QualType(); } QualType InnerType = readType(*Loc.F, Record, Idx); - return Context->getParenType(InnerType); + return Context.getParenType(InnerType); } case TYPE_PACK_EXPANSION: { @@ -3531,7 +3506,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { llvm::Optional NumExpansions; if (Record[1]) NumExpansions = Record[1] - 1; - return Context->getPackExpansionType(Pattern, NumExpansions); + return Context.getPackExpansionType(Pattern, NumExpansions); } case TYPE_ELABORATED: { @@ -3539,14 +3514,14 @@ QualType ASTReader::readTypeRecord(unsigned Index) { ElaboratedTypeKeyword Keyword = (ElaboratedTypeKeyword)Record[Idx++]; NestedNameSpecifier *NNS = ReadNestedNameSpecifier(*Loc.F, Record, Idx); QualType NamedType = readType(*Loc.F, Record, Idx); - return Context->getElaboratedType(Keyword, NNS, NamedType); + return Context.getElaboratedType(Keyword, NNS, NamedType); } case TYPE_OBJC_INTERFACE: { unsigned Idx = 0; ObjCInterfaceDecl *ItfD = ReadDeclAs(*Loc.F, Record, Idx); - return Context->getObjCInterfaceType(ItfD); + return Context.getObjCInterfaceType(ItfD); } case TYPE_OBJC_OBJECT: { @@ -3556,13 +3531,13 @@ QualType ASTReader::readTypeRecord(unsigned Index) { SmallVector Protos; for (unsigned I = 0; I != NumProtos; ++I) Protos.push_back(ReadDeclAs(*Loc.F, Record, Idx)); - return Context->getObjCObjectType(Base, Protos.data(), NumProtos); + return Context.getObjCObjectType(Base, Protos.data(), NumProtos); } case TYPE_OBJC_OBJECT_POINTER: { unsigned Idx = 0; QualType Pointee = readType(*Loc.F, Record, Idx); - return Context->getObjCObjectPointerType(Pointee); + return Context.getObjCObjectPointerType(Pointee); } case TYPE_SUBST_TEMPLATE_TYPE_PARM: { @@ -3570,7 +3545,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType Parm = readType(*Loc.F, Record, Idx); QualType Replacement = readType(*Loc.F, Record, Idx); return - Context->getSubstTemplateTypeParmType(cast(Parm), + Context.getSubstTemplateTypeParmType(cast(Parm), Replacement); } @@ -3578,7 +3553,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { unsigned Idx = 0; QualType Parm = readType(*Loc.F, Record, Idx); TemplateArgument ArgPack = ReadTemplateArgument(*Loc.F, Record, Idx); - return Context->getSubstTemplateTypeParmPackType( + return Context.getSubstTemplateTypeParmPackType( cast(Parm), ArgPack); } @@ -3589,7 +3564,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { // FIXME: ASTContext::getInjectedClassNameType is not currently suitable // for AST reading, too much interdependencies. return - QualType(new (*Context, TypeAlignment) InjectedClassNameType(D, TST), 0); + QualType(new (Context, TypeAlignment) InjectedClassNameType(D, TST), 0); } case TYPE_TEMPLATE_TYPE_PARM: { @@ -3599,7 +3574,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { bool Pack = Record[Idx++]; TemplateTypeParmDecl *D = ReadDeclAs(*Loc.F, Record, Idx); - return Context->getTemplateTypeParmType(Depth, Index, Pack, D); + return Context.getTemplateTypeParmType(Depth, Index, Pack, D); } case TYPE_DEPENDENT_NAME: { @@ -3609,8 +3584,8 @@ QualType ASTReader::readTypeRecord(unsigned Index) { const IdentifierInfo *Name = this->GetIdentifierInfo(*Loc.F, Record, Idx); QualType Canon = readType(*Loc.F, Record, Idx); if (!Canon.isNull()) - Canon = Context->getCanonicalType(Canon); - return Context->getDependentNameType(Keyword, NNS, Name, Canon); + Canon = Context.getCanonicalType(Canon); + return Context.getDependentNameType(Keyword, NNS, Name, Canon); } case TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION: { @@ -3623,7 +3598,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { Args.reserve(NumArgs); while (NumArgs--) Args.push_back(ReadTemplateArgument(*Loc.F, Record, Idx)); - return Context->getDependentTemplateSpecializationType(Keyword, NNS, Name, + return Context.getDependentTemplateSpecializationType(Keyword, NNS, Name, Args.size(), Args.data()); } @@ -3640,7 +3615,7 @@ QualType ASTReader::readTypeRecord(unsigned Index) { Expr *NumElts = ReadExpr(*Loc.F); SourceRange Brackets = ReadSourceRange(*Loc.F, Record, Idx); - return Context->getDependentSizedArrayType(ElementType, NumElts, ASM, + return Context.getDependentSizedArrayType(ElementType, NumElts, ASM, IndexTypeQuals, Brackets); } @@ -3653,10 +3628,10 @@ QualType ASTReader::readTypeRecord(unsigned Index) { QualType Underlying = readType(*Loc.F, Record, Idx); QualType T; if (Underlying.isNull()) - T = Context->getCanonicalTemplateSpecializationType(Name, Args.data(), + T = Context.getCanonicalTemplateSpecializationType(Name, Args.data(), Args.size()); else - T = Context->getTemplateSpecializationType(Name, Args.data(), + T = Context.getTemplateSpecializationType(Name, Args.data(), Args.size(), Underlying); const_cast(T.getTypePtr())->setDependent(IsDependent); return T; @@ -3903,7 +3878,7 @@ TypeSourceInfo *ASTReader::GetTypeSourceInfo(Module &F, if (InfoTy.isNull()) return 0; - TypeSourceInfo *TInfo = getContext()->CreateTypeSourceInfo(InfoTy); + TypeSourceInfo *TInfo = getContext().CreateTypeSourceInfo(InfoTy); TypeLocReader TLR(*this, F, Record, Idx); for (TypeLoc TL = TInfo->getTypeLoc(); !TL.isNull(); TL = TL.getNextTypeLoc()) TLR.Visit(TL); @@ -3918,45 +3893,45 @@ QualType ASTReader::GetType(TypeID ID) { QualType T; switch ((PredefinedTypeIDs)Index) { case PREDEF_TYPE_NULL_ID: return QualType(); - case PREDEF_TYPE_VOID_ID: T = Context->VoidTy; break; - case PREDEF_TYPE_BOOL_ID: T = Context->BoolTy; break; + case PREDEF_TYPE_VOID_ID: T = Context.VoidTy; break; + case PREDEF_TYPE_BOOL_ID: T = Context.BoolTy; break; case PREDEF_TYPE_CHAR_U_ID: case PREDEF_TYPE_CHAR_S_ID: // FIXME: Check that the signedness of CharTy is correct! - T = Context->CharTy; + T = Context.CharTy; break; - case PREDEF_TYPE_UCHAR_ID: T = Context->UnsignedCharTy; break; - case PREDEF_TYPE_USHORT_ID: T = Context->UnsignedShortTy; break; - case PREDEF_TYPE_UINT_ID: T = Context->UnsignedIntTy; break; - case PREDEF_TYPE_ULONG_ID: T = Context->UnsignedLongTy; break; - case PREDEF_TYPE_ULONGLONG_ID: T = Context->UnsignedLongLongTy; break; - case PREDEF_TYPE_UINT128_ID: T = Context->UnsignedInt128Ty; break; - case PREDEF_TYPE_SCHAR_ID: T = Context->SignedCharTy; break; - case PREDEF_TYPE_WCHAR_ID: T = Context->WCharTy; break; - case PREDEF_TYPE_SHORT_ID: T = Context->ShortTy; break; - case PREDEF_TYPE_INT_ID: T = Context->IntTy; break; - case PREDEF_TYPE_LONG_ID: T = Context->LongTy; break; - case PREDEF_TYPE_LONGLONG_ID: T = Context->LongLongTy; break; - case PREDEF_TYPE_INT128_ID: T = Context->Int128Ty; break; - case PREDEF_TYPE_FLOAT_ID: T = Context->FloatTy; break; - case PREDEF_TYPE_DOUBLE_ID: T = Context->DoubleTy; break; - case PREDEF_TYPE_LONGDOUBLE_ID: T = Context->LongDoubleTy; break; - case PREDEF_TYPE_OVERLOAD_ID: T = Context->OverloadTy; break; - case PREDEF_TYPE_BOUND_MEMBER: T = Context->BoundMemberTy; break; - case PREDEF_TYPE_DEPENDENT_ID: T = Context->DependentTy; break; - case PREDEF_TYPE_UNKNOWN_ANY: T = Context->UnknownAnyTy; break; - case PREDEF_TYPE_NULLPTR_ID: T = Context->NullPtrTy; break; - case PREDEF_TYPE_CHAR16_ID: T = Context->Char16Ty; break; - case PREDEF_TYPE_CHAR32_ID: T = Context->Char32Ty; break; - case PREDEF_TYPE_OBJC_ID: T = Context->ObjCBuiltinIdTy; break; - case PREDEF_TYPE_OBJC_CLASS: T = Context->ObjCBuiltinClassTy; break; - case PREDEF_TYPE_OBJC_SEL: T = Context->ObjCBuiltinSelTy; break; - case PREDEF_TYPE_AUTO_DEDUCT: T = Context->getAutoDeductType(); break; + case PREDEF_TYPE_UCHAR_ID: T = Context.UnsignedCharTy; break; + case PREDEF_TYPE_USHORT_ID: T = Context.UnsignedShortTy; break; + case PREDEF_TYPE_UINT_ID: T = Context.UnsignedIntTy; break; + case PREDEF_TYPE_ULONG_ID: T = Context.UnsignedLongTy; break; + case PREDEF_TYPE_ULONGLONG_ID: T = Context.UnsignedLongLongTy; break; + case PREDEF_TYPE_UINT128_ID: T = Context.UnsignedInt128Ty; break; + case PREDEF_TYPE_SCHAR_ID: T = Context.SignedCharTy; break; + case PREDEF_TYPE_WCHAR_ID: T = Context.WCharTy; break; + case PREDEF_TYPE_SHORT_ID: T = Context.ShortTy; break; + case PREDEF_TYPE_INT_ID: T = Context.IntTy; break; + case PREDEF_TYPE_LONG_ID: T = Context.LongTy; break; + case PREDEF_TYPE_LONGLONG_ID: T = Context.LongLongTy; break; + case PREDEF_TYPE_INT128_ID: T = Context.Int128Ty; break; + case PREDEF_TYPE_FLOAT_ID: T = Context.FloatTy; break; + case PREDEF_TYPE_DOUBLE_ID: T = Context.DoubleTy; break; + case PREDEF_TYPE_LONGDOUBLE_ID: T = Context.LongDoubleTy; break; + case PREDEF_TYPE_OVERLOAD_ID: T = Context.OverloadTy; break; + case PREDEF_TYPE_BOUND_MEMBER: T = Context.BoundMemberTy; break; + case PREDEF_TYPE_DEPENDENT_ID: T = Context.DependentTy; break; + case PREDEF_TYPE_UNKNOWN_ANY: T = Context.UnknownAnyTy; break; + case PREDEF_TYPE_NULLPTR_ID: T = Context.NullPtrTy; break; + case PREDEF_TYPE_CHAR16_ID: T = Context.Char16Ty; break; + case PREDEF_TYPE_CHAR32_ID: T = Context.Char32Ty; break; + case PREDEF_TYPE_OBJC_ID: T = Context.ObjCBuiltinIdTy; break; + case PREDEF_TYPE_OBJC_CLASS: T = Context.ObjCBuiltinClassTy; break; + case PREDEF_TYPE_OBJC_SEL: T = Context.ObjCBuiltinSelTy; break; + case PREDEF_TYPE_AUTO_DEDUCT: T = Context.getAutoDeductType(); break; case PREDEF_TYPE_AUTO_RREF_DEDUCT: - T = Context->getAutoRRefDeductType(); + T = Context.getAutoRRefDeductType(); break; } @@ -4077,7 +4052,7 @@ CXXBaseSpecifier *ASTReader::GetExternalCXXBaseSpecifiers(uint64_t Offset) { unsigned Idx = 0; unsigned NumBases = Record[Idx++]; - void *Mem = Context->Allocate(sizeof(CXXBaseSpecifier) * NumBases); + void *Mem = Context.Allocate(sizeof(CXXBaseSpecifier) * NumBases); CXXBaseSpecifier *Bases = new (Mem) CXXBaseSpecifier [NumBases]; for (unsigned I = 0; I != NumBases; ++I) Bases[I] = ReadCXXBaseSpecifier(*Loc.F, Record, Idx); @@ -4110,32 +4085,25 @@ Decl *ASTReader::GetDecl(DeclID ID) { return 0; case PREDEF_DECL_TRANSLATION_UNIT_ID: - assert(Context && "No context available?"); - return Context->getTranslationUnitDecl(); + return Context.getTranslationUnitDecl(); case PREDEF_DECL_OBJC_ID_ID: - assert(Context && "No context available?"); - return Context->getObjCIdDecl(); + return Context.getObjCIdDecl(); case PREDEF_DECL_OBJC_SEL_ID: - assert(Context && "No context available?"); - return Context->getObjCSelDecl(); + return Context.getObjCSelDecl(); case PREDEF_DECL_OBJC_CLASS_ID: - assert(Context && "No context available?"); - return Context->getObjCClassDecl(); + return Context.getObjCClassDecl(); case PREDEF_DECL_INT_128_ID: - assert(Context && "No context available?"); - return Context->getInt128Decl(); + return Context.getInt128Decl(); case PREDEF_DECL_UNSIGNED_INT_128_ID: - assert(Context && "No context available?"); - return Context->getUInt128Decl(); + return Context.getUInt128Decl(); case PREDEF_DECL_OBJC_INSTANCETYPE_ID: - assert(Context && "No context available?"); - return Context->getObjCInstanceTypeDecl(); + return Context.getObjCInstanceTypeDecl(); } return 0; @@ -4981,23 +4949,23 @@ ASTReader::ReadDeclarationName(Module &F, return DeclarationName(ReadSelector(F, Record, Idx)); case DeclarationName::CXXConstructorName: - return Context->DeclarationNames.getCXXConstructorName( - Context->getCanonicalType(readType(F, Record, Idx))); + return Context.DeclarationNames.getCXXConstructorName( + Context.getCanonicalType(readType(F, Record, Idx))); case DeclarationName::CXXDestructorName: - return Context->DeclarationNames.getCXXDestructorName( - Context->getCanonicalType(readType(F, Record, Idx))); + return Context.DeclarationNames.getCXXDestructorName( + Context.getCanonicalType(readType(F, Record, Idx))); case DeclarationName::CXXConversionFunctionName: - return Context->DeclarationNames.getCXXConversionFunctionName( - Context->getCanonicalType(readType(F, Record, Idx))); + return Context.DeclarationNames.getCXXConversionFunctionName( + Context.getCanonicalType(readType(F, Record, Idx))); case DeclarationName::CXXOperatorName: - return Context->DeclarationNames.getCXXOperatorName( + return Context.DeclarationNames.getCXXOperatorName( (OverloadedOperatorKind)Record[Idx++]); case DeclarationName::CXXLiteralOperatorName: - return Context->DeclarationNames.getCXXLiteralOperatorName( + return Context.DeclarationNames.getCXXLiteralOperatorName( GetIdentifierInfo(F, Record, Idx)); case DeclarationName::CXXUsingDirective: @@ -5056,7 +5024,7 @@ void ASTReader::ReadQualifierInfo(Module &F, QualifierInfo &Info, unsigned NumTPLists = Record[Idx++]; Info.NumTemplParamLists = NumTPLists; if (NumTPLists) { - Info.TemplParamLists = new (*Context) TemplateParameterList*[NumTPLists]; + Info.TemplParamLists = new (Context) TemplateParameterList*[NumTPLists]; for (unsigned i=0; i != NumTPLists; ++i) Info.TemplParamLists[i] = ReadTemplateParameterList(F, Record, Idx); } @@ -5076,23 +5044,23 @@ ASTReader::ReadTemplateName(Module &F, const RecordData &Record, while (size--) Decls.addDecl(ReadDeclAs(F, Record, Idx)); - return Context->getOverloadedTemplateName(Decls.begin(), Decls.end()); + return Context.getOverloadedTemplateName(Decls.begin(), Decls.end()); } case TemplateName::QualifiedTemplate: { NestedNameSpecifier *NNS = ReadNestedNameSpecifier(F, Record, Idx); bool hasTemplKeyword = Record[Idx++]; TemplateDecl *Template = ReadDeclAs(F, Record, Idx); - return Context->getQualifiedTemplateName(NNS, hasTemplKeyword, Template); + return Context.getQualifiedTemplateName(NNS, hasTemplKeyword, Template); } case TemplateName::DependentTemplate: { NestedNameSpecifier *NNS = ReadNestedNameSpecifier(F, Record, Idx); if (Record[Idx++]) // isIdentifier - return Context->getDependentTemplateName(NNS, + return Context.getDependentTemplateName(NNS, GetIdentifierInfo(F, Record, Idx)); - return Context->getDependentTemplateName(NNS, + return Context.getDependentTemplateName(NNS, (OverloadedOperatorKind)Record[Idx++]); } @@ -5101,7 +5069,7 @@ ASTReader::ReadTemplateName(Module &F, const RecordData &Record, = ReadDeclAs(F, Record, Idx); if (!param) return TemplateName(); TemplateName replacement = ReadTemplateName(F, Record, Idx); - return Context->getSubstTemplateTemplateParm(param, replacement); + return Context.getSubstTemplateTemplateParm(param, replacement); } case TemplateName::SubstTemplateTemplateParmPack: { @@ -5114,7 +5082,7 @@ ASTReader::ReadTemplateName(Module &F, const RecordData &Record, if (ArgPack.getKind() != TemplateArgument::Pack) return TemplateName(); - return Context->getSubstTemplateTemplateParmPack(Param, ArgPack); + return Context.getSubstTemplateTemplateParmPack(Param, ArgPack); } } @@ -5151,7 +5119,7 @@ ASTReader::ReadTemplateArgument(Module &F, return TemplateArgument(ReadExpr(F)); case TemplateArgument::Pack: { unsigned NumArgs = Record[Idx++]; - TemplateArgument *Args = new (*Context) TemplateArgument[NumArgs]; + TemplateArgument *Args = new (Context) TemplateArgument[NumArgs]; for (unsigned I = 0; I != NumArgs; ++I) Args[I] = ReadTemplateArgument(F, Record, Idx); return TemplateArgument(Args, NumArgs); @@ -5176,7 +5144,7 @@ ASTReader::ReadTemplateParameterList(Module &F, Params.push_back(ReadDeclAs(F, Record, Idx)); TemplateParameterList* TemplateParams = - TemplateParameterList::Create(*Context, TemplateLoc, LAngleLoc, + TemplateParameterList::Create(Context, TemplateLoc, LAngleLoc, Params.data(), Params.size(), RAngleLoc); return TemplateParams; } @@ -5225,10 +5193,8 @@ ASTReader::ReadCXXCtorInitializers(Module &F, const RecordData &Record, CXXCtorInitializer **CtorInitializers = 0; unsigned NumInitializers = Record[Idx++]; if (NumInitializers) { - ASTContext &C = *getContext(); - CtorInitializers - = new (C) CXXCtorInitializer*[NumInitializers]; + = new (Context) CXXCtorInitializer*[NumInitializers]; for (unsigned i=0; i != NumInitializers; ++i) { TypeSourceInfo *BaseClassInfo = 0; bool IsBaseVirtual = false; @@ -5274,22 +5240,22 @@ ASTReader::ReadCXXCtorInitializers(Module &F, const RecordData &Record, CXXCtorInitializer *BOMInit; if (Type == CTOR_INITIALIZER_BASE) { - BOMInit = new (C) CXXCtorInitializer(C, BaseClassInfo, IsBaseVirtual, + BOMInit = new (Context) CXXCtorInitializer(Context, BaseClassInfo, IsBaseVirtual, LParenLoc, Init, RParenLoc, MemberOrEllipsisLoc); } else if (Type == CTOR_INITIALIZER_DELEGATING) { - BOMInit = new (C) CXXCtorInitializer(C, MemberOrEllipsisLoc, LParenLoc, + BOMInit = new (Context) CXXCtorInitializer(Context, MemberOrEllipsisLoc, LParenLoc, Target, Init, RParenLoc); } else if (IsWritten) { if (Member) - BOMInit = new (C) CXXCtorInitializer(C, Member, MemberOrEllipsisLoc, + BOMInit = new (Context) CXXCtorInitializer(Context, Member, MemberOrEllipsisLoc, LParenLoc, Init, RParenLoc); else - BOMInit = new (C) CXXCtorInitializer(C, IndirectMember, + BOMInit = new (Context) CXXCtorInitializer(Context, IndirectMember, MemberOrEllipsisLoc, LParenLoc, Init, RParenLoc); } else { - BOMInit = CXXCtorInitializer::Create(C, Member, MemberOrEllipsisLoc, + BOMInit = CXXCtorInitializer::Create(Context, Member, MemberOrEllipsisLoc, LParenLoc, Init, RParenLoc, Indices.data(), Indices.size()); } @@ -5314,19 +5280,19 @@ ASTReader::ReadNestedNameSpecifier(Module &F, switch (Kind) { case NestedNameSpecifier::Identifier: { IdentifierInfo *II = GetIdentifierInfo(F, Record, Idx); - NNS = NestedNameSpecifier::Create(*Context, Prev, II); + NNS = NestedNameSpecifier::Create(Context, Prev, II); break; } case NestedNameSpecifier::Namespace: { NamespaceDecl *NS = ReadDeclAs(F, Record, Idx); - NNS = NestedNameSpecifier::Create(*Context, Prev, NS); + NNS = NestedNameSpecifier::Create(Context, Prev, NS); break; } case NestedNameSpecifier::NamespaceAlias: { NamespaceAliasDecl *Alias =ReadDeclAs(F, Record, Idx); - NNS = NestedNameSpecifier::Create(*Context, Prev, Alias); + NNS = NestedNameSpecifier::Create(Context, Prev, Alias); break; } @@ -5337,12 +5303,12 @@ ASTReader::ReadNestedNameSpecifier(Module &F, return 0; bool Template = Record[Idx++]; - NNS = NestedNameSpecifier::Create(*Context, Prev, Template, T); + NNS = NestedNameSpecifier::Create(Context, Prev, Template, T); break; } case NestedNameSpecifier::Global: { - NNS = NestedNameSpecifier::GlobalSpecifier(*Context); + NNS = NestedNameSpecifier::GlobalSpecifier(Context); // No associated value, and there can't be a prefix. break; } @@ -5364,21 +5330,21 @@ ASTReader::ReadNestedNameSpecifierLoc(Module &F, const RecordData &Record, case NestedNameSpecifier::Identifier: { IdentifierInfo *II = GetIdentifierInfo(F, Record, Idx); SourceRange Range = ReadSourceRange(F, Record, Idx); - Builder.Extend(*Context, II, Range.getBegin(), Range.getEnd()); + Builder.Extend(Context, II, Range.getBegin(), Range.getEnd()); break; } case NestedNameSpecifier::Namespace: { NamespaceDecl *NS = ReadDeclAs(F, Record, Idx); SourceRange Range = ReadSourceRange(F, Record, Idx); - Builder.Extend(*Context, NS, Range.getBegin(), Range.getEnd()); + Builder.Extend(Context, NS, Range.getBegin(), Range.getEnd()); break; } case NestedNameSpecifier::NamespaceAlias: { NamespaceAliasDecl *Alias =ReadDeclAs(F, Record, Idx); SourceRange Range = ReadSourceRange(F, Record, Idx); - Builder.Extend(*Context, Alias, Range.getBegin(), Range.getEnd()); + Builder.Extend(Context, Alias, Range.getBegin(), Range.getEnd()); break; } @@ -5391,7 +5357,7 @@ ASTReader::ReadNestedNameSpecifierLoc(Module &F, const RecordData &Record, SourceLocation ColonColonLoc = ReadSourceLocation(F, Record, Idx); // FIXME: 'template' keyword location not saved anywhere, so we fake it. - Builder.Extend(*Context, + Builder.Extend(Context, Template? T->getTypeLoc().getBeginLoc() : SourceLocation(), T->getTypeLoc(), ColonColonLoc); break; @@ -5399,13 +5365,13 @@ ASTReader::ReadNestedNameSpecifierLoc(Module &F, const RecordData &Record, case NestedNameSpecifier::Global: { SourceLocation ColonColonLoc = ReadSourceLocation(F, Record, Idx); - Builder.MakeGlobal(*Context, ColonColonLoc); + Builder.MakeGlobal(Context, ColonColonLoc); break; } } } - return Builder.getWithLocInContext(*Context); + return Builder.getWithLocInContext(Context); } SourceRange @@ -5460,7 +5426,7 @@ CXXTemporary *ASTReader::ReadCXXTemporary(Module &F, const RecordData &Record, unsigned &Idx) { CXXDestructorDecl *Decl = ReadDeclAs(F, Record, Idx); - return CXXTemporary::Create(*Context, Decl); + return CXXTemporary::Create(Context, Decl); } DiagnosticBuilder ASTReader::Diag(unsigned DiagID) { @@ -5530,7 +5496,7 @@ ASTReader::ASTReader(Preprocessor &PP, ASTContext &Context, bool DisableStatCache) : Listener(new PCHValidator(PP, *this)), DeserializationListener(0), SourceMgr(PP.getSourceManager()), FileMgr(PP.getFileManager()), - Diags(PP.getDiagnostics()), SemaObj(0), PP(&PP), Context(&Context), + Diags(PP.getDiagnostics()), SemaObj(0), PP(&PP), Context(Context), Consumer(0), ModuleMgr(FileMgr.getFileSystemOptions()), RelocatablePCH(false), isysroot(isysroot), DisableValidation(DisableValidation), diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp index 1abf0d39ee..c584181a4c 100644 --- a/lib/Serialization/ASTReaderDecl.cpp +++ b/lib/Serialization/ASTReaderDecl.cpp @@ -231,7 +231,7 @@ void ASTDeclReader::VisitDecl(Decl *D) { // unit DeclContext as a placeholder. DeclContextIDForTemplateParmDecl = ReadDeclID(Record, Idx); LexicalDeclContextIDForTemplateParmDecl = ReadDeclID(Record, Idx); - D->setDeclContext(Reader.getContext()->getTranslationUnitDecl()); + D->setDeclContext(Reader.getContext().getTranslationUnitDecl()); } else { D->setDeclContext(ReadDeclAs(Record, Idx)); D->setLexicalDeclContext(ReadDeclAs(Record, Idx)); @@ -286,7 +286,7 @@ void ASTDeclReader::VisitTagDecl(TagDecl *TD) { TD->setEmbeddedInDeclarator(Record[Idx++]); TD->setRBraceLoc(ReadSourceLocation(Record, Idx)); if (Record[Idx++]) { // hasExtInfo - TagDecl::ExtInfo *Info = new (*Reader.getContext()) TagDecl::ExtInfo(); + TagDecl::ExtInfo *Info = new (Reader.getContext()) TagDecl::ExtInfo(); ReadQualifierInfo(*Info, Record, Idx); TD->TypedefNameDeclOrQualifier = Info; } else @@ -332,7 +332,7 @@ void ASTDeclReader::VisitDeclaratorDecl(DeclaratorDecl *DD) { DD->setInnerLocStart(ReadSourceLocation(Record, Idx)); if (Record[Idx++]) { // hasExtInfo DeclaratorDecl::ExtInfo *Info - = new (*Reader.getContext()) DeclaratorDecl::ExtInfo(); + = new (Reader.getContext()) DeclaratorDecl::ExtInfo(); ReadQualifierInfo(*Info, Record, Idx); DD->DeclInfo = Info; } @@ -357,7 +357,7 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { FunctionDecl *InstFD = ReadDeclAs(Record, Idx); TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++]; SourceLocation POI = ReadSourceLocation(Record, Idx); - FD->setInstantiationOfMemberFunction(*Reader.getContext(), InstFD, TSK); + FD->setInstantiationOfMemberFunction(Reader.getContext(), InstFD, TSK); FD->getMemberSpecializationInfo()->setPointOfInstantiation(POI); break; } @@ -386,7 +386,7 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { SourceLocation POI = ReadSourceLocation(Record, Idx); - ASTContext &C = *Reader.getContext(); + ASTContext &C = Reader.getContext(); TemplateArgumentList *TemplArgList = TemplateArgumentList::CreateCopy(C, TemplArgs.data(), TemplArgs.size()); TemplateArgumentListInfo *TemplArgsInfo @@ -434,7 +434,7 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { TemplArgs.setLAngleLoc(ReadSourceLocation(Record, Idx)); TemplArgs.setRAngleLoc(ReadSourceLocation(Record, Idx)); - FD->setDependentTemplateSpecialization(*Reader.getContext(), + FD->setDependentTemplateSpecialization(Reader.getContext(), TemplDecls, TemplArgs); break; } @@ -465,7 +465,7 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { Params.reserve(NumParams); for (unsigned I = 0; I != NumParams; ++I) Params.push_back(ReadDeclAs(Record, Idx)); - FD->setParams(*Reader.getContext(), Params.data(), NumParams); + FD->setParams(Reader.getContext(), Params.data(), NumParams); } void ASTDeclReader::VisitObjCMethodDecl(ObjCMethodDecl *MD) { @@ -493,7 +493,7 @@ void ASTDeclReader::VisitObjCMethodDecl(ObjCMethodDecl *MD) { Params.reserve(NumParams); for (unsigned I = 0; I != NumParams; ++I) Params.push_back(ReadDeclAs(Record, Idx)); - MD->setMethodParams(*Reader.getContext(), Params.data(), NumParams, + MD->setMethodParams(Reader.getContext(), Params.data(), NumParams, NumParams); } @@ -520,7 +520,7 @@ void ASTDeclReader::VisitObjCInterfaceDecl(ObjCInterfaceDecl *ID) { for (unsigned I = 0; I != NumProtocols; ++I) ProtoLocs.push_back(ReadSourceLocation(Record, Idx)); ID->setProtocolList(Protocols.data(), NumProtocols, ProtoLocs.data(), - *Reader.getContext()); + Reader.getContext()); // Read the transitive closure of protocols referenced by this class. NumProtocols = Record[Idx++]; @@ -529,7 +529,7 @@ void ASTDeclReader::VisitObjCInterfaceDecl(ObjCInterfaceDecl *ID) { for (unsigned I = 0; I != NumProtocols; ++I) Protocols.push_back(ReadDeclAs(Record, Idx)); ID->AllReferencedProtocols.set(Protocols.data(), NumProtocols, - *Reader.getContext()); + Reader.getContext()); // Read the ivars. unsigned NumIvars = Record[Idx++]; @@ -571,7 +571,7 @@ void ASTDeclReader::VisitObjCProtocolDecl(ObjCProtocolDecl *PD) { for (unsigned I = 0; I != NumProtoRefs; ++I) ProtoLocs.push_back(ReadSourceLocation(Record, Idx)); PD->setProtocolList(ProtoRefs.data(), NumProtoRefs, ProtoLocs.data(), - *Reader.getContext()); + Reader.getContext()); } void ASTDeclReader::VisitObjCAtDefsFieldDecl(ObjCAtDefsFieldDecl *FD) { @@ -582,7 +582,7 @@ void ASTDeclReader::VisitObjCClassDecl(ObjCClassDecl *CD) { VisitDecl(CD); ObjCInterfaceDecl *ClassRef = ReadDeclAs(Record, Idx); SourceLocation SLoc = ReadSourceLocation(Record, Idx); - CD->setClass(*Reader.getContext(), ClassRef, SLoc); + CD->setClass(Reader.getContext(), ClassRef, SLoc); } void ASTDeclReader::VisitObjCForwardProtocolDecl(ObjCForwardProtocolDecl *FPD) { @@ -597,7 +597,7 @@ void ASTDeclReader::VisitObjCForwardProtocolDecl(ObjCForwardProtocolDecl *FPD) { for (unsigned I = 0; I != NumProtoRefs; ++I) ProtoLocs.push_back(ReadSourceLocation(Record, Idx)); FPD->setProtocolList(ProtoRefs.data(), NumProtoRefs, ProtoLocs.data(), - *Reader.getContext()); + Reader.getContext()); } void ASTDeclReader::VisitObjCCategoryDecl(ObjCCategoryDecl *CD) { @@ -613,7 +613,7 @@ void ASTDeclReader::VisitObjCCategoryDecl(ObjCCategoryDecl *CD) { for (unsigned I = 0; I != NumProtoRefs; ++I) ProtoLocs.push_back(ReadSourceLocation(Record, Idx)); CD->setProtocolList(ProtoRefs.data(), NumProtoRefs, ProtoLocs.data(), - *Reader.getContext()); + Reader.getContext()); CD->NextClassCategory = ReadDeclAs(Record, Idx); CD->setHasSynthBitfield(Record[Idx++]); CD->setAtLoc(ReadSourceLocation(Record, Idx)); @@ -683,7 +683,7 @@ void ASTDeclReader::VisitFieldDecl(FieldDecl *FD) { FD->setInClassInitializer(Reader.ReadExpr(F)); if (!FD->getDeclName()) { if (FieldDecl *Tmpl = ReadDeclAs(Record, Idx)) - Reader.getContext()->setInstantiatedFromUnnamedFieldDecl(FD, Tmpl); + Reader.getContext().setInstantiatedFromUnnamedFieldDecl(FD, Tmpl); } } @@ -692,7 +692,7 @@ void ASTDeclReader::VisitIndirectFieldDecl(IndirectFieldDecl *FD) { FD->ChainingSize = Record[Idx++]; assert(FD->ChainingSize >= 2 && "Anonymous chaining must be >= 2"); - FD->Chaining = new (*Reader.getContext())NamedDecl*[FD->ChainingSize]; + FD->Chaining = new (Reader.getContext())NamedDecl*[FD->ChainingSize]; for (unsigned I = 0; I != FD->ChainingSize; ++I) FD->Chaining[I] = ReadDeclAs(Record, Idx); @@ -716,7 +716,7 @@ void ASTDeclReader::VisitVarDecl(VarDecl *VD) { VarDecl *Tmpl = ReadDeclAs(Record, Idx); TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++]; SourceLocation POI = ReadSourceLocation(Record, Idx); - Reader.getContext()->setInstantiatedFromStaticDataMember(VD, Tmpl, TSK,POI); + Reader.getContext().setInstantiatedFromStaticDataMember(VD, Tmpl, TSK,POI); } } @@ -773,7 +773,7 @@ void ASTDeclReader::VisitBlockDecl(BlockDecl *BD) { captures.push_back(BlockDecl::Capture(decl, byRef, nested, copyExpr)); } - BD->setCaptures(*Reader.getContext(), captures.begin(), + BD->setCaptures(Reader.getContext(), captures.begin(), captures.end(), capturesCXXThis); } @@ -820,7 +820,7 @@ void ASTDeclReader::VisitUsingDecl(UsingDecl *D) { D->FirstUsingShadow = ReadDeclAs(Record, Idx); D->setTypeName(Record[Idx++]); if (NamedDecl *Pattern = ReadDeclAs(Record, Idx)) - Reader.getContext()->setInstantiatedFromUsingDecl(D, Pattern); + Reader.getContext().setInstantiatedFromUsingDecl(D, Pattern); } void ASTDeclReader::VisitUsingShadowDecl(UsingShadowDecl *D) { @@ -829,7 +829,7 @@ void ASTDeclReader::VisitUsingShadowDecl(UsingShadowDecl *D) { D->UsingOrNextShadow = ReadDeclAs(Record, Idx); UsingShadowDecl *Pattern = ReadDeclAs(Record, Idx); if (Pattern) - Reader.getContext()->setInstantiatedFromUsingShadowDecl(D, Pattern); + Reader.getContext().setInstantiatedFromUsingShadowDecl(D, Pattern); } void ASTDeclReader::VisitUsingDirectiveDecl(UsingDirectiveDecl *D) { @@ -911,7 +911,7 @@ void ASTDeclReader::InitializeCXXDefinitionData(CXXRecordDecl *D, CXXRecordDecl *DefinitionDecl, const RecordData &Record, unsigned &Idx) { - ASTContext &C = *Reader.getContext(); + ASTContext &C = Reader.getContext(); if (D == DefinitionDecl) { D->DefinitionData = new (C) struct CXXRecordDecl::DefinitionData(D); @@ -947,7 +947,7 @@ void ASTDeclReader::VisitCXXRecordDecl(CXXRecordDecl *D) { CXXRecordDecl *DefinitionDecl = ReadDeclAs(Record, Idx); InitializeCXXDefinitionData(D, DefinitionDecl, Record, Idx); - ASTContext &C = *Reader.getContext(); + ASTContext &C = Reader.getContext(); enum CXXRecKind { CXXRecNotTemplate = 0, CXXRecTemplate, CXXRecMemberSpecialization @@ -986,7 +986,7 @@ void ASTDeclReader::VisitCXXMethodDecl(CXXMethodDecl *D) { // Avoid invariant checking of CXXMethodDecl::addOverriddenMethod, // MD may be initializing. if (CXXMethodDecl *MD = ReadDeclAs(Record, Idx)) - Reader.getContext()->addOverriddenMethod(D, MD); + Reader.getContext().addOverriddenMethod(D, MD); } } @@ -1071,7 +1071,7 @@ void ASTDeclReader::VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D) { if (PreviousDeclID != FirstDeclID) Reader.PendingPreviousDecls.push_back(std::make_pair(D, PreviousDeclID)); } else { - D->CommonOrPrev = D->newCommon(*Reader.getContext()); + D->CommonOrPrev = D->newCommon(Reader.getContext()); if (RedeclarableTemplateDecl *RTD = ReadDeclAs(Record, Idx)) { assert(RTD->getKind() == D->getKind() && @@ -1130,7 +1130,7 @@ void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) { ClassTemplateDecl::Common *CommonPtr = D->getCommonPtr(); CommonPtr->LazySpecializations - = new (*Reader.getContext()) DeclID [SpecIDs.size()]; + = new (Reader.getContext()) DeclID [SpecIDs.size()]; memcpy(CommonPtr->LazySpecializations, SpecIDs.data(), SpecIDs.size() * sizeof(DeclID)); } @@ -1143,7 +1143,7 @@ void ASTDeclReader::VisitClassTemplateSpecializationDecl( ClassTemplateSpecializationDecl *D) { VisitCXXRecordDecl(D); - ASTContext &C = *Reader.getContext(); + ASTContext &C = Reader.getContext(); if (Decl *InstD = ReadDecl(Record, Idx)) { if (ClassTemplateDecl *CTD = dyn_cast(InstD)) { D->SpecializedTemplate = CTD; @@ -1195,7 +1195,7 @@ void ASTDeclReader::VisitClassTemplatePartialSpecializationDecl( ClassTemplatePartialSpecializationDecl *D) { VisitClassTemplateSpecializationDecl(D); - ASTContext &C = *Reader.getContext(); + ASTContext &C = Reader.getContext(); D->TemplateParams = Reader.ReadTemplateParameterList(F, Record, Idx); unsigned NumArgs = Record[Idx++]; @@ -1476,211 +1476,211 @@ Decl *ASTReader::ReadDeclRecord(DeclID ID) { assert(false && "Record cannot be de-serialized with ReadDeclRecord"); break; case DECL_TYPEDEF: - D = TypedefDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + D = TypedefDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, 0); break; case DECL_TYPEALIAS: - D = TypeAliasDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + D = TypeAliasDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, 0); break; case DECL_ENUM: - D = EnumDecl::Create(*Context, Decl::EmptyShell()); + D = EnumDecl::Create(Context, Decl::EmptyShell()); break; case DECL_RECORD: - D = RecordDecl::Create(*Context, Decl::EmptyShell()); + D = RecordDecl::Create(Context, Decl::EmptyShell()); break; case DECL_ENUM_CONSTANT: - D = EnumConstantDecl::Create(*Context, 0, SourceLocation(), 0, QualType(), + D = EnumConstantDecl::Create(Context, 0, SourceLocation(), 0, QualType(), 0, llvm::APSInt()); break; case DECL_FUNCTION: - D = FunctionDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + D = FunctionDecl::Create(Context, 0, SourceLocation(), SourceLocation(), DeclarationName(), QualType(), 0); break; case DECL_LINKAGE_SPEC: - D = LinkageSpecDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + D = LinkageSpecDecl::Create(Context, 0, SourceLocation(), SourceLocation(), (LinkageSpecDecl::LanguageIDs)0, SourceLocation()); break; case DECL_LABEL: - D = LabelDecl::Create(*Context, 0, SourceLocation(), 0); + D = LabelDecl::Create(Context, 0, SourceLocation(), 0); break; case DECL_NAMESPACE: - D = NamespaceDecl::Create(*Context, 0, SourceLocation(), + D = NamespaceDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0); break; case DECL_NAMESPACE_ALIAS: - D = NamespaceAliasDecl::Create(*Context, 0, SourceLocation(), + D = NamespaceAliasDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, NestedNameSpecifierLoc(), SourceLocation(), 0); break; case DECL_USING: - D = UsingDecl::Create(*Context, 0, SourceLocation(), + D = UsingDecl::Create(Context, 0, SourceLocation(), NestedNameSpecifierLoc(), DeclarationNameInfo(), false); break; case DECL_USING_SHADOW: - D = UsingShadowDecl::Create(*Context, 0, SourceLocation(), 0, 0); + D = UsingShadowDecl::Create(Context, 0, SourceLocation(), 0, 0); break; case DECL_USING_DIRECTIVE: - D = UsingDirectiveDecl::Create(*Context, 0, SourceLocation(), + D = UsingDirectiveDecl::Create(Context, 0, SourceLocation(), SourceLocation(), NestedNameSpecifierLoc(), SourceLocation(), 0, 0); break; case DECL_UNRESOLVED_USING_VALUE: - D = UnresolvedUsingValueDecl::Create(*Context, 0, SourceLocation(), + D = UnresolvedUsingValueDecl::Create(Context, 0, SourceLocation(), NestedNameSpecifierLoc(), DeclarationNameInfo()); break; case DECL_UNRESOLVED_USING_TYPENAME: - D = UnresolvedUsingTypenameDecl::Create(*Context, 0, SourceLocation(), + D = UnresolvedUsingTypenameDecl::Create(Context, 0, SourceLocation(), SourceLocation(), NestedNameSpecifierLoc(), SourceLocation(), DeclarationName()); break; case DECL_CXX_RECORD: - D = CXXRecordDecl::Create(*Context, Decl::EmptyShell()); + D = CXXRecordDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CXX_METHOD: - D = CXXMethodDecl::Create(*Context, 0, SourceLocation(), + D = CXXMethodDecl::Create(Context, 0, SourceLocation(), DeclarationNameInfo(), QualType(), 0, false, SC_None, false, false, SourceLocation()); break; case DECL_CXX_CONSTRUCTOR: - D = CXXConstructorDecl::Create(*Context, Decl::EmptyShell()); + D = CXXConstructorDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CXX_DESTRUCTOR: - D = CXXDestructorDecl::Create(*Context, Decl::EmptyShell()); + D = CXXDestructorDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CXX_CONVERSION: - D = CXXConversionDecl::Create(*Context, Decl::EmptyShell()); + D = CXXConversionDecl::Create(Context, Decl::EmptyShell()); break; case DECL_ACCESS_SPEC: - D = AccessSpecDecl::Create(*Context, Decl::EmptyShell()); + D = AccessSpecDecl::Create(Context, Decl::EmptyShell()); break; case DECL_FRIEND: - D = FriendDecl::Create(*Context, Decl::EmptyShell()); + D = FriendDecl::Create(Context, Decl::EmptyShell()); break; case DECL_FRIEND_TEMPLATE: - D = FriendTemplateDecl::Create(*Context, Decl::EmptyShell()); + D = FriendTemplateDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CLASS_TEMPLATE: - D = ClassTemplateDecl::Create(*Context, Decl::EmptyShell()); + D = ClassTemplateDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CLASS_TEMPLATE_SPECIALIZATION: - D = ClassTemplateSpecializationDecl::Create(*Context, Decl::EmptyShell()); + D = ClassTemplateSpecializationDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION: - D = ClassTemplatePartialSpecializationDecl::Create(*Context, + D = ClassTemplatePartialSpecializationDecl::Create(Context, Decl::EmptyShell()); break; case DECL_CLASS_SCOPE_FUNCTION_SPECIALIZATION: - D = ClassScopeFunctionSpecializationDecl::Create(*Context, + D = ClassScopeFunctionSpecializationDecl::Create(Context, Decl::EmptyShell()); break; case DECL_FUNCTION_TEMPLATE: - D = FunctionTemplateDecl::Create(*Context, Decl::EmptyShell()); + D = FunctionTemplateDecl::Create(Context, Decl::EmptyShell()); break; case DECL_TEMPLATE_TYPE_PARM: - D = TemplateTypeParmDecl::Create(*Context, Decl::EmptyShell()); + D = TemplateTypeParmDecl::Create(Context, Decl::EmptyShell()); break; case DECL_NON_TYPE_TEMPLATE_PARM: - D = NonTypeTemplateParmDecl::Create(*Context, 0, SourceLocation(), + D = NonTypeTemplateParmDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, 0, 0, QualType(), false, 0); break; case DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK: - D = NonTypeTemplateParmDecl::Create(*Context, 0, SourceLocation(), + D = NonTypeTemplateParmDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, 0, 0, QualType(), 0, 0, Record[Idx++], 0); break; case DECL_TEMPLATE_TEMPLATE_PARM: - D = TemplateTemplateParmDecl::Create(*Context, 0, SourceLocation(), 0, 0, + D = TemplateTemplateParmDecl::Create(Context, 0, SourceLocation(), 0, 0, false, 0, 0); break; case DECL_TYPE_ALIAS_TEMPLATE: - D = TypeAliasTemplateDecl::Create(*Context, Decl::EmptyShell()); + D = TypeAliasTemplateDecl::Create(Context, Decl::EmptyShell()); break; case DECL_STATIC_ASSERT: - D = StaticAssertDecl::Create(*Context, 0, SourceLocation(), 0, 0, + D = StaticAssertDecl::Create(Context, 0, SourceLocation(), 0, 0, SourceLocation()); break; case DECL_OBJC_METHOD: - D = ObjCMethodDecl::Create(*Context, SourceLocation(), SourceLocation(), + D = ObjCMethodDecl::Create(Context, SourceLocation(), SourceLocation(), Selector(), QualType(), 0, 0); break; case DECL_OBJC_INTERFACE: - D = ObjCInterfaceDecl::Create(*Context, 0, SourceLocation(), 0); + D = ObjCInterfaceDecl::Create(Context, 0, SourceLocation(), 0); break; case DECL_OBJC_IVAR: - D = ObjCIvarDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), + D = ObjCIvarDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, QualType(), 0, ObjCIvarDecl::None); break; case DECL_OBJC_PROTOCOL: - D = ObjCProtocolDecl::Create(*Context, 0, SourceLocation(), 0); + D = ObjCProtocolDecl::Create(Context, 0, SourceLocation(), 0); break; case DECL_OBJC_AT_DEFS_FIELD: - D = ObjCAtDefsFieldDecl::Create(*Context, 0, SourceLocation(), + D = ObjCAtDefsFieldDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, QualType(), 0); break; case DECL_OBJC_CLASS: - D = ObjCClassDecl::Create(*Context, 0, SourceLocation()); + D = ObjCClassDecl::Create(Context, 0, SourceLocation()); break; case DECL_OBJC_FORWARD_PROTOCOL: - D = ObjCForwardProtocolDecl::Create(*Context, 0, SourceLocation()); + D = ObjCForwardProtocolDecl::Create(Context, 0, SourceLocation()); break; case DECL_OBJC_CATEGORY: - D = ObjCCategoryDecl::Create(*Context, Decl::EmptyShell()); + D = ObjCCategoryDecl::Create(Context, Decl::EmptyShell()); break; case DECL_OBJC_CATEGORY_IMPL: - D = ObjCCategoryImplDecl::Create(*Context, 0, SourceLocation(), 0, 0); + D = ObjCCategoryImplDecl::Create(Context, 0, SourceLocation(), 0, 0); break; case DECL_OBJC_IMPLEMENTATION: - D = ObjCImplementationDecl::Create(*Context, 0, SourceLocation(), 0, 0); + D = ObjCImplementationDecl::Create(Context, 0, SourceLocation(), 0, 0); break; case DECL_OBJC_COMPATIBLE_ALIAS: - D = ObjCCompatibleAliasDecl::Create(*Context, 0, SourceLocation(), 0, 0); + D = ObjCCompatibleAliasDecl::Create(Context, 0, SourceLocation(), 0, 0); break; case DECL_OBJC_PROPERTY: - D = ObjCPropertyDecl::Create(*Context, 0, SourceLocation(), 0, SourceLocation(), + D = ObjCPropertyDecl::Create(Context, 0, SourceLocation(), 0, SourceLocation(), 0); break; case DECL_OBJC_PROPERTY_IMPL: - D = ObjCPropertyImplDecl::Create(*Context, 0, SourceLocation(), + D = ObjCPropertyImplDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, ObjCPropertyImplDecl::Dynamic, 0, SourceLocation()); break; case DECL_FIELD: - D = FieldDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), 0, + D = FieldDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, QualType(), 0, 0, false, false); break; case DECL_INDIRECTFIELD: - D = IndirectFieldDecl::Create(*Context, 0, SourceLocation(), 0, QualType(), + D = IndirectFieldDecl::Create(Context, 0, SourceLocation(), 0, QualType(), 0, 0); break; case DECL_VAR: - D = VarDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), 0, + D = VarDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, QualType(), 0, SC_None, SC_None); break; case DECL_IMPLICIT_PARAM: - D = ImplicitParamDecl::Create(*Context, 0, SourceLocation(), 0, QualType()); + D = ImplicitParamDecl::Create(Context, 0, SourceLocation(), 0, QualType()); break; case DECL_PARM_VAR: - D = ParmVarDecl::Create(*Context, 0, SourceLocation(), SourceLocation(), 0, + D = ParmVarDecl::Create(Context, 0, SourceLocation(), SourceLocation(), 0, QualType(), 0, SC_None, SC_None, 0); break; case DECL_FILE_SCOPE_ASM: - D = FileScopeAsmDecl::Create(*Context, 0, 0, SourceLocation(), + D = FileScopeAsmDecl::Create(Context, 0, 0, SourceLocation(), SourceLocation()); break; case DECL_BLOCK: - D = BlockDecl::Create(*Context, 0, SourceLocation()); + D = BlockDecl::Create(Context, 0, SourceLocation()); break; case DECL_CXX_BASE_SPECIFIERS: Error("attempt to read a C++ base-specifier record as a declaration"); diff --git a/lib/Serialization/ASTReaderStmt.cpp b/lib/Serialization/ASTReaderStmt.cpp index a402ad05a0..02a8c68028 100644 --- a/lib/Serialization/ASTReaderStmt.cpp +++ b/lib/Serialization/ASTReaderStmt.cpp @@ -118,7 +118,7 @@ void ASTStmtReader::VisitCompoundStmt(CompoundStmt *S) { unsigned NumStmts = Record[Idx++]; while (NumStmts--) Stmts.push_back(Reader.ReadSubStmt()); - S->setStmts(*Reader.getContext(), Stmts.data(), Stmts.size()); + S->setStmts(Reader.getContext(), Stmts.data(), Stmts.size()); S->setLBracLoc(ReadSourceLocation(Record, Idx)); S->setRBracLoc(ReadSourceLocation(Record, Idx)); } @@ -156,7 +156,7 @@ void ASTStmtReader::VisitLabelStmt(LabelStmt *S) { void ASTStmtReader::VisitIfStmt(IfStmt *S) { VisitStmt(S); - S->setConditionVariable(*Reader.getContext(), + S->setConditionVariable(Reader.getContext(), ReadDeclAs(Record, Idx)); S->setCond(Reader.ReadSubExpr()); S->setThen(Reader.ReadSubStmt()); @@ -167,7 +167,7 @@ void ASTStmtReader::VisitIfStmt(IfStmt *S) { void ASTStmtReader::VisitSwitchStmt(SwitchStmt *S) { VisitStmt(S); - S->setConditionVariable(*Reader.getContext(), + S->setConditionVariable(Reader.getContext(), ReadDeclAs(Record, Idx)); S->setCond(Reader.ReadSubExpr()); S->setBody(Reader.ReadSubStmt()); @@ -189,7 +189,7 @@ void ASTStmtReader::VisitSwitchStmt(SwitchStmt *S) { void ASTStmtReader::VisitWhileStmt(WhileStmt *S) { VisitStmt(S); - S->setConditionVariable(*Reader.getContext(), + S->setConditionVariable(Reader.getContext(), ReadDeclAs(Record, Idx)); S->setCond(Reader.ReadSubExpr()); @@ -210,7 +210,7 @@ void ASTStmtReader::VisitForStmt(ForStmt *S) { VisitStmt(S); S->setInit(Reader.ReadSubStmt()); S->setCond(Reader.ReadSubExpr()); - S->setConditionVariable(*Reader.getContext(), + S->setConditionVariable(Reader.getContext(), ReadDeclAs(Record, Idx)); S->setInc(Reader.ReadSubExpr()); S->setBody(Reader.ReadSubStmt()); @@ -263,7 +263,7 @@ void ASTStmtReader::VisitDeclStmt(DeclStmt *S) { Decls.reserve(Record.size() - Idx); for (unsigned N = Record.size(); Idx != N; ) Decls.push_back(ReadDecl(Record, Idx)); - S->setDeclGroup(DeclGroupRef(DeclGroup::Create(*Reader.getContext(), + S->setDeclGroup(DeclGroupRef(DeclGroup::Create(Reader.getContext(), Decls.data(), Decls.size()))); } @@ -297,7 +297,7 @@ void ASTStmtReader::VisitAsmStmt(AsmStmt *S) { for (unsigned I = 0; I != NumClobbers; ++I) Clobbers.push_back(cast_or_null(Reader.ReadSubStmt())); - S->setOutputsAndInputsAndClobbers(*Reader.getContext(), + S->setOutputsAndInputsAndClobbers(Reader.getContext(), Names.data(), Constraints.data(), Exprs.data(), NumOutputs, NumInputs, Clobbers.data(), NumClobbers); @@ -350,12 +350,12 @@ void ASTStmtReader::VisitDeclRefExpr(DeclRefExpr *E) { void ASTStmtReader::VisitIntegerLiteral(IntegerLiteral *E) { VisitExpr(E); E->setLocation(ReadSourceLocation(Record, Idx)); - E->setValue(*Reader.getContext(), Reader.ReadAPInt(Record, Idx)); + E->setValue(Reader.getContext(), Reader.ReadAPInt(Record, Idx)); } void ASTStmtReader::VisitFloatingLiteral(FloatingLiteral *E) { VisitExpr(E); - E->setValue(*Reader.getContext(), Reader.ReadAPFloat(Record, Idx)); + E->setValue(Reader.getContext(), Reader.ReadAPFloat(Record, Idx)); E->setExact(Record[Idx++]); E->setLocation(ReadSourceLocation(Record, Idx)); } @@ -376,7 +376,7 @@ void ASTStmtReader::VisitStringLiteral(StringLiteral *E) { // Read string data llvm::SmallString<16> Str(&Record[Idx], &Record[Idx] + Len); - E->setString(*Reader.getContext(), Str.str()); + E->setString(Reader.getContext(), Str.str()); Idx += Len; // Read source locations @@ -401,7 +401,7 @@ void ASTStmtReader::VisitParenExpr(ParenExpr *E) { void ASTStmtReader::VisitParenListExpr(ParenListExpr *E) { VisitExpr(E); unsigned NumExprs = Record[Idx++]; - E->Exprs = new (*Reader.getContext()) Stmt*[NumExprs]; + E->Exprs = new (Reader.getContext()) Stmt*[NumExprs]; for (unsigned i = 0; i != NumExprs; ++i) E->Exprs[i] = Reader.ReadSubStmt(); E->NumExprs = NumExprs; @@ -447,7 +447,7 @@ void ASTStmtReader::VisitOffsetOfExpr(OffsetOfExpr *E) { break; case Node::Base: { - CXXBaseSpecifier *Base = new (*Reader.getContext()) CXXBaseSpecifier(); + CXXBaseSpecifier *Base = new (Reader.getContext()) CXXBaseSpecifier(); *Base = Reader.ReadCXXBaseSpecifier(F, Record, Idx); E->setComponent(I, Node(Base)); break; @@ -481,7 +481,7 @@ void ASTStmtReader::VisitArraySubscriptExpr(ArraySubscriptExpr *E) { void ASTStmtReader::VisitCallExpr(CallExpr *E) { VisitExpr(E); - E->setNumArgs(*Reader.getContext(), Record[Idx++]); + E->setNumArgs(Reader.getContext(), Record[Idx++]); E->setRParenLoc(ReadSourceLocation(Record, Idx)); E->setCallee(Reader.ReadSubExpr()); for (unsigned I = 0, N = E->getNumArgs(); I != N; ++I) @@ -527,7 +527,7 @@ void ASTStmtReader::VisitCastExpr(CastExpr *E) { E->setCastKind((CastExpr::CastKind)Record[Idx++]); CastExpr::path_iterator BaseI = E->path_begin(); while (NumBaseSpecs--) { - CXXBaseSpecifier *BaseSpec = new (*Reader.getContext()) CXXBaseSpecifier; + CXXBaseSpecifier *BaseSpec = new (Reader.getContext()) CXXBaseSpecifier; *BaseSpec = Reader.ReadCXXBaseSpecifier(F, Record, Idx); *BaseI++ = BaseSpec; } @@ -614,15 +614,15 @@ void ASTStmtReader::VisitInitListExpr(InitListExpr *E) { E->ArrayFillerOrUnionFieldInit = ReadDeclAs(Record, Idx); E->sawArrayRangeDesignator(Record[Idx++]); unsigned NumInits = Record[Idx++]; - E->reserveInits(*Reader.getContext(), NumInits); + E->reserveInits(Reader.getContext(), NumInits); if (isArrayFiller) { for (unsigned I = 0; I != NumInits; ++I) { Expr *init = Reader.ReadSubExpr(); - E->updateInit(*Reader.getContext(), I, init ? init : filler); + E->updateInit(Reader.getContext(), I, init ? init : filler); } } else { for (unsigned I = 0; I != NumInits; ++I) - E->updateInit(*Reader.getContext(), I, Reader.ReadSubExpr()); + E->updateInit(Reader.getContext(), I, Reader.ReadSubExpr()); } } @@ -686,7 +686,7 @@ void ASTStmtReader::VisitDesignatedInitExpr(DesignatedInitExpr *E) { } } } - E->setDesignators(*Reader.getContext(), + E->setDesignators(Reader.getContext(), Designators.data(), Designators.size()); } @@ -736,7 +736,7 @@ void ASTStmtReader::VisitShuffleVectorExpr(ShuffleVectorExpr *E) { unsigned NumExprs = Record[Idx++]; while (NumExprs--) Exprs.push_back(Reader.ReadSubExpr()); - E->setExprs(*Reader.getContext(), Exprs.data(), Exprs.size()); + E->setExprs(Reader.getContext(), Exprs.data(), Exprs.size()); E->setBuiltinLoc(ReadSourceLocation(Record, Idx)); E->setRParenLoc(ReadSourceLocation(Record, Idx)); } @@ -757,9 +757,9 @@ void ASTStmtReader::VisitBlockDeclRefExpr(BlockDeclRefExpr *E) { void ASTStmtReader::VisitGenericSelectionExpr(GenericSelectionExpr *E) { VisitExpr(E); E->NumAssocs = Record[Idx++]; - E->AssocTypes = new (*Reader.getContext()) TypeSourceInfo*[E->NumAssocs]; + E->AssocTypes = new (Reader.getContext()) TypeSourceInfo*[E->NumAssocs]; E->SubExprs = - new(*Reader.getContext()) Stmt*[GenericSelectionExpr::END_EXPR+E->NumAssocs]; + new(Reader.getContext()) Stmt*[GenericSelectionExpr::END_EXPR+E->NumAssocs]; E->SubExprs[GenericSelectionExpr::CONTROLLING] = Reader.ReadSubExpr(); for (unsigned I = 0, N = E->getNumAssocs(); I != N; ++I) { @@ -976,7 +976,7 @@ void ASTStmtReader::VisitCXXConstructExpr(CXXConstructExpr *E) { VisitExpr(E); E->NumArgs = Record[Idx++]; if (E->NumArgs) - E->Args = new (*Reader.getContext()) Stmt*[E->NumArgs]; + E->Args = new (Reader.getContext()) Stmt*[E->NumArgs]; for (unsigned I = 0, N = E->getNumArgs(); I != N; ++I) E->setArg(I, Reader.ReadSubExpr()); E->setConstructor(ReadDeclAs(Record, Idx)); @@ -1100,7 +1100,7 @@ void ASTStmtReader::VisitCXXNewExpr(CXXNewExpr *E) { E->ConstructorLParen = ReadSourceLocation(Record, Idx); E->ConstructorRParen = ReadSourceLocation(Record, Idx); - E->AllocateArgsArray(*Reader.getContext(), isArray, NumPlacementArgs, + E->AllocateArgsArray(Reader.getContext(), isArray, NumPlacementArgs, NumCtorArgs); // Install all the subexpressions. @@ -1142,7 +1142,7 @@ void ASTStmtReader::VisitExprWithCleanups(ExprWithCleanups *E) { VisitExpr(E); unsigned NumTemps = Record[Idx++]; if (NumTemps) { - E->setNumTemporaries(*Reader.getContext(), NumTemps); + E->setNumTemporaries(Reader.getContext(), NumTemps); for (unsigned i = 0; i != NumTemps; ++i) E->setTemporary(i, Reader.ReadCXXTemporary(F, Record, Idx)); } @@ -1205,7 +1205,7 @@ void ASTStmtReader::VisitOverloadExpr(OverloadExpr *E) { AccessSpecifier AS = (AccessSpecifier)Record[Idx++]; Decls.addDecl(D, AS); } - E->initializeResults(*Reader.getContext(), Decls.begin(), Decls.end()); + E->initializeResults(Reader.getContext(), Decls.begin(), Decls.end()); ReadDeclarationNameInfo(E->NameInfo, Record, Idx); E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); @@ -1539,7 +1539,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { case EXPR_DECL_REF: S = DeclRefExpr::CreateEmpty( - *Context, + Context, /*HasQualifier=*/Record[ASTStmtReader::NumExprFields], /*HasFoundDecl=*/Record[ASTStmtReader::NumExprFields + 1], /*HasExplicitTemplateArgs=*/Record[ASTStmtReader::NumExprFields + 2], @@ -1548,11 +1548,11 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_INTEGER_LITERAL: - S = IntegerLiteral::Create(*Context, Empty); + S = IntegerLiteral::Create(Context, Empty); break; case EXPR_FLOATING_LITERAL: - S = FloatingLiteral::Create(*Context, Empty); + S = FloatingLiteral::Create(Context, Empty); break; case EXPR_IMAGINARY_LITERAL: @@ -1560,7 +1560,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_STRING_LITERAL: - S = StringLiteral::CreateEmpty(*Context, + S = StringLiteral::CreateEmpty(Context, Record[ASTStmtReader::NumExprFields + 1]); break; @@ -1581,7 +1581,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_OFFSETOF: - S = OffsetOfExpr::CreateEmpty(*Context, + S = OffsetOfExpr::CreateEmpty(Context, Record[ASTStmtReader::NumExprFields], Record[ASTStmtReader::NumExprFields + 1]); break; @@ -1595,7 +1595,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CALL: - S = new (Context) CallExpr(*Context, Stmt::CallExprClass, Empty); + S = new (Context) CallExpr(Context, Stmt::CallExprClass, Empty); break; case EXPR_MEMBER: { @@ -1632,7 +1632,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { DeclarationNameInfo MemberNameInfo(MemberD->getDeclName(), MemberLoc); bool IsArrow = Record[Idx++]; - S = MemberExpr::Create(*Context, Base, IsArrow, QualifierLoc, + S = MemberExpr::Create(Context, Base, IsArrow, QualifierLoc, MemberD, FoundDecl, MemberNameInfo, HasExplicitTemplateArgs ? &ArgInfo : 0, T, VK, OK); ReadDeclarationNameLoc(F, cast(S)->MemberDNLoc, @@ -1657,12 +1657,12 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_IMPLICIT_CAST: - S = ImplicitCastExpr::CreateEmpty(*Context, + S = ImplicitCastExpr::CreateEmpty(Context, /*PathSize*/ Record[ASTStmtReader::NumExprFields]); break; case EXPR_CSTYLE_CAST: - S = CStyleCastExpr::CreateEmpty(*Context, + S = CStyleCastExpr::CreateEmpty(Context, /*PathSize*/ Record[ASTStmtReader::NumExprFields]); break; @@ -1675,11 +1675,11 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_INIT_LIST: - S = new (Context) InitListExpr(*getContext(), Empty); + S = new (Context) InitListExpr(getContext(), Empty); break; case EXPR_DESIGNATED_INIT: - S = DesignatedInitExpr::CreateEmpty(*Context, + S = DesignatedInitExpr::CreateEmpty(Context, Record[ASTStmtReader::NumExprFields] - 1); break; @@ -1746,7 +1746,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { llvm_unreachable("mismatching AST file"); break; case EXPR_OBJC_MESSAGE_EXPR: - S = ObjCMessageExpr::CreateEmpty(*Context, + S = ObjCMessageExpr::CreateEmpty(Context, Record[ASTStmtReader::NumExprFields]); break; case EXPR_OBJC_ISA: @@ -1768,7 +1768,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { S = new (Context) ObjCAtFinallyStmt(Empty); break; case STMT_OBJC_AT_TRY: - S = ObjCAtTryStmt::CreateEmpty(*Context, + S = ObjCAtTryStmt::CreateEmpty(Context, Record[ASTStmtReader::NumStmtFields], Record[ASTStmtReader::NumStmtFields + 1]); break; @@ -1795,7 +1795,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case STMT_CXX_TRY: - S = CXXTryStmt::Create(*Context, Empty, + S = CXXTryStmt::Create(Context, Empty, /*NumHandlers=*/Record[ASTStmtReader::NumStmtFields]); break; @@ -1804,11 +1804,11 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CXX_OPERATOR_CALL: - S = new (Context) CXXOperatorCallExpr(*Context, Empty); + S = new (Context) CXXOperatorCallExpr(Context, Empty); break; case EXPR_CXX_MEMBER_CALL: - S = new (Context) CXXMemberCallExpr(*Context, Empty); + S = new (Context) CXXMemberCallExpr(Context, Empty); break; case EXPR_CXX_CONSTRUCT: @@ -1820,26 +1820,26 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CXX_STATIC_CAST: - S = CXXStaticCastExpr::CreateEmpty(*Context, + S = CXXStaticCastExpr::CreateEmpty(Context, /*PathSize*/ Record[ASTStmtReader::NumExprFields]); break; case EXPR_CXX_DYNAMIC_CAST: - S = CXXDynamicCastExpr::CreateEmpty(*Context, + S = CXXDynamicCastExpr::CreateEmpty(Context, /*PathSize*/ Record[ASTStmtReader::NumExprFields]); break; case EXPR_CXX_REINTERPRET_CAST: - S = CXXReinterpretCastExpr::CreateEmpty(*Context, + S = CXXReinterpretCastExpr::CreateEmpty(Context, /*PathSize*/ Record[ASTStmtReader::NumExprFields]); break; case EXPR_CXX_CONST_CAST: - S = CXXConstCastExpr::CreateEmpty(*Context); + S = CXXConstCastExpr::CreateEmpty(Context); break; case EXPR_CXX_FUNCTIONAL_CAST: - S = CXXFunctionalCastExpr::CreateEmpty(*Context, + S = CXXFunctionalCastExpr::CreateEmpty(Context, /*PathSize*/ Record[ASTStmtReader::NumExprFields]); break; @@ -1872,7 +1872,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { bool HasOtherExprStored = Record[ASTStmtReader::NumExprFields]; if (HasOtherExprStored) { Expr *SubExpr = ReadSubExpr(); - S = CXXDefaultArgExpr::Create(*Context, SourceLocation(), 0, SubExpr); + S = CXXDefaultArgExpr::Create(Context, SourceLocation(), 0, SubExpr); } else S = new (Context) CXXDefaultArgExpr(Empty); break; @@ -1899,7 +1899,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CXX_DEPENDENT_SCOPE_MEMBER: - S = CXXDependentScopeMemberExpr::CreateEmpty(*Context, + S = CXXDependentScopeMemberExpr::CreateEmpty(Context, /*HasExplicitTemplateArgs=*/Record[ASTStmtReader::NumExprFields], /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields] ? Record[ASTStmtReader::NumExprFields + 1] @@ -1907,7 +1907,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CXX_DEPENDENT_SCOPE_DECL_REF: - S = DependentScopeDeclRefExpr::CreateEmpty(*Context, + S = DependentScopeDeclRefExpr::CreateEmpty(Context, /*HasExplicitTemplateArgs=*/Record[ASTStmtReader::NumExprFields], /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields] ? Record[ASTStmtReader::NumExprFields + 1] @@ -1915,12 +1915,12 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CXX_UNRESOLVED_CONSTRUCT: - S = CXXUnresolvedConstructExpr::CreateEmpty(*Context, + S = CXXUnresolvedConstructExpr::CreateEmpty(Context, /*NumArgs=*/Record[ASTStmtReader::NumExprFields]); break; case EXPR_CXX_UNRESOLVED_MEMBER: - S = UnresolvedMemberExpr::CreateEmpty(*Context, + S = UnresolvedMemberExpr::CreateEmpty(Context, /*HasExplicitTemplateArgs=*/Record[ASTStmtReader::NumExprFields], /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields] ? Record[ASTStmtReader::NumExprFields + 1] @@ -1928,7 +1928,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { break; case EXPR_CXX_UNRESOLVED_LOOKUP: - S = UnresolvedLookupExpr::CreateEmpty(*Context, + S = UnresolvedLookupExpr::CreateEmpty(Context, /*HasExplicitTemplateArgs=*/Record[ASTStmtReader::NumExprFields], /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields] ? Record[ASTStmtReader::NumExprFields + 1] @@ -1991,7 +1991,7 @@ Stmt *ASTReader::ReadStmtFromStream(Module &F) { } case EXPR_CUDA_KERNEL_CALL: - S = new (Context) CUDAKernelCallExpr(*Context, Empty); + S = new (Context) CUDAKernelCallExpr(Context, Empty); break; case EXPR_ASTYPE: