Incorrect warning for index variable under omp for directive

PGI compiler outputs a strange warning regarding index variable under openmp for directive. It seems that it treats this index variable of “long long” type as “int” variable and prints the warning because types are different: the argument has type “int*” and the parameter has type “long long*”. I reproduced it with PGI compiler 15.5. Reproducer is very simple:

host$ pgcc -V

pgcc 15.5-0 64-bit target on x86-64 Linux -tp haswell
The Portland Group - PGI Compilers and Tools
Copyright (c) 2015, NVIDIA CORPORATION.  All rights reserved.
host$ cat 1.c
void foo(long long* i) {}

int main() {
    #pragma omp parallel for
    for (long long i = 0; i < 1; i++) {
        foo(&i);
    }
    return 0;
}

host$ pgcc -mp 1.c
PGC-W-0095-Type cast required for this conversion (1.c: 6)
PGC/x86-64 Linux 15.5-0: compilation completed with warnings

I confirmed the warning was issued with the 15.1 release.

The current 16.10 release does not issue a warning.


dave