asceticism.cpp: In instantiation of 'void karatsuba(int*, int*, int*, int*) [with int n = 1]':
asceticism.cpp:70:16: recursively required from 'void karatsuba(int*, int*, int*, int*) [with int n = 65536]'
asceticism.cpp:70:16: required from 'void karatsuba(int*, int*, int*, int*) [with int n = 131072]'
asceticism.cpp:98:46: required from here
asceticism.cpp:70:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
70 | karatsuba<n/2>(a, a+n/2, ans, b);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
asceticism.cpp:75:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
75 | karatsuba<n/2>(a, a+n/2, ans+n, b);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
asceticism.cpp:80:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
80 | karatsuba<n/2>(a, a+n/2, b, tmp);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
asceticism.cpp: In instantiation of 'void karatsuba(int*, int*, int*, int*) [with int n = 0]':
asceticism.cpp:70:16: recursively required from 'void karatsuba(int*, int*, int*, int*) [with int n = 65536]'
asceticism.cpp:70:16: required from 'void karatsuba(int*, int*, int*, int*) [with int n = 131072]'
asceticism.cpp:98:46: required from here
asceticism.cpp:70:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
70 | karatsuba<n/2>(a, a+n/2, ans, b);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
asceticism.cpp:75:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
75 | karatsuba<n/2>(a, a+n/2, ans+n, b);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
asceticism.cpp:80:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
80 | karatsuba<n/2>(a, a+n/2, b, tmp);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~