public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma
@ 2011-11-30 17:20 kmccarty at gmail dot com
  2011-12-14 23:51 ` [Bug c/51360] [4.6/4.7 Regression] " pinskia at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: kmccarty at gmail dot com @ 2011-11-30 17:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

             Bug #: 51360
           Summary: spurious unused-but-set-variable warning for var used
                    in OpenMP pragma
    Classification: Unclassified
           Product: gcc
           Version: 4.6.2
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: kmccarty@gmail.com


Hi,

gcc 4.6.2 produces a spurious unused variable warning for the following code. 
The variable 'num' is used in setting the number of threads within an OpenMP
parallel region but the compiler does not realize this.

The warning is:

% /usr/local/gcc46/bin/gcc -Wall -fopenmp omp.c
omp.c: In function ‘main’:
omp.c:12:12: warning: variable ‘num’ set but not used
[-Wunused-but-set-variable]

% cat omp.c
#include <omp.h>
#include <stdlib.h>
#include <stdio.h>

// Compile with: gcc -Wall -fopenmp omp.c
// Run with:     ./a.out <num_threads> e.g. "./a.out 4"

int main(int argc, char ** argv) {
    if (argc != 2) return EXIT_FAILURE;

    int vec[20] = { 0, };
    int i, num = atoi(argv[1]);

    #pragma omp parallel for num_threads(num)
    for (i = 0; i < 20; ++i) {
        #pragma omp critical
        {
            printf("thread %d\n", (int)omp_get_thread_num());
            fflush(stdout);
        }

        vec[i] *= 5;
    }

    return 0;
}


Running the generated binary (RHEL 4 update 6 on x86_64) with a specified value
for argv[1] indicates that the value of 'num' is being used as expected.

gcc 4.2.4 and 4.4.3 do not warn with the same compiler flags.

Thanks,
- Kevin B. McCarty


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/51360] [4.6/4.7 Regression] spurious unused-but-set-variable warning for var used in OpenMP pragma
  2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
@ 2011-12-14 23:51 ` pinskia at gcc dot gnu.org
  2011-12-15 13:38 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu.org @ 2011-12-14 23:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |diagnostic
   Last reconfirmed|                            |2011-12-14
     Ever Confirmed|0                           |1
            Summary|spurious                    |[4.6/4.7 Regression]
                   |unused-but-set-variable     |spurious
                   |warning for var used in     |unused-but-set-variable
                   |OpenMP pragma               |warning for var used in
                   |                            |OpenMP pragma
   Target Milestone|---                         |4.6.3

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-12-14 23:46:31 UTC ---
Confirmed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/51360] [4.6/4.7 Regression] spurious unused-but-set-variable warning for var used in OpenMP pragma
  2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
  2011-12-14 23:51 ` [Bug c/51360] [4.6/4.7 Regression] " pinskia at gcc dot gnu.org
@ 2011-12-15 13:38 ` jakub at gcc dot gnu.org
  2011-12-15 17:51 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-15 13:38 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-15 13:27:29 UTC ---
Created attachment 26101
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26101
gcc47-pr51360.patch

Untested fix.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/51360] [4.6/4.7 Regression] spurious unused-but-set-variable warning for var used in OpenMP pragma
  2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
  2011-12-14 23:51 ` [Bug c/51360] [4.6/4.7 Regression] " pinskia at gcc dot gnu.org
  2011-12-15 13:38 ` jakub at gcc dot gnu.org
@ 2011-12-15 17:51 ` jakub at gcc dot gnu.org
  2011-12-15 20:51 ` [Bug c/51360] [4.6 " jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-15 17:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-15 17:29:29 UTC ---
Author: jakub
Date: Thu Dec 15 17:29:25 2011
New Revision: 182381

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182381
Log:
    PR c/51360
    * c-parser.c (c_parser_omp_clause_num_threads,
    c_parser_omp_clause_schedule): Call mark_exp_read.

    * semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
    and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.

    * c-c++-common/gomp/pr51360.c: New test.
    * g++.dg/gomp/pr51360.C: New test.

Added:
    trunk/gcc/testsuite/c-c++-common/gomp/pr51360.c
    trunk/gcc/testsuite/g++.dg/gomp/pr51360.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-parser.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/semantics.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/51360] [4.6 Regression] spurious unused-but-set-variable warning for var used in OpenMP pragma
  2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
                   ` (2 preceding siblings ...)
  2011-12-15 17:51 ` jakub at gcc dot gnu.org
@ 2011-12-15 20:51 ` jakub at gcc dot gnu.org
  2012-02-09 17:16 ` jakub at gcc dot gnu.org
  2012-02-09 17:41 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-15 20:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.6/4.7 Regression]        |[4.6 Regression] spurious
                   |spurious                    |unused-but-set-variable
                   |unused-but-set-variable     |warning for var used in
                   |warning for var used in     |OpenMP pragma
                   |OpenMP pragma               |

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-15 20:51:03 UTC ---
Fixed on the trunk so far.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/51360] [4.6 Regression] spurious unused-but-set-variable warning for var used in OpenMP pragma
  2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
                   ` (3 preceding siblings ...)
  2011-12-15 20:51 ` [Bug c/51360] [4.6 " jakub at gcc dot gnu.org
@ 2012-02-09 17:16 ` jakub at gcc dot gnu.org
  2012-02-09 17:41 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-09 17:16 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-09 17:15:39 UTC ---
Author: jakub
Date: Thu Feb  9 17:15:29 2012
New Revision: 184049

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184049
Log:
    Backported from mainline
    2011-12-15  Jakub Jelinek  <jakub@redhat.com>

    PR c/51360
    * c-parser.c (c_parser_omp_clause_num_threads,
    c_parser_omp_clause_schedule): Call mark_exp_read.

    * semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
    and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.

    * gcc.dg/gomp/pr51360.c: New test.
    * g++.dg/gomp/pr51360.C: New test.
    * g++.dg/gomp/pr51360-2.C: New test.

Added:
    branches/gcc-4_6-branch/gcc/testsuite/g++.dg/gomp/pr51360-2.C
    branches/gcc-4_6-branch/gcc/testsuite/g++.dg/gomp/pr51360.C
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/gomp/pr51360.c
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/c-parser.c
    branches/gcc-4_6-branch/gcc/cp/ChangeLog
    branches/gcc-4_6-branch/gcc/cp/semantics.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/51360] [4.6 Regression] spurious unused-but-set-variable warning for var used in OpenMP pragma
  2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
                   ` (4 preceding siblings ...)
  2012-02-09 17:16 ` jakub at gcc dot gnu.org
@ 2012-02-09 17:41 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-09 17:41 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51360

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-09 17:39:48 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-02-09 17:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-30 17:20 [Bug c/51360] New: spurious unused-but-set-variable warning for var used in OpenMP pragma kmccarty at gmail dot com
2011-12-14 23:51 ` [Bug c/51360] [4.6/4.7 Regression] " pinskia at gcc dot gnu.org
2011-12-15 13:38 ` jakub at gcc dot gnu.org
2011-12-15 17:51 ` jakub at gcc dot gnu.org
2011-12-15 20:51 ` [Bug c/51360] [4.6 " jakub at gcc dot gnu.org
2012-02-09 17:16 ` jakub at gcc dot gnu.org
2012-02-09 17:41 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).