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

            Bug ID: 96377
           Summary: [10/11 Regression] GCC 10.2/11 doesn't build Linux
                    kernel anymore
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

The following testcase reduced from Linux kernel's crypto/aegis128-neon-inner.c
started to be rejected with r11-1741-g31427b974ed7b7dd54e28fec595e731bf6eea8ba
and r10-8501-g932e9140d3268cf2033c1c3e93219541c53fcd29

#include <arm_neon.h>

struct aegis128_state {
 uint8x16_t v[5];
};

void foo(const void *key, const void *iv, const void *const0, const void
*const1)
{
 uint8x16_t k = vld1q_u8(key);
 uint8x16_t kiv = k ^ vld1q_u8(iv);
 struct aegis128_state st = {{
  kiv,
  vld1q_u8(const1),
  vld1q_u8(const0),
  k ^ vld1q_u8(const0),
  k ^ vld1q_u8(const1),
 }};
}

The error is:
error: incompatible types when initializing type ‘unsigned char’ using type
‘uint8x16_t’ {aka ‘__Uint8x16_t’}
(twice)

Reply via email to