1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14# checking catch block handling the specific exception 15 16.record panda.NullPointerException <external> 17 18.function void foo(panda.NullPointerException a0) { 19 return.void 20} 21 22.function i32 main() { 23try_begin_label_0: 24 mov.null v1 25 call.short foo:(panda.NullPointerException), v1 26try_end_label_0: 27 ldai 1 28 return 29handler_begin_label_0_0: 30 sta.obj v0 31 call.short foo:(panda.NullPointerException), v0 # should be Ok as v0 holds panda.NullPointerException 32 ldai 0 33 return 34 35.catch panda.NullPointerException, try_begin_label_0, try_end_label_0, handler_begin_label_0_0 36} 37