diff options
Diffstat (limited to 'llvm/lib/Transforms/Coroutines/Coroutines.cpp')
-rw-r--r-- | llvm/lib/Transforms/Coroutines/Coroutines.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Coroutines/Coroutines.cpp b/llvm/lib/Transforms/Coroutines/Coroutines.cpp index ae2d9e192c87..e4883ef89db7 100644 --- a/llvm/lib/Transforms/Coroutines/Coroutines.cpp +++ b/llvm/lib/Transforms/Coroutines/Coroutines.cpp @@ -126,6 +126,7 @@ static bool isCoroutineIntrinsicName(StringRef Name) { "llvm.coro.alloc", "llvm.coro.async.context.alloc", "llvm.coro.async.context.dealloc", + "llvm.coro.async.resume", "llvm.coro.async.size.replace", "llvm.coro.async.store_resume", "llvm.coro.begin", @@ -311,10 +312,9 @@ void coro::Shape::buildFrom(Function &F) { if (CoroBegin) report_fatal_error( "coroutine should have exactly one defining @llvm.coro.begin"); - CB->addAttribute(AttributeList::ReturnIndex, Attribute::NonNull); - CB->addAttribute(AttributeList::ReturnIndex, Attribute::NoAlias); - CB->removeAttribute(AttributeList::FunctionIndex, - Attribute::NoDuplicate); + CB->addRetAttr(Attribute::NonNull); + CB->addRetAttr(Attribute::NoAlias); + CB->removeFnAttr(Attribute::NoDuplicate); CoroBegin = CB; break; } @@ -571,8 +571,8 @@ void coro::Shape::emitDealloc(IRBuilder<> &Builder, Value *Ptr, llvm_unreachable("Unknown coro::ABI enum"); } -LLVM_ATTRIBUTE_NORETURN -static void fail(const Instruction *I, const char *Reason, Value *V) { +[[noreturn]] static void fail(const Instruction *I, const char *Reason, + Value *V) { #ifndef NDEBUG I->dump(); if (V) { @@ -722,7 +722,7 @@ void CoroAsyncEndInst::checkWellFormed() const { return; auto *FnTy = cast<FunctionType>(MustTailCallFunc->getType()->getPointerElementType()); - if (FnTy->getNumParams() != (getNumArgOperands() - 3)) + if (FnTy->getNumParams() != (arg_size() - 3)) fail(this, "llvm.coro.end.async must tail call function argument type must " "match the tail arguments", |