https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98335

--- Comment #1 from Michael Colavita <mcolavita at fb dot com> ---
A similar problem appears to occur for the following example:

  struct Data {
    long a;
    union {
      long u;
      struct {
        char b;
        char pad[3];
      };
    };
  };

  Data val(long d, long e) {
    return { d, e };
  }

Yielding:

    movq            %rdi, %xmm0
    movq            %rsi, %xmm1
    punpcklqdq      %xmm1, %xmm0
    movaps          %xmm0, -56(%rsp)
    movq            -56(%rsp), %rax
    movq            -48(%rsp), %rdx
    ret

Reply via email to