On Tue, Feb 11, 2014 at 02:51:08PM +0000, Marcus Shawcroft wrote: > On 6 February 2014 22:51, Michael Hudson-Doyle > <michael.hud...@canonical.com> wrote: > > > diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c > > index 16c51a8..958c667 100644 > > --- a/gcc/config/aarch64/aarch64.c > > +++ b/gcc/config/aarch64/aarch64.c > > @@ -1187,14 +1187,10 @@ aarch64_pass_by_reference (cumulative_args_t pcum > > ATTRIBUTE_UNUSED, > > size = (mode == BLKmode && type) > > ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode); > > > > - if (type) > > + /* Aggregates are passed by reference based on their size. */ > > + if (type && AGGREGATE_TYPE_P (type)) > > { > > - /* Arrays always passed by reference. */ > > - if (TREE_CODE (type) == ARRAY_TYPE) > > - return true; > > - /* Other aggregates based on their size. */ > > - if (AGGREGATE_TYPE_P (type)) > > - size = int_size_in_bytes (type); > > + size = int_size_in_bytes (type); > > } > > > > /* Variable sized arguments are always returned by reference. */ > > This version of the patch looks fine. Since this is a bug I think it > should be committed now in stage 4. This is OK if release manager > agrees.
Ok. Jakub