In B::Concise and op.h list all ops that use LVSUB
authorFather Chrysostomos <sprout@cpan.org>
Fri, 10 Jun 2011 01:12:54 +0000 (18:12 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Fri, 10 Jun 2011 01:12:54 +0000 (18:12 -0700)
keys doesn’t actually use it yet, but it will soon.

ext/B/B/Concise.pm
op.h

index 6155f93..f427fe6 100644 (file)
@@ -617,7 +617,8 @@ $priv{"gv"}{32} = "EARLYCV";
 $priv{"aelem"}{16} = $priv{"helem"}{16} = "LVDEFER";
 $priv{$_}{16} = "OURINTR" for ("gvsv", "rv2sv", "rv2av", "rv2hv", "r2gv",
        "enteriter");
-$priv{$_}{8} = 'LVSUB' for qw(rv2av rv2gv rv2hv padav padhv aelem helem);
+$priv{$_}{8} = 'LVSUB' for qw(rv2av rv2gv rv2hv padav padhv aelem helem
+                        aslice hslice av2arylen keys rkeys substr pos vec);
 $priv{$_}{16} = "TARGMY"
   for (map(($_,"s$_"),"chop", "chomp"),
        map(($_,"i_$_"), "postinc", "postdec", "multiply", "divide", "modulo",
diff --git a/op.h b/op.h
index 74030d9..ae79603 100644 (file)
--- a/op.h
+++ b/op.h
@@ -216,7 +216,8 @@ Deprecated.  Use C<GIMME_V> instead.
 #define OPpLVAL_DEFER          16      /* Defer creation of array/hash elem */
   /* OP_RV2?V, OP_GVSV, OP_ENTERITER only */
 #define OPpOUR_INTRO           16      /* Variable was in an our() */
-  /* OP_RV2[AGH]V, OP_PAD[AH]V, OP_[AH]ELEM */
+  /* OP_RV2[AGH]V, OP_PAD[AH]V, OP_[AH]ELEM, OP_[AH]SLICE OP_AV2ARYLEN,
+     OP_R?KEYS, OP_SUBSTR, OP_POS, OP_VEC */
 #define OPpMAYBE_LVSUB         8       /* We might be an lvalue to return */
   /* OP_PADSV only */
 #define OPpPAD_STATE           16      /* is a "state" pad */