42 | | Switching from `=` to `@=` (C style initialization) changes the error message so that C compliation complains about a missing thunk. It does this for all cases. |
43 | | {{{ |
44 | | void (*mono0c)(int &) @= poly0; |
45 | | void (*mono1c)(int &) @= poly1; |
46 | | void (*mono2c)(int &) @= poly2; |
47 | | struct wrapper mono_wrapper0c @= { poly0 }; |
48 | | struct wrapper mono_wrapper1c @= { poly1 }; |
49 | | struct wrapper mono_wrapper2c @= { poly2 }; |
50 | | }}} |
| 42 | Switching from `=` to `@=` currently fixes the issue. So it seems that trying to insert a constructor call might be the source of the problem. Either because that makes the system forget the function must be monomorphized or it is monomorphized improperly in the new context. |