Humpf, that one is scary... can't even think of what to put as a Summary :)
$ cat abs_complex.f90 real x x = abs(x) call foo(abs) end $ ./bin/gfortran abs_complex.f90 -c /tmp/ccdGqqDj.s: Assembler messages: /tmp/ccdGqqDj.s:14: Error: junk `(intrinsic)__abs' after expression Indeed, the assembler produced on i686-linux is not very nice; note the "movl $__(intrinsic)__abs, (%esp)" line: .file "abs_complex.f90" .text .globl MAIN__ .type MAIN__, @function MAIN__: pushl %ebp movl %esp, %ebp subl $40, %esp movl $0, 8(%esp) movl $127, 4(%esp) movl $70, (%esp) call _gfortran_set_std andb $127, -1(%ebp) movl $__(intrinsic)__abs, (%esp) call foo_ leave ret .size MAIN__, .-MAIN__ .ident "GCC: (GNU) 4.2.0 20060510 (experimental)" .section .note.GNU-stack,"",@progbits -- Summary: Strange assembler produced Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fxcoudert at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27554