From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19479 invoked by alias); 30 Apr 2004 16:35:12 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 19472 invoked by uid 48); 30 Apr 2004 16:35:11 -0000 Date: Fri, 30 Apr 2004 16:44:00 -0000 Message-ID: <20040430163511.19471.qmail@sources.redhat.com> From: "Tobias dot Schlueter at physik dot uni-muenchen dot de" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20040429173856.15205.kargl@c-67-168-59-70.client.comcast.net> References: <20040429173856.15205.kargl@c-67-168-59-70.client.comcast.net> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug fortran/15205] [gfortran] NEAREST intrinsic returns wrong value in DOUBLE PRECISION X-Bugzilla-Reason: CC X-SW-Source: 2004-04/txt/msg02977.txt.bz2 List-Id: ------- Additional Comments From Tobias dot Schlueter at physik dot uni-muenchen dot de 2004-04-30 16:35 ------- (In reply to comment #2) > for some reason i had to remove the _sp and _dp to get it to compile ? > > this is not a library problem, it is in the front end. > > [bdavis@localhost pr15205]$ gfortran -static a.f90 > [bdavis@localhost pr15205]$ nm a.out |grep near > 527:08049140 T _gfortran_nearest_r4 > > or look at the output of -fdump-tree-all -fdump-parse-tree can be very helpful as well (after removing _sp and replacing _dp by _8): [tobi@marktplatz tests]$ gfortran pr15205.f90 -fdump-parse-tree Namespace: A-Z: (UNKNOWN 0) symtree: dr Ambig 0 symbol dr (REAL 8)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) symtree: sx Ambig 0 symbol sx (REAL 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) symtree: ds Ambig 0 symbol ds (REAL 8)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) symtree: sr Ambig 0 symbol sr (REAL 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) symtree: dx Ambig 0 symbol dx (REAL 8)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) symtree: nearest Ambig 0 symbol nearest (UNKNOWN 0)(PROCEDURE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC FUNCTION) result: nearest symtree: ss Ambig 0 symbol ss (REAL 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) symtree: test_nearest Ambig 0 symbol test_nearest (UNKNOWN 0)(PROGRAM UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) ASSIGN sx 0.1237e1 ASSIGN ss 0.1e1 ASSIGN sr _gfortran_nearest[[((sx) (ss))]] WRITE UNIT=6 FMT=1 TRANSFER 'nearest(' TRANSFER sx TRANSFER ',' TRANSFER ss TRANSFER ') = ' TRANSFER sr DT_END ASSIGN ss -0.1e1 ASSIGN sr _gfortran_nearest[[((sx) (ss))]] WRITE UNIT=6 FMT=1 TRANSFER 'nearest(' TRANSFER sx TRANSFER ',' TRANSFER ss TRANSFER ') = ' TRANSFER sr DT_END ASSIGN dx 0.1237e1_8 ASSIGN ds 0.1e1_8 ASSIGN dr __convert_r4_r8[[((_gfortran_nearest[[((dx) (ds))]]))]] WRITE UNIT=6 FMT=2 TRANSFER 'nearest(' TRANSFER dx TRANSFER ',' TRANSFER ds TRANSFER ') = ' TRANSFER dr DT_END ASSIGN ds -0.1e1_8 ASSIGN dr __convert_r4_r8[[((_gfortran_nearest[[((dx) (ds))]]))]] WRITE UNIT=6 FMT=2 TRANSFER 'nearest(' TRANSFER dx TRANSFER ',' TRANSFER ds TRANSFER ') = ' TRANSFER dr DT_END [tobi@marktplatz tests]$ So yeah, the frontend is at fault. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15205