I think this is a bug. With procedures returning non scalar types ie large structs the frontend adds an extra address parameter
as the last parameter to return the value. With the gcc and llvm backends this relationship is retained. The C backend has the
returned value as the first parameter meaning there is an abi mismatch between it and other backends. See test p169.
I think this is a bug. With procedures returning non scalar types ie large structs the frontend adds an extra address parameter
as the last parameter to return the value. With the gcc and llvm backends this relationship is retained. The C backend has the
returned value as the first parameter meaning there is an abi mismatch between it and other backends. See test p169.