X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.pl;h=59b039b23fbdb0222721aab57c3d0f8e31a33c02;hb=706de38c2aa2b981f7071fda099501bf2cc8caeb;hp=60cdf49ff2c33a1a3cf5861e09594a653c36ae32;hpb=8a12f161a3a8b8cc9c866a9f342b9476fb0b9b95;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.pl b/opcode.pl index 60cdf49..59b039b 100755 --- a/opcode.pl +++ b/opcode.pl @@ -298,6 +298,7 @@ sub tab { # ref not OK (RETPUSHNO) # trans not OK (dTARG; TARG = sv_newmortal();) # ucfirst etc not OK: TMP arg processed inplace +# quotemeta not OK (unsafe when TARG == arg) # each repeat not OK too due to array context # pack split - unknown whether they are safe # sprintf: is calling do_sprintf(TARG,...) which can act on TARG @@ -314,6 +315,7 @@ sub tab { # readline - unknown whether it is safe # match subst not OK (dTARG) # grepwhile not OK (not always setting) +# join not OK (unsafe when TARG == arg) # Suspicious wrt "additional mode of failure": concat (dealt with # in ck_sassign()), join (same). @@ -363,9 +365,9 @@ pushre push regexp ck_null d/ # References and stuff. rv2gv ref-to-glob cast ck_rvconst ds1 -rv2sv scalar deref ck_rvconst ds1 +rv2sv scalar dereference ck_rvconst ds1 av2arylen array length ck_null is1 -rv2cv subroutine deref ck_rvconst d1 +rv2cv subroutine dereference ck_rvconst d1 anoncode anonymous subroutine ck_anoncode $ prototype subroutine prototype ck_null s% S refgen reference constructor ck_spair m1 L @@ -377,7 +379,7 @@ bless bless ck_fun s@ S S? backtick quoted execution (``, qx) ck_null t% # glob defaults its first arg to $_ -glob glob ck_glob t@ S? S? +glob glob ck_glob t@ S? readline ck_null t% rcatline append I/O operator ck_null t% @@ -506,7 +508,7 @@ ucfirst ucfirst ck_fun_locale fstu% S? lcfirst lcfirst ck_fun_locale fstu% S? uc uc ck_fun_locale fstu% S? lc lc ck_fun_locale fstu% S? -quotemeta quotemeta ck_fun fsTu% S? +quotemeta quotemeta ck_fun fstu% S? # Arrays. @@ -531,7 +533,7 @@ hslice hash slice ck_null m@ H L unpack unpack ck_fun @ S S pack pack ck_fun mst@ S L split split ck_split t@ S S S -join join ck_join msT@ S L +join join ck_join mst@ S L # List operators. @@ -707,7 +709,7 @@ rename rename ck_fun isT@ S S link link ck_fun isT@ S S symlink symlink ck_fun isT@ S S readlink readlink ck_fun stu% S? -mkdir mkdir ck_fun isT@ S S +mkdir mkdir ck_fun isT@ S S? rmdir rmdir ck_fun isTu% S? # Directory calls.