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

Reply via email to