aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorJames Norris <jnorris@codesourcery.com>2016-02-16 15:29:04 +0000
committerJames Norris <jnorris@gcc.gnu.org>2016-02-16 15:29:04 +0000
commitba539195610794575f76e8dd2e16f548c4f89dbb (patch)
treeed6777959d63b9ec1c9b695fcc1d2726804b56d8 /gcc/c
parent2a2b8f64889632aed99c358fbfddb10ab8774242 (diff)
downloadgcc-ba539195610794575f76e8dd2e16f548c4f89dbb.zip
gcc-ba539195610794575f76e8dd2e16f548c4f89dbb.tar.gz
gcc-ba539195610794575f76e8dd2e16f548c4f89dbb.tar.bz2
re PR c/64748 (OpenACC: "is not a variable" error with deviceptr())
PR c/64748 gcc/c/ * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms. gcc/cp/ * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking. * semantics.c (finish_omp_clauses): Add deviceptr checking. gcc/testsuite/ * c-c++-common/goacc/deviceptr-1.c: Add tests. * g++.dg/goacc/deviceptr-1.c: New file. From-SVN: r233458
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog5
-rw-r--r--gcc/c/c-parser.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 0f3e756..b51957e 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-16 James Norris <jnorris@codesourcery.com>
+
+ PR c/64748
+ * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms.
+
2016-02-12 Bernd Schmidt <bschmidt@redhat.com>
* c-decl.c (build_null_declspecs): Zero the entire struct.
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 7a27244..23853be 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -10766,7 +10766,7 @@ c_parser_oacc_data_clause_deviceptr (c_parser *parser, tree list)
c_parser_omp_var_list_parens() should construct a list of
locations to go along with the var list. */
- if (!VAR_P (v))
+ if (!VAR_P (v) && TREE_CODE (v) != PARM_DECL)
error_at (loc, "%qD is not a variable", v);
else if (TREE_TYPE (v) == error_mark_node)
;