/in/foo.cc: In function 'int read(int&)':
/in/foo.cc:17:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
/in/foo.cc: In function 'void down(int, int, int)':
/in/foo.cc:43:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         int mid = l + r >> 1;
                   ~~^~~
/in/foo.cc: In function 'void build(int, int, int)':
/in/foo.cc:63:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = l + r >> 1;
               ~~^~~
/in/foo.cc: In function 'void reverse(int, int, int, int, int)':
/in/foo.cc:75:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = l + r >> 1;
               ~~^~~
/in/foo.cc: In function 'void inc(int, int, int, int, int, int)':
/in/foo.cc:86:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = l + r >> 1;
               ~~^~~
/in/foo.cc: In function 'node ask(int, int, int, int, int)':
/in/foo.cc:97:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = l + r >> 1;
               ~~^~~