Welcome to Editor's Report n3436, which is for the Standard Drafts n3435 (the last draft of 2024).
You can read the last draft's editor's report here.
This report is after the September-October Minneapolis, Minnesota 2024 meeting which added new features and bugfixes to the next version of C, coloquially named C2Y/C2y. Quite a few decisions were made, and the ones resulting in real changes to the C standard are documented below.
First and foremost, a previous change went a little too far in cleaning out some of the imaginary things. It had to be re-fixed/applied in this working draft. In particular the paper was: N3274 Remove imaginary types v3. That was taken care of in this latest working draft.
This draft standardizes a lot of features that have existed in many compilers large and small for some time now, including GCC and Clang favorite "range expressions". It also comes with a way to (finally) break out of a for loop that's obscured by a switch statement with break label;, though a paper has already been written to change the location of the loop's naming label.
A hugely consequential securty fix has also been integrated into both the core language and standard library as well with Aaron Ballman's N3322: Allow Zero Length operations on Null Pointers (Including in the Library). WG14 is serious about security and will spend potential code generation and optimization opportunities to gain better holistic and predictable system code, following our new charter.
All the integrated papers are here:
Importantly, some editorial changes were made in preparation to integrate a future paper. A variation of N3365: Official Function Nomenclature (to establish wording for varaidic functions and the standard name for a function's body block) was put in. While it has a paper number, the changes are editorial. The reason a paper was published was to give confidence for the integration of наб's N3363: stdarg.h wording... v3. Unfortunately, consensus without the editorial changes could not be met, so the paper needed to be delayed until a working draft with wording similar to N3365 was made. n3435 contains such wording.
Additionally, due to the definition of "lvalue", a part of the definition of "modifiable lvalue" had "not an incomplete type" removed from it, as the "lvalue" definition changed to specify that it must be a complete type.
Finally, some minor changes substituting what used to be called "substatements" (a technically undefined but well-understood term) were changed out for "secondary blocks" where appropriate in the constant expression and constant range expression prose, as well as the reformulation of the case range's text to be more specific talking about the values of the case and case range statements versus the case itself (as now each case statement can contain zero or more values thanks to the case range changes).
The new paper submission system is still taking time. Yes, even now. Lots to do, little time, tiredness all around.
Happy Holidays!
— JeanHeyd Meneide, Project Editor <wg14@soasis.org>