On Tue, Aug 26, 2025 at 04:09:11PM +0200, Anna (navi) Figueiredo Gomes wrote: > --- a/gcc/c-family/c-common.h > +++ b/gcc/c-family/c-common.h > @@ -97,11 +97,11 @@ enum rid > RID_IMAGINARY, > > /* C */ > - RID_INT, RID_CHAR, RID_FLOAT, RID_DOUBLE, RID_VOID, > - RID_ENUM, RID_STRUCT, RID_UNION, RID_IF, RID_ELSE, > - RID_WHILE, RID_DO, RID_FOR, RID_SWITCH, RID_CASE, > - RID_DEFAULT, RID_BREAK, RID_CONTINUE, RID_RETURN, RID_GOTO, > - RID_SIZEOF, RID_BITINT, > + RID_INT, RID_CHAR, RID_FLOAT, RID_DOUBLE, RID_VOID, > + RID_ENUM, RID_STRUCT, RID_UNION, RID_IF, RID_ELSE, > + RID_WHILE, RID_DO, RID_FOR, RID_SWITCH, RID_CASE, > + RID_DEFAULT, RID_DEFER, RID_BREAK, RID_CONTINUE, RID_RETURN, > + RID_GOTO, RID_SIZEOF, RID_BITINT,
Why do you reformat everything? The enumerators aren't sorted alphabetically, just add the new one after RID_BITINT. > @@ -434,20 +434,21 @@ extern machine_mode c_default_pointer_mode; > #define D_CXXONLY 0x0002 /* C++ only (not in C). */ > #define D_C99 0x0004 /* In C, C99 only. */ > #define D_C23 0x0008 /* In C, C23 only. */ > -#define D_CXX11 0x0010 /* In C++, C++11 only. */ > -#define D_EXT 0x0020 /* GCC extension. */ > -#define D_EXT89 0x0040 /* GCC extension incorporated in C99. > */ > -#define D_EXT11 0x0080 /* GCC extension incorporated in C23. > */ > -#define D_ASM 0x0100 /* Disabled by -fno-asm. */ > -#define D_OBJC 0x0200 /* In Objective C and neither C nor > C++. */ > -#define D_CXX_OBJC 0x0400 /* In Objective C, and C++, but not C. */ > -#define D_CXXWARN 0x0800 /* In C warn with -Wcxx-compat. */ > -#define D_CXX_CONCEPTS 0x1000 /* In C++, only with concepts. */ > -#define D_TRANSMEM 0x2000 /* C++ transactional memory TS. */ > -#define D_CXX_CHAR8_T 0x4000 /* In C++, only with -fchar8_t. */ > -#define D_CXX20 0x8000 /* In C++, C++20 only. */ > -#define D_CXX_COROUTINES 0x10000 /* In C++, only with coroutines. */ > -#define D_CXX_MODULES 0x20000 /* In C++, only with modules. */ > +#define D_DEFER 0x0010 /* C defer statements TS. */ > +#define D_CXX11 0x0020 /* In C++, C++11 only. */ > +#define D_EXT 0x0040 /* GCC extension. */ > +#define D_EXT89 0x0080 /* GCC extension incorporated in C99. > */ > +#define D_EXT11 0x0100 /* GCC extension incorporated in C23. > */ > +#define D_ASM 0x0200 /* Disabled by -fno-asm. */ > +#define D_OBJC 0x0400 /* In Objective C and neither C nor > C++. */ > +#define D_CXX_OBJC 0x0800 /* In Objective C, and C++, but not C. */ > +#define D_CXXWARN 0x1000 /* In C warn with -Wcxx-compat. */ > +#define D_CXX_CONCEPTS 0x2000 /* In C++, only with concepts. */ > +#define D_TRANSMEM 0x4000 /* C++ transactional memory TS. */ > +#define D_CXX_CHAR8_T 0x8000 /* In C++, only with -fchar8_t. */ > +#define D_CXX20 0x10000 /* In C++, C++20 only. */ > +#define D_CXX_COROUTINES 0x20000 /* In C++, only with coroutines. */ > +#define D_CXX_MODULES 0x40000 /* In C++, only with modules. */ Again, why? Just add it to the end. > --- a/gcc/c-family/c.opt > +++ b/gcc/c-family/c.opt > @@ -1931,6 +1931,10 @@ fdefault-inline > C++ ObjC++ Ignore > Does nothing. Preserved for backward compatibility. > > +fdefer-ts > +C Var(flag_defer_ts) > +Enables support for defer statements from ISO/DIS TS 25755 for ISO C2Y Shouldn't that be C ObjC ? Jakub