https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91917
Bug ID: 91917
Summary: OpenACC 'acc_set_cuda_stream' return type
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: openacc
Severity: normal
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
OpenACC 2.7, A.2.1. "NVIDIA CUDA Platform" currently specifies:
'acc_set_cuda_stream'
Summary The 'acc_set_cuda_stream' routine sets the NVIDIA CUDA stream
handle [of] the
current device for the specified async value.
Format
C or C++:
int acc_set_cuda_stream ( int async, void* stream );
Note that this is specified to return an 'int' but doesn't specify what these
'int' values would mean. (And indeed there is no sensible information to be
returned from this function.)
The above matches our declaration in <openacc.h>. The PGI implementation on
the other hand has always provided this function with a 'void' return type
instead of 'int'.
The suggestion is now to adjust the OpenACC specification to match that: 'void'
return type. (I conceptually agree.)
Jakub, will it be OK to just change GCC's <openacc.h> declaration and
implementation accordingly (given that it hasn't been specified, no user can
have any expectations about the 'int' value returned), or are the ABI concerns
(which can be resolved by introducing a new symbol version?), or even any other
concerns?