https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119273
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2025-03-13 Priority|P3 |P4 Ever confirmed|0 |1 Keywords| |wrong-code Known to fail| |14.2.1, 15.0 Target Milestone|--- |14.3 Summary|subclass can not correctly |[14/15 Regression] subclass |access to superclass in |can not correctly access to |associate statement |superclass in associate | |statement --- Comment #1 from anlauf at gcc dot gnu.org --- Confirmed. gfortran-13 did not generate bounds-checking for the code in question. The current version seems to invoke test_function twice with fcheck=bounds, with the first call (for the bounds-checking) using a wrong argument where the vptr is not set up: struct __class_test_module_Test_type_child_t class.0; integer(kind=8) D.4855; struct __class_test_module_Test_type_child_t class.1; integer(kind=8) D.4857; a.test_type_father.val = 1; D.4855 = (integer(kind=8)) test_function (&class.0); if (D.4855 <= 0) { _gfortran_runtime_error_at (&"At line 29 of file pr119273.f90"[1]{lb: 1 sz: 1}, &"Index \'%ld\' of dimension 2 of array \'temp_int\' outside of expected range (%ld:%ld)"[1]{lb: 1 sz: 1}, D.4855, 1, 1); } if (D.4855 > 1) { _gfortran_runtime_error_at (&"At line 29 of file pr119273.f90"[1]{lb: 1 sz: 1}, &"Index \'%ld\' of dimension 2 of array \'temp_int\' outside of expected range (%ld:%ld)"[1]{lb: 1 sz: 1}, D.4855, 1, 1); } class.1._vptr = (struct __vtype_test_module_Test_type_child * {ref-all}) &__vtab_test_module_Test_type_child; class.1._data = &a; D.4857 = (integer(kind=8)) test_function (&class.1);