On Fri, Oct 18, 2019 at 03:20:41PM +0200, Josef Wolf wrote: > On Fri, Oct 18, 2019 at 07:51:38AM -0500, Segher Boessenkool wrote: > [ ... ] > > Using reserved names (like those starting with two underscores) is UB > > already. > > What does "UB" mean? Undefined behaviour. I should have spelled that out, sorry. > I was talking about exporting start+length instead of start+stop. > > Having start+length would allow a confirming implementation, because pointer > arithmetic on unrelated objects would no longer be needed: > > unsigned long *dst = &_s_bss; > for (n = 0; n < _l_bss / sizeof (unsigned long); n++) > dst[n] = 0; Using anything like these symbols is not conforming *already*. You can spell out exactly what implementation behaviour your program expects in your documentation, that is much more realistic than saying "conforming". Segher