Message "<name>" has a non-void return type but its linkage "<name>" preserves the return register(s). Standard linkage will be used. Description The function or typedef's special linkage specifies that the register(s) used to return the function value are to be preserved. This is invalid as the register can either be preserved, or hold the return value, but not both. User Action Modify the #pragma linkage directive to either remove the register from the preserved list or to specify another register to hold the return value.