This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR fortran/81509 and fortran/45513


Hi Steve

On 23/12/18 6:49 PM, Steve Kargl wrote:
> This is a re-submission of a patch I submitted 15 months ago.
> See https://gcc.gnu.org/ml/fortran/2017-09/msg00124.html
>
> At that time one reviewer OK'd the patch for committing,
> and one reviewer raised objections to the patch as I
> chose to remove dubious extensions to the Fortran standard.
> I withdrew that patch with the expection that Someone
> would fix the bug.  Well, Someone has not materialized.
>
> The patch has been retested on i586-*-freebsd and x86_64-*-freebsd.
>
> OK to commit as-is?
>
> Here's the text from the above URL.
>
> In short, F2008 now allows boz-literal-constants in IAND, IOR, IEOR,
> DSHIFTL, DSHIFTR, and MERGE_BITS.  gfortran currently allows a BOZ
> argument, but she was not enforcing restrictions in F2008.  The
> attach patch causes gfortran to conform to F2008.
>
> As a side effect, the patch removes a questionable GNU Fortran
> extension that allowed arguments to IAND, IOR, and IEOR to have
> different kind type parameters.  The behavior of this extension
> was not documented.
>
> 2017-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
>
> 	PR fortran/45513
> 	PR fortran/81509
> 	* check.c: Rename function gfc_check_iand to gfc_check_iand_ieor_ior.
> 	* check.c (boz_args_check): New function.  Check I and J not both BOZ.
> 	(gfc_check_dshift,gfc_check_iand_ieor_ior, gfc_check_ishft,
> 	 gfc_check_and, gfc_check_merge_bits): Use it.
> 	* check.c (gfc_check_iand_ieor_ior): Force conversion of BOZ to kind
> 	type of other agrument.  Remove silly GNU extension.
> 	(gfc_check_ieor, gfc_check_ior): Delete now unused functions.
> 	* intrinsic.c (add_functions): Use gfc_check_iand_ieor_ior. Wrap long
> 	line.
> 	* intrinsic.h: Rename gfc_check_iand to gfc_check_iand_ieor_ior.
> 	Delete prototype for bool gfc_check_ieor and gfc_check_ior
> 	* intrinsic.texi: Update documentation for boz-literal-constant.
>
> 2017-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
>
> 	PR fortran/45513
> 	PR fortran/81509
> 	* gfortran.dg/graphite/id-26.f03: Fix non-conforming use of IAND.
> 	* gfortran.dg/pr81509_1.f90: New test.
> 	* gfortran.dg/pr81509_2.f90: New test.
>
This patch has caused the following failures on aarch64-none-linux-gnu:

FAIL: libgomp.fortran/aligned1.f03   -O0  (test for excess errors)
FAIL: libgomp.fortran/aligned1.f03   -O1  (test for excess errors)
FAIL: libgomp.fortran/aligned1.f03   -O2  (test for excess errors)
FAIL: libgomp.fortran/aligned1.f03   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for 
excess errors)
FAIL: libgomp.fortran/aligned1.f03   -O3 -g  (test for excess errors)
FAIL: libgomp.fortran/aligned1.f03   -Os  (test for excess errors)

With the failure as:

Excess errors:
/build/src/gcc/libgomp/testsuite/libgomp.fortran/aligned1.f03:55:14: 
Error: Arguments of 'iand' have different kind type parameters at (1)
/build/src/gcc/libgomp/testsuite/libgomp.fortran/aligned1.f03:59:14: 
Error: Arguments of 'iand' have different kind type parameters at (1)

Thanks

Sudi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]