This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! This is similar to what has previously been addressed in <https://gcc.gnu.org/PR51360>, <http://news.gmane.org/find-root.php?message_id=%3C20111215173852.GT1957%40tyan-ft48-01.lab.bos.redhat.com%3E>: int f(int A, int B) { int r = 0; extern int *v; int a = 2; int b = 4; int n = 3; v[n] = 0; #pragma omp target map(to: v[a:b]) r |= v[n]; #pragma omp target map(to: v[A:B]) r |= v[n]; return r; } ../../openacc/w.c: In function 'f': ../../openacc/w.c:6:7: warning: variable 'b' set but not used [-Wunused-but-set-variable] int b = 4; ^ ../../openacc/w.c:5:7: warning: variable 'a' set but not used [-Wunused-but-set-variable] int a = 2; ^ ../../openacc/w.c:1:11: warning: parameter 'A' set but not used [-Wunused-but-set-parameter] int f(int A, int B) ^ ../../openacc/w.c:1:18: warning: parameter 'B' set but not used [-Wunused-but-set-parameter] int f(int A, int B) ^ The following patch fixes this for C: diff --git gcc/c/c-parser.c gcc/c/c-parser.c index 3f4a92b..bba6edb 100644 --- gcc/c/c-parser.c +++ gcc/c/c-parser.c @@ -9887,7 +9887,10 @@ c_parser_omp_variable_list (c_parser *parser, c_parser_consume_token (parser); if (!c_parser_next_token_is (parser, CPP_COLON)) - low_bound = c_parser_expression (parser).value; + { + low_bound = c_parser_expression (parser).value; + mark_exp_read (low_bound); + } if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) length = integer_one_node; else @@ -9900,7 +9903,10 @@ c_parser_omp_variable_list (c_parser *parser, break; } if (!c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) - length = c_parser_expression (parser).value; + { + length = c_parser_expression (parser).value; + mark_exp_read (length); + } } /* Look for the closing `]'. */ if (!c_parser_require (parser, CPP_CLOSE_SQUARE, How to fix it in C++? In gcc/cp/parser.c:cp_parser_omp_var_list_no_open similar to the C fix, or in gcc/cp/semantics.c:finish_omp_clauses as done for PR51360? I guess the latter is required for C++ templates? This I can't currently test due to <http://news.gmane.org/find-root.php?message_id=%3C87zje7rdho.fsf%40schwinge.name%3E>. I have not yet tested whether such an issue might also exist for Fortran. GrÃÃe, Thomas
Attachment:
pgpRLV25eK0ig.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |