On 04/22/2014 08:52 AM, Josh Stone wrote:
The trick in the original was that "(typeof (var)) __s.i"
would extend
the sign from the 7th bit, which I don't your mask will do.
Yes, that was another cut/paste error.
Not a great batting average this morning... ;-)
So in total:
struct { signed int i:7; } __s = { .i = __b };
(var) |= (typeof (var)) __s.i * ((typeof (var)) 1 << ((nth) * 7));
Better?
Yes, that's what I had in mind.
r~