Rafael Garcia-Suarez wrote:
John E. Malmberg wrote:
This requires fixing in multiple places.
perl.h, util.c, and embed.fnc, and this seems to require a running perl
to rebuild proto.h
Thanks, applied as change #25251.
Change #25218 needs to be backed out. Adding the (char *) cast to
suppress a the compiler warning changes a build time error in to several
potential run time errors, including access violations and data corruptions.
Patch 25217, while making the code build, has the same bug in it. The
patches for perl/pp_sys.c, pp_ctl.c, and mg.c contained in it are
incorrect and should eventually cause runtime corruption or access
violations.
I previously submitted patches that fix the problem correctly.
The way that Perl uses this type of memory, the data corruption is
likely to be rare and hard to diagnose. The access violations may also
be rare, but when they happen they will be obvious.
Look with great suspicion on any code that is using a cast to get around
a NON-CONST Qualified error. There are only a few cases where that is
valid to do, and that is where you are setting up a structure to be
passed to a read-only argument.
While the code involved in all these cases in Perl is VMS specific, this
handling of const qualified variables is not a VMS specific issue.
This was not a case of the compiler being too picky, it was flagging a
significant bug.
-John
[EMAIL PROTECTED]
Personal Opinion Only