[all-commits] [llvm/llvm-project] e00a8d: Fix codegen for coroutine with function-try-block

Matthias Braun via All-commits all-commits at lists.llvm.org
Thu Mar 30 11:18:58 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e00a8d081d789cac606cf0749c332c4632132820
      https://github.com/llvm/llvm-project/commit/e00a8d081d789cac606cf0749c332c4632132820
  Author: Matthias Braun <matze at braunis.de>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M clang/include/clang/AST/StmtCXX.h
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/StmtCXX.cpp
    M clang/lib/CodeGen/CGCoroutine.cpp
    M clang/lib/Sema/SemaStmt.cpp
    A clang/test/CodeGenCoroutines/coro-function-try-block.cpp

  Log Message:
  -----------
  Fix codegen for coroutine with function-try-block

This fixes an assertion error when writing a coroutine with a
function-try-block. In this case the function body is not a
`CompoundStmt` so the code constructing an artificial CXXTryStmt must
also construct a `CompoundStmt` for it.

While on it adjust the `CXXStmt::Create` function to only accept
`CompoundStmt*`.

Differential Revision: https://reviews.llvm.org/D146758




More information about the All-commits mailing list