encoder.cpp: In function 'int decode(int, int, int)':
encoder.cpp:23:31: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
23 | return (bool) (q & 1 << H - 1);
| ~~^~~
encoder.cpp: In function 'int encode(int, int, int)':
encoder.cpp:12:28: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
12 | return __builtin_ctz(x ^ (x & y)) + 1;
| ~~^~~~~~~~~
encoder.cpp:12:28: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
encoder.cpp: In function 'int decode(int, int, int)':
encoder.cpp:23:12: warning: 'q' may be used uninitialized in this function [-Wmaybe-uninitialized]
23 | return (bool) (q & 1 << H - 1);
| ^~~~~~~~~~~~~~~~~~~~~~~
decoder.cpp: In function 'int decode(int, int, int)':
decoder.cpp:23:31: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
23 | return (bool) (q & 1 << H - 1);
| ~~^~~
decoder.cpp: In function 'int encode(int, int, int)':
decoder.cpp:12:28: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
12 | return __builtin_ctz(x ^ (x & y)) + 1;
| ~~^~~~~~~~~
decoder.cpp:12:28: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
decoder.cpp: In function 'int decode(int, int, int)':
decoder.cpp:23:12: warning: 'q' may be used uninitialized in this function [-Wmaybe-uninitialized]
23 | return (bool) (q & 1 << H - 1);
| ^~~~~~~~~~~~~~~~~~~~~~~