ICE in PGI 10.9 (use VALUE attribute)

I get this ICE error when I define a variable with VALUE attribute and it’s not a dummy argument. I understand that this is invalid and the compiler should be able to detect it. A sample is

attributes(global) subroutine mykernel()
  integer, value:: this_value

  ...
end subroutine



/tmp/pgcudaforKE2eSgdXJjj_.gpu(277): error: identifier “_data_global_0” is undefined

/tmp/pgcudaforKE2eSgdXJjj_.gpu(285): error: identifier “_data_leak_0” is undefined

2 errors detected in the compilation of “/tmp/pgnvdZG2ezFC8UvxP.nv0”.
PGF90-F-0000-Internal compiler error. pgnvd job exited with nonzero status code 0 (leak_gpu_utility.f95: 1033)
PGF90/x86-64 Linux 10.9-0: compilation aborted
make: *** [leak_gpu_utility.mod] Error 2

Tuan

Hi Tuan,

I’m not able to recreate this by just adding the “value” attribute to a local deice variable so suspect something else is going on. Can you post a reproducing example?

Note that the error does seem similar to a known issue where the compiler fails to detect when device code is trying to access a module’s host variable. The compiler will be able to detect this semantic error in the 11.0 compilers.

  • Mat

Thanks, Mat. It’s been a while and i need to check the code to see where in the code I can replicate the error.

Tuan