mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-05-31 22:41:28 +00:00
45 lines
687 B
C
45 lines
687 B
C
/* PR rtl-optimization/23561 */
|
|
|
|
struct A
|
|
{
|
|
char a1[1];
|
|
char a2[5];
|
|
char a3[1];
|
|
char a4[2048 - 7];
|
|
} a;
|
|
|
|
typedef __SIZE_TYPE__ size_t;
|
|
extern void *memset (void *, int, size_t);
|
|
extern void *memcpy (void *, const void *, size_t);
|
|
extern int memcmp (const void *, const void *, size_t);
|
|
extern void abort (void);
|
|
|
|
void
|
|
bar (struct A *x)
|
|
{
|
|
size_t i;
|
|
if (memcmp (x, "\1HELLO\1", sizeof "\1HELLO\1"))
|
|
abort ();
|
|
for (i = 0; i < sizeof (x->a4); i++)
|
|
if (x->a4[i])
|
|
abort ();
|
|
}
|
|
|
|
int
|
|
foo (void)
|
|
{
|
|
memset (&a, 0, sizeof (a));
|
|
a.a1[0] = 1;
|
|
memcpy (a.a2, "HELLO", sizeof "HELLO");
|
|
a.a3[0] = 1;
|
|
bar (&a);
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
foo ();
|
|
return 0;
|
|
}
|