annotate gcc/testsuite/gcc.dg/string-opt-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do compile } */
kono
parents:
diff changeset
2 /* { dg-options "-O2" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 char *buffer;
kono
parents:
diff changeset
5 char *test;
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 #define SIZE 100
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 char *
kono
parents:
diff changeset
10 __attribute__((noinline))
kono
parents:
diff changeset
11 my_memcpy (char *d, char *s, unsigned l)
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 return __builtin_memcpy (d, s, l);
kono
parents:
diff changeset
14 }
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 char *
kono
parents:
diff changeset
17 __attribute__((noinline))
kono
parents:
diff changeset
18 my_mempcpy (char *d, char *s, unsigned l)
kono
parents:
diff changeset
19 {
kono
parents:
diff changeset
20 return __builtin_mempcpy (d, s, l);
kono
parents:
diff changeset
21 }
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 void
kono
parents:
diff changeset
24 run_test (char *d, char *s, unsigned l)
kono
parents:
diff changeset
25 {
kono
parents:
diff changeset
26 char *r = my_mempcpy (d, s, l);
kono
parents:
diff changeset
27 if (r != d + l)
kono
parents:
diff changeset
28 __builtin_abort ();
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 r = my_memcpy (d, s, l);
kono
parents:
diff changeset
31 if (r != d)
kono
parents:
diff changeset
32 __builtin_abort ();
kono
parents:
diff changeset
33 }
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 int
kono
parents:
diff changeset
36 main (void)
kono
parents:
diff changeset
37 {
kono
parents:
diff changeset
38 const char* const foo = "hello world";
kono
parents:
diff changeset
39 unsigned l = __builtin_strlen (foo) + 1;
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 buffer = __builtin_malloc (SIZE);
kono
parents:
diff changeset
42 __builtin_memcpy (buffer, foo, l);
kono
parents:
diff changeset
43 test = __builtin_malloc (SIZE);
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 run_test (test, buffer, l);
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 return 0;
kono
parents:
diff changeset
48 }
kono
parents:
diff changeset
49
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
50 /* { dg-final { scan-assembler "mempcpy" } } */
111
kono
parents:
diff changeset
51 /* { dg-final { scan-assembler "memcpy" } } */