https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109684
Bug ID: 109684
Summary: compiling failure: complaining about a final
subroutine of a type being not PURE (while it is
indeed PURE)
Product: gcc
Version: 13.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: wangmianzhi1 at linuxmail dot org
Target Milestone: ---
Created attachment 54964
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54964&action=edit
build with cmake
This issue emerges after upgrading to Fedora 38 (gcc version 13.1.1 20230426)
from Fedora 37 (gcc 12.x series). There was no issue in Fedora 37.
The issue takes place when:
mkdir build; cd build; cmake ..; make
GCC would popup an error message like this:
/home/mianzhi/Desktop/final_subroutine_not_pure/src/test/basicFEM1.f90:3:0:
3 | function basicFEM1() result(ierr)
|
Error: Contained procedure ‘__final_modotgrid_Otgrid’ at (1) of a PURE
procedure must also be PURE
The f90 file that actually contains the otGrid type with its final procedure
compiles fine. The basicFEM1.f90 uses module modFileIO, which has an interface
that involves type otGrid.
The attached is a stripped-down version of the code. I've tried to further
simplify the code but removing seemingly irrelevant things could prevent the
error from happening.
Thank you very much for your help.
Best regards,
Mianzhi