RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

Matthijs van Duin via cfe-commits cfe-commits at lists.llvm.org
Sat Feb 20 10:50:17 PST 2016


On 20 February 2016 at 18:55, H.J. Lu <hjl.tools at gmail.com> wrote:
> struct dummy0
> {
> };
>
> struct dummy
> {
>   dummy0 d[20];
>
>   dummy0 * foo (int i);
> };
>
> dummy0 *
> dummy::foo (int i)
> {
>   return &d[i];
> }
>
> dummy0 *
> bar (dummy d, int i)
> {
>   return d.foo (i);
> }

1. This has undefined behaviour due to returning a pointer to a local variable
2. There's still no need for the reference to the original argument
since copying it is a nop.


More information about the cfe-commits mailing list