32 lines
508 B
C
32 lines
508 B
C
/* PR tree-optimization/87112 - ICE due to strnlen mixing integer types
|
|
{ dg-do compile }
|
|
{ dg-options "-Os -Wall" } */
|
|
|
|
typedef __SIZE_TYPE__ size_t;
|
|
|
|
extern size_t strnlen (const char*, size_t);
|
|
|
|
size_t fi (int i)
|
|
{
|
|
int n = i & 3;
|
|
return strnlen ("int", n);
|
|
}
|
|
|
|
size_t fui (unsigned i)
|
|
{
|
|
unsigned n = i & 3;
|
|
return strnlen ("unsigned", n);
|
|
}
|
|
|
|
size_t fl (long i)
|
|
{
|
|
long n = i & 3;
|
|
return strnlen ("long", n);
|
|
}
|
|
|
|
size_t fsz (size_t i)
|
|
{
|
|
size_t n = i & 3;
|
|
return strnlen ("size_t", n);
|
|
}
|