[mono][interp] Fix a few local store warnings (#66766)
authorVlad Brezae <brezaevlad@gmail.com>
Mon, 21 Mar 2022 14:18:33 +0000 (16:18 +0200)
committerGitHub <noreply@github.com>
Mon, 21 Mar 2022 14:18:33 +0000 (16:18 +0200)
commit82d06f5a12e32516c4e4248b4afc29e366dc8417
tree5298191e855b7f777f278c95fe6ac976421c23d0
parentd9b690b3dacaa3ef9e6de6ec1f4c22f5acbfac1f
[mono][interp] Fix a few local store warnings (#66766)

* [mono][interp] Fix warning when storing function pointers

* [mono][interp] Fix storing of R4 or R8 into local of different size

The IL execution stack operates on generic floating type F, which can be stored in local of both float32 or float64. We however operate on the real types and need to add implicit conversions if necessary.

* [mono][interp] Fix ckfinite

It was previously handling only R8 correctly.

* [mono][interp] Add implicit conversion between nint and int32

* [mono][interp] Change warning to error
src/mono/mono/mini/interp/interp.c
src/mono/mono/mini/interp/mintops.def
src/mono/mono/mini/interp/transform.c