n3999 - Editor's Report, Post-Ottawa August 2026 Meeting

Welcome to Editor's Report n3999, which is for the Standard Drafts n3998.

You can read the last draft's editor's report here.

This report is after the August Ottawa, Canada 2026 meeting. As we are approaching the time to start the C2y (likely C29) Committee Draft Ballot (CD Ballot) measure, work is going in to solidify existing features, improve existing wording, and close out the loop on new features that have already been seen by the WG14 Committee.

As long-time implementation-defined behavior about the signedness of bitfields was removed, standardizing and unifying most existing implementations and making less things unpredictable based on platform and compiler. Most other changes are fairly normal and straightforward and likely won't add much real change to existing C compiler technology.

Changes

The papers that were integrated were:

  • N3868 - Add type-safe minimum and maximum type-generic macros.
  • N3754 - Ordering (but not nesting) of fprintf, fscanf, and friends functions.
  • N3779 - Annex F Floating-point environment updates.
  • N3787 - Array Constant Expressions.
  • N3842 - Standard pragmas and headers.
  • N3843 - Conflicting requirements for double_t.
  • N3871 - Slay Some Earthly Demon: Storage-Class Specifiers with Compound Literals.
  • N3881 - Wording for "Type Compatibility: Ghosts, Readability, and a Missing Rule for Atomic".
  • N3882 - Wording for "Ghost: Lvalues that do not designate an object".
  • N3896 - Range bounds for complex math functions.
  • N3902 - Removing the Implementation-Defined Signedness of Bit-Fields, v3.
  • N3904 - Slaying the Earthly Demons of Invalid Identifier Characters (C23 UB28, UB29).
  • N3908 - Define macro-parameter-list grammar term.
  • N3911 - Slaying Some Earthly Demons - Remove C23 UB 30.
  • N3918 - Hunting Another Ghost: Macro Suppression.

There were no merge issues or other problems integrating these papers. A slight adjustment based on WG14 Committee Decision Poll was to not include N3904's two additional notes related to the C23 UB 28 and 29; it was integrated without any notes. Additionally, the nesting displayed by N3754 was not included, but the ordering of the functions was taken. This was applied to both Annex K and other relevant places in the standard -- thanks, Alejandro!

Internally, Javier Mugica has significantly improved the LaTeX processing; the C Standard now builds extraordinarily fast, even when doing a triple build. Many thanks to Javier for his contributions here!

Issue Resolutions

Several issues were resolved, two by papers integrated above and four from wording agreed upon during issue resolution during the meeting. Those are:

  • Issue 1001 - Qualified rvalues from structure or union members.
  • Issue 1004 - Classification of scanf failures.
  • Issue 1007 - Implicitly unsigned bit-fields ambiguity (fixed by N3902).
  • Issue 1019 - String functions and trailing null inclusion.
  • Issue 1020 - Definition of address constant.
  • Issue 1066 - Duplicate macro definitions with variadic macros (fixed by N3908).

Paper Submissions

The new paper submission system is still taking time. Yes, even now. Lots to do, little time, tiredness all around.

— JeanHeyd Meneide, Project Editor <wg14@soasis.org>