foo.cpp: In member function 'void tree::build(ll*, int, int, int)':
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:6:13: note: in expansion of macro 'M'
#define L l,M,P
^
foo.cpp:28:21: note: in expansion of macro 'L'
build(s,L);
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:7:11: note: in expansion of macro 'M'
#define R M+1,r,S
^
foo.cpp:29:21: note: in expansion of macro 'R'
build(s,R);
^
foo.cpp: In member function 'void tree::add(int, ll, int, int, int)':
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:36:19: note: in expansion of macro 'M'
if(y<=M)
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:6:13: note: in expansion of macro 'M'
#define L l,M,P
^
foo.cpp:37:25: note: in expansion of macro 'L'
add(y,z,L);
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:7:11: note: in expansion of macro 'M'
#define R M+1,r,S
^
foo.cpp:39:25: note: in expansion of macro 'R'
add(y,z,R);
^
foo.cpp: In member function 'll tree::query(int, int, int, int, int)':
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:45:18: note: in expansion of macro 'M'
?a[k]:t<=M
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:6:13: note: in expansion of macro 'M'
#define L l,M,P
^
foo.cpp:46:20: note: in expansion of macro 'L'
?query(s,t,L):s>M
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:46:25: note: in expansion of macro 'M'
?query(s,t,L):s>M
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:7:11: note: in expansion of macro 'M'
#define R M+1,r,S
^
foo.cpp:47:20: note: in expansion of macro 'R'
?query(s,t,R)
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:48:24: note: in expansion of macro 'M'
:__gcd(query(s,M,L),
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:6:13: note: in expansion of macro 'M'
#define L l,M,P
^
foo.cpp:48:26: note: in expansion of macro 'L'
:__gcd(query(s,M,L),
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:49:15: note: in expansion of macro 'M'
query(M+1,t,R));
^
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:7:11: note: in expansion of macro 'M'
#define R M+1,r,S
^
foo.cpp:49:21: note: in expansion of macro 'R'
query(M+1,t,R));
^
foo.cpp: In member function 'void tree::merge(ll*, ll*, int, int, int)':
foo.cpp:3:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define M (l+r>>1)
^
foo.cpp:6:13: note: in expansion of macro 'M'
#define L l,M,P
^
foo.cpp:53:23: note: in expansion of macro 'L'
merge(s,t,L);
^
foo.