/in/foo.cc: In function 'void SegmentTree::build(int, int, int)':
/in/foo.cc:139:30: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
register int mid = l + r >> 1;
~~^~~
/in/foo.cc: In function 'void SegmentTree::add(int, int, int, int, int)':
/in/foo.cc:152:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
register int mid = l + r >> 1;
~~^~~
/in/foo.cc: In function 'void SegmentTree::cover(int, int, int, int, int)':
/in/foo.cc:165:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
register int mid = l + r >> 1;
~~^~~
/in/foo.cc: In function 'SegmentTree::Node SegmentTree::query(int, int, int)':
/in/foo.cc:175:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
register int mid = l + r >> 1;
~~^~~
/in/foo.cc: In instantiation of 'void IO::read(T&) [with T = int]':
/in/foo.cc:183:11: required from here
/in/foo.cc:21:16: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
x = (x + (x << 2) << 1) + (c ^ '0');
~~^~~~~~~~~~
/in/foo.cc: In function 'void SegmentTree::solve()':
/in/foo.cc:167:52: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (qr > mid) cover(p << 1 | 1, ql, qr, cx, cy);
^
/in/foo.cc:188:30: note: 'r' was declared here
register int cmd, l, r, s, t;
^
/in/foo.cc:166:49: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (ql <= mid) cover(p << 1, ql, qr, cx, cy);
^
/in/foo.cc:188:27: note: 'l' was declared here
register int cmd, l, r, s, t;
^
/in/foo.cc:190:9: warning: 'cmd' may be used uninitialized in this function [-Wmaybe-uninitialized]
switch (cmd) {
^~~~~~