# Copyright (c) 2021 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # The following comment until the empty line must be a valid YAML document # containing exact copies of ISA specification assertions relevant to this test. #--- #- title: Get field from object # description: 'Get field value from an object by field id and put it into accumulator. # #' # instructions: # - sig: ldobj.64 v:in:ref, field_id # acc: out:b64 # format: # - op_v_8_id_32 # verification: # - field_id_size ## runner-option: verifier-failure ## runner-option: bugid: 1834 ## runner-option: tags: verifier # Test description: # Check that verifier reports an error when the field resolves to a field with size or type that is not corresponding to bytecode .language PandaAssembly .record panda.Object .record Q {} .function void Q.ctor(Q a0) { return.void } .record R { u1 fu1 u8 fu8 i8 fi8 u16 fu16 i16 fi16 u32 fu32 i32 fi32 u64 fu64 i64 fi64 f32 ff32 f64 ff64 i32[] fi32Array Q fQ Q[] fQArray panda.Object fObj panda.Object[] fObjArray } .function void R.ctor(R a0) { return.void } .function i32 main() { initobj.short R.ctor sta.obj v0 ldobj.64 v0, R.fu1 # ldai 0 return }