annotate gcc/testsuite/gcc.c-torture/execute/builtins/lib/strnlen.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 typedef __SIZE_TYPE__ size_t;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 extern void abort (void);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 extern int inside_main;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 __attribute__ ((__noinline__))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 size_t
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 strnlen (const char *s, size_t n)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 size_t i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 #ifdef __OPTIMIZE__
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 if (inside_main)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 i = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 while (s[i] != 0 && n--)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 i++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 return i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 }