1 /* Copyright (C) 2007 Free Software Foundation.
2
3 Ensure all expected transformations of builtin memchr occur
4 and perform correctly.
5
6 Written by Paolo Carlini, 10/5/2007. */
7
8 extern void abort (void);
9 typedef __SIZE_TYPE__ size_t;
10 extern void *memchr (const void *, int, size_t);
11
12 void
main_test(void)13 main_test (void)
14 {
15 const char* const foo1 = "hello world";
16
17 if (memchr (foo1, 'x', 11))
18 abort ();
19 if (memchr (foo1, 'o', 11) != foo1 + 4)
20 abort ();
21 if (memchr (foo1, 'w', 2))
22 abort ();
23 if (memchr (foo1 + 5, 'o', 6) != foo1 + 7)
24 abort ();
25 if (memchr (foo1, 'd', 11) != foo1 + 10)
26 abort ();
27 if (memchr (foo1, 'd', 10))
28 abort ();
29 if (memchr (foo1, '\0', 11))
30 abort ();
31 if (memchr (foo1, '\0', 12) != foo1 + 11)
32 abort ();
33
34 /* Test at least one instance of the __builtin_ style. We do this
35 to ensure that it works and that the prototype is correct. */
36 if (__builtin_memchr (foo1, 'r', 11) != foo1 + 8)
37 abort ();
38 }
39