https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110882
Bug ID: 110882
Summary: ICE with -fanalyzer on zero-sized array
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: analyzer
Assignee: dmalcolm at gcc dot gnu.org
Reporter: dmalcolm at gcc dot gnu.org
Target Milestone: ---
ICE seen with -fanalyzer on this code:
-----------------------------------------------------------------
struct csv_row {
char *columns[0];
};
void
parse_csv_line(int n_columns,
const char *columns[])
{
for (int n = 0; n < n_columns; n++) {
columns[n] = ((void *)0);
}
}
void parse_csv_data(int n_columns,
struct csv_row *entry)
{
parse_csv_line(n_columns, (const char **)entry->columns);
}
-----------------------------------------------------------------
ICE happens on gcc 13 onwards; specifically, affects:
- trunk: https://godbolt.org/z/To7c1r8ME
- gcc 13.2: https://godbolt.org/z/a5zr5Ga4b
gcc 12.3 is not affected