X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-native-types.c;h=88efb61d67b9a587edd702b6c4f0741a10bc048c;hb=fb48a088ce55f95c522ddbd02a0efc74f765c56e;hp=6e461b806b461d133a7ecd56912a48c49d441354;hpb=4c960e1dd530396fdd9400c87729a6ce3101e5c1;p=mono.git diff --git a/mono/mini/mini-native-types.c b/mono/mini/mini-native-types.c index 6e461b806b4..88efb61d67b 100644 --- a/mono/mini/mini-native-types.c +++ b/mono/mini/mini-native-types.c @@ -1,5 +1,6 @@ -/* - * magic-types.c: intrinsics for variable sized int/floats +/** + * \file + * intrinsics for variable sized int/floats * * Author: * Rodrigo Kumpera (kumpera@gmail.com) @@ -125,9 +126,6 @@ static const MagicTypeInfo type_info[] = { { 2, STACK_R8, STACK_R8, STACK_R8, OP_FCONV_TO_R8, OP_FCONV_TO_R4, OP_FMOVE, 0, 0, OP_PT_STORE_FP_MEMBASE_REG, 0 }, }; -static inline gboolean mono_class_is_magic_int (MonoClass *klass); -static inline gboolean mono_class_is_magic_float (MonoClass *klass); - static inline gboolean type_size (MonoCompile *cfg, MonoType *type) @@ -351,10 +349,13 @@ mono_class_is_magic_assembly (MonoClass *klass) return TRUE; if (!strcmp ("Xamarin.WatchOS", klass->image->assembly_name)) return TRUE; + /* regression test suite */ + if (!strcmp ("builtin-types", klass->image->assembly_name)) + return TRUE; return FALSE; } -static inline gboolean +gboolean mono_class_is_magic_int (MonoClass *klass) { static MonoClass *magic_nint_class; @@ -387,7 +388,7 @@ mono_class_is_magic_int (MonoClass *klass) return FALSE; } -static inline gboolean +gboolean mono_class_is_magic_float (MonoClass *klass) { static MonoClass *magic_nfloat_class; @@ -411,8 +412,9 @@ mono_class_is_magic_float (MonoClass *klass) MonoClassField *value_field = mono_class_get_field_from_name (klass, "v"); g_assert (value_field); MonoType *t = mono_field_get_type (value_field); - g_assert (t->type == mini_native_type_replace_type (&klass->byval_arg)->type); - + MonoType *native = mini_native_type_replace_type (&klass->byval_arg); + if (t->type != native->type) + g_error ("Assembly used for native types '%s' doesn't match this runtime, %s is mapped to %s, expecting %s.\n", klass->image->name, klass->name, mono_type_full_name (t), mono_type_full_name (native)); return TRUE; } return FALSE;