diff options
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/builtins/lib/memchr.c')
-rw-r--r-- | SingleSource/Regression/C/gcc-c-torture/execute/builtins/lib/memchr.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/builtins/lib/memchr.c b/SingleSource/Regression/C/gcc-c-torture/execute/builtins/lib/memchr.c new file mode 100644 index 00000000..2f15c57a --- /dev/null +++ b/SingleSource/Regression/C/gcc-c-torture/execute/builtins/lib/memchr.c @@ -0,0 +1,22 @@ +extern void abort(void); +extern int inside_main; + +__attribute__ ((__noinline__)) +void * +memchr (const void *s, int c, __SIZE_TYPE__ n) +{ + const unsigned char uc = c; + const unsigned char *sp; + +#ifdef __OPTIMIZE__ + if (inside_main) + abort (); +#endif + + sp = s; + for (; n != 0; ++sp, --n) + if (*sp == uc) + return (void *) sp; + + return 0; +} |