XORSUB-what is the probelm with this code ?

#include
#include<limits.h>
using namespace std;
int bit[1000];
int arr[1000];
int m;
int binary(int arr[],int len,int n)
{

static int maxi=INT_MIN;
if(len<1)
{int sum=0;
    for(int i=0;i<m;i++)
       {
   //   cout<<bit[i];
           if(bit[i])
           {
            sum^=arr[i];
           }
       }
 //  cout<<" "<<sum<<endl;
       if((sum^n)>maxi)
        maxi=(sum^n);


}


else
{
    bit[len-1]=0;
    binary(arr,len-1,n);
    bit[len-1]=1;
    binary(arr,len-1,n);
}

return maxi;
}
int main()
{
int t;
cin>>t;
for(int i=0;i<t;i++)
{
int maxi=INT_MIN;
int n;
cin>>m>>n;
//int arr[m];
for(int j=0;j<m;j++)
cin>>arr[j];

    int res=binary(arr,m,n);
    cout<<res<<endl;
  fill(bit,bit+1000,0);
  fill(arr,arr+1000,0);
}
return 0;

}