[Bug fortran/69368] [6 Regression] spec2006 test case 416.gamess fails with the g++ 6.0 compiler starting with r232508

alalaw01 at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 17 16:45:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69368

--- Comment #39 from alalaw01 at gcc dot gnu.org ---
Created attachment 37726
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37726&action=edit
Proposed patch (without flag).

Here's a prototype patch, that sets TYPE_SIZE to NULL_TREE but leaves DECL_SIZE
intact.  For the moment I'm applying this universally, rather than gating under
a flag, to ease testing check-fortran.  Only
gfortran.dg/gomp/appendix-a/a.24.1.f90 fails; in practice I think it's OK just
to not use the new code in conjunction with -fopenmp.

On AArch64, it fixes the 416.gamess issue, and allows compiling 416.gamess
without the -fno-aggressive-loop-optimizations previously required.

Also bootstraps and passes check-gcc check-fortran check-g++, on aarch64 and
x86_64, except as noted above. I expect to add a Fortran-only flag to gate the
trans-common.c changes before taking this to gcc-patches@ .

The worry is that while many cases in the mid-end were happy with a null
TYPE_SIZE, I still had to patch up a couple, so the worry is I might not have
got them all.  (Indeed, omp-low.c had too many!) I'm not sure this is any worse
than adding a new flag to the decl (indicating that the DECL_SIZE is not to be
trusted) and then trying to find all the cases where the DECL_SIZE is wrongly
relied upon - with the latter approach, the compiler would generate invalid
code, rather than "failing fast".

Thoughts welcome!


More information about the Gcc-bugs mailing list