https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119000

            Bug ID: 119000
           Summary: [OpenMP] Function parameter incorrectly reported as
                    set but not used.
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Keywords: diagnostic, openmp
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zh at sanchez dot pm
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu
             Build: x86_64-pc-linux-gnu

Created attachment 60574
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60574&action=edit
Input to and output from GCC

In the following program, GCC 14.2.0 incorrectly reports the function parameter
param1 as set but not used:

int func1(int param1) {
  int var1;
  #pragma omp atomic write
  var1 = param1;
  return var1;
}
int main(void) {
  return 0;
}



Here is the compilation command producing the unjustified warning:

$ gcc -fopenmp -Wall -Wextra main.c



Here is the text of the unjustified warning;

main.c: In function ‘func1’:
main.c:1:15: warning: parameter ‘param1’ set but not used
[-Wunused-but-set-parameter]
    1 | int func1(int param1) {
      |           ~~~~^~~~~~



I provided the output of the following commands as an attachment (in the file
named input_and_output.txt):

$ cat main.c
$ gcc -v -save-temps -fopenmp -Wall -Wextra -o main main.c
$ cat main.i

Reply via email to