⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 used_interface_ref.f90

📁 用于进行gcc测试
💻 F90
字号:
! { dg-do run }! Tests the fix for PR26393, in which an ICE would occur in trans-decl.c! (gfc_get_symbol_decl) because anzKomponenten is not referenced in the! interface for solveCConvert. The solution was to assert that the symbol! is either referenced or in an interface body.!! Based on the testcase in the PR.!  MODULE MODULE_CONC    INTEGER, SAVE :: anzKomponenten = 2  END MODULE MODULE_CONC  MODULE MODULE_THERMOCALC    INTERFACE      FUNCTION solveCConvert ()        USE MODULE_CONC, ONLY: anzKomponenten        REAL :: solveCConvert(1:anzKomponenten)        END FUNCTION solveCConvert    END INTERFACE  END MODULE MODULE_THERMOCALC  SUBROUTINE outDiffKoeff    USE MODULE_CONC    USE MODULE_THERMOCALC    REAL :: buffer_conc(1:anzKomponenten)    buffer_conc = solveCConvert ()    if (any(buffer_conc .ne. (/(real(i), i = 1, anzKomponenten)/))) &          call abort ()  END SUBROUTINE outDiffKoeff  program missing_ref    USE MODULE_CONC    call outDiffKoeff! Now set anzKomponenten to a value that would cause a segfault if! buffer_conc and solveCConvert did not have the correct allocation! of memory.    anzKomponenten = 5000    call outDiffKoeff  end program missing_ref   FUNCTION solveCConvert ()    USE MODULE_CONC, ONLY: anzKomponenten    REAL :: solveCConvert(1:anzKomponenten)    solveCConvert = (/(real(i), i = 1, anzKomponenten)/)  END FUNCTION solveCConvert! { dg-final { cleanup-modules "MODULE_CONC MODULE_THERMOCALC" } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -