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