https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86532
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=86528
--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> ---
A reduced test case not involving loops is below. There are a couple of places
in the constant_string() function where the handling of non-constant array
indices isn't correct and needs to be adjusted. See also bug 86528.
static const char a[2][3] = { "1", "12" };
static const char b[2][2][5] = { { "1", "12" }, { "123", "1234" } };
int main ()
{
{
volatile int i = 1;
int n = __builtin_strlen (a[i]);
n += __builtin_strlen (a[0]);
if (n != 3)
__builtin_abort ();
}
{
volatile int i = 1;
int n = __builtin_strlen (b[1][i]);
n += __builtin_strlen (b[1][0]);
if (n != 7)
__builtin_abort ();
}
}