public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions @ 2014-11-28 14:24 fxcoudert at gcc dot gnu.org 2014-11-28 14:25 ` [Bug fortran/64104] " fxcoudert at gcc dot gnu.org ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: fxcoudert at gcc dot gnu.org @ 2014-11-28 14:24 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64104 Bug ID: 64104 Summary: [F2003][IEEE] Allow IEEE functions in specification expressions Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: fxcoudert at gcc dot gnu.org Reported by James Van Buskirk on comp.lang.fortran: Have you tested whether gfortran accepts IEEE functions syntactically? The following should be OK I think, but gfortran shows a lot of errors. module funcs use IEEE_ARITHMETIC use IEEE_EXCEPTIONS implicit none integer, parameter :: ep = selected_real_kind(18,4931) integer, parameter :: ik4 = selected_int_kind(9) integer, parameter :: ik8 = selected_int_kind(18) contains subroutine test_specification(x) real(ep) x integer src(IEEE_SELECTED_REAL_KIND()) integer datatype(merge(1,2,IEEE_SUPPORT_DATATYPE(x))) integer denormal(merge(1,2,IEEE_SUPPORT_DENORMAL(x))) integer divide(merge(1,2,IEEE_SUPPORT_DIVIDE(x))) integer inf(merge(1,2,IEEE_SUPPORT_INF(x))) integer io(merge(1,2,IEEE_SUPPORT_IO(x))) integer nan(merge(1,2,IEEE_SUPPORT_NAN(x))) integer rounding(merge(1,2,IEEE_SUPPORT_ROUNDING(IEEE_TO_ZERO,x))) integer sqrt(merge(1,2,IEEE_SUPPORT_SQRT(x))) integer standard(merge(1,2,IEEE_SUPPORT_STANDARD(x))) integer underflow_control(merge(1,2,IEEE_SUPPORT_UNDERFLOW_CONTROL(x))) integer flag(merge(1,2,IEEE_SUPPORT_FLAG(IEEE_INEXACT,x))) integer halting(merge(1,2,IEEE_SUPPORT_HALTING(IEEE_INEXACT))) src = 1 write(*,*) 'src',size(src), src datatype = 1 write(*,*) 'datatype',size(datatype),datatype denormal = 1 write(*,*) 'denormal',size(denormal),denormal divide = 1 write(*,*) 'divide',size(divide),divide inf = 1 write(*,*) 'inf',size(inf),inf io = 1 write(*,*) 'io',size(io),io nan = 1 write(*,*) 'nan',size(nan),nan rounding = 1 write(*,*) 'rounding',size(rounding),rounding sqrt = 1 write(*,*) 'sqrt',size(sqrt),sqrt standard = 1 write(*,*) 'standard',size(standard),standard underflow_control = 1 write(*,*) 'underflow_control',size(underflow_control),underflow_control flag = 1 write(*,*) 'flag',size(flag),flag halting = 1 write(*,*) 'halting',size(halting),halting end subroutine test_specification subroutine test_constant(x) real(ep) x real(IEEE_SELECTED_REAL_KIND()) src integer(merge(ik4,ik8,IEEE_SUPPORT_DATATYPE(x))) datatype integer(merge(ik4,ik8,IEEE_SUPPORT_DENORMAL(x))) denormal integer(merge(ik4,ik8,IEEE_SUPPORT_DIVIDE(x))) divide integer(merge(ik4,ik8,IEEE_SUPPORT_INF(x))) inf integer(merge(ik4,ik8,IEEE_SUPPORT_IO(x))) io integer(merge(ik4,ik8,IEEE_SUPPORT_NAN(x))) nan integer(merge(ik4,ik8,IEEE_SUPPORT_ROUNDING(IEEE_TO_ZERO,x))) rounding integer(merge(ik4,ik8,IEEE_SUPPORT_SQRT(x))) sqrt integer(merge(ik4,ik8,IEEE_SUPPORT_STANDARD(x))) standard integer(merge(ik4,ik8,IEEE_SUPPORT_UNDERFLOW_CONTROL(x))) underflow_control integer(merge(ik4,ik8,IEEE_SUPPORT_FLAG(IEEE_INEXACT,x))) flag integer(merge(ik4,ik8,IEEE_SUPPORT_HALTING(IEEE_INEXACT))) halting src = 1 write(*,*) 'src',kind(src), src datatype = 1 write(*,*) 'datatype',kind(datatype),datatype denormal = 1 write(*,*) 'denormal',kind(denormal),denormal divide = 1 write(*,*) 'divide',kind(divide),divide inf = 1 write(*,*) 'inf',kind(inf),inf io = 1 write(*,*) 'io',kind(io),io nan = 1 write(*,*) 'nan',kind(nan),nan rounding = 1 write(*,*) 'rounding',kind(rounding),rounding sqrt = 1 write(*,*) 'sqrt',kind(sqrt),sqrt standard = 1 write(*,*) 'standard',kind(standard),standard underflow_control = 1 write(*,*) 'underflow_control',kind(underflow_control),underflow_control flag = 1 write(*,*) 'flag',kind(flag),flag halting = 1 write(*,*) 'halting',kind(halting),halting end subroutine test_constant end module funcs program ieee use funcs implicit none real(ep) x call test_specification(x) call test_constant(x) end program ieee ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/64104] [F2003][IEEE] Allow IEEE functions in specification expressions 2014-11-28 14:24 [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions fxcoudert at gcc dot gnu.org @ 2014-11-28 14:25 ` fxcoudert at gcc dot gnu.org 2015-04-22 11:58 ` jakub at gcc dot gnu.org ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: fxcoudert at gcc dot gnu.org @ 2014-11-28 14:25 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64104 Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2014-11-28 Assignee|unassigned at gcc dot gnu.org |fxcoudert at gcc dot gnu.org Target Milestone|--- |5.0 Ever confirmed|0 |1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/64104] [F2003][IEEE] Allow IEEE functions in specification expressions 2014-11-28 14:24 [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions fxcoudert at gcc dot gnu.org 2014-11-28 14:25 ` [Bug fortran/64104] " fxcoudert at gcc dot gnu.org @ 2015-04-22 11:58 ` jakub at gcc dot gnu.org 2015-07-16 9:16 ` rguenth at gcc dot gnu.org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: jakub at gcc dot gnu.org @ 2015-04-22 11:58 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64104 Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|5.0 |5.2 --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- GCC 5.1 has been released. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/64104] [F2003][IEEE] Allow IEEE functions in specification expressions 2014-11-28 14:24 [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions fxcoudert at gcc dot gnu.org 2014-11-28 14:25 ` [Bug fortran/64104] " fxcoudert at gcc dot gnu.org 2015-04-22 11:58 ` jakub at gcc dot gnu.org @ 2015-07-16 9:16 ` rguenth at gcc dot gnu.org 2015-08-07 15:02 ` fxcoudert at gcc dot gnu.org 2015-08-07 15:13 ` fxcoudert at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: rguenth at gcc dot gnu.org @ 2015-07-16 9:16 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64104 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|5.2 |5.3 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- GCC 5.2 is being released, adjusting target milestone to 5.3. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/64104] [F2003][IEEE] Allow IEEE functions in specification expressions 2014-11-28 14:24 [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions fxcoudert at gcc dot gnu.org ` (2 preceding siblings ...) 2015-07-16 9:16 ` rguenth at gcc dot gnu.org @ 2015-08-07 15:02 ` fxcoudert at gcc dot gnu.org 2015-08-07 15:13 ` fxcoudert at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: fxcoudert at gcc dot gnu.org @ 2015-08-07 15:02 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64104 --- Comment #4 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- Author: fxcoudert Date: Fri Aug 7 15:02:15 2015 New Revision: 226723 URL: https://gcc.gnu.org/viewcvs?rev=226723&root=gcc&view=rev Log: PR fortran/64104 * expr.c (gfc_check_init_expr): Allow some IEEE functions in constant expressions. (external_spec_function): Allow some IEEE functions in specification expressions. * simplify.c (gfc_simplify_ieee_selected_real_kind): Remove. (simplify_ieee_selected_real_kind, simplify_ieee_support, matches_ieee_function_name, gfc_simplify_ieee_functions): New functions. * gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove prototype. (gfc_simplify_ieee_functions): Add prototype. * gfortran.dg/ieee/ieee_8.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/ieee/ieee_8.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/expr.c trunk/gcc/fortran/gfortran.h trunk/gcc/fortran/simplify.c trunk/gcc/testsuite/ChangeLog ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/64104] [F2003][IEEE] Allow IEEE functions in specification expressions 2014-11-28 14:24 [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions fxcoudert at gcc dot gnu.org ` (3 preceding siblings ...) 2015-08-07 15:02 ` fxcoudert at gcc dot gnu.org @ 2015-08-07 15:13 ` fxcoudert at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: fxcoudert at gcc dot gnu.org @ 2015-08-07 15:13 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64104 Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED Target Milestone|5.3 |6.0 --- Comment #5 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- Fixed on trunk. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-08-07 15:13 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-11-28 14:24 [Bug fortran/64104] New: [F2003][IEEE] Allow IEEE functions in specification expressions fxcoudert at gcc dot gnu.org 2014-11-28 14:25 ` [Bug fortran/64104] " fxcoudert at gcc dot gnu.org 2015-04-22 11:58 ` jakub at gcc dot gnu.org 2015-07-16 9:16 ` rguenth at gcc dot gnu.org 2015-08-07 15:02 ` fxcoudert at gcc dot gnu.org 2015-08-07 15:13 ` fxcoudert at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).