for executing init array functions, use function type with prototype
authorRich Felker <dalias@aerifal.cx>
Fri, 13 Oct 2017 14:39:51 +0000 (10:39 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 13 Oct 2017 14:39:51 +0000 (10:39 -0400)
commitb3516058eb9ff9e52a8720f0e5c0f6936cce6047
tree9503c6a8b1ed28f1dc70cf0f560283f69316eff2
parente364774d7ca0a78db1b8457d5094b747eb2df318
for executing init array functions, use function type with prototype

this is for consistency with the way it's done in in the dynamic
linker, avoiding a deprecated C feature (non-prototype function
types), and improving code generation. GCC unnecessarily uses the
variadic calling convention (e.g. clearing rax on x86_64) when making
a call where the argument types are not known for compatibility with
wrong code which calls variadic functions this way. (C on the other
hand is clear that such calls have undefined behavior.)
src/env/__libc_start_main.c