33 lines
570 B
C
33 lines
570 B
C
|
/* 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]" } */
|