/* PR middle-end/89934 - ICE on a call with fewer arguments to strncpy declared without prototype { dg-do compile } { dg-options "-O2 -Wall" } */ typedef __SIZE_TYPE__ size_t; char *strncpy (); char* f0 (char *s) { return strncpy (); } char* f1 (char *s) { return strncpy (s); } char* f2 (char *s) { return strncpy (s, s + 1); /* ICE here. */ } void f3 (char *s, size_t n, const char *t) { strncpy (s, n, t); strncpy (n, s, t); } /* { dg-prune-output "\\\[-Wbuiltin-declaration-mismatch]" } { dg-prune-output "\\\[-Wint-conversion]" } */