blob: bace08ad5d3b31915ef925bfb45901ab201e5afe [file] [log] [blame]
/* PR tree-optimization/89500 - ICE: tree check: expected integer_cst,
have ssa_name in get_len
{ dg-do compile }
{ dg-options "-O2 -Wstringop-overflow -Wstringop-truncation" } */
void
foo (char *a)
{
char b[16] = "abcdefg";
__builtin_strncpy (a, b, __builtin_strlen (b)); /* { dg-warning "specified bound depends on the length of the source argument" } */
}
void
bar (char *a)
{
char b[16] = "abcdefg";
__builtin_strncpy (a, b, __builtin_strnlen (b, 8)); /* { dg-warning "specified bound depends on the length of the source argument" } */
}
void
baz (char *a)
{
char b[16] = "abcdefg";
__builtin_strncpy (a, b, __builtin_strnlen (b, 7)); /* { dg-bogus "specified bound depends on the length of the source argument" } */
}
void fill (char *);
void
qux (char *a)
{
char b[16];
fill (b);
__builtin_memcpy (b, "abcdefg", 7);
__builtin_strncpy (a, b, __builtin_strnlen (b, 8)); /* { dg-bogus "specified bound depends on the length of the source argument" } */
}