Hi Steve, > As aside 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.
I don't really like that part. We were using the nice and convenient mechanism of gfc_notify_std here, which allows the developer to choose via the -std flag whether to strictly adhere to a chosen Fortran standard or to allow GNU extensions etc. You're taking away that flexibility and replacing it by an unconditional error. I don't actually think that's a good idea. In general one can argue about whether or not it's a good idea to use non-std extensions. But I think gfortran should rather leave the choice to its users, whether they want to use 'dirty and covenient' code or have very strict checking. We have nice mechanisms for this, and I do think we should keep them. Cheers, Janus > 2017-09-27 Steven G. Kargl <ka...@gcc.gnu.org> > > 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 <ka...@gcc.gnu.org> > > 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. > > -- > Steve > 20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4 > 20161221 https://www.youtube.com/watch?v=IbCHE-hONow