Author: Chuanqi Xu Date: 2022-09-07T10:45:01+08:00 New Revision: 5f571eeb3f764c6d97b81822464ea420adef2cf7
URL: https://github.com/llvm/llvm-project/commit/5f571eeb3f764c6d97b81822464ea420adef2cf7 DIFF: https://github.com/llvm/llvm-project/commit/5f571eeb3f764c6d97b81822464ea420adef2cf7.diff LOG: [NFC] [Frontend] Correct the use of 'auto' in SemaCoroutine and CGCoroutine We should only use 'auto' in case we can know the type from the right hand side of the expression. Also we need keep '*' around if the type is a pointer actually. Few uses of 'auto' in SemaCoroutine.cpp and CGCoroutine.cpp violates the rule. This commit tries to fix it. Added: Modified: clang/lib/CodeGen/CGCoroutine.cpp clang/lib/Sema/SemaCoroutine.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGCoroutine.cpp b/clang/lib/CodeGen/CGCoroutine.cpp index c0fcd632ea0d7..abe8d2644a1f3 100644 --- a/clang/lib/CodeGen/CGCoroutine.cpp +++ b/clang/lib/CodeGen/CGCoroutine.cpp @@ -539,7 +539,7 @@ void CodeGenFunction::EmitCoroutineBody(const CoroutineBodyStmt &S) { EHStack.pushCleanup<CallCoroDelete>(NormalAndEHCleanup, S.getDeallocate()); // Create mapping between parameters and copy-params for coroutine function. - auto ParamMoves = S.getParamMoves(); + llvm::ArrayRef<const Stmt *> ParamMoves = S.getParamMoves(); assert( (ParamMoves.size() == 0 || (ParamMoves.size() == FnArgs.size())) && "ParamMoves and FnArgs should be the same size for coroutine function"); @@ -673,13 +673,13 @@ RValue CodeGenFunction::EmitCoroutineIntrinsic(const CallExpr *E, } CGM.Error(E->getBeginLoc(), "this builtin expect that __builtin_coro_begin " "has been used earlier in this function"); - auto NullPtr = llvm::ConstantPointerNull::get(Builder.getInt8PtrTy()); + auto *NullPtr = llvm::ConstantPointerNull::get(Builder.getInt8PtrTy()); return RValue::get(NullPtr); } case llvm::Intrinsic::coro_size: { auto &Context = getContext(); - auto SizeTy = Context.getSizeType(); - auto T = Builder.getIntNTy(Context.getTypeSize(SizeTy)); + CanQualType SizeTy = Context.getSizeType(); + llvm::IntegerType *T = Builder.getIntNTy(Context.getTypeSize(SizeTy)); llvm::Function *F = CGM.getIntrinsic(llvm::Intrinsic::coro_size, T); return RValue::get(Builder.CreateCall(F)); } diff --git a/clang/lib/Sema/SemaCoroutine.cpp b/clang/lib/Sema/SemaCoroutine.cpp index 933b9188a8ae7..31a79e11f21f6 100644 --- a/clang/lib/Sema/SemaCoroutine.cpp +++ b/clang/lib/Sema/SemaCoroutine.cpp @@ -1698,7 +1698,7 @@ bool Sema::buildCoroutineParameterMoves(SourceLocation Loc) { // [dcl.fct.def.coroutine]p13 // The initialization and destruction of each parameter copy occurs in the // context of the called coroutine. - auto D = buildVarDecl(*this, Loc, PD->getType(), PD->getIdentifier()); + auto *D = buildVarDecl(*this, Loc, PD->getType(), PD->getIdentifier()); AddInitializerToDecl(D, CExpr, /*DirectInit=*/true); // Convert decl to a statement. @@ -1728,7 +1728,8 @@ ClassTemplateDecl *Sema::lookupCoroutineTraits(SourceLocation KwLoc, // discovered. // TODO: Become stricter when <experimental/coroutine> is removed. - auto const &TraitIdent = PP.getIdentifierTable().get("coroutine_traits"); + IdentifierInfo const &TraitIdent = + PP.getIdentifierTable().get("coroutine_traits"); NamespaceDecl *StdSpace = getStdNamespace(); LookupResult ResStd(*this, &TraitIdent, FuncLoc, LookupOrdinaryName); @@ -1746,7 +1747,7 @@ ClassTemplateDecl *Sema::lookupCoroutineTraits(SourceLocation KwLoc, } // Prefer ::std to std::experimental. - auto &Result = InStd ? ResStd : ResExp; + LookupResult &Result = InStd ? ResStd : ResExp; CoroTraitsNamespaceCache = InStd ? StdSpace : ExpSpace; // coroutine_traits is required to be a class template. @@ -1763,7 +1764,7 @@ ClassTemplateDecl *Sema::lookupCoroutineTraits(SourceLocation KwLoc, Diag(KwLoc, diag::warn_deprecated_coroutine_namespace) << "coroutine_traits"; ResExp.suppressDiagnostics(); - auto *Found = *ResExp.begin(); + NamedDecl *Found = *ResExp.begin(); Diag(Found->getLocation(), diag::note_entity_declared_at) << Found; if (InStd && _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits