Changes between Initial Version and Version 2 of Ticket #193


Ignore:
Timestamp:
Jul 6, 2020, 2:51:52 PM (4 years ago)
Author:
ajbeach
Comment:

Updated the description now that the @= cases are working.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #193 – Description

    initial v2  
    4040}}}
    4141
    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 }}}
     42Switching 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.