Dear Tobias, Failures in 32 bit mode again!-( With your patch, I get the following failures with -m32:
FAIL: gfortran.dg/class_48.f90 -O2 (test for excess errors) FAIL: gfortran.dg/class_48.f90 -Os (test for excess errors) FAIL: gfortran.dg/finalize_18.f90 -O scan-tree-dump-times original "y.cc._vptr->_final \\(&desc.5, \\(integer\\(kind=8\\)\\) y.cc._vptr->_size, 1\\);" 1 FAIL: gfortran.dg/finalize_18.f90 -O scan-tree-dump-times original "y.dd._vptr->_final \\(&y.dd._data, \\(integer\\(kind=8\\)\\) y.dd._vptr->_size, 1\\);" 1 The failures for finalize_18.f90 are /opt/gcc/work/gcc/testsuite/gfortran.dg/class_48.f90: In function '__final_test2_T.2138.constprop.0': /opt/gcc/work/gcc/testsuite/gfortran.dg/class_48.f90:39:0: warning: iteration 2147483648 invokes undefined behavior [-Waggressive-loop-optimizations] class(t), allocatable :: a ^ /opt/gcc/work/gcc/testsuite/gfortran.dg/class_48.f90:39:0: note: containing loop and for finalize_18.f90, grepping for _vptr->_size yields y.cc._vptr->_final (&desc.5, y.cc._vptr->_size, 1); y.dd._vptr->_final (&y.dd._data, y.dd._vptr->_size, 1); TIA Dominique