Issue 1025: Variably modified standard library types

Authors: Jay Ghiron
Date: 2026-02-26
Submitted against: C23
Status: Review
Cross-references: 0147

The standard never directly says that standard library types cannot be variably modified, though it would be impossible to actually define any of the types this way in a normal C header. Given DR 147 was accepted and that library functions needed special wording to ensure proper sequence points, it seems necessary to do the same with types to ensure that they are not variably modified.

Suggested correction

Modify C23 7.1.2 paragraph 1:

Declarations of types described here, in Annex H, or in Annex K, shall not include type qualifiersbe qualified or variably modified, unless explicitly stated otherwise.

Note: The existing wording "include type qualifiers" is changed here so it is clear that types such as const int* are not forbidden.


Comment from Issues list maintainer on 2026-08-21:

At the August 2026 (Ottawa) meeting of WG14, a modified version of the suggested correction was accepted, subject to review at the next meeting.

Proposed correction

Modify C23 7.1.2 paragraph 1:

Declarations of types described here, in Annex H, or in Annex K, shall not include type qualifiers are not qualified or variably modified, unless explicitly stated otherwise.