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
      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  }