On Fri, 15 Jan 2016 21:41:41 -0500
Richard Damon <Richard at Damon-Family.org> wrote:

> there are machines where it doesn't work (you just need a larger
> program space than data space).

Huh.  An example of which is the "medium model" of the Intel 8086:
20-bit code pointers and 16-bit data pointers.  A machine for which C
compilers existed, and on which no Posix system will ever run (because
it lacks an MMU).  Thanks for that.  

Until this very moment I thought the code/data schism of void* was a
"rights reservation" on the part of the compiler writers, permitting
them optimization opportunities.  But there are historical examples,
and one can't rule out future ones.  The warning is attached to
-pedantic for a reason.  

Yet we live in the real present.  I admit there's probably no reason to
make code and data pointers interchangeable.  But if sure would be nice
if the fine folks on the C standards committee would provide a more
convenient syntax, and standardize the existing practice that dlsym(2)
has exemplified for a quarter century.  

--jkl

Reply via email to