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