Skip to content

Commit 5a42b48

Browse files
author
ripley
committed
update on clang's C23 mode
git-svn-id: https://svn.r-project.org/R/trunk@87744 00db46b3-68df-0310-9c12-caf00c1e9a41
1 parent 58edda5 commit 5a42b48

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

doc/manual/R-exts.texi

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3149,17 +3149,19 @@ C has had standards C89/C90, C99, C11, C17 (also known as C18), and C23
31493149
some new features and made others optional, and C17 is a `bug-fix'
31503150
update to C11. On the other hand, C23 makes extensive changes,
31513151
including making @code{bool}, @code{true} and @code{false} reserved
3152-
words, finally disallowing K&R-style function declarations and
3153-
changing the formerly deprecated meaning of function declarations with
3154-
an empty parameter list to now mean no parameters. (There are many other
3155-
additions: see for example @uref{https://en.cppreference.com/w/c/23}.)
3152+
words, finally disallowing K&R-style function declarations and changing
3153+
the formerly deprecated meaning of function declarations with an empty
3154+
parameter list to now mean no parameters.@footnote{The latter has been
3155+
implemented in @command{gcc} but not currently in @I{LLVM} nor Apple
3156+
@command{clamg}.}(There are many other additions: see for example
3157+
@uref{https://en.cppreference.com/w/c/23}.)
31563158

31573159
As from @R{} 4.5.0, @R{}'s @command{configure} script chooses a compiler
31583160
option which selects C23 if one is available. Some conpilers (including
31593161
@command{gcc}@tie{}15) default to C23 and most others from 2022/3 and
31603162
later have such an option.
31613163

3162-
@c GCC 14, LLVM clang 18,19 and Apple clang 16 default to C17
3164+
@c GCC 14, LLVM clang 18-20 and Apple clang 16 default to C17
31633165
@c In 2025-01 GCC pre=15 defaulted to C23 (and later documented so)
31643166
The @command{configure} script in recent previous versions of @R{} aimed
31653167
to choose a C compiler which supposrted C11: as the default in recent
@@ -3190,7 +3192,7 @@ The (claimed) C standard in use can be checked by the macro
31903192
values @code{199901L}, @code{201112L} and @code{201710L} for C99, C11
31913193
and C17. The definitive value for C23 is @code{202311L} but some
31923194
compilers@footnote{for example @command{gcc} 14 and Apple
3193-
@command{clang} 16, but not GCC 15, @I{LLVM} @command{clang 18} and
3195+
@command{clang} 16, but not @command{gcc} 15, @I{LLVM} @command{clang 18} and
31943196
later.} are currently using @code{202000L} and requiring the standard to
31953197
be specified as @code{c2x}.
31963198
@c https://gustedt.gitlabpages.inria.fr/c23-library/

0 commit comments

Comments
 (0)