1 /* PR tree-optimization/87112 - ICE due to strnlen mixing integer types
2 { dg-do compile }
3 { dg-options "-Os -Wall" } */
4
5 typedef __SIZE_TYPE__ size_t;
6
7 extern size_t strnlen (const char*, size_t);
8
9 size_t fi (int i)
10 {
11 int n = i & 3;
12 return strnlen ("int", n);
13 }
14
15 size_t fui (unsigned i)
16 {
17 unsigned n = i & 3;
18 return strnlen ("unsigned", n);
19 }
20
21 size_t fl (long i)
22 {
23 long n = i & 3;
24 return strnlen ("long", n);
25 }
26
27 size_t fsz (size_t i)
28 {
29 size_t n = i & 3;
30 return strnlen ("size_t", n);
31 }