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