(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr96377-5.c
       1  /* { dg-do compile { target aarch64*-*-* } } */
       2  /* { dg-options "-fno-lax-vector-conversions" } */
       3  /* { dg-message "use '-flax-vector-conversions' to permit conversions" "" { target *-*-* } 0 } */
       4  
       5  typedef int v4si __attribute__((vector_size(16)));
       6  typedef short v8hi __attribute__((vector_size(16)));
       7  
       8  struct s { __Int16x8_t x; __Int32x4_t y; };
       9  union u1 { __Int16x8_t x; __Int32x4_t y; };
      10  union u2 { __Int32x4_t s; __Int16x8_t y; };
      11  
      12  void
      13  foo (v4si i, v8hi h)
      14  {
      15    struct s x1 = { i, i }; // { dg-error "incompatible types when initializing type '__Int16x8_t" }
      16    struct s x2 = { h, h }; // { dg-error "incompatible types" }
      17    struct s x3 = { i, h }; // { dg-error "incompatible types" }
      18    struct s x4 = { h, i };
      19  
      20    union u1 y1 = { i }; // { dg-error "incompatible types" }
      21    union u1 y2 = { h };
      22    union u2 y3 = { i };
      23    union u2 y4 = { h }; // { dg-error "incompatible types" }
      24  
      25    v4si z1[] = { i, i };
      26    v4si z2[] = { i, h }; // { dg-error "incompatible types" }
      27    v4si z3[] = { h, i }; // { dg-error "incompatible types" }
      28    v4si z4[] = { h, h }; // { dg-error "incompatible types" }
      29    v8hi z5[] = { i, i }; // { dg-error "incompatible types" }
      30    v8hi z6[] = { i, h }; // { dg-error "incompatible types" }
      31    v8hi z7[] = { h, i }; // { dg-error "incompatible types" }
      32    v8hi z8[] = { h, h };
      33  }