diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h index d9b00b1628ab2..d8ea8c1dfb4f2 100644 --- a/clang/include/clang/AST/Decl.h +++ b/clang/include/clang/AST/Decl.h @@ -4063,7 +4063,7 @@ class EnumDecl : public TagDecl { /// returned from function calls. This takes into account the target-specific /// and version-specific rules along with the rules determined by the /// language. -enum class ArgPassingKind { +enum class RecordArgPassingKind { /// The argument of this type can be passed directly in registers. CanPassInRegs, @@ -4216,14 +4216,15 @@ class RecordDecl : public TagDecl { /// it must have at least one trivial, non-deleted copy or move constructor. /// FIXME: This should be set as part of completeDefinition. bool canPassInRegisters() const { - return getArgPassingRestrictions() == ArgPassingKind::CanPassInRegs; + return getArgPassingRestrictions() == RecordArgPassingKind::CanPassInRegs; } - ArgPassingKind getArgPassingRestrictions() const { - return static_cast(RecordDeclBits.ArgPassingRestrictions); + RecordArgPassingKind getArgPassingRestrictions() const { + return static_cast( + RecordDeclBits.ArgPassingRestrictions); } - void setArgPassingRestrictions(ArgPassingKind Kind) { + void setArgPassingRestrictions(RecordArgPassingKind Kind) { RecordDeclBits.ArgPassingRestrictions = llvm::to_underlying(Kind); } diff --git a/clang/include/clang/AST/DeclBase.h b/clang/include/clang/AST/DeclBase.h index 6704c0cd41ecd..df1d6e8a3b5af 100644 --- a/clang/include/clang/AST/DeclBase.h +++ b/clang/include/clang/AST/DeclBase.h @@ -1399,7 +1399,7 @@ enum class DeductionCandidate : unsigned char { Aggregate, }; -enum class ArgPassingKind; +enum class RecordArgPassingKind; enum class OMPDeclareReductionInitKind; enum class ObjCImplementationControl; enum class LinkageSpecLanguageIDs; diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 28243a76712d6..6efc177d61c03 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -4932,7 +4932,7 @@ RecordDecl::RecordDecl(Kind DK, TagKind TK, const ASTContext &C, setHasNonTrivialToPrimitiveDestructCUnion(false); setHasNonTrivialToPrimitiveCopyCUnion(false); setParamDestroyedInCallee(false); - setArgPassingRestrictions(ArgPassingKind::CanPassInRegs); + setArgPassingRestrictions(RecordArgPassingKind::CanPassInRegs); setIsRandomized(false); setODRHash(0); } diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp index 066b62b7c2411..4002c63e9f94c 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -446,8 +446,8 @@ CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases, setHasVolatileMember(true); if (BaseClassDecl->getArgPassingRestrictions() == - ArgPassingKind::CanNeverPassInRegs) - setArgPassingRestrictions(ArgPassingKind::CanNeverPassInRegs); + RecordArgPassingKind::CanNeverPassInRegs) + setArgPassingRestrictions(RecordArgPassingKind::CanNeverPassInRegs); // Keep track of the presence of mutable fields. if (BaseClassDecl->hasMutableFields()) @@ -1032,7 +1032,7 @@ void CXXRecordDecl::addedMember(Decl *D) { // Structs with __weak fields should never be passed directly. if (LT == Qualifiers::OCL_Weak) - setArgPassingRestrictions(ArgPassingKind::CanNeverPassInRegs); + setArgPassingRestrictions(RecordArgPassingKind::CanNeverPassInRegs); Data.HasIrrelevantDestructor = false; @@ -1226,8 +1226,8 @@ void CXXRecordDecl::addedMember(Decl *D) { if (FieldRec->hasVolatileMember()) setHasVolatileMember(true); if (FieldRec->getArgPassingRestrictions() == - ArgPassingKind::CanNeverPassInRegs) - setArgPassingRestrictions(ArgPassingKind::CanNeverPassInRegs); + RecordArgPassingKind::CanNeverPassInRegs) + setArgPassingRestrictions(RecordArgPassingKind::CanNeverPassInRegs); // C++0x [class]p7: // A standard-layout class is a class that: diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index d8168e35decb0..230a6c3dbebad 100644 --- a/clang/lib/CodeGen/CGCall.cpp +++ b/clang/lib/CodeGen/CGCall.cpp @@ -2719,7 +2719,8 @@ void CodeGenModule::ConstructAttributeList(StringRef Name, auto *Decl = ParamType->getAsRecordDecl(); if (CodeGenOpts.PassByValueIsNoAlias && Decl && - Decl->getArgPassingRestrictions() == ArgPassingKind::CanPassInRegs) + Decl->getArgPassingRestrictions() == + RecordArgPassingKind::CanPassInRegs) // When calling the function, the pointer passed in will be the only // reference to the underlying object. Mark it accordingly. Attrs.addAttribute(llvm::Attribute::NoAlias); diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index a1cafa0c6ad29..a8bad12b670fc 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -19196,10 +19196,12 @@ void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, if (const auto *RT = FT->getAs()) { if (RT->getDecl()->getArgPassingRestrictions() == - ArgPassingKind::CanNeverPassInRegs) - Record->setArgPassingRestrictions(ArgPassingKind::CanNeverPassInRegs); + RecordArgPassingKind::CanNeverPassInRegs) + Record->setArgPassingRestrictions( + RecordArgPassingKind::CanNeverPassInRegs); } else if (FT.getQualifiers().getObjCLifetime() == Qualifiers::OCL_Weak) - Record->setArgPassingRestrictions(ArgPassingKind::CanNeverPassInRegs); + Record->setArgPassingRestrictions( + RecordArgPassingKind::CanNeverPassInRegs); } if (Record && FD->getType().isVolatileQualified()) diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index f2d6db41e77a3..be79defbbfac6 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -7281,10 +7281,11 @@ void Sema::CheckCompletedCXXClass(Scope *S, CXXRecordDecl *Record) { // Do not change ArgPassingRestrictions if it has already been set to // ArgPassingKind::CanNeverPassInRegs. - if (Record->getArgPassingRestrictions() != ArgPassingKind::CanNeverPassInRegs) - Record->setArgPassingRestrictions(CanPass - ? ArgPassingKind::CanPassInRegs - : ArgPassingKind::CannotPassInRegs); + if (Record->getArgPassingRestrictions() != + RecordArgPassingKind::CanNeverPassInRegs) + Record->setArgPassingRestrictions( + CanPass ? RecordArgPassingKind::CanPassInRegs + : RecordArgPassingKind::CannotPassInRegs); // If canPassInRegisters returns true despite the record having a non-trivial // destructor, the record is destructed in the callee. This happens only when diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index a97b992fcf6e9..319a45108c6ab 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -845,7 +845,7 @@ ASTDeclReader::VisitRecordDeclImpl(RecordDecl *RD) { RD->setHasNonTrivialToPrimitiveDestructCUnion(Record.readInt()); RD->setHasNonTrivialToPrimitiveCopyCUnion(Record.readInt()); RD->setParamDestroyedInCallee(Record.readInt()); - RD->setArgPassingRestrictions((ArgPassingKind)Record.readInt()); + RD->setArgPassingRestrictions((RecordArgPassingKind)Record.readInt()); return Redecl; } @@ -4514,7 +4514,7 @@ void ASTDeclReader::UpdateDecl(Decl *D, !Reader.PendingFakeDefinitionData.count(OldDD)); RD->setParamDestroyedInCallee(Record.readInt()); RD->setArgPassingRestrictions( - static_cast(Record.readInt())); + static_cast(Record.readInt())); ReadCXXRecordDefinition(RD, /*Update*/true); // Visible update is handled separately. diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp index 83bc67c0a12ca..2805718560357 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -1929,7 +1929,7 @@ DWARFASTParserClang::ParseStructureLikeDIE(const SymbolContext &sc, m_ast.GetAsCXXRecordDecl(clang_type.GetOpaqueQualType()); if (record_decl) record_decl->setArgPassingRestrictions( - clang::ArgPassingKind::CannotPassInRegs); + clang::RecordArgPassingKind::CannotPassInRegs); } return type_sp; }