The abs() trick works for storing one flag bit. But you can store more than one bit if you shift by N bits left and use the LSBs as flag&#x2F;boolean bits (then circular shift right + mask when reading). You reduce the range of the local variable by a factor of 2 for every bit stored though (same as the abs trick). Tagged pointers use this method, but instead of shifting one can simply set&#x2F;clear the bits due to implied alignment:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Tagged_pointer" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Tagged_pointer</a>