PR middle-end/77357 - strlen of constant strings not folded
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / builtins / lib / strncat.c
blob7fd334cb4d8e2150811b6cf4dc033707e2f0bbd3
1 extern void abort(void);
2 extern int inside_main;
4 typedef __SIZE_TYPE__ size_t;
6 __attribute__ ((__noinline__))
7 char *
8 strncat (char *s1, const char *s2, size_t n)
10 char *dest = s1;
11 char c = '\0';
12 #ifdef __OPTIMIZE__
13 if (inside_main)
14 abort();
15 #endif
16 while (*s1) s1++;
17 c = '\0';
18 while (n > 0)
20 c = *s2++;
21 *s1++ = c;
22 if (c == '\0')
23 return dest;
24 n--;
26 if (c != '\0')
27 *s1 = '\0';
28 return dest;