Hi Steve, I'll take your word for it on the F2008 contraints. Given that the patch is very good - OK for trunk.
Thanks Paul On 27 September 2017 at 20:36, Steve Kargl <s...@troutmask.apl.washington.edu> wrote: > The attached patch fixes PR fortran/81509. > > In short, F2008 now allows boz-literal-constants in IAND, IOR, IEOR, > DSHIFTL, DSHIFTR, and MERGE_BITS. gfortran currently allows BOZ > argument, but she was not enforcing restrictions in F2008. The > attach patch causes gfortran to conform to F2008. > > 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. > > 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 -- "If you can't explain it simply, you don't understand it well enough" - Albert Einstein