diff --git a/src/treeopt.in b/src/treeopt.in index d500457736c74f4cf184bb51b1289674f52d0bfa..49b39f3815a462b83729f83d75ce33f1dc24f7e0 100644 --- a/src/treeopt.in +++ b/src/treeopt.in @@ -1613,25 +1613,29 @@ F_LOOP(0 = +[ !depend_p($$, $$)] ; // convert all X_EQ(1,2) to $1 = $1 X $2 -F_ADD_EQ(0,1) : { +F_ADD_EQ(0,1) : +{ struct pike_type *type = $0->type; add_ref(type); $$ = mknode( F_ASSIGN, mksoftcastnode(type,mkopernode( "`+", $0, $1 )), $0 ); }; -F_SUB_EQ(0,1) : { +F_SUB_EQ(0,1) : +{ struct pike_type *type = $0->type; add_ref(type); $$ = mknode( F_ASSIGN, mksoftcastnode(type,mkopernode( "`-", $0, $1 )), $0 ); }; -F_AND_EQ(0,1) : { +F_AND_EQ(0,1) : +{ struct pike_type *type = $0->type; add_ref(type); $$ = mknode( F_ASSIGN, mksoftcastnode(type,mkopernode( "`&", $0, $1 )), $0 ); }; -F_OR_EQ(0,1) : { +F_OR_EQ(0,1) : +{ struct pike_type *type = $0->type; add_ref(type); $$ = mknode( F_ASSIGN, mksoftcastnode(type,mkopernode( "`|", $0, $1 )), $0 );