[GOMP4, OpenACC] Fixed-form Fortran code failing to parse

Tobias Burnus tobias.burnus@physik.fu-berlin.de
Tue Jul 8 09:21:00 GMT 2014


Cesar Philippidis wrote:
> Thomas, is this OK for gomp-4_0-branch?
...


> 	* gcc/fortran/scanner.c (gfc_next_char_literal): Fix the scan for
>	*$acc.

This changes looks good to me.

>	* parse.c (next_fixed): Don't handle openmp pragmas when scanning 
>	for openacc pragmas.

This one doesn't. If both -fopenmp(-simd) and -fopenacc are both specified,
parsing of $omp *and* $acc are both disabled, which does not seem to be
what is intended.


The current code does:

1066 if ((gfc_option.gfc_flag_openmp
1067 	 || gfc_option.gfc_flag_openmp_simd)
1068 	&& !gfc_option.gfc_flag_openacc)
...
1074 	else if ((gfc_option.gfc_flag_openmp
1075 	          || gfc_option.gfc_flag_openmp_simd)
1076 	         && gfc_option.gfc_flag_openacc)
...
1092 	else if (gfc_option.gfc_flag_openacc)


The proposed patch keeps

1066 if ((gfc_option.gfc_flag_openmp
1067 	 || gfc_option.gfc_flag_openmp_simd)
1068 	&& !gfc_option.gfc_flag_openacc)
...

and then it uses:
+	      else if (gfc_option.gfc_flag_openacc
+		       && !(gfc_option.gfc_flag_openmp
+			    || gfc_option.gfc_flag_openmp_simd))

...
-	      else if (gfc_option.gfc_flag_openacc)


Thus, from my side this patch is NOT OK.

Tobias



More information about the Fortran mailing list