Author: Vlad Serebrennikov Date: 2023-11-06T12:01:09+03:00 New Revision: dda8e3de35ead65498094e75adf6f6efd2641323
URL: https://github.com/llvm/llvm-project/commit/dda8e3de35ead65498094e75adf6f6efd2641323 DIFF: https://github.com/llvm/llvm-project/commit/dda8e3de35ead65498094e75adf6f6efd2641323.diff LOG: [clang][NFC] Refactor `ImplicitParamDecl::ImplicitParamKind` This patch converts `ImplicitParamDecl::ImplicitParamKind` into a scoped enum at namespace scope, making it eligible for forward declaring. This is useful for `preferred_type` annotations on bit-fields. Added: Modified: clang/include/clang/AST/Decl.h clang/lib/AST/DeclObjC.cpp clang/lib/AST/ODRHash.cpp clang/lib/AST/StmtPrinter.cpp clang/lib/CodeGen/CGBlocks.cpp clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGCXXABI.cpp clang/lib/CodeGen/CGDebugInfo.cpp clang/lib/CodeGen/CGDecl.cpp clang/lib/CodeGen/CGDeclCXX.cpp clang/lib/CodeGen/CGException.cpp clang/lib/CodeGen/CGExpr.cpp clang/lib/CodeGen/CGNonTrivialStruct.cpp clang/lib/CodeGen/CGOpenMPRuntime.cpp clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp clang/lib/CodeGen/CGStmtOpenMP.cpp clang/lib/CodeGen/CodeGenFunction.cpp clang/lib/CodeGen/ItaniumCXXABI.cpp clang/lib/CodeGen/MicrosoftCXXABI.cpp clang/lib/Sema/SemaStmt.cpp clang/lib/Serialization/ASTWriterDecl.cpp clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Removed: ################################################################################ diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h index d8495f2c34940c5..115b08802d9a298 100644 --- a/clang/include/clang/AST/Decl.h +++ b/clang/include/clang/AST/Decl.h @@ -1654,36 +1654,36 @@ class VarDecl : public DeclaratorDecl, public Redeclarable<VarDecl> { static bool classofKind(Kind K) { return K >= firstVar && K <= lastVar; } }; -class ImplicitParamDecl : public VarDecl { - void anchor() override; +/// Defines the kind of the implicit parameter: is this an implicit parameter +/// with pointer to 'this', 'self', '_cmd', virtual table pointers, captured +/// context or something else. +enum class ImplicitParamKind { + /// Parameter for Objective-C 'self' argument + ObjCSelf, -public: - /// Defines the kind of the implicit parameter: is this an implicit parameter - /// with pointer to 'this', 'self', '_cmd', virtual table pointers, captured - /// context or something else. - enum ImplicitParamKind : unsigned { - /// Parameter for Objective-C 'self' argument - ObjCSelf, + /// Parameter for Objective-C '_cmd' argument + ObjCCmd, - /// Parameter for Objective-C '_cmd' argument - ObjCCmd, + /// Parameter for C++ 'this' argument + CXXThis, - /// Parameter for C++ 'this' argument - CXXThis, + /// Parameter for C++ virtual table pointers + CXXVTT, - /// Parameter for C++ virtual table pointers - CXXVTT, + /// Parameter for captured context + CapturedContext, - /// Parameter for captured context - CapturedContext, + /// Parameter for Thread private variable + ThreadPrivateVar, - /// Parameter for Thread private variable - ThreadPrivateVar, + /// Other implicit parameter + Other, +}; - /// Other implicit parameter - Other, - }; +class ImplicitParamDecl : public VarDecl { + void anchor() override; +public: /// Create implicit parameter. static ImplicitParamDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation IdLoc, IdentifierInfo *Id, @@ -1698,7 +1698,7 @@ class ImplicitParamDecl : public VarDecl { ImplicitParamKind ParamKind) : VarDecl(ImplicitParam, C, DC, IdLoc, IdLoc, Id, Type, /*TInfo=*/nullptr, SC_None) { - NonParmVarDeclBits.ImplicitParamKind = ParamKind; + NonParmVarDeclBits.ImplicitParamKind = llvm::to_underlying(ParamKind); setImplicit(); } @@ -1706,7 +1706,7 @@ class ImplicitParamDecl : public VarDecl { : VarDecl(ImplicitParam, C, /*DC=*/nullptr, SourceLocation(), SourceLocation(), /*Id=*/nullptr, Type, /*TInfo=*/nullptr, SC_None) { - NonParmVarDeclBits.ImplicitParamKind = ParamKind; + NonParmVarDeclBits.ImplicitParamKind = llvm::to_underlying(ParamKind); setImplicit(); } diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp index 2c88d05dc07ea9a..962f503306a0f0d 100644 --- a/clang/lib/AST/DeclObjC.cpp +++ b/clang/lib/AST/DeclObjC.cpp @@ -1194,7 +1194,7 @@ void ObjCMethodDecl::createImplicitParams(ASTContext &Context, getSelfType(Context, OID, selfIsPseudoStrong, selfIsConsumed); auto *Self = ImplicitParamDecl::Create(Context, this, SourceLocation(), &Context.Idents.get("self"), selfTy, - ImplicitParamDecl::ObjCSelf); + ImplicitParamKind::ObjCSelf); setSelfDecl(Self); if (selfIsConsumed) @@ -1205,7 +1205,7 @@ void ObjCMethodDecl::createImplicitParams(ASTContext &Context, setCmdDecl(ImplicitParamDecl::Create( Context, this, SourceLocation(), &Context.Idents.get("_cmd"), - Context.getObjCSelType(), ImplicitParamDecl::ObjCCmd)); + Context.getObjCSelType(), ImplicitParamKind::ObjCCmd)); } ObjCInterfaceDecl *ObjCMethodDecl::getClassInterface() { diff --git a/clang/lib/AST/ODRHash.cpp b/clang/lib/AST/ODRHash.cpp index f04dcef18a36e30..aea1a93ae1fa828 100644 --- a/clang/lib/AST/ODRHash.cpp +++ b/clang/lib/AST/ODRHash.cpp @@ -385,12 +385,12 @@ class ODRDeclVisitor : public ConstDeclVisitor<ODRDeclVisitor> { ImplicitParamDecl *Cmd = Method->getCmdDecl(); Hash.AddBoolean(Cmd); if (Cmd) - ID.AddInteger(Cmd->getParameterKind()); + ID.AddInteger(llvm::to_underlying(Cmd->getParameterKind())); ImplicitParamDecl *Self = Method->getSelfDecl(); Hash.AddBoolean(Self); if (Self) - ID.AddInteger(Self->getParameterKind()); + ID.AddInteger(llvm::to_underlying(Self->getParameterKind())); AddDecl(Method); diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index a31aa0cfeeed8de..44dc9d3780f352d 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -1201,7 +1201,7 @@ void StmtPrinter::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *Node) { static bool isImplicitSelf(const Expr *E) { if (const auto *DRE = dyn_cast<DeclRefExpr>(E)) { if (const auto *PD = dyn_cast<ImplicitParamDecl>(DRE->getDecl())) { - if (PD->getParameterKind() == ImplicitParamDecl::ObjCSelf && + if (PD->getParameterKind() == ImplicitParamKind::ObjCSelf && DRE->getBeginLoc().isInvalid()) return true; } diff --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp index 4f3a6e34bda2fe1..0cbace7b7f7bbd5 100644 --- a/clang/lib/CodeGen/CGBlocks.cpp +++ b/clang/lib/CodeGen/CGBlocks.cpp @@ -992,7 +992,7 @@ llvm::Value *CodeGenFunction::EmitBlockLiteral(const CGBlockInfo &blockInfo) { // Fake up a new variable so that EmitScalarInit doesn't think // we're referring to the variable in its own initializer. ImplicitParamDecl BlockFieldPseudoVar(getContext(), type, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // We use one of these or the other depending on whether the // reference is nested. @@ -1450,7 +1450,7 @@ llvm::Function *CodeGenFunction::GenerateBlockFunction( ImplicitParamDecl SelfDecl(getContext(), const_cast<BlockDecl *>(blockDecl), SourceLocation(), II, selfTy, - ImplicitParamDecl::ObjCSelf); + ImplicitParamKind::ObjCSelf); args.push_back(&SelfDecl); // Now add the rest of the parameters. @@ -1874,9 +1874,9 @@ CodeGenFunction::GenerateCopyHelperFunction(const CGBlockInfo &blockInfo) { QualType ReturnTy = C.VoidTy; FunctionArgList args; - ImplicitParamDecl DstDecl(C, C.VoidPtrTy, ImplicitParamDecl::Other); + ImplicitParamDecl DstDecl(C, C.VoidPtrTy, ImplicitParamKind::Other); args.push_back(&DstDecl); - ImplicitParamDecl SrcDecl(C, C.VoidPtrTy, ImplicitParamDecl::Other); + ImplicitParamDecl SrcDecl(C, C.VoidPtrTy, ImplicitParamKind::Other); args.push_back(&SrcDecl); const CGFunctionInfo &FI = @@ -2061,7 +2061,7 @@ CodeGenFunction::GenerateDestroyHelperFunction(const CGBlockInfo &blockInfo) { QualType ReturnTy = C.VoidTy; FunctionArgList args; - ImplicitParamDecl SrcDecl(C, C.VoidPtrTy, ImplicitParamDecl::Other); + ImplicitParamDecl SrcDecl(C, C.VoidPtrTy, ImplicitParamKind::Other); args.push_back(&SrcDecl); const CGFunctionInfo &FI = @@ -2303,10 +2303,10 @@ generateByrefCopyHelper(CodeGenFunction &CGF, const BlockByrefInfo &byrefInfo, QualType ReturnTy = Context.VoidTy; FunctionArgList args; - ImplicitParamDecl Dst(Context, Context.VoidPtrTy, ImplicitParamDecl::Other); + ImplicitParamDecl Dst(Context, Context.VoidPtrTy, ImplicitParamKind::Other); args.push_back(&Dst); - ImplicitParamDecl Src(Context, Context.VoidPtrTy, ImplicitParamDecl::Other); + ImplicitParamDecl Src(Context, Context.VoidPtrTy, ImplicitParamKind::Other); args.push_back(&Src); const CGFunctionInfo &FI = @@ -2371,7 +2371,7 @@ generateByrefDisposeHelper(CodeGenFunction &CGF, FunctionArgList args; ImplicitParamDecl Src(CGF.getContext(), Context.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); args.push_back(&Src); const CGFunctionInfo &FI = diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 978f6ffd145741d..31edf575caae9fe 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -1893,7 +1893,7 @@ llvm::Function *CodeGenFunction::generateBuiltinOSLogHelperFunction( FunctionArgList Args; Args.push_back(ImplicitParamDecl::Create( Ctx, nullptr, SourceLocation(), &Ctx.Idents.get("buffer"), Ctx.VoidPtrTy, - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); ArgTys.emplace_back(Ctx.VoidPtrTy); for (unsigned int I = 0, E = Layout.Items.size(); I < E; ++I) { @@ -1905,7 +1905,7 @@ llvm::Function *CodeGenFunction::generateBuiltinOSLogHelperFunction( Args.push_back(ImplicitParamDecl::Create( Ctx, nullptr, SourceLocation(), &Ctx.Idents.get(std::string("arg") + llvm::to_string(I)), ArgTy, - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); ArgTys.emplace_back(ArgTy); } diff --git a/clang/lib/CodeGen/CGCXXABI.cpp b/clang/lib/CodeGen/CGCXXABI.cpp index 4df6f6505ef6678..a8bf57a277e9096 100644 --- a/clang/lib/CodeGen/CGCXXABI.cpp +++ b/clang/lib/CodeGen/CGCXXABI.cpp @@ -120,10 +120,10 @@ void CGCXXABI::buildThisParam(CodeGenFunction &CGF, FunctionArgList ¶ms) { // FIXME: I'm not entirely sure I like using a fake decl just for code // generation. Maybe we can come up with a better way? - auto *ThisDecl = ImplicitParamDecl::Create( - CGM.getContext(), nullptr, MD->getLocation(), - &CGM.getContext().Idents.get("this"), MD->getThisType(), - ImplicitParamDecl::CXXThis); + auto *ThisDecl = + ImplicitParamDecl::Create(CGM.getContext(), nullptr, MD->getLocation(), + &CGM.getContext().Idents.get("this"), + MD->getThisType(), ImplicitParamKind::CXXThis); params.push_back(ThisDecl); CGF.CXXABIThisDecl = ThisDecl; diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index dca11b317fba530..f4dde18bbf62f30 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -4619,8 +4619,8 @@ llvm::DILocalVariable *CGDebugInfo::EmitDeclare(const VarDecl *VD, // If this is implicit parameter of CXXThis or ObjCSelf kind, then give it an // object pointer flag. if (const auto *IPD = dyn_cast<ImplicitParamDecl>(VD)) { - if (IPD->getParameterKind() == ImplicitParamDecl::CXXThis || - IPD->getParameterKind() == ImplicitParamDecl::ObjCSelf) + if (IPD->getParameterKind() == ImplicitParamKind::CXXThis || + IPD->getParameterKind() == ImplicitParamKind::ObjCSelf) Flags |= llvm::DINode::FlagObjectPointer; } @@ -4953,7 +4953,7 @@ void CGDebugInfo::EmitDeclareOfBlockDeclRefVariable( // Self is passed along as an implicit non-arg variable in a // block. Mark it as the object pointer. if (const auto *IPD = dyn_cast<ImplicitParamDecl>(VD)) - if (IPD->getParameterKind() == ImplicitParamDecl::ObjCSelf) + if (IPD->getParameterKind() == ImplicitParamKind::ObjCSelf) Ty = CreateSelfType(VD->getType(), Ty); // Get location information. diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp index 0420f438ec1392c..e5795d811c76de7 100644 --- a/clang/lib/CodeGen/CGDecl.cpp +++ b/clang/lib/CodeGen/CGDecl.cpp @@ -2518,7 +2518,7 @@ void CodeGenFunction::EmitParmDecl(const VarDecl &D, ParamValue Arg, // Suppressing debug info for ThreadPrivateVar parameters, else it hides // debug info of TLS variables. NoDebugInfo = - (IPD->getParameterKind() == ImplicitParamDecl::ThreadPrivateVar); + (IPD->getParameterKind() == ImplicitParamKind::ThreadPrivateVar); } Address DeclPtr = Address::invalid(); diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp index 93742688fb9cbdd..3fa28b343663f61 100644 --- a/clang/lib/CodeGen/CGDeclCXX.cpp +++ b/clang/lib/CodeGen/CGDeclCXX.cpp @@ -292,7 +292,7 @@ llvm::Function *CodeGenFunction::createTLSAtExitStub( FunctionArgList Args; ImplicitParamDecl IPD(CGM.getContext(), CGM.getContext().IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&IPD); QualType ResTy = CGM.getContext().IntTy; @@ -1138,7 +1138,7 @@ llvm::Function *CodeGenFunction::generateDestroyHelper( bool useEHCleanupForArray, const VarDecl *VD) { FunctionArgList args; ImplicitParamDecl Dst(getContext(), getContext().VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); args.push_back(&Dst); const CGFunctionInfo &FI = diff --git a/clang/lib/CodeGen/CGException.cpp b/clang/lib/CodeGen/CGException.cpp index 4a54b2040154dad..bae8babb8efe4a8 100644 --- a/clang/lib/CodeGen/CGException.cpp +++ b/clang/lib/CodeGen/CGException.cpp @@ -2028,17 +2028,17 @@ void CodeGenFunction::startOutlinedSEHHelper(CodeGenFunction &ParentCGF, Args.push_back(ImplicitParamDecl::Create( getContext(), /*DC=*/nullptr, StartLoc, &getContext().Idents.get("exception_pointers"), - getContext().VoidPtrTy, ImplicitParamDecl::Other)); + getContext().VoidPtrTy, ImplicitParamKind::Other)); } else { Args.push_back(ImplicitParamDecl::Create( getContext(), /*DC=*/nullptr, StartLoc, &getContext().Idents.get("abnormal_termination"), - getContext().UnsignedCharTy, ImplicitParamDecl::Other)); + getContext().UnsignedCharTy, ImplicitParamKind::Other)); } Args.push_back(ImplicitParamDecl::Create( getContext(), /*DC=*/nullptr, StartLoc, &getContext().Idents.get("frame_pointer"), getContext().VoidPtrTy, - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); } QualType RetTy = IsFilter ? getContext().LongTy : getContext().VoidTy; diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 46d0b5b8c277f00..be30d23a309720f 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -3494,9 +3494,9 @@ void CodeGenFunction::EmitCfiCheckFail() { SanitizerScope SanScope(this); FunctionArgList Args; ImplicitParamDecl ArgData(getContext(), getContext().VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl ArgAddr(getContext(), getContext().VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&ArgData); Args.push_back(&ArgAddr); diff --git a/clang/lib/CodeGen/CGNonTrivialStruct.cpp b/clang/lib/CodeGen/CGNonTrivialStruct.cpp index 15c4a3e706c9d9a..75c1d7fbea84068 100644 --- a/clang/lib/CodeGen/CGNonTrivialStruct.cpp +++ b/clang/lib/CodeGen/CGNonTrivialStruct.cpp @@ -313,7 +313,7 @@ static const CGFunctionInfo &getFunctionInfo(CodeGenModule &CGM, for (unsigned I = 0; I < N; ++I) Params.push_back(ImplicitParamDecl::Create( Ctx, nullptr, SourceLocation(), &Ctx.Idents.get(ValNameStr[I]), ParamTy, - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); llvm::append_range(Args, Params); diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp index 632a44724184925..a8e1150e44566b8 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp @@ -1074,9 +1074,9 @@ emitCombinerOrInitializer(CodeGenModule &CGM, QualType Ty, QualType PtrTy = C.getPointerType(Ty).withRestrict(); FunctionArgList Args; ImplicitParamDecl OmpOutParm(C, /*DC=*/nullptr, Out->getLocation(), - /*Id=*/nullptr, PtrTy, ImplicitParamDecl::Other); + /*Id=*/nullptr, PtrTy, ImplicitParamKind::Other); ImplicitParamDecl OmpInParm(C, /*DC=*/nullptr, In->getLocation(), - /*Id=*/nullptr, PtrTy, ImplicitParamDecl::Other); + /*Id=*/nullptr, PtrTy, ImplicitParamKind::Other); Args.push_back(&OmpOutParm); Args.push_back(&OmpInParm); const CGFunctionInfo &FnInfo = @@ -1647,7 +1647,7 @@ llvm::Function *CGOpenMPRuntime::emitThreadPrivateVarDefinition( FunctionArgList Args; ImplicitParamDecl Dst(CGM.getContext(), /*DC=*/nullptr, Loc, /*Id=*/nullptr, CGM.getContext().VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&Dst); const auto &FI = CGM.getTypes().arrangeBuiltinFunctionDeclaration( @@ -1679,7 +1679,7 @@ llvm::Function *CGOpenMPRuntime::emitThreadPrivateVarDefinition( FunctionArgList Args; ImplicitParamDecl Dst(CGM.getContext(), /*DC=*/nullptr, Loc, /*Id=*/nullptr, CGM.getContext().VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&Dst); const auto &FI = CGM.getTypes().arrangeBuiltinFunctionDeclaration( @@ -2270,9 +2270,9 @@ static llvm::Value *emitCopyprivateCopyFunction( // void copy_func(void *LHSArg, void *RHSArg); FunctionArgList Args; ImplicitParamDecl LHSArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl RHSArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&LHSArg); Args.push_back(&RHSArg); const auto &CGFI = @@ -3107,10 +3107,10 @@ emitProxyTaskFunction(CodeGenModule &CGM, SourceLocation Loc, ASTContext &C = CGM.getContext(); FunctionArgList Args; ImplicitParamDecl GtidArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, KmpInt32Ty, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl TaskTypeArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, KmpTaskTWithPrivatesPtrQTy.withRestrict(), - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&GtidArg); Args.push_back(&TaskTypeArg); const auto &TaskEntryFnInfo = @@ -3209,10 +3209,10 @@ static llvm::Value *emitDestructorsFunction(CodeGenModule &CGM, ASTContext &C = CGM.getContext(); FunctionArgList Args; ImplicitParamDecl GtidArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, KmpInt32Ty, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl TaskTypeArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, KmpTaskTWithPrivatesPtrQTy.withRestrict(), - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&GtidArg); Args.push_back(&TaskTypeArg); const auto &DestructorFnInfo = @@ -3269,7 +3269,7 @@ emitTaskPrivateMappingFunction(CodeGenModule &CGM, SourceLocation Loc, ImplicitParamDecl TaskPrivatesArg( C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.getPointerType(PrivatesQTy).withConst().withRestrict(), - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&TaskPrivatesArg); llvm::DenseMap<CanonicalDeclPtr<const VarDecl>, unsigned> PrivateVarsPos; unsigned Counter = 1; @@ -3279,7 +3279,7 @@ emitTaskPrivateMappingFunction(CodeGenModule &CGM, SourceLocation Loc, C.getPointerType(C.getPointerType(E->getType())) .withConst() .withRestrict(), - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); const auto *VD = cast<VarDecl>(cast<DeclRefExpr>(E)->getDecl()); PrivateVarsPos[VD] = Counter; ++Counter; @@ -3290,7 +3290,7 @@ emitTaskPrivateMappingFunction(CodeGenModule &CGM, SourceLocation Loc, C.getPointerType(C.getPointerType(E->getType())) .withConst() .withRestrict(), - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); const auto *VD = cast<VarDecl>(cast<DeclRefExpr>(E)->getDecl()); PrivateVarsPos[VD] = Counter; ++Counter; @@ -3301,7 +3301,7 @@ emitTaskPrivateMappingFunction(CodeGenModule &CGM, SourceLocation Loc, C.getPointerType(C.getPointerType(E->getType())) .withConst() .withRestrict(), - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); const auto *VD = cast<VarDecl>(cast<DeclRefExpr>(E)->getDecl()); PrivateVarsPos[VD] = Counter; ++Counter; @@ -3315,7 +3315,7 @@ emitTaskPrivateMappingFunction(CodeGenModule &CGM, SourceLocation Loc, Args.push_back(ImplicitParamDecl::Create( C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.getPointerType(C.getPointerType(Ty)).withConst().withRestrict(), - ImplicitParamDecl::Other)); + ImplicitParamKind::Other)); PrivateVarsPos[VD] = Counter; ++Counter; } @@ -3519,12 +3519,12 @@ emitTaskDupFunction(CodeGenModule &CGM, SourceLocation Loc, FunctionArgList Args; ImplicitParamDecl DstArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, KmpTaskTWithPrivatesPtrQTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl SrcArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, KmpTaskTWithPrivatesPtrQTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl LastprivArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&DstArg); Args.push_back(&SrcArg); Args.push_back(&LastprivArg); @@ -3943,7 +3943,7 @@ CGOpenMPRuntime::emitTaskInit(CodeGenFunction &CGF, SourceLocation Loc, /*IndexTypeQuals=*/0, SourceRange(Loc, Loc)); // Properly emit variable-sized array. auto *PD = ImplicitParamDecl::Create(C, KmpTaskAffinityInfoArrayTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); CGF.EmitVarDecl(*PD); AffinitiesArray = CGF.GetAddrOfLocalVar(PD); NumOfElements = CGF.Builder.CreateIntCast(NumOfElements, CGF.Int32Ty, @@ -4402,7 +4402,7 @@ std::pair<llvm::Value *, Address> CGOpenMPRuntime::emitDependClause( // CGF.EmitVariablyModifiedType(KmpDependInfoArrayTy); // Properly emit variable-sized array. auto *PD = ImplicitParamDecl::Create(C, KmpDependInfoArrayTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); CGF.EmitVarDecl(*PD); DependenciesArray = CGF.GetAddrOfLocalVar(PD); NumOfElements = CGF.Builder.CreateIntCast(NumOfElements, CGF.Int32Ty, @@ -4932,9 +4932,9 @@ llvm::Function *CGOpenMPRuntime::emitReductionFunction( // void reduction_func(void *LHSArg, void *RHSArg); FunctionArgList Args; ImplicitParamDecl LHSArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl RHSArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.push_back(&LHSArg); Args.push_back(&RHSArg); const auto &CGFI = @@ -5371,9 +5371,9 @@ static llvm::Value *emitReduceInitFunction(CodeGenModule &CGM, VoidPtrTy.addRestrict(); FunctionArgList Args; ImplicitParamDecl Param(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl ParamOrig(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.emplace_back(&Param); Args.emplace_back(&ParamOrig); const auto &FnInfo = @@ -5442,9 +5442,9 @@ static llvm::Value *emitReduceCombFunction(CodeGenModule &CGM, const auto *RHSVD = cast<VarDecl>(cast<DeclRefExpr>(RHS)->getDecl()); FunctionArgList Args; ImplicitParamDecl ParamInOut(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); ImplicitParamDecl ParamIn(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.emplace_back(&ParamInOut); Args.emplace_back(&ParamIn); const auto &FnInfo = @@ -5514,7 +5514,7 @@ static llvm::Value *emitReduceFiniFunction(CodeGenModule &CGM, ASTContext &C = CGM.getContext(); FunctionArgList Args; ImplicitParamDecl Param(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Args.emplace_back(&Param); const auto &FnInfo = CGM.getTypes().arrangeBuiltinFunctionDeclaration(C.VoidTy, Args); @@ -9054,17 +9054,17 @@ void CGOpenMPRuntime::emitUserDefinedMapper(const OMPDeclareMapperDecl *D, // Prepare mapper function arguments and attributes. ImplicitParamDecl HandleArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); ImplicitParamDecl BaseArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl BeginArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); ImplicitParamDecl SizeArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, Int64Ty, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl TypeArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, Int64Ty, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl NameArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.VoidPtrTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&HandleArg); Args.push_back(&BaseArg); diff --git a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp index 370613e75420e23..335ccec6455fc46 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp @@ -1815,12 +1815,12 @@ static llvm::Value *emitInterWarpCopyFunction(CodeGenModule &CGM, // At the stage of the computation when this function is called, partially // aggregated values reside in the first lane of every active warp. ImplicitParamDecl ReduceListArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); // NumWarps: number of warps active in the parallel region. This could // be smaller than 32 (max warps in a CTA) for partial block reduction. ImplicitParamDecl NumWarpsArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.getIntTypeForBitwidth(32, /* Signed */ true), - ImplicitParamDecl::Other); + ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&ReduceListArg); Args.push_back(&NumWarpsArg); @@ -2113,16 +2113,16 @@ static llvm::Function *emitShuffleAndReduceFunction( // Thread local Reduce list used to host the values of data to be reduced. ImplicitParamDecl ReduceListArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); // Current lane id; could be logical. ImplicitParamDecl LaneIDArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.ShortTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // Offset of the remote source lane relative to the current lane. ImplicitParamDecl RemoteLaneOffsetArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.ShortTy, ImplicitParamDecl::Other); + C.ShortTy, ImplicitParamKind::Other); // Algorithm version. This is expected to be known at compile time. ImplicitParamDecl AlgoVerArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.ShortTy, ImplicitParamDecl::Other); + C.ShortTy, ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&ReduceListArg); Args.push_back(&LaneIDArg); @@ -2274,13 +2274,13 @@ static llvm::Value *emitListToGlobalCopyFunction( // Buffer: global reduction buffer. ImplicitParamDecl BufferArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); // Idx: index of the buffer. ImplicitParamDecl IdxArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // ReduceList: thread local Reduce list. ImplicitParamDecl ReduceListArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&BufferArg); Args.push_back(&IdxArg); @@ -2387,13 +2387,13 @@ static llvm::Value *emitListToGlobalReduceFunction( // Buffer: global reduction buffer. ImplicitParamDecl BufferArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); // Idx: index of the buffer. ImplicitParamDecl IdxArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // ReduceList: thread local Reduce list. ImplicitParamDecl ReduceListArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&BufferArg); Args.push_back(&IdxArg); @@ -2481,13 +2481,13 @@ static llvm::Value *emitGlobalToListCopyFunction( // Buffer: global reduction buffer. ImplicitParamDecl BufferArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); // Idx: index of the buffer. ImplicitParamDecl IdxArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // ReduceList: thread local Reduce list. ImplicitParamDecl ReduceListArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&BufferArg); Args.push_back(&IdxArg); @@ -2595,13 +2595,13 @@ static llvm::Value *emitGlobalToListReduceFunction( // Buffer: global reduction buffer. ImplicitParamDecl BufferArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); // Idx: index of the buffer. ImplicitParamDecl IdxArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, C.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // ReduceList: thread local Reduce list. ImplicitParamDecl ReduceListArg(C, /*DC=*/nullptr, Loc, /*Id=*/nullptr, - C.VoidPtrTy, ImplicitParamDecl::Other); + C.VoidPtrTy, ImplicitParamKind::Other); FunctionArgList Args; Args.push_back(&BufferArg); Args.push_back(&IdxArg); @@ -3111,7 +3111,7 @@ CGOpenMPRuntimeGPU::translateParameter(const FieldDecl *FD, if (isa<ImplicitParamDecl>(NativeParam)) return ImplicitParamDecl::Create( CGM.getContext(), /*DC=*/nullptr, NativeParam->getLocation(), - NativeParam->getIdentifier(), ArgType, ImplicitParamDecl::Other); + NativeParam->getIdentifier(), ArgType, ImplicitParamKind::Other); return ParmVarDecl::Create( CGM.getContext(), const_cast<DeclContext *>(NativeParam->getDeclContext()), @@ -3194,10 +3194,10 @@ llvm::Function *CGOpenMPRuntimeGPU::createParallelDataSharingWrapper( Ctx.getIntTypeForBitwidth(/*DestWidth=*/32, /*Signed=*/false); ImplicitParamDecl ParallelLevelArg(Ctx, /*DC=*/nullptr, D.getBeginLoc(), /*Id=*/nullptr, Int16QTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); ImplicitParamDecl WrapperArg(Ctx, /*DC=*/nullptr, D.getBeginLoc(), /*Id=*/nullptr, Int32QTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); WrapperArgs.emplace_back(&ParallelLevelArg); WrapperArgs.emplace_back(&WrapperArg); diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index 3e2ed50a5750254..62b056c5d08a18c 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -485,7 +485,7 @@ static llvm::Function *emitOutlinedFunctionPrologue( if (CapVar && (CapVar->getTLSKind() != clang::VarDecl::TLS_None)) { Arg = ImplicitParamDecl::Create(Ctx, /*DC=*/nullptr, FD->getLocation(), II, ArgType, - ImplicitParamDecl::ThreadPrivateVar); + ImplicitParamKind::ThreadPrivateVar); } else if (DebugFunctionDecl && (CapVar || I->capturesThis())) { Arg = ParmVarDecl::Create( Ctx, DebugFunctionDecl, @@ -494,7 +494,7 @@ static llvm::Function *emitOutlinedFunctionPrologue( /*TInfo=*/nullptr, SC_None, /*DefArg=*/nullptr); } else { Arg = ImplicitParamDecl::Create(Ctx, /*DC=*/nullptr, FD->getLocation(), - II, ArgType, ImplicitParamDecl::Other); + II, ArgType, ImplicitParamKind::Other); } Args.emplace_back(Arg); // Do not cast arguments if we emit function with non-original types. @@ -4991,18 +4991,18 @@ createImplicitFirstprivateForType(ASTContext &C, OMPTaskDataTy &Data, QualType Ty, CapturedDecl *CD, SourceLocation Loc) { auto *OrigVD = ImplicitParamDecl::Create(C, CD, Loc, /*Id=*/nullptr, Ty, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); auto *OrigRef = DeclRefExpr::Create( C, NestedNameSpecifierLoc(), SourceLocation(), OrigVD, /*RefersToEnclosingVariableOrCapture=*/false, Loc, Ty, VK_LValue); auto *PrivateVD = ImplicitParamDecl::Create(C, CD, Loc, /*Id=*/nullptr, Ty, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); auto *PrivateRef = DeclRefExpr::Create( C, NestedNameSpecifierLoc(), SourceLocation(), PrivateVD, /*RefersToEnclosingVariableOrCapture=*/false, Loc, Ty, VK_LValue); QualType ElemType = C.getBaseElementType(Ty); auto *InitVD = ImplicitParamDecl::Create(C, CD, Loc, /*Id=*/nullptr, ElemType, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); auto *InitRef = DeclRefExpr::Create( C, NestedNameSpecifierLoc(), SourceLocation(), InitVD, /*RefersToEnclosingVariableOrCapture=*/false, Loc, ElemType, VK_LValue); diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 3682a2c6ae859ea..6a910abcfe21d2f 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -1338,7 +1338,7 @@ QualType CodeGenFunction::BuildFunctionArgList(GlobalDecl GD, auto *Implicit = ImplicitParamDecl::Create( getContext(), Param->getDeclContext(), Param->getLocation(), - /*Id=*/nullptr, getContext().getSizeType(), ImplicitParamDecl::Other); + /*Id=*/nullptr, getContext().getSizeType(), ImplicitParamKind::Other); SizeArguments[Param] = Implicit; Args.push_back(Implicit); } diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp index eb70f56e5b57916..89a2127f3761af4 100644 --- a/clang/lib/CodeGen/ItaniumCXXABI.cpp +++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -1717,7 +1717,7 @@ void ItaniumCXXABI::addImplicitStructorParams(CodeGenFunction &CGF, QualType T = Context.getPointerType(Q); auto *VTTDecl = ImplicitParamDecl::Create( Context, /*DC=*/nullptr, MD->getLocation(), &Context.Idents.get("vtt"), - T, ImplicitParamDecl::CXXVTT); + T, ImplicitParamKind::CXXVTT); Params.insert(Params.begin() + 1, VTTDecl); getStructorImplicitParamDecl(CGF) = VTTDecl; } diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index f7b9328fbce339f..cc7bc3b73589877 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -1524,7 +1524,7 @@ void MicrosoftCXXABI::addImplicitStructorParams(CodeGenFunction &CGF, auto *IsMostDerived = ImplicitParamDecl::Create( Context, /*DC=*/nullptr, CGF.CurGD.getDecl()->getLocation(), &Context.Idents.get("is_most_derived"), Context.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); // The 'most_derived' parameter goes second if the ctor is variadic and last // if it's not. Dtors can't be variadic. const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>(); @@ -1537,7 +1537,7 @@ void MicrosoftCXXABI::addImplicitStructorParams(CodeGenFunction &CGF, auto *ShouldDelete = ImplicitParamDecl::Create( Context, /*DC=*/nullptr, CGF.CurGD.getDecl()->getLocation(), &Context.Idents.get("should_call_delete"), Context.IntTy, - ImplicitParamDecl::Other); + ImplicitParamKind::Other); Params.push_back(ShouldDelete); getStructorImplicitParamDecl(CGF) = ShouldDelete; } @@ -4094,7 +4094,7 @@ MicrosoftCXXABI::getAddrOfCXXCtorClosure(const CXXConstructorDecl *CD, &getContext().Idents.get("src"), getContext().getLValueReferenceType(RecordTy, /*SpelledAsLValue=*/true), - ImplicitParamDecl::Other); + ImplicitParamKind::Other); if (IsCopy) FunctionArgs.push_back(&SrcParam); @@ -4104,7 +4104,7 @@ MicrosoftCXXABI::getAddrOfCXXCtorClosure(const CXXConstructorDecl *CD, ImplicitParamDecl IsMostDerived(getContext(), /*DC=*/nullptr, SourceLocation(), &getContext().Idents.get("is_most_derived"), - getContext().IntTy, ImplicitParamDecl::Other); + getContext().IntTy, ImplicitParamKind::Other); // Only add the parameter to the list if the class has virtual bases. if (RD->getNumVBases() > 0) FunctionArgs.push_back(&IsMostDerived); diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 5ef0aaa40ba1f28..2b45aa5dff7be7c 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -4763,7 +4763,7 @@ void Sema::ActOnCapturedRegionStart(SourceLocation Loc, Scope *CurScope, QualType ParamType = Context.getPointerType(Context.getTagDeclType(RD)); auto *Param = ImplicitParamDecl::Create(Context, DC, Loc, ParamName, ParamType, - ImplicitParamDecl::CapturedContext); + ImplicitParamKind::CapturedContext); DC->addDecl(Param); CD->setContextParam(0, Param); @@ -4804,7 +4804,7 @@ void Sema::ActOnCapturedRegionStart(SourceLocation Loc, Scope *CurScope, .withRestrict(); auto *Param = ImplicitParamDecl::Create(Context, DC, Loc, ParamName, ParamType, - ImplicitParamDecl::CapturedContext); + ImplicitParamKind::CapturedContext); DC->addDecl(Param); CD->setContextParam(ParamNum, Param); ContextIsFound = true; @@ -4812,7 +4812,7 @@ void Sema::ActOnCapturedRegionStart(SourceLocation Loc, Scope *CurScope, IdentifierInfo *ParamName = &Context.Idents.get(I->first); auto *Param = ImplicitParamDecl::Create(Context, DC, Loc, ParamName, I->second, - ImplicitParamDecl::CapturedContext); + ImplicitParamKind::CapturedContext); DC->addDecl(Param); CD->setParam(ParamNum, Param); } @@ -4824,7 +4824,7 @@ void Sema::ActOnCapturedRegionStart(SourceLocation Loc, Scope *CurScope, QualType ParamType = Context.getPointerType(Context.getTagDeclType(RD)); auto *Param = ImplicitParamDecl::Create(Context, DC, Loc, ParamName, ParamType, - ImplicitParamDecl::CapturedContext); + ImplicitParamKind::CapturedContext); DC->addDecl(Param); CD->setContextParam(ParamNum, Param); } diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index a06df18e898186b..763b610288f1182 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -1081,7 +1081,8 @@ void ASTDeclWriter::VisitVarDecl(VarDecl *D) { VarDeclBits.addBit(D->isPreviousDeclInSameBlockScope()); if (const auto *IPD = dyn_cast<ImplicitParamDecl>(D)) - VarDeclBits.addBits(IPD->getParameterKind(), /*Width=*/3); + VarDeclBits.addBits(llvm::to_underlying(IPD->getParameterKind()), + /*Width=*/3); else VarDeclBits.addBits(0, /*Width=*/3); diff --git a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index 2d184d529513253..4a9d130c240aec3 100644 --- a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp @@ -632,7 +632,7 @@ static bool potentiallyWritesIntoIvar(const Decl *Parent, if (const auto *DRE = dyn_cast<DeclRefExpr>(Base)) if (const auto *ID = dyn_cast<ImplicitParamDecl>(DRE->getDecl())) - if (ID->getParameterKind() == ImplicitParamDecl::ObjCSelf) + if (ID->getParameterKind() == ImplicitParamKind::ObjCSelf) return true; return false; @@ -1394,8 +1394,7 @@ static void showBRParamDiagnostics(llvm::raw_svector_ostream &OS, VR->printPretty(OS); } } else if (const auto *ImplParam = dyn_cast<ImplicitParamDecl>(D)) { - if (ImplParam->getParameterKind() == - ImplicitParamDecl::ImplicitParamKind::ObjCSelf) { + if (ImplParam->getParameterKind() == ImplicitParamKind::ObjCSelf) { OS << " via implicit parameter 'self'"; } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits