On Mon, 20 Nov 2023, Jakub Jelinek wrote: > > Note that stdc_bit_ceil now has defined behavior (return 0) on overflow: > > CD2 comment FR-135 was accepted for the DIS at the June WG14 meeting. > > This affects both the documentation and the implementation, as they need > > to avoid an undefined shift by the width of the type. That's why my > > stdbit.h implementations have two shifts (not claiming that's necessarily > > the optimal way of ensuring the correct result in the overflow case). > > > > return __x <= 1 ? 1 : ((uint64_t) 1) << (__bw64_inline (__x - 1) - 1) << > > 1; > > So > return __x <= 1 ? 1 : ((uint64_t) 2) << (__bw64_inline (__x - 1) - 1); > then?
Yes, that looks better than my version, thanks. -- Joseph S. Myers jos...@codesourcery.com