Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0001799 [Issue 8 drafts] Base Definitions and Headers Editorial Error 2024-01-23 22:25 2024-02-08 17:34
Reporter steffen View Status public  
Assigned To
Priority normal Resolution Accepted As Marked  
Status Resolution Proposed   Product Version
Name steffen
Organization
User Reference
Section endian.h
Page Number 240, 661
Line Number 8462-8467, 23136-23139, 23151
Final Accepted Text Note: 0006648
Summary 0001799: endian.h unconditionally requires 64-bit integers
Description Optional for stdint.h, but not endian.h.
Desired Action At 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
Tags tc1-2024
Attached Files

- Relationships

-  Notes
(0006638)
steffen (reporter)
2024-01-23 22:30

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.
(0006648)
geoffclare (manager)
2024-02-08 17:33

Once Issue 8 has been published, move the bug to the Issue 8 project and resolve it as follows (with page and line numbers updated if they change), and commence an interpretation review:
    
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 12957 section <stdint.h>, after:
int32_t
add:
int64_t


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


Delete page 370 lines 12961-12975

- 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 => Note: 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


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker