mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 16:07:09 +00:00

`ERF`, `ERFC` and `ERFC_SCALED` intrinsics prefixed by `Q` and `D` are missing. Codes such as `CP2K`(https://github.com/cp2k/cp2k) and `TurboRVB`(https://github.com/sissaschool/turborvb) use these intrinsics just like defined in the GNU standard and here: https://www.ibm.com/docs/fr/xl-fortran-aix/16.1.0?topic=reference-intrinsic-procedures These intrinsics are based on the existing intrinsics but apply a restriction on the type kind. - `DERF`, `DERFC` and `DERFC_SCALED` are for double précision only. - `QERF`, `QERFC` and `QERFC_SCALED` are for quad précision only.
30 lines
872 B
Fortran
30 lines
872 B
Fortran
! RUN: not %flang_fc1 -fsyntax-only %s 2>&1 | FileCheck --check-prefix=ERROR %s
|
|
|
|
function derf8_error4(x)
|
|
real(kind=8) :: derf8_error4
|
|
real(kind=4) :: x
|
|
derf8_error4 = derf(x);
|
|
! ERROR: Actual argument for 'x=' has bad type or kind 'REAL(4)'
|
|
end function derf8_error4
|
|
|
|
function derf8_error16(x)
|
|
real(kind=8) :: derf8_error16
|
|
real(kind=16) :: x
|
|
derf8_error16 = derf(x);
|
|
! ERROR: Actual argument for 'x=' has bad type or kind 'REAL(16)'
|
|
end function derf8_error16
|
|
|
|
function qerf16_error4(x)
|
|
real(kind=16) :: qerf16_error4
|
|
real(kind=4) :: x
|
|
qerf16_error4 = qerf(x);
|
|
! ERROR: Actual argument for 'x=' has bad type or kind 'REAL(4)'
|
|
end function qerf16_error4
|
|
|
|
function qerf16_error8(x)
|
|
real(kind=16) :: qerf16_error8
|
|
real(kind=8) :: x
|
|
qerf16_error8 = qerf(x);
|
|
! ERROR: Actual argument for 'x=' has bad type or kind 'REAL(8)'
|
|
end function qerf16_error8
|