Issue 1094: Missing [[unsequenced]] in <stdbit.h>

Authors: Joseph Myers
Date: 2026-08-26
Submitted against: C2Y (N3886 draft)
Status: Open

When N3367 (More Modern Bit Utilities) was adopted for C2Y, it was without [[unsequenced]] attributes, since those in the paper were neither complete nor all correct, and with the expectation of a separate paper later to add such attributes. They should be added to all the new functions except for the stdc_store8_* functions.

Suggested correction

Add the [[unsequenced]] attributes immediately before the final semicolon of all <stdbit.h> functions (including generic functions) in 7.18.17 (Rotate Left), 7.18.18 (Rotate Right), 7.18.19 (8-bit Memory Reversal), 7.18.20 (Exact-width 8-bit Memory Reversal), and 7.18.21 (Endian-Aware 8-bit Load).


Comment from Jay Ghiron on 2026-10-09:

The function stdc_memreverse8 in 7.18.19 should not have [[unsequenced]] because it is not idempotent. That is, calling stdc_memreverse8 twice with the same argument is not always equivalent to omitting the second call. The stdc_store8_* functions in 7.18.22 could have [[unsequenced]] because repeating a call immediately after always has no effect, and they meet the other requirements.