foo.cc: In function ‘void build()’:
foo.cc:60:39: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
60 | for(register int i=0;i<=temp.size();++i)
| ~^~~~~~~~~~~~~
foo.cc:63:47: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
63 | register int r=temp[(i>temp.size()-1?0:i)]-'0';
| ~^~~~~~~~~~~~~~
foo.cc:69:73: warning: comparison of integer expressions of different signedness: ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} and ‘long long int’ [-Wsign-compare]
69 | if(new_string.empty()||new_string.size()>max_len)//||new_string.size()!=temp.size()+1)
| ~~~~~~~~~~~~~~~~~^~~~~~~~
foo.cc:83:29: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
83 | if(i==temp.size())
| ~^~~~~~~~~~~~~
foo.cc:85:49: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
85 | for(register int j=i+1;j<temp.size();++j)
| ~^~~~~~~~~~~~
foo.cc:89:54: warning: suggest parentheses around ‘+’ inside ‘<<’ [-Wparentheses]
89 | register int wt=(x&y)+(x^y)<<1;
| ~~~~~^~~~~~
foo.cc:108:47: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
108 | for(register int i=0;i<temp.size();++i)
| ~^~~~~~~~~~~~
foo.cc:112:57: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
112 | register int r=temp[(i+1>temp.size()-1?0:i+1)]-'0';
| ~~~^~~~~~~~~~~~~~