bitget(x,pos) and bitset(x,pos) results may be wrong when pos is an encoded integer
Reported by Samuel GOUGEON (@sgougeon)
BUG DESCRIPTION:
----------------
For bitget():
-------------
--> bitget(2^7, 8) // OK
ans =
1.
--> bitget(2^7, int8(8)) // KO
ans =
0.
--> bitget(2^7, uint8(8)) // KO
ans =
0.
--> bitget(2^7, int16(8)) // KO
ans =
0.
etc...
For bitset():
------------
--> bitset(0, 8) // OK
ans =
128.
--> bitset(0, int8(8)) // KO
ans =
-128.
--> bitset(0, 16) // OK
ans =
32768.
--> bitset(0, int8(16)) // KO
ans =
0.
etc...
ERROR LOG:
----------
None. Wrong results
HOW TO REPRODUCE THE BUG:
-------------------------
bitget(2^7, int8(8)) == 1
bitget(2^15, int8(16)) == 1
bitset(0, int8(8)) == 2^7
bitset(0, int8(16)) == 2^15
etc..
OTHER INFORMATION:
------------------
These bugs were masked by the bug 16512