modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strstr.c (about) 1 extern void abort (void); 2 extern int inside_main; 3 4 __attribute__ ((__noinline__)) 5 char * 6 strstr(const char *s1, const char *s2) 7 { 8 const char *p, *q; 9 10 #ifdef __OPTIMIZE__ 11 if (inside_main) 12 abort (); 13 #endif 14 15 /* deliberately dumb algorithm */ 16 for (; *s1; s1++) 17 { 18 p = s1, q = s2; 19 while (*q && *p) 20 { 21 if (*q != *p) 22 break; 23 p++, q++; 24 } 25 if (*q == 0) 26 return (char *)s1; 27 } 28 return 0; 29 }