/* 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" } */ }