diff options
author | Erich Keane <erich.keane@intel.com> | 2018-08-01 21:02:40 +0000 |
---|---|---|
committer | Erich Keane <erich.keane@intel.com> | 2018-08-01 21:02:40 +0000 |
commit | 9c66506604c7868c6e476df8410b8fcfe98ad975 (patch) | |
tree | 30e36fab08ddcc6b37240108e57ffca24d9bca47 /clang/lib/Serialization | |
parent | 175ef5f29e0e2c01f2f876174826b0a9f3d5103f (diff) | |
download | bcm5719-llvm-9c66506604c7868c6e476df8410b8fcfe98ad975.tar.gz bcm5719-llvm-9c66506604c7868c6e476df8410b8fcfe98ad975.zip |
[AST][2/4] Move the bit-fields from FunctionDecl and CXXConstructorDecl into DeclContext
This patch follows https://reviews.llvm.org/D49729
and is followed by https://reviews.llvm.org/D49733
and https://reviews.llvm.org/D49734.
Move the bits from FunctionDecl and CXXConstructorDecl
into DeclContext.
Differential Revision: https://reviews.llvm.org/D49732
Patch By: bricci
llvm-svn: 338636
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/ASTReaderDecl.cpp | 53 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriterDecl.cpp | 41 |
2 files changed, 47 insertions, 47 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 3500d2e374d..2620a857b57 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -506,8 +506,8 @@ void ASTDeclReader::ReadFunctionDefinition(FunctionDecl *FD) { if (Record.readInt()) Reader.DefinitionSource[FD] = Loc.F->Kind == ModuleKind::MK_MainFile; if (auto *CD = dyn_cast<CXXConstructorDecl>(FD)) { - CD->NumCtorInitializers = Record.readInt(); - if (CD->NumCtorInitializers) + CD->setNumCtorInitializers(Record.readInt()); + if (CD->getNumCtorInitializers()) CD->CtorInitializers = ReadGlobalOffset(); } // Store the offset of the body so we can lazily load it later. @@ -855,30 +855,31 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { // FunctionDecl's body is handled last at ASTDeclReader::Visit, // after everything else is read. - FD->SClass = (StorageClass)Record.readInt(); - FD->IsInline = Record.readInt(); - FD->IsInlineSpecified = Record.readInt(); - FD->IsExplicitSpecified = Record.readInt(); - FD->IsVirtualAsWritten = Record.readInt(); - FD->IsPure = Record.readInt(); - FD->HasInheritedPrototype = Record.readInt(); - FD->HasWrittenPrototype = Record.readInt(); - FD->IsDeleted = Record.readInt(); - FD->IsTrivial = Record.readInt(); - FD->IsTrivialForCall = Record.readInt(); - FD->IsDefaulted = Record.readInt(); - FD->IsExplicitlyDefaulted = Record.readInt(); - FD->HasImplicitReturnZero = Record.readInt(); - FD->IsConstexpr = Record.readInt(); - FD->UsesSEHTry = Record.readInt(); - FD->HasSkippedBody = Record.readInt(); - FD->IsMultiVersion = Record.readInt(); - FD->IsLateTemplateParsed = Record.readInt(); - FD->setCachedLinkage(Linkage(Record.readInt())); + FD->setStorageClass(static_cast<StorageClass>(Record.readInt())); + FD->setInlineSpecified(Record.readInt()); + FD->setImplicitlyInline(Record.readInt()); + FD->setExplicitSpecified(Record.readInt()); + FD->setVirtualAsWritten(Record.readInt()); + FD->setPure(Record.readInt()); + FD->setHasInheritedPrototype(Record.readInt()); + FD->setHasWrittenPrototype(Record.readInt()); + FD->setDeletedAsWritten(Record.readInt()); + FD->setTrivial(Record.readInt()); + FD->setTrivialForCall(Record.readInt()); + FD->setDefaulted(Record.readInt()); + FD->setExplicitlyDefaulted(Record.readInt()); + FD->setHasImplicitReturnZero(Record.readInt()); + FD->setConstexpr(Record.readInt()); + FD->setUsesSEHTry(Record.readInt()); + FD->setHasSkippedBody(Record.readInt()); + FD->setIsMultiVersion(Record.readInt()); + FD->setLateTemplateParsed(Record.readInt()); + + FD->setCachedLinkage(static_cast<Linkage>(Record.readInt())); FD->EndRangeLoc = ReadSourceLocation(); FD->ODRHash = Record.readInt(); - FD->HasODRHash = true; + FD->setHasODRHash(true); switch ((FunctionDecl::TemplatedKind)Record.readInt()) { case FunctionDecl::TK_NonTemplate: @@ -1958,7 +1959,7 @@ ASTDeclReader::VisitCXXRecordDeclImpl(CXXRecordDecl *D) { void ASTDeclReader::VisitCXXDeductionGuideDecl(CXXDeductionGuideDecl *D) { VisitFunctionDecl(D); - D->IsCopyDeductionCandidate = Record.readInt(); + D->setIsCopyDeductionCandidate(Record.readInt()); } void ASTDeclReader::VisitCXXMethodDecl(CXXMethodDecl *D) { @@ -3380,7 +3381,7 @@ void ASTDeclReader::attachPreviousDeclImpl(ASTReader &Reader, // If the previous declaration is an inline function declaration, then this // declaration is too. - if (PrevFD->IsInline != FD->IsInline) { + if (PrevFD->isInlined() != FD->isInlined()) { // FIXME: [dcl.fct.spec]p4: // If a function with external linkage is declared inline in one // translation unit, it shall be declared inline in all translation @@ -3396,7 +3397,7 @@ void ASTDeclReader::attachPreviousDeclImpl(ASTReader &Reader, // module C instantiates the definition of X<int>::f // // If module B and C are merged, we do not have a violation of this rule. - FD->IsInline = true; + FD->setImplicitlyInline(true); } // If we need to propagate an exception specification along the redecl diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index d9836afc8ac..b2a8347c309 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -529,26 +529,25 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { // FunctionDecl's body is handled last at ASTWriterDecl::Visit, // after everything else is written. - - Record.push_back((int)D->SClass); // FIXME: stable encoding - Record.push_back(D->IsInline); - Record.push_back(D->IsInlineSpecified); - Record.push_back(D->IsExplicitSpecified); - Record.push_back(D->IsVirtualAsWritten); - Record.push_back(D->IsPure); - Record.push_back(D->HasInheritedPrototype); - Record.push_back(D->HasWrittenPrototype); - Record.push_back(D->IsDeleted); - Record.push_back(D->IsTrivial); - Record.push_back(D->IsTrivialForCall); - Record.push_back(D->IsDefaulted); - Record.push_back(D->IsExplicitlyDefaulted); - Record.push_back(D->HasImplicitReturnZero); - Record.push_back(D->IsConstexpr); - Record.push_back(D->UsesSEHTry); - Record.push_back(D->HasSkippedBody); - Record.push_back(D->IsMultiVersion); - Record.push_back(D->IsLateTemplateParsed); + Record.push_back(static_cast<int>(D->getStorageClass())); // FIXME: stable encoding + Record.push_back(D->isInlineSpecified()); + Record.push_back(D->isInlined()); + Record.push_back(D->isExplicitSpecified()); + Record.push_back(D->isVirtualAsWritten()); + Record.push_back(D->isPure()); + Record.push_back(D->hasInheritedPrototype()); + Record.push_back(D->hasWrittenPrototype()); + Record.push_back(D->isDeletedBit()); + Record.push_back(D->isTrivial()); + Record.push_back(D->isTrivialForCall()); + Record.push_back(D->isDefaulted()); + Record.push_back(D->isExplicitlyDefaulted()); + Record.push_back(D->hasImplicitReturnZero()); + Record.push_back(D->isConstexpr()); + Record.push_back(D->usesSEHTry()); + Record.push_back(D->hasSkippedBody()); + Record.push_back(D->isMultiVersion()); + Record.push_back(D->isLateTemplateParsed()); Record.push_back(D->getLinkageInternal()); Record.AddSourceLocation(D->getLocEnd()); @@ -628,7 +627,7 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { void ASTDeclWriter::VisitCXXDeductionGuideDecl(CXXDeductionGuideDecl *D) { VisitFunctionDecl(D); - Record.push_back(D->IsCopyDeductionCandidate); + Record.push_back(D->isCopyDeductionCandidate()); Code = serialization::DECL_CXX_DEDUCTION_GUIDE; } |