What is the pragma linksign good for?
The pragma linksign allows you to use a signature in the C implementation of a function that is completely different from that used within SAC. First, you may permute the return values and arguments of the function. For each return value and each formal parameter in the function declaration you must specify the respective position in the C signature. Here, the same enumeration scheme applies as used for the pragma refcounting. However, beyond simple permutations you may also map one return value to the same position as one formal parameter of the same type. In this way, C functions that destructively update one of their arguments may be used from SAC in a way that does not conflict with the functional semantics of SAC. If the respective type already is a pointer type, this type is used, otherwise the scalar type is referenced once in order to allow the update. Be careful, if you combine this feature with doing the memory management on your own (see )! For example: int, float[] fun( int