/in/foo.cc: In member function 'void TRIE::buildSAM()':
/in/foo.cc:87:35: warning: array subscript has type 'char' [-Wchar-subscripts]
87 | REP(c,26) if (next[p][c]){
| ^
/in/foo.cc:88:33: warning: array subscript has type 'char' [-Wchar-subscripts]
88 | int nxt=next[p][c];
| ^
/in/foo.cc: In member function 'void TRIE::dfsrank(int)':
/in/foo.cc:100:39: warning: array subscript has type 'char' [-Wchar-subscripts]
100 | REP(c,26) if (sam.failnext[x][c]) dfsrank(sam.failnext[x][c]);
| ^
/in/foo.cc:100:67: warning: array subscript has type 'char' [-Wchar-subscripts]
100 | REP(c,26) if (sam.failnext[x][c]) dfsrank(sam.failnext[x][c]);
| ^
/in/foo.cc: In function 'int main()':
/in/foo.cc:20:20: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
20 | #define FOR(I,S,N) for (I=S;I<=N;I++)
| ^~~
/in/foo.cc:235:5: note: in expansion of macro 'FOR'
235 | FOR(i,0,trie.tot) head[i]=-1;QAQ=1;
| ^~~
/in/foo.cc:235:34: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
235 | FOR(i,0,trie.tot) head[i]=-1;QAQ=1;
| ^~~
/in/foo.cc:240:50: warning: array subscript has type 'char' [-Wchar-subscripts]
240 | if (q[i].i==0) A[++QAQ]=merge(C[q[i].c],A[q[i].j]);
| ~~~~~^
/in/foo.cc:241:60: warning: array subscript has type 'char' [-Wchar-subscripts]
241 | if (q[i].i==1) A[++QAQ]=merge(A[q[i].j],C[q[i].c]);
| ~~~~~^