thrd_t as an array typeAuthors: Jay Ghiron
Date: 2026-02-27
Submitted against: C23
Status: Open
No wording exists currently to say that thrd_t is not an array type:
The types are
...
thrd_twhich is a complete object type that holds an identifier for a thread;
(C23 7.28.1 "Introduction" paragraph 4).
However, the definition of thrd_current returns a thrd_t:
thrd_t thrd_current(void);
(C23 7.28.5.2 "The thrd_current function" paragraph 1).
Functions are not allowed to return arrays, so if thrd_t were an
array type then this declaration would be invalid.
Modify C23 7.28.1 paragraph 4:
thrd_twhich is a complete object type other than an array type that holds an identifier for a thread;