View Issue Details

IDProjectCategoryView StatusLast Update
00017991003.1(2024)/Issue8Base Definitions and Headerspublic2024-07-24 14:33
Reportersteffen Assigned To 
PrioritynormalSeverityEditorialTypeError
Status Interpretation RequiredResolutionAccepted As Marked 
Namesteffen
Organization
User Reference
Sectionstdlib.h
Page Number370
Line Number12951-12954
Interp StatusApproved
Final Accepted Text0001799:0006648
Summary0001799: endian.h unconditionally requires 64-bit integers
DescriptionOptional for stdint.h, but not endian.h.
Desired ActionAt the very location, change

  8462 uint64_t htobe64(uint64_t);
  8463 uint64_t htole64(uint64_t);
  8464 uint64_t be64toh(uint64_t);
  8465 uint64_t le64toh(uint64_t);
  8466 The <endian.h> header shall define the uint16_t, uint32_t, and uint64_t types as described in
  8467 <stdint.h>.

accordingly. (Ie refer to "Integer types" of stdint.h.)

On page 661, lines 23136-23139, change

  23136 uint64_t htobe64(uint64_t host_64bits);
  23137 uint64_t htole64(uint64_t host_64bits);
  23138 uint64_t be64toh(uint64_t big_endian_64bits);
  23139 uint64_t le64toh(uint64_t little_endian_64bits);

in the same way, and on line 23151, change

  For each of the sizes 16, 32 and 64

to

  For each of the sizes 16 and 32, and if supported 64
Tagstc1-2024

Activities

steffen

2024-01-23 22:30

reporter   bugnote:0006638

I forgot

 Page 1218, lines 41590 and 41593, where htobe64() and htole64() are unconditionally defined,

 Page 1328, line 44665, ditto le64toh().

Btw there is no be*toh() series in equal spirit to le*toh() on page 1328.

geoffclare

2024-02-08 17:33

manager   bugnote:0006648

Last edited: 2024-06-17 09:00

Interpretation response
------------------------
The standard states that uint64_t is required to be defined by <endian.h> but is optional in <stdint.h>, and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor.

Rationale:
-------------
Since implementations need to support uint64_t in order to implement <endian.h>, there is no point in having it be optionally defined in <stdint.h>. For symmetry, int64_t should also be required in <stdint.h>.

Notes to the Editor (not part of this interpretation):
-------------------------------------------------------
On page 370 line 12947 section <stdint.h>, after:
int32_t
add:
int64_t


On page 370 line 12950 section <stdint.h>, after:
uint32_t
add:
uint64_t


Delete page 370 lines 12951-12965

agadmin

2024-06-21 11:47

administrator   bugnote:0006826

Interpretation proposed: 21 June 2024

agadmin

2024-07-24 14:33

administrator   bugnote:0006838

Last edited: 2024-07-25 03:58

Interpretation approved: 24 July 2024

Issue History

Date Modified Username Field Change
2024-01-23 22:25 steffen New Issue
2024-01-23 22:25 steffen Name => steffen
2024-01-23 22:25 steffen Section => endian.h
2024-01-23 22:25 steffen Page Number => 240, 661
2024-01-23 22:25 steffen Line Number => 8462-8467, 23136-23139, 23151
2024-01-23 22:30 steffen Note Added: 0006638
2024-02-08 17:33 geoffclare Note Added: 0006648
2024-02-08 17:34 geoffclare Final Accepted Text => 0001799:0006648
2024-02-08 17:34 geoffclare Status New => Resolution Proposed
2024-02-08 17:34 geoffclare Resolution Open => Accepted As Marked
2024-02-08 17:35 geoffclare Tag Attached: tc1-2024
2024-06-17 08:19 geoffclare Project Issue 8 drafts => 1003.1(2024)/Issue8
2024-06-17 09:00 geoffclare Note Edited: 0006648
2024-06-17 09:02 geoffclare Section endian.h => stdlib.h
2024-06-17 09:02 geoffclare Page Number 240, 661 => 370
2024-06-17 09:02 geoffclare Line Number 8462-8467, 23136-23139, 23151 => 12951-12954
2024-06-17 09:02 geoffclare Interp Status => Pending
2024-06-17 09:02 geoffclare Status Resolution Proposed => Interpretation Required
2024-06-21 11:47 agadmin Interp Status Pending => Proposed
2024-06-21 11:47 agadmin Note Added: 0006826
2024-07-24 14:33 agadmin Interp Status Proposed => Approved
2024-07-24 14:33 agadmin Note Added: 0006838
2024-07-25 03:58 agadmin Note Edited: 0006838