Issue 1026: thrd_t as an array type

Authors: 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_t

which 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.

Suggested correction

Modify C23 7.28.1 paragraph 4:

thrd_t

which is a complete object type other than an array type that holds an identifier for a thread;