[tz] [PROPOSED 1/7] Avoid undefined behavior if no Link lines

Clive D.W. Feather clive at davros.org
Wed Oct 26 16:15:03 UTC 2022


Steve Summit via tz said:
> There are some decent resident language lawyers over on Stack
> Overflow these days.  I asked this question there, and several
> posters have cited language from C17 which seems (like the Posix
> language others have mentioned here) to directly contraindicate
> gcc's behavior:
> 
> 	These utilities [qsort, bsearch] make use of a comparison
> 	function to search or sort arrays of unspecified type.
> 	Where an argument declared as size_t nmemb specifies the
> 	length of the array for a function, nmemb can have the
> 	value zero on a call to that function; the comparison
> 	function is not called, a search finds no matching
> 	element, and sorting performs no rearrangement.  Pointer
> 	arguments on such a call shall still have valid values,
> 	as described in 7.1.4.
> 
> 	[C17 Sec. 7.22.5]

That text was added in C99; it wasn't in C90. I think it might have been my
idea; it certainly feels familiar.

-- 
Clive D.W. Feather          | If you lie to the compiler,
Email: clive at davros.org     | it will get its revenge.
Web: http://www.davros.org  |   - Henry Spencer
Mobile: +44 7973 377646


More information about the tz mailing list