1# Copyright 2023 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15.class LMain; 16.super Ljava/lang/Object; 17 18.method public static main([Ljava/lang/String;)V 19.registers 1 20 :try_start 21 new-instance v0, LMissingClass; 22 invoke-direct {v0}, LMissingClass;-><init>()V 23 # The verifier used to fail on this instruction used to type v0 as a conflict, 24 # because LSuperMissingClass was unresolved. This lead to the `move-result-object` 25 # below to make the class hard fail. 26 filled-new-array {v0}, [LSuperMissingClass; 27 move-result-object v0 28 invoke-static {v0}, LMain;->doCall([LSuperMissingClass;)V 29 # Throw a NPE to signal we don't expect to enter here. 30 const/4 v0, 0 31 throw v0 32 :try_end 33 .catch Ljava/lang/NoClassDefFoundError; {:try_start .. :try_end} :catch_0 34 :catch_0 35 # NoClassDefFoundError expected 36 return-void 37.end method 38 39.method public static doCall([LSuperMissingClass;)V 40.registers 1 41 return-void 42.end method 43