Inside a function, I have:
#pragma acc parallel loop reduction(+:psi_sum) copyin(psi[0:1],psi->value.base_pointer[psi_base_ptr_offset:psi_base_ptr_offset+psi_size])
where psi is a pointer to a class containing a 3D array class called value, which keeps a pointer to its dynamically-allocated data in base_pointer. This all works fine as is and the psi_sum is identical to running the above code without openacc.
However, if I then declare an ARRAY test(n) elsewhere in this function, I get the compilation error:
1267, Accelerator restriction: call to ‘PhysBAM::VECTOR<int, (int)3>::~VECTOR()’ with no acc routine information
What explanation could there be as to why declaring an ARRAY, totally unrelated to the ACC region, affects whether the compiler can instrument the VECTOR’s destructor with acc routine information?