# Copyright (c) 2021-2024 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 <external>
.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) <ctor> {
return.void
}
.function i32 main() {
initobj.short R.ctor
sta.obj v0
ldobj.64 v0, R.fu1
#
ldai 0
return
}