Your problem is here:
compute_duplicate((x,(y+1), array, array_length)==false))
I.e. you are trying to call compute_duplicate with one argument of type bool, which is the result of the valid expression (x,(y+1), array, array_length)==false. Note that comma is an operator in C/C++, so the effective result of the expression above is array_length==false.
What is probably meant is:
compute_duplicate(x,(y+1), array, array_length)==false