/in/foo.cc: In function 'void FFT(cp*, int, int)':
/in/foo.cc:81:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
for(l=0;(1<<l)<n;l++);n=(1<<l);
^~~
/in/foo.cc:81:24: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'for'
for(l=0;(1<<l)<n;l++);n=(1<<l);
^
/in/foo.cc: In function 'void Inv(int*, int*, int)':
/in/foo.cc:108:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
for(re int i=0;i<n;++i)if(a[i])a[i]=M-a[i];a[0]+=2;if(a[0]>=M)a[0]-=M;
^~~
/in/foo.cc:108:45: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'for'
for(re int i=0;i<n;++i)if(a[i])a[i]=M-a[i];a[0]+=2;if(a[0]>=M)a[0]-=M;
^
/in/foo.cc: In function 'char pc(char, bool)':
/in/foo.cc:122:24: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
return (bj||(*p1++=ch)&&p1==p2)&&fwrite(p1=buf,1,p1-buf,stdout),0;
~~~~~~~~~~^~~~~~~~
/in/foo.cc:122:44: warning: operation on 'p1' may be undefined [-Wsequence-point]
return (bj||(*p1++=ch)&&p1==p2)&&fwrite(p1=buf,1,p1-buf,stdout),0;
~~^~~~
/in/foo.cc: In function 'int main()':
/in/foo.cc:135:14: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
vis[1]=mu[1]=inv[0]=inv[1]=1;
~~~~~^~~~~~~~~~~~~~~~