b13c37726c
Changes the kernel representation of structs in two ways. 1. `_addressOf` field of `Struct` gets type `Object` because it will be either `TypedData` or `Pointer` in structs by value CL. 2. Subtypes of `Struct` get a pragma `vm:ffi:struct-fields` which contains a const list of the native types of the fields of the struct which will be read in the VM to do compute the locations of structs in the target ABI. Split off from https://dart-review.googlesource.com/c/sdk/+/140290/23 to make that CL smaller. That CL will no longer have changes to the kernel representation of FFI code after this CL lands separately. These changes are not consumed in the VM in this CL, but they are tested by the expect files. Issue: https://github.com/dart-lang/sdk/issues/36730. Change-Id: I5d3babd5be07f78c6d2bd80bbc1fd492c51bc01f Cq-Include-Trybots: luci.dart.try:front-end-linux-release-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/167280 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>