Hi Josh,
This unfortunately does not fix all cases in 4.6.3p2 (but I can confirm the il2cpp_array_size_t errors seem to have gone in that patch)
For example:
uint8_t L_17 = GenArrayGet2(V_24, (int32_t)V_23.___m_value_0, 0, uint8_t);;
Gives the error “Cast from pointer to smaller type ‘int32_t’ (aka ‘int’) loses information”
I’m down to about 5 such errors in our project now …
For reference, the entire generated function looked like this:
IL_0174:
{
ByteU5B0___U2C0___U5D_t2520* L_15 = V_4;
V_24 = L_15;
int32_t L_16 = V_11;
V_23.___m_value_0 = (void*)L_16;
NullCheck(V_24);
uint8_t L_17 = GenArrayGet2(V_24, (int32_t)V_23.___m_value_0, 0, uint8_t);;
IL2CPP_RUNTIME_CLASS_INIT(InitializedTypeInfo(&RijndaelEngine_t2508_il2cpp_TypeInfo));
NullCheck(V_4);
uint8_t L_18 = GenArrayGet2(V_4, ((int32_t)(((int32_t)(V_11+1))%4)), ((int32_t)(V_0-1)), uint8_t);;
NullCheck((((RijndaelEngine_t2508_StaticFields*)InitializedTypeInfo(&RijndaelEngine_t2508_il2cpp_TypeInfo)->static_fields)->___S_4));
IL2CPP_ARRAY_BOUNDS_CHECK((((RijndaelEngine_t2508_StaticFields*)InitializedTypeInfo(&RijndaelEngine_t2508_il2cpp_TypeInfo)->static_fields)->___S_4), ((int32_t)((int32_t)L_18&(int32_t)((int32_t)255))));
int32_t L_19 = ((int32_t)((int32_t)L_18&(int32_t)((int32_t)255)));
NullCheck(L_15);
GenArraySet2(L_15, L_16, 0, (((uint8_t)((int32_t)((int32_t)L_17^(int32_t)((uint8_t)(uint8_t*)SZArrayLdElema((((RijndaelEngine_t2508_StaticFields*)InitializedTypeInfo(&RijndaelEngine_t2508_il2cpp_TypeInfo)->static_fields)->___S_4), L_19)))))), uint8_t);;
V_11 = ((int32_t)(V_11+1));
}
In Bulk_BouncyCastle.Crypto_7.cpp
Adrian