modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strrchr.c (about)

     1  extern void abort (void);
     2  extern int inside_main;
     3  
     4  __attribute__ ((__noinline__))
     5  char *
     6  strrchr (const char *s, int c)
     7  {
     8    __SIZE_TYPE__ i;
     9  
    10  #ifdef __OPTIMIZE__
    11    if (inside_main)
    12      abort ();
    13  #endif
    14  
    15    i = 0;
    16    while (s[i] != 0)
    17      i++;
    18  
    19    do
    20      if (s[i] == c)
    21        return (char *) s + i;
    22    while (i-- != 0);
    23  
    24    return 0;
    25  }
    26  
    27  __attribute__ ((__noinline__))
    28  char *
    29  rindex (const char *s, int c)
    30  {
    31    return strrchr (s, c);
    32  }