1 /* PR middle-end/87623 */ 2 /* Testcase by George Thopas <george.thopas@gmail.com> */ 3 4 struct be { 5 unsigned short pad[1]; 6 unsigned char a; 7 unsigned char b; 8 } __attribute__((scalar_storage_order("big-endian"))); 9 10 typedef struct be t_be; 11 12 struct le { 13 unsigned short pad[3]; 14 unsigned char a; 15 unsigned char b; 16 }; 17 18 typedef struct le t_le; 19 a_or_b_different(t_be * x,t_le * y)20int a_or_b_different(t_be *x,t_le *y) 21 { 22 return (x->a != y->a) || (x->b != y->b); 23 } 24 main(void)25int main (void) 26 { 27 t_be x = { .a=1, .b=2 }; 28 t_le y = { .a=1, .b=2 }; 29 30 if (a_or_b_different(&x,&y)) 31 __builtin_abort (); 32 33 return 0; 34 } 35