Search Issue Tracker

Fixed in 5.1.4

Votes

0

Found in

5.1.2p3

Issue ID

718696

Regression

No

[IL2CPP] fails to convert unsafe void* to a struct pointer type

IL2CPP

-

Unity Editor with the IL2CPP scripting backend generates an invalid code when the project has a script performing a typecast from unsafe void* to a struct pointer type.

Example:

public void testUnsafe(void* vp) {
*(TestStruct*)vp = new TestStruct(123);
}

This emits the following C++ code:

void* L_0 = ___vp;
TestStruct_t1 L_1 = {0};
TestStruct__ctor_m0(&L_1, ((int32_t)123), /*hidden argument*/NULL);
*L_0 = L_1; // <<< ERROR
return;

Xcode fails to compile the code because *L_0 is not assignable.

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.