https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93871
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org --- Comment #2 from kargl at gcc dot gnu.org --- Can you post the code you used for testing? Your patch to simplify.c affects compile-time constant folding. simplify.c has nothing to do with a run-time evaluation. Hmmm, upon inspection, the implementation of cotan in the Fortran FE is certainly broken. function foo(z) result(a) complex a complex, intent(in) :: z intrinsic cotan a = cotan(z) end function foo % gfcx -c a.f90 a.f90:4:18: 4 | intrinsic cotan | 1 Error: 'cotan' declared INTRINSIC at (1) does not exist Removing the 'intrinsic cotan' line and running in the debugger, one finds that none of gfc_check_fn_rc2008, gfc_simplify_cotan, and gfc_resolve_cotan are called. So, compiling this to assembly % gfcx -S -o a.s -O -c a.f90 .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $16, %rsp call cotan_ movss %xmm0, -8(%rbp) movl $0x00000000, -4(%rbp) movq -8(%rbp), %xmm0 leave .cfi_def_cfa 7, 8 ret .cfi_endproc we see that we're calling a function named cotan. Haven't found where cotan lives. % nm /usr/local/lib/gcc9/libgfortran.a | grep cotan nm: bessel_r10.o: no symbols nm: atomic.o: no symbols % nm /usr/lib/libm.a | grep cotan % find ~/gcc/gccx/libgfortran -type f | xargs grep -i cotan Completely the program program bar complex b, c b = (1.,1.) c = cotan(b) print *, c end program bar % gfcx -o z a.f90 /usr/local/bin/ld: /tmp/ccqbsxb5.o: in function `MAIN__': a.f90:(.text+0x2d): undefined reference to `cotan_' collect2: error: ld returned 1 exit status