Where the variable "bitValue" is completely replaced with a temporary variable "I" twice.
The same happens when trying to build Jimple out of the code:
byte[] rv = new byte[size];
int offSet = 0;
for(int i = 0; i != arrays.length; ++i) {
System.arraycopy(arrays[i], 0, rv, offSet, arrays[i].length);
offSet += arrays[i].length;
}
here again the variable "rv" is replaced with temporary variable "I". Kindly check if this issue is caused due to an error in implementation of the Jimple data structures
The issue is for the following Java code :
int bitValue = 0; for (int j = 0; j < 32; j++) { bitValue ^= (help >>> j) & 1; }
simple generated is : (34) $j = 0 (35) $j = 0 (36) if $j >= 32 (37) $stack24 = $help >>> $j (38) $stack25 = $stack24 & 1 (39) $j = $j ^ $stack25 (40) $j = $j + 1 (41) goto
Where the variable "bitValue" is completely replaced with a temporary variable "I" twice. The same happens when trying to build Jimple out of the code:
byte[] rv = new byte[size]; int offSet = 0; for(int i = 0; i != arrays.length; ++i) { System.arraycopy(arrays[i], 0, rv, offSet, arrays[i].length); offSet += arrays[i].length; }
(10) $i = newarray (byte)[$size] (11) $offSet = 0 (12) $i = 0 (13) $stack6 = lengthof $arrays (14) if $i == $stack6 (15) $stack9 = $arrays[$i] (16) $stack7 = $arrays[$i] (17) $stack8 = lengthof $stack7 (18) staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>($stack9, 0, $i, $offSet, $stack8) (19) $stack10 = $arrays[$i] (20) $stack11 = lengthof $stack10 (21) $offSet = $offSet + $stack11 (22) $i = $i + 1
here again the variable "rv" is replaced with temporary variable "I". Kindly check if this issue is caused due to an error in implementation of the Jimple data structures