https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92571

            Bug ID: 92571
           Summary: gcc erroneously rejects , operator in array dimensions
                    as syntax error
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bugdal at aerifal dot cx
  Target Milestone: ---

void foo()
{
    int a[1,1];
}

produces:

error: expected ']' before ',' token

despite the declaration being a valid (variable length, since the comma
operator cannot participate in an integer constant expression) array
declaration.

I found this while testing for whether -Wvla would catch such "gratuitously
variable-length" arrays due to comma operator. Obviously this should be caught
by both that and whatever warning is appropriate for "you probably meant
multi-dimensional array". But it is valid C and should not be rejected as a
syntax error.

Reply via email to