On Sun, 28 Jul 2024, Alejandro Colomar wrote: > gcc/Makefile.in | 1 + > gcc/c-family/c-common.cc | 20 +++++++++ > gcc/c-family/c-common.def | 4 ++ > gcc/c-family/c-common.h | 2 + > gcc/c/c-parser.cc | 35 +++++++++++---- > gcc/c/c-tree.h | 4 ++ > gcc/c/c-typeck.cc | 84 +++++++++++++++++++++++++++++++++++ > gcc/cp/cp-tree.h | 1 - > gcc/cp/operators.def | 1 + > gcc/cp/tree.cc | 13 ------ > gcc/ginclude/stdlength.h | 35 +++++++++++++++ > gcc/rust/backend/rust-tree.cc | 13 ------ > gcc/rust/backend/rust-tree.h | 2 - > gcc/target.h | 3 ++ > gcc/tree.cc | 13 ++++++ > gcc/tree.h | 1 +
Please start with documentation and testcases, neither of which are included here - making sure that both documentation and testcases cover all the error cases and questions of e.g. evaluation of VLA operands. Documentation and testcases are the most important pieces for reviewing a proposed addition of a new language feature, before the actual implementation. A relevant semantic question to answer here: sizeof evaluates all VLA operands, should this operator do likewise, or should it only evaluate when the toplevel array is of variable length (but not for a constant-length array of variable-size elements)? -- Joseph S. Myers josmy...@redhat.com