There is preliminary support for C++26 with GCC

The internal code for changing the parent of an environment

now signals an error if the new parent is not an environment or if

the change would create a cycle in the parent chain.

new types have compatible memory structure and content. Use of

in package C code should be avoided and may be

deprecated in the near future. It is better to allocate an object

The set of LAPACK (double and complex) routines declared in

been extended, mostly to routines actually in use by packages.

Memory allocation messages now use the (non-SI notation)

instead of as part of the (translatable format)

Strict R headers are now the default.  This removes the

The deprecated and seemingly never-used S-compatibility

on platforms whose C compiler supports this.

This is a C23 feature (taken from C++11) and also supported in all

A fair amount of code has assumed this: it may be changed to a

smaller type in future.  In particular, as standard compilers do

not check the validity of assignment to an

%% There are claims that the Green Hills compiler can.

%% In C++ rhis was confirmed as undefined behaviour in

%% Some versiins of UBSAN caan check it with -fsanitize=enum

If there were a platform which used an underlying type of a

type is available either as a keyword (C23 and C++) or by

. They require a length-one input and throw an error if

attribute when used from C++ under all compilers.

called from Fortran and was wrongly declared:

which some package maintainers wish to avoid.

Note that the last three are keywords in C23 and C++11 so cannot be

avoided entirely.  However, with commonly-used compilers they can be

masked by a macro of the same name, often with a warning.

contains very experimental annotations for more clearly

identifying the API status of C entry points. These annotations

are used to produce indices for API, experimental API, and

embedded API entry points in the rendered versions.  This is very

preliminary and may be dropped if a better approach emerges.

Also for Fortran-callable entry points which are part of the API.