mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-09-29 08:58:24 +00:00
52 lines
861 B
C
52 lines
861 B
C
|
/* Test array initializion by store_by_pieces. */
|
||
|
/* { dg-do run } */
|
||
|
/* { dg-options "-O2" } */
|
||
|
|
||
|
struct A { char c[10]; };
|
||
|
extern void abort (void);
|
||
|
|
||
|
void
|
||
|
__attribute__((noinline))
|
||
|
check (struct A * a, int b)
|
||
|
{
|
||
|
const char *p;
|
||
|
switch (b)
|
||
|
{
|
||
|
case 0:
|
||
|
p = "abcdefghi";
|
||
|
break;
|
||
|
case 1:
|
||
|
p = "j\0\0\0\0\0\0\0\0";
|
||
|
break;
|
||
|
case 2:
|
||
|
p = "kl\0\0\0\0\0\0\0";
|
||
|
break;
|
||
|
case 3:
|
||
|
p = "mnop\0\0\0\0\0";
|
||
|
break;
|
||
|
case 4:
|
||
|
p = "qrstuvwx\0";
|
||
|
break;
|
||
|
default:
|
||
|
abort ();
|
||
|
}
|
||
|
if (__builtin_memcmp (a->c, p, 10) != 0)
|
||
|
abort ();
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main (void)
|
||
|
{
|
||
|
struct A a = { "abcdefghi" };
|
||
|
check (&a, 0);
|
||
|
struct A b = { "j" };
|
||
|
check (&b, 1);
|
||
|
struct A c = { "kl" };
|
||
|
check (&c, 2);
|
||
|
struct A d = { "mnop" };
|
||
|
check (&d, 3);
|
||
|
struct A e = { "qrstuvwx" };
|
||
|
check (&e, 4);
|
||
|
return 0;
|
||
|
}
|