/in/foo.cc: In function 'num update(int, int, int, int, int)':
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:11:9: note: in expansion of macro 'mid'
if (p<=mid) update(ls,l,mid,p,v);
^~~
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:11:26: note: in expansion of macro 'mid'
if (p<=mid) update(ls,l,mid,p,v);
^~~
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:12:17: note: in expansion of macro 'mid'
else update(rs,mid+1,r,p,v);
^~~
/in/foo.cc: In function 'num query(int, int, int, int, int)':
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:22:9: note: in expansion of macro 'mid'
if (l<=mid) q1=query(ls,l,mid,x,y),++cnt;
^~~
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:22:28: note: in expansion of macro 'mid'
if (l<=mid) q1=query(ls,l,mid,x,y),++cnt;
^~~
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:23:6: note: in expansion of macro 'mid'
if (mid<r) q2=query(rs,mid+1,r,x,y),cnt+=2;
^~~
/in/foo.cc:5:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l+r>>1)
~^~
/in/foo.cc:23:25: note: in expansion of macro 'mid'
if (mid<r) q2=query(rs,mid+1,r,x,y),cnt+=2;
^~~
/in/foo.cc: In function 'num update(int, int, int, int, int)':
/in/foo.cc:17:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/in/foo.cc: In function 'num query(int, int, int, int, int)':
/in/foo.cc:28:17: warning: 'q1.num::sum' may be used uninitialized in this function [-Wmaybe-uninitialized]
max(q1.sum+q1.suf,q2.suf),
~~~~~~^~~~~~~
/in/foo.cc:21:6: warning: '*((void*)& q1 +4)' may be used uninitialized in this function [-Wmaybe-uninitialized]
num q1,q2;int cnt=0;
^~
/in/foo.cc:29:34: warning: 'q1.num::suf' may be used uninitialized in this function [-Wmaybe-uninitialized]
max(max(q1.mx,q2.mx),q1.suf+q2.pre)};
~~~~~~^~~~~~~
/in/foo.cc:21:6: warning: '*((void*)& q1 +12)' may be used uninitialized in this function [-Wmaybe-uninitialized]
num q1,q2;int cnt=0;
^~
/in/foo.cc:21:9: warning: '*((void*)& q2 +12)' may be used uninitialized in this function [-Wmaybe-uninitialized]
num q1,q2;int cnt=0;
^~
/in/foo.cc:21:9: warning: '*((void*)& q2 +8)' may be used uninitialized in this function [-Wmaybe-uninitialized]
/in/foo.cc:29:34: warning: 'q2.num::pre' may be used uninitialized in this function [-Wmaybe-uninitialized]
max(max(q1.mx,q2.mx),q1.suf+q2.pre)};
~~~~~~^~~~~~~
/in/foo.cc:26:21: warning: 'q2.num::sum' may be used uninitialized in this function [-Wmaybe-uninitialized]
return (num){q1.sum+q2.sum,
~~~~~~^~~~~~~