// RUN: cir-opt %s --verify-roundtrip | FileCheck %s !s32i = !cir.int !void = !cir.void module { cir.func @begin_catch_inside_catch() { cir.scope { cir.try { cir.yield } catch all (%eh_token : !cir.eh_token) { %catch_token, %exception = cir.begin_catch %eh_token : !cir.eh_token -> (!cir.catch_token, !cir.ptr) cir.cleanup.scope { cir.yield } cleanup eh { cir.end_catch %catch_token : !cir.catch_token cir.yield } cir.yield } } cir.return } // CHECK: cir.func @begin_catch_inside_catch() { // CHECK: cir.scope { // CHECK: cir.try { // CHECK: cir.yield // CHECK: } catch all (%[[EH_TOKEN:.*]]: !cir.eh_token) { // CHECK: %[[CATCH_TOKEN:.*]], %[[EXCEPTION:.*]] = cir.begin_catch %[[EH_TOKEN]] : !cir.eh_token -> (!cir.catch_token, !cir.ptr) // CHECK: cir.cleanup.scope { // CHECK: cir.yield // CHECK: } cleanup eh { // CHECK: cir.end_catch %[[CATCH_TOKEN]] : !cir.catch_token // CHECK: cir.yield // CHECK: } // CHECK: cir.yield // CHECK: } // CHECK: } // CHECK: cir.return // CHECK: } }