This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
make SvUPGRADE() a statement.
authorDavid Mitchell <davem@iabyn.com>
Fri, 14 Dec 2012 15:05:40 +0000 (15:05 +0000)
committerDavid Mitchell <davem@iabyn.com>
Fri, 14 Dec 2012 15:17:49 +0000 (15:17 +0000)
commit463ea2290a54ee65470ca4dd46dea0d41cfbc9dd
tree55b5470e252627f889b58a86b2bb2f29373a025f
parentb7bc7afbe074add30fdf01d619e7cfef04b07403
make SvUPGRADE() a statement.

To guote the perldelta entry:

SvUPGRADE() is no longer an expression. Originally this macro (and its
underlying function, sv_upgrade()) were documented as boolean, although
in reality they always croaked on error and never returned false. In 2005
the documentation was updated to specify a void return value, but
SvUPGRADE() was left always returning 1 for backwards compatibility. This
has now been removed, and SvUPGRADE() is now a statement with no return
value.

So this is now a syntax error:

    if (!SvUPGRADE(sv)) { croak(...); }

If you have code like that, simply replace it with

    SvUPGRADE(sv);
pod/perldelta.pod
sv.h