From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hallvard B Furuseth To: gcc-gnats@gcc.gnu.org Subject: optimization/4280: Misplaced warnings with optimized `foo / 0.0' Date: Sun, 09 Sep 2001 17:16:00 -0000 Message-id: X-SW-Source: 2001-09/msg00202.html List-Id: >Number: 4280 >Category: optimization >Synopsis: Misplaced warnings with optimized `foo / 0.0' >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Sep 09 17:16:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Hallvard B Furuseth >Release: 3.0.1 >Organization: University of Oslo >Environment: System: SunOS bombur.uio.no 5.8 Generic_108528-03 sun4u sparc SUNW,Ultra-5_10 Architecture: sun4 host: sparc-sun-solaris2.8 build: sparc-sun-solaris2.8 target: sparc-sun-solaris2.8 configured with: ../gcc-3.0.1/configure --prefix=/usit/bombur/hbf --program-suffix=3 --enable-version-specific-runtime-libs --enable-languages=c --quiet >Description: Warnings `division: NaN - producing operation' and `division: function singularity' form optimized code get the wrong line numbers. (The line of the closing brace of the end of the function.) `gcc -W' produces some correctly placed warnings. `gcc -W -O' produces some additional misplaced warnings. The warnings which `gcc -W' also produced, are not misplaced. >How-To-Repeat: $ cat a.c double a, b, c, d, e, f; void y() { double zero = 0.0; /* Misplaced warnings: */ a = zero / zero; /* "line 15" NaN */ b = 0.0 / zero; /* "line 15" NaN */ c = zero / 0.0; /* "line 15" NaN */ d = 1.0 / zero; /* "line 15" singularity */ /* Correctly placed warnings: */ e = 0.0 / 0.0; /* line 13 NaN */ f = 1.0 / 0.0; /* line 14 singularity */ } /* line 15 */ /* Correctly placed warnings: */ double g = 0.0 / 0.0; /* line 18 NaN */ double h = 1.0 / 0.0; /* line 19 singularity */ $ gcc3 -W -S a.c a.c: In function `y': a.c:13: warning: division: NaN - producing operation a.c:14: warning: division: function singularity a.c: At top level: a.c:18: warning: division: NaN - producing operation a.c:19: warning: division: function singularity $ gcc3 -W -O -S a.c a.c: In function `y': a.c:13: warning: division: NaN - producing operation a.c:14: warning: division: function singularity a.c:15: warning: division: NaN - producing operation a.c:15: warning: division: NaN - producing operation a.c:15: warning: division: NaN - producing operation a.c:15: warning: division: function singularity a.c: At top level: a.c:18: warning: division: NaN - producing operation a.c:19: warning: division: function singularity >Fix: >Release-Note: >Audit-Trail: >Unformatted: