annotate gcc/testsuite/gcc.c-torture/execute/pr86528.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* PR middle-end/86528 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 void __attribute__((noinline, noclone))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 test(char *data, __SIZE_TYPE__ len)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 static char const appended[] = "/./";
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 char *buf = __builtin_alloca (len + sizeof appended);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 __builtin_memcpy (buf, data, len);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 __builtin_strcpy (buf + len, &appended[data[len - 1] == '/']);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 if (__builtin_strcmp(buf, "test1234/./"))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 __builtin_abort();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 main()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 char *arg = "test1234/";
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 test(arg, __builtin_strlen(arg));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 }