diff options
Diffstat (limited to 'src/cmd/gc/walk.c')
-rw-r--r-- | src/cmd/gc/walk.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index fded073a3..ab4f946bd 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -900,8 +900,11 @@ walkexpr(Node **np, NodeList **init) case OSLICE: walkexpr(&n->left, init); + n->left = safeexpr(n->left, init); walkexpr(&n->right->left, init); + n->right->left = safeexpr(n->right->left, init); walkexpr(&n->right->right, init); + n->right->right = safeexpr(n->right->right, init); // dynamic slice // sliceslice(old []any, lb int, hb int, width int) (ary []any) // sliceslice1(old []any, lb int, width int) (ary []any) @@ -928,8 +931,11 @@ walkexpr(Node **np, NodeList **init) case OSLICEARR: walkexpr(&n->left, init); + n->left = safeexpr(n->left, init); walkexpr(&n->right->left, init); + n->right->left = safeexpr(n->right->left, init); walkexpr(&n->right->right, init); + n->right->right = safeexpr(n->right->right, init); // static slice // slicearray(old *any, nel int, lb int, hb int, width int) (ary []any) t = n->type; |