Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormonojenkins <jo.shields+jenkins@xamarin.com>2020-02-04 18:41:04 +0300
committerGitHub <noreply@github.com>2020-02-04 18:41:04 +0300
commit0011444f0b60cc122cfc768e348434a2a3c2d2c4 (patch)
treebd35cf6ceb39a4d5c094cd7fcd424d5059b7362b
parent4c93e382f568649ff8f4b06b6547dc8ceef0f0bc (diff)
[aot] Avoid inflating gparams with byreflike types during generic sharing. (#18682)
Fixes https://github.com/mono/mono/issues/18676. Co-authored-by: Zoltan Varga <vargaz@gmail.com>
-rw-r--r--mono/mini/mini-generic-sharing.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mono/mini/mini-generic-sharing.c b/mono/mini/mini-generic-sharing.c
index e97d1062d2c..26d0c01fe91 100644
--- a/mono/mini/mini-generic-sharing.c
+++ b/mono/mini/mini-generic-sharing.c
@@ -1178,6 +1178,9 @@ get_wrapper_shared_vtype (MonoType *t)
if (field->type->attrs & (FIELD_ATTRIBUTE_STATIC | FIELD_ATTRIBUTE_HAS_FIELD_RVA))
continue;
MonoType *ftype = get_wrapper_shared_type_full (field->type, TRUE);
+ if (m_class_is_byreflike (mono_class_from_mono_type_internal (ftype)))
+ /* Cannot inflate generic params with byreflike types */
+ return NULL;
args [findex ++] = ftype;
if (findex >= 16)
break;