[Bug fortran/43040] Wrong decl for mathbuiltins -> wrong code with LTO
--- Comment #8 from fxcoudert at gcc dot gnu dot org 2010-06-09 10:20 --- Checked that it is not an issue. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040
[Bug fortran/43040] Wrong decl for mathbuiltins -> wrong code with LTO
--- Comment #7 from fxcoudert at gcc dot gnu dot org 2010-06-09 10:18 --- Subject: Bug 43040 Author: fxcoudert Date: Wed Jun 9 10:17:56 2010 New Revision: 160459 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=160459 Log: PR fortran/43040 * f95-lang.c (gfc_init_builtin_functions): Remove comment. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/f95-lang.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040
[Bug fortran/43040] Wrong decl for mathbuiltins -> wrong code with LTO
--- Comment #6 from fxcoudert at gcc dot gnu dot org 2010-06-08 20:39 --- I'm currently looking at math builtins for __float128 support, so I'll check that. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added CC||fxcoudert at gcc dot gnu dot ||org AssignedTo|unassigned at gcc dot gnu |fxcoudert at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2010-02-12 11:07:37 |2010-06-08 20:39:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040
[Bug fortran/43040] Wrong decl for mathbuiltins -> wrong code with LTO
--- Comment #5 from burnus at gcc dot gnu dot org 2010-02-16 13:51 --- I think the comment applies only to FLOOR and ROUND - at least when it was first written those were the only ones present. If I read the source code correctly, the ME floor(l,f) is not directly called but instead the following is generated: FLOOR(x) = INT(x) <= x ? INT(x) : INT(x) - 1 cf. trans-intrinsic.c. I also believe that ROUND [(l)round(l,f)] is properly handled, which means that the PR could be closed. However, I leave it open for someone else to cross check. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040
[Bug fortran/43040] Wrong decl for mathbuiltins -> wrong code with LTO
--- Comment #4 from burnus at gcc dot gnu dot org 2010-02-16 08:35 --- Subject: Bug 43040 Author: burnus Date: Tue Feb 16 08:35:05 2010 New Revision: 156796 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156796 Log: 2010-02-16 Tobias Burnus PR fortran/43040 * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to * GFS_ISYM_TGAMMA. * intrinsic.c (add_functions): Ditto. * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma. * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma". Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/gfortran.h trunk/gcc/fortran/intrinsic.c trunk/gcc/fortran/iresolve.c trunk/gcc/fortran/mathbuiltins.def -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040
[Bug fortran/43040] Wrong decl for mathbuiltins -> wrong code with LTO
--- Comment #3 from burnus at gcc dot gnu dot org 2010-02-12 13:54 --- (In reply to comment #2) > /* We define these separately as the fortran versions have different > semantics (they return an integer type) */ > gfc_define_builtin ("__builtin_roundl", mfunc_longdouble[0], > > ugh. You can't overload existing builtin names with different semantics. > The middle-end expects that of gcc/builtins.def. For the above case > there exists BUILT_IN_LROUNDL. My impression is that the comment is old and does not apply to "roundl" as the trans-intrinsics.c uses both BUILT_IN_ROUND* and BUILT_IN_LROUND - and given that the "round*" were added much later than the comment according to svn blame. Having said that, I think one should check the other intrinsics in that file (f95-lang.c) and remove then the bogus comment. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040