Returning vectors by value

Hi all,

We would like to be able to add support to CLang for returning vectors
by value so you could do something like:

int2 my_func(int x)
{
   return (int2)(x,x);
}

main()
{
   printf("%d", my_func(5).x);
}

Obviously this is a completely pointless example but it demonstrates
what we would like to be able to do. At the moment we hit an assert in
EmitCallExprLValue: "Can't have a scalar return unless the return type
is a reference type!"

I was wondering if anyone had any advice about the right way to go about
solving this?

Thanks for your help,

Rob

Hi all,

We would like to be able to add support to CLang for returning vectors
by value so you could do something like:

int2 my_func(int x)
{
  return (int2)(x,x);
}

main()
{
  printf("%d", my_func(5).x);
}

Obviously this is a completely pointless example but it demonstrates
what we would like to be able to do. At the moment we hit an assert in
EmitCallExprLValue: "Can't have a scalar return unless the return type
is a reference type!"

this is just a missing case in the code generator, please file a bugzilla.

-Chris