@ -25,7 +25,7 @@ import jode.decompiler.TabbedPrintWriter;
public class StoreInstruction extends Operator
public class StoreInstruction extends Operator
implements CombineableOperator {
implements CombineableOperator {
boolean isO pAssign = false ;
boolean o pAssign = false ;
public StoreInstruction ( LValueExpression lvalue ) {
public StoreInstruction ( LValueExpression lvalue ) {
super ( Type . tVoid , ASSIGN_OP ) ;
super ( Type . tVoid , ASSIGN_OP ) ;
@ -41,7 +41,11 @@ public class StoreInstruction extends Operator
setOperatorIndex ( operatorIndex ) ;
setOperatorIndex ( operatorIndex ) ;
if ( subExpressions [ 1 ] instanceof NopOperator )
if ( subExpressions [ 1 ] instanceof NopOperator )
subExpressions [ 1 ] . type = Type . tUnknown ;
subExpressions [ 1 ] . type = Type . tUnknown ;
isOpAssign = true ;
opAssign = true ;
}
public boolean isOpAssign ( ) {
return opAssign ;
}
}
/ * *
/ * *
@ -72,7 +76,7 @@ public class StoreInstruction extends Operator
Type newType ;
Type newType ;
if ( ! isO pAssign) {
if ( ! o pAssign) {
/* An opassign (+=, -=, etc.) doesn't merge rvalue type. */
/* An opassign (+=, -=, etc.) doesn't merge rvalue type. */
Type lvalueType = subExpressions [ 0 ] . getType ( ) ;
Type lvalueType = subExpressions [ 0 ] . getType ( ) ;
Type rvalueType = subExpressions [ 1 ] . getType ( ) ;
Type rvalueType = subExpressions [ 1 ] . getType ( ) ;