diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/20050502-2.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20050502-2.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050502-2.c b/gcc/testsuite/gcc.c-torture/execute/20050502-2.c new file mode 100644 index 000000000..eedcb6a31 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050502-2.c @@ -0,0 +1,34 @@ +/* PR target/21297 */ +typedef __SIZE_TYPE__ size_t; +extern int memcmp (const char *, const char *, size_t); +extern void abort (); + +void +foo (char *x) +{ + int i; + for (i = 0; i < 2; i++); + x[i + i] = '\0'; +} + +void +bar (char *x) +{ + int i; + for (i = 0; i < 2; i++); + x[i + i + i + i] = '\0'; +} + +int +main (void) +{ + char x[] = "IJKLMNOPQR"; + foo (x); + if (memcmp (x, "IJKL\0NOPQR", sizeof x) != 0) + abort (); + x[4] = 'M'; + bar (x); + if (memcmp (x, "IJKLMNOP\0R", sizeof x) != 0) + abort (); + return 0; +} |