This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[inseparable changes from patch from perl5.003_11 to perl5.003_12]
[perl5.git] / opcode.h
index 01dd521..518c1e4 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -1052,14 +1052,17 @@ EXT char *op_desc[] = {
 };
 #endif
 
+OP *   ck_anoncode     _((OP* op));
+OP *   ck_bitop        _((OP* op));
 OP *   ck_concat       _((OP* op));
 OP *   ck_delete       _((OP* op));
 OP *   ck_eof          _((OP* op));
 OP *   ck_eval         _((OP* op));
 OP *   ck_exec         _((OP* op));
-OP *   ck_formline     _((OP* op));
+OP *   ck_exists       _((OP* op));
 OP *   ck_ftst         _((OP* op));
 OP *   ck_fun          _((OP* op));
+OP *   ck_fun_locale   _((OP* op));
 OP *   ck_glob         _((OP* op));
 OP *   ck_grep         _((OP* op));
 OP *   ck_index        _((OP* op));
@@ -1072,6 +1075,7 @@ OP *      ck_repeat       _((OP* op));
 OP *   ck_require      _((OP* op));
 OP *   ck_rfun         _((OP* op));
 OP *   ck_rvconst      _((OP* op));
+OP *   ck_scmp         _((OP* op));
 OP *   ck_select       _((OP* op));
 OP *   ck_shift        _((OP* op));
 OP *   ck_sort         _((OP* op));
@@ -1776,9 +1780,9 @@ EXT OP * (*ppaddr[])() = {
 #endif
 
 #ifndef DOINIT
-EXT OP * (*check[])();
+EXT OP * (*check[]) _((OP *op));
 #else
-EXT OP * (*check[])() = {
+EXT OP * (*check[]) _((OP *op)) = {
        ck_null,        /* null */
        ck_null,        /* stub */
        ck_fun,         /* scalar */
@@ -1797,7 +1801,7 @@ EXT OP * (*check[])() = {
        ck_rvconst,     /* rv2sv */
        ck_null,        /* av2arylen */
        ck_rvconst,     /* rv2cv */
-       ck_null,        /* anoncode */
+       ck_anoncode,    /* anoncode */
        ck_null,        /* prototype */
        ck_spair,       /* refgen */
        ck_null,        /* srefgen */
@@ -1845,8 +1849,8 @@ EXT OP * (*check[])() = {
        ck_null,        /* i_subtract */
        ck_concat,      /* concat */
        ck_fun,         /* stringify */
-       ck_null,        /* left_shift */
-       ck_null,        /* right_shift */
+       ck_bitop,       /* left_shift */
+       ck_bitop,       /* right_shift */
        ck_null,        /* lt */
        ck_null,        /* i_lt */
        ck_null,        /* gt */
@@ -1861,20 +1865,20 @@ EXT OP * (*check[])() = {
        ck_null,        /* i_ne */
        ck_null,        /* ncmp */
        ck_null,        /* i_ncmp */
-       ck_null,        /* slt */
-       ck_null,        /* sgt */
-       ck_null,        /* sle */
-       ck_null,        /* sge */
+       ck_scmp,        /* slt */
+       ck_scmp,        /* sgt */
+       ck_scmp,        /* sle */
+       ck_scmp,        /* sge */
        ck_null,        /* seq */
        ck_null,        /* sne */
-       ck_null,        /* scmp */
-       ck_null,        /* bit_and */
-       ck_null,        /* bit_xor */
-       ck_null,        /* bit_or */
+       ck_scmp,        /* scmp */
+       ck_bitop,       /* bit_and */
+       ck_bitop,       /* bit_xor */
+       ck_bitop,       /* bit_or */
        ck_null,        /* negate */
        ck_null,        /* i_negate */
        ck_null,        /* not */
-       ck_null,        /* complement */
+       ck_bitop,       /* complement */
        ck_fun,         /* atan2 */
        ck_fun,         /* sin */
        ck_fun,         /* cos */
@@ -1892,15 +1896,15 @@ EXT OP * (*check[])() = {
        ck_fun,         /* vec */
        ck_index,       /* index */
        ck_index,       /* rindex */
-       ck_fun,         /* sprintf */
-       ck_formline,    /* formline */
+       ck_fun_locale,  /* sprintf */
+       ck_fun,         /* formline */
        ck_fun,         /* ord */
        ck_fun,         /* chr */
        ck_fun,         /* crypt */
-       ck_fun,         /* ucfirst */
-       ck_fun,         /* lcfirst */
-       ck_fun,         /* uc */
-       ck_fun,         /* lc */
+       ck_fun_locale,  /* ucfirst */
+       ck_fun_locale,  /* lcfirst */
+       ck_fun_locale,  /* uc */
+       ck_fun_locale,  /* lc */
        ck_fun,         /* quotemeta */
        ck_rvconst,     /* rv2av */
        ck_null,        /* aelemfast */
@@ -1910,7 +1914,7 @@ EXT OP * (*check[])() = {
        ck_fun,         /* values */
        ck_fun,         /* keys */
        ck_delete,      /* delete */
-       ck_delete,      /* exists */
+       ck_exists,      /* exists */
        ck_rvconst,     /* rv2hv */
        ck_null,        /* helem */
        ck_null,        /* hslice */
@@ -2195,8 +2199,8 @@ EXT U32 opargs[] = {
        0x0000111e,     /* i_subtract */
        0x0000110e,     /* concat */
        0x0000010e,     /* stringify */
-       0x0000111e,     /* left_shift */
-       0x0000111e,     /* right_shift */
+       0x0000110e,     /* left_shift */
+       0x0000110e,     /* right_shift */
        0x00001136,     /* lt */
        0x00001116,     /* i_lt */
        0x00001136,     /* gt */
@@ -2247,11 +2251,11 @@ EXT U32 opargs[] = {
        0x0000099e,     /* ord */
        0x0000098e,     /* chr */
        0x0000110e,     /* crypt */
-       0x0000010e,     /* ucfirst */
-       0x0000010e,     /* lcfirst */
-       0x0000010e,     /* uc */
-       0x0000010e,     /* lc */
-       0x0000010e,     /* quotemeta */
+       0x0000098e,     /* ucfirst */
+       0x0000098e,     /* lcfirst */
+       0x0000098e,     /* uc */
+       0x0000098e,     /* lc */
+       0x0000098e,     /* quotemeta */
        0x00000048,     /* rv2av */
        0x00001304,     /* aelemfast */
        0x00001304,     /* aelem */
@@ -2259,7 +2263,7 @@ EXT U32 opargs[] = {
        0x00000408,     /* each */
        0x00000408,     /* values */
        0x00000408,     /* keys */
-       0x00000104,     /* delete */
+       0x00000100,     /* delete */
        0x00000114,     /* exists */
        0x00000048,     /* rv2hv */
        0x00001404,     /* helem */
@@ -2344,7 +2348,7 @@ EXT U32 opargs[] = {
        0x00000e14,     /* eof */
        0x00000e0c,     /* tell */
        0x00011604,     /* seek */
-       0x00001614,     /* truncate */
+       0x00001114,     /* truncate */
        0x0001160c,     /* fcntl */
        0x0001160c,     /* ioctl */
        0x0000161c,     /* flock */