Skip to content

Commit ac67340

Browse files
author
Jethro Beekman
committed
Fix sign of bitfields only if type is signed. Fixes #1.
1 parent 4724e35 commit ac67340

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

magic3.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@
165165
bitfield_mask_t bitfield_mask=bit_mask(bitfieldTable[parameter]>>16);
166166
uint16_t bitfield_offset=bitfieldTable[parameter]&0xffff;
167167
T unsignedT=((*(bitfield_mask_t*)this)>>bitfield_offset)&bitfield_mask;
168-
if (((bitfield_mask+1)>>1)&unsignedT) //negative
168+
if (std::is_signed<T>::value && ((bitfield_mask+1)>>1)&unsignedT) //negative
169169
{
170170
unsignedT|=~bitfield_mask; //sign-extend
171171
}

0 commit comments

Comments
 (0)