Hi! On Wed, 2 Dec 2015 23:13:58 +0100, I wrote: > On Wed, 2 Dec 2015 16:58:45 +0100, I wrote: > > Cesar and Jim copied, for help with Fortran and generally testsuite > > things. (Just in case you happen to have any ideas.) > > On Mon, 30 Nov 2015 19:30:34 +0000, Julian Brown wrote: > > > [patch] > > > > First, thanks! > > Aside from a number of formatting/re-ordering changes, the front end > changes were basically still the same, but otherwise (middle end, > libgomp) the patch as committed to trunk in r231118 was quite (totally?) > ;-) different from the code we had on gomp-4_0-branch, so I had to spend > some time on merging, cleaning things up. > > Your submission/commit didn't have any execution tests for OpenACC > > host_data in Fortran. On gomp-4_0-branch, there is > > libgomp/testsuite/libgomp.oacc-fortran/host_data-1.f90 at least. > > ..., but this one now FAILs (ICE) as follows: > > [...]/source-gcc/libgomp/testsuite/libgomp.oacc-fortran/host_data-1.f90:11:0: internal compiler error: in scan_omp_target, at omp-low.c:3218 > 0xa33e80 scan_omp_target > [...]/source-gcc/gcc/omp-low.c:3218 > [...] Filed . > Maybe that's due to the gcc/gimplify.c:gimplify_scan_omp_clauses issue > mentioned in > , > or maybe something else? (XFAILed for now.) The following patch does not resolve the problem -- but we'll still want something like that, I suppose? --- gcc/gimplify.c +++ gcc/gimplify.c @@ -6544,18 +6544,20 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p, the Fortran FE is updated to OpenMP 4.5. */ ctx->target_map_scalars_firstprivate = true; } - if (!lang_GNU_Fortran ()) - switch (code) - { - case OMP_TARGET: - case OMP_TARGET_DATA: - case OMP_TARGET_ENTER_DATA: - case OMP_TARGET_EXIT_DATA: - case OACC_HOST_DATA: - ctx->target_firstprivatize_array_bases = true; - default: + switch (code) + { + case OMP_TARGET: + case OMP_TARGET_DATA: + case OMP_TARGET_ENTER_DATA: + case OMP_TARGET_EXIT_DATA: + if (lang_GNU_Fortran ()) break; - } + /* FALLTHRU */ + case OACC_HOST_DATA: + ctx->target_firstprivatize_array_bases = true; + default: + break; + } while ((c = *list_p) != NULL) { Grüße Thomas