/* 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); }