On Wed, Oct 26, 2016 at 6:16 AM, Andreas Schwab <sch...@suse.de> wrote: > On Okt 25 2016, Fritz Reese <fritzore...@gmail.com> wrote: > >> * dec_bitwise_ops_1.f90, dec_bitwise_ops_2.f90: New testcases. > > I'm getting these errors on ia64: > > FAIL: gfortran.dg/dec_bitwise_ops_1.f90 -O0 (test for excess errors) > Excess errors: > /usr/local/gcc/gcc-20161026/gcc/testsuite/gfortran.dg/dec_bitwise_ops_1.f90:33:16: > Error: Can't convert INTEGER(4) to INTEGER(4) at (1) > /usr/local/gcc/gcc-20161026/gcc/testsuite/gfortran.dg/dec_bitwise_ops_1.f90:34:16: > Error: Can't convert INTEGER(4) to INTEGER(4) at (1) > /usr/local/gcc/gcc-20161026/gcc/testsuite/gfortran.dg/dec_bitwise_ops_1.f90:35:24: > Error: Can't convert INTEGER(4) to INTEGER(4) at (1) ...
Andreas, I can't seem to reproduce this on x86-64. Did you fully apply the patch? I think this section of code in resolve.c should be guarding against type to same-type conversions in this case: >>> resolve.c:3719 (resolve_operator) /* Logical ops on integers become bitwise ops with -fdec. */ else if (flag_dec && (op1->ts.type == BT_INTEGER || op2->ts.type == BT_INTEGER)) { e->ts.type = BT_INTEGER; e->ts.kind = gfc_kind_max (op1, op2); if (op1->ts.type != e->ts.type || op1->ts.kind != e->ts.kind) gfc_convert_type (op1, &e->ts, 1); if (op2->ts.type != e->ts.type || op2->ts.kind != e->ts.kind) gfc_convert_type (op2, &e->ts, 1); e = logical_to_bitwise (e); return resolve_function (e); } <<< --- Fritz Reese