[PATCH][BZ 17979][BZ 17721] Fix issues with sys/cdefs.h and uchar.h when using non-gcc compiler.
Joseph Myers
joseph@codesourcery.com
Thu Jan 28 21:19:00 GMT 2016
On Thu, 28 Jan 2016, Dwight Guth wrote:
> Glibc strips __restrict from the prototypes of C library functions in this
> case. This is incorrect if the compiler is a C99-compliant compiler, because
> C99 includes the restrict keyword and uses it in the declaration of a number
> of functions in the C library. This leads to undefined behavior because
> the definitions of those functions were defined with the restrict keyword,
> which makes their type signatures incompatible with their declaration,
> a violation of C99 sec. 6.2.7 paragraph 2. The same thing occurs with the
This affects hardly any functions, if any at all, because qualifiers on
function argument types are ignored for the purposes of compatibility
(6.7.5.3#15). For a function to be affected it would need a restrict
qualifier that isn't directly on the argument type itself (type *restrict
*param, for example).
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list