/* Copyright (C) 2007 Free Software Foundation. Ensure all expected transformations of builtin memchr occur and perform correctly. Written by Paolo Carlini, 10/5/2007. */ extern void abort (void); typedef __SIZE_TYPE__ size_t; extern void *memchr (const void *, int, size_t); void main_test (void) { const char* const foo1 = "hello world"; if (memchr (foo1, 'x', 11)) abort (); if (memchr (foo1, 'o', 11) != foo1 + 4) abort (); if (memchr (foo1, 'w', 2)) abort (); if (memchr (foo1 + 5, 'o', 6) != foo1 + 7) abort (); if (memchr (foo1, 'd', 11) != foo1 + 10) abort (); if (memchr (foo1, 'd', 10)) abort (); if (memchr (foo1, '\0', 11)) abort (); if (memchr (foo1, '\0', 12) != foo1 + 11) abort (); /* Test at least one instance of the __builtin_ style. We do this to ensure that it works and that the prototype is correct. */ if (__builtin_memchr (foo1, 'r', 11) != foo1 + 8) abort (); }