https://github.com/Endilll created https://github.com/llvm/llvm-project/pull/70955
During the recent refactoring (b120fe8d3288c4dca1b5427ca34839ce8833f71c) this enum was moved out of `RecordDecl`. During post-commit review it was found out that its association with `RecordDecl` should be expressed in the name. I'm planning to land this as soon as CI passes, probably without waiting for Windows bot. >From 99013f89d8a5d62828e351e49a11d04fe13645ae Mon Sep 17 00:00:00 2001 From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com> Date: Wed, 1 Nov 2023 19:24:22 +0300 Subject: [PATCH] [clang][NFC] Rename ArgPassingKind to RecordArgPassingKind During the recent refactoring (b120fe8d3288c4dca1b5427ca34839ce8833f71c) this enum was moved out of `RecordDecl`. During post-commit review it was found out that its association with `RecordDecl` should be expresses in the name. --- clang/include/clang/AST/Decl.h | 11 ++++++----- clang/include/clang/AST/DeclBase.h | 2 +- clang/lib/AST/Decl.cpp | 2 +- clang/lib/AST/DeclCXX.cpp | 10 +++++----- clang/lib/CodeGen/CGCall.cpp | 3 ++- clang/lib/Sema/SemaDecl.cpp | 8 +++++--- clang/lib/Sema/SemaDeclCXX.cpp | 9 +++++---- clang/lib/Serialization/ASTReaderDecl.cpp | 4 ++-- .../Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp | 2 +- 9 files changed, 28 insertions(+), 23 deletions(-) diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h index d9b00b1628ab25c..d8ea8c1dfb4f292 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<ArgPassingKind>(RecordDeclBits.ArgPassingRestrictions); + RecordArgPassingKind getArgPassingRestrictions() const { + return static_cast<RecordArgPassingKind>( + 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 6704c0cd41ecd3d..df1d6e8a3b5af72 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 28243a76712d63e..6efc177d61c03ba 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 066b62b7c24110d..4002c63e9f94c12 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 d8168e35decb0ca..230a6c3dbebadd1 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 a1cafa0c6ad29a0..a8bad12b670fc75 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<RecordType>()) { 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 f2d6db41e77a377..be79defbbfac6f1 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 a97b992fcf6e97a..319a45108c6ab66 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<ArgPassingKind>(Record.readInt())); + static_cast<RecordArgPassingKind>(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 83bc67c0a12cac4..280571856035753 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; } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits