Discussion:
Reduced Translation Limit in C2x N2912 Working Draft
(too old to reply)
arnab chatterjee
2022-07-03 10:30:06 UTC
Permalink
Hello all,

In section 5.4.2.1 (Translation limits) of the latest C2x working draft (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf) it says that the minimum upper limit on the number of bytes in an object is only 32767 (for hosted environments). However, since C89 this limit has always been 65535 (even for previous working drafts of C2x).

Any reason/thoughts behind this silent change (or could this just be a typo in the N2912 draft)?

Regards,
cHaR.
Keith Thompson
2022-07-03 19:38:57 UTC
Permalink
Post by arnab chatterjee
In section 5.4.2.1 (Translation limits) of the latest C2x working
draft (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf) it
says that the minimum upper limit on the number of bytes in an object
is only 32767 (for hosted environments). However, since C89 this limit
has always been 65535 (even for previous working drafts of C2x).
Any reason/thoughts behind this silent change (or could this just be a
typo in the N2912 draft)?
Correction: The limit in C90 was 32767 bytes, changed to 65535 in C99.

It appears to be a deliberate change.

The N2731 draft (2021-10-18) kept the limit of 65535 bytes. N2912
(2022-07-08) changed it to 32767.

This change appears to be in response to "N2808: allow 16-bit ptrdiff_t
again", <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2808.htm>.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+***@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */
arnab chatterjee
2022-07-04 00:00:14 UTC
Permalink
Post by Keith Thompson
Post by arnab chatterjee
In section 5.4.2.1 (Translation limits) of the latest C2x working
draft (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf) it
says that the minimum upper limit on the number of bytes in an object
is only 32767 (for hosted environments). However, since C89 this limit
has always been 65535 (even for previous working drafts of C2x).
Any reason/thoughts behind this silent change (or could this just be a
typo in the N2912 draft)?
Correction: The limit in C90 was 32767 bytes, changed to 65535 in C99.
It appears to be a deliberate change.
The N2731 draft (2021-10-18) kept the limit of 65535 bytes. N2912
(2022-07-08) changed it to 32767.
This change appears to be in response to "N2808: allow 16-bit ptrdiff_t
again", <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2808.htm>.
--
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */
Thanks for the clarification.

Loading...