2018-10-29 Joseph Myers <joseph@codesourcery.com>
Julian Brown <julian@codesourcery.com>
* semantics.c (handle_omp_array_sections_1): Allow array sections with
"this" pointer for OpenACC.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r265591
+2018-10-29 Joseph Myers <joseph@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ PR c++/66053
+ * semantics.c (handle_omp_array_sections_1): Allow array
+ sections with "this" pointer for OpenACC.
+
2018-10-25 Jason Merrill <jason@redhat.com>
* parser.c (cp_parser_sizeof_operand): Remove redundant use of
omp_clause_code_name[OMP_CLAUSE_CODE (c)]);
return error_mark_node;
}
- else if (TREE_CODE (t) == PARM_DECL
+ else if (ort == C_ORT_OMP
+ && TREE_CODE (t) == PARM_DECL
&& DECL_ARTIFICIAL (t)
&& DECL_NAME (t) == this_identifier)
{
+2018-10-29 Joseph Myers <joseph@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * testsuite/libgomp.oacc-c++/this.C: New.
+
2018-09-18 Cesar Philippidis <cesar@codesourcery.com>
* plugin/plugin-nvptx.c (struct cuda_map): New.
--- /dev/null
+#include <cstdlib>
+#include <iostream>
+using namespace std;
+
+class test {
+ public:
+ int a;
+
+ test ()
+ {
+ a = -1;
+#pragma acc enter data copyin (this[0:1])
+ }
+
+ ~test ()
+ {
+#pragma acc exit data delete (this[0:1])
+ }
+
+ void set (int i)
+ {
+ a = i;
+#pragma acc update device (this[0:1])
+ }
+
+ int get ()
+ {
+#pragma acc update host (this[0:1])
+ return a;
+ }
+};
+
+int
+main ()
+{
+ test t;
+
+ t.set (4);
+ if (t.get () != 4)
+ abort ();
+
+ return 0;
+}