Now, finally pushed as r16-2213-g451b6dbf475959. Tobias
On June 27, 2025, Tobias Burnus wrote:
Background: In real-world code, one can find: !$ACC DECLARE COPYIN(c1es, c2es, ...) as here for the ICON weather model. This clearly implies that other compilers accept and, potentially, require those. For better compatibility with real-world use, the just released OpenACC 3.4 now permits PARAMETER but permits compilers to ignore those (remove them when doing optimizations). Thus, this patch permits now named constants (PARAMETER) as 'var' in OpenACC [with an off-by-default warning in all but one case (device_resident, no warning)] but then ignores them later. If you look at the following patch, I think the following is ponder about: * Does skipping over PARAMETERS (named constants) in trans-openmp.cc clause handling will break some unrelated OpenACC or OpenMP code? (In principle, resolving an expression should remove the parameter, replacing it by its value. And the called trans-openmp.cc functions also should only deal with non-expressions.) * Does this handle for OpenACC all cases (or did I miss one?) Does it handle too much for OpenACC (or OpenACC?) * Do you think the warning handling is fine/consistent? I think the patch should be fine, but, of course, I might have missed something. Comments, remarks, suggestions about this patch? Tobias