PR fortran/85703
gcc/fortran/
* parse.c (decode_oacc_directive): Set gfc_matching_function
to false.
(decode_omp_directive): Likewise.
gcc/testsuite/
* gfortran.dg/goacc/pr85703.f90: New test.
* gfortran.dg/gomp/pr85703.f90: New test.
From-SVN: r261551
+2018-06-13 Cesar Philippidis <cesar@codesourcery.com>
+
+ PR fortran/85703
+ * parse.c (decode_oacc_directive): Set gfc_matching_function
+ to false.
+ (decode_omp_directive): Likewise.
+
2018-06-13 Cesar Philippidis <cesar@codesourcery.com>
PR fortran/85702
gfc_clear_error (); /* Clear any pending errors. */
gfc_clear_warning (); /* Clear any pending warnings. */
+ gfc_matching_function = false;
+
if (gfc_pure (NULL))
{
gfc_error_now ("OpenACC directives at %C may not appear in PURE "
gfc_clear_error (); /* Clear any pending errors. */
gfc_clear_warning (); /* Clear any pending warnings. */
+ gfc_matching_function = false;
+
if (gfc_current_state () == COMP_FUNCTION
&& gfc_current_block ()->result->ts.kind == -1)
spec_only = true;
+2018-06-13 Cesar Philippidis <cesar@codesourcery.com>
+
+ PR fortran/85703
+ * gfortran.dg/goacc/pr85703.f90: New test.
+ * gfortran.dg/gomp/pr85703.f90: New test.
+
2018-06-13 Cesar Philippidis <cesar@codesourcery.com>
PR fortran/85702
--- /dev/null
+! PR fortran/85703
+! { dg-do compile }
+
+character function f()
+ !$acc parallel loop reduction(+:a)
+ do i = 1, 4
+ end do
+ !$acc end parallel loop
+end
--- /dev/null
+! PR fortran/85703
+! { dg-do compile }
+
+character function f()
+ !$omp single
+ !$omp end single
+ f = 'a'
+end