Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/fold-cstring.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O" } */ /* The following are testcases for native_interpret_int, native_interpret_complex and native_interpret_vector decoding pieces of a string constant encoded by native_encode_string. */ extern void abort (void); /* We should fold all reads from xconstant and eliminate it, removing the reference to blah which cannot be resolved at link time. */ extern int blah; static const struct { int *y; const char x[32] __attribute__((aligned(32))); } xconstant = { &blah, "01234567899876543210123456789000" }; typedef int v4si __attribute__((vector_size(16))); int main() { if (sizeof (int) != 4) return 0; if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) { if (*(int *)&xconstant.x[4] != 0x34353637) abort (); if ((*(v4si *)&xconstant.x[16])[1] != 0x31323334) abort (); if (__imag (*(_Complex int *)&xconstant.x[8]) != 0x37363534) abort (); } else if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) { if (*(int *)&xconstant.x[4] != 0x37363534) abort (); if ((*(v4si *)&xconstant.x[16])[1] != 0x34333231) abort (); if (__imag (*(_Complex int *)&xconstant.x[8]) != 0x34353637) abort (); } return 0; }