From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C811A386102B; Tue, 8 Dec 2020 15:34:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C811A386102B From: "tkoenig at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/98201] CSQRT function gives bad resuts at runtime Date: Tue, 08 Dec 2020 15:34:11 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 9.2.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: tkoenig at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cf_gcctarget cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Dec 2020 15:34:12 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D98201 Thomas Koenig changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |mingw CC| |tkoenig at gcc dot gnu.org --- Comment #1 from Thomas Koenig --- Here is a slight extension of your program, which also checks the compile-time simplification. Can you tell me what it does? program main implicit none integer :: i,n complex z, sq complex, parameter, dimension(9) :: zp =3D [(-10.**i+(0.,1.),i=3D1,9)] complex, parameter, dimension(9) :: sqp =3D sqrt(zp) write (*,*) "Runtime" write (*,*) " Argument SquareRoot SR squared" do n=3D1,9 z=3D-10.**n+(0.,.1) sq=3Dcsqrt(z) write(*,1) z, sq, sq*sq end do write (*,*) "Compile-time" do n=3D1,9 write (*,1) zp(n), sqp(n), sqp(n)**2 end do 1 format(3("(",e10.4,2x,e10.4,")",3x)) end On my Linux box, it prints Runtime Argument SquareRoot SR squared (-.1000E+02 0.1000E+00) (0.1581E-01 0.3162E+01) (-.1000E+02 0.1000E+= 00) (-.1000E+03 0.1000E+00) (0.5000E-02 0.1000E+02) (-.1000E+03 0.1000E+= 00) (-.1000E+04 0.1000E+00) (0.1581E-02 0.3162E+02) (-.1000E+04 0.1000E+= 00) (-.1000E+05 0.1000E+00) (0.5000E-03 0.1000E+03) (-.1000E+05 0.1000E+= 00) (-.1000E+06 0.1000E+00) (0.1581E-03 0.3162E+03) (-.1000E+06 0.1000E+= 00) (-.1000E+07 0.1000E+00) (0.5000E-04 0.1000E+04) (-.1000E+07 0.1000E+= 00) (-.1000E+08 0.1000E+00) (0.1581E-04 0.3162E+04) (-.1000E+08 0.1000E+= 00) (-.1000E+09 0.1000E+00) (0.5000E-05 0.1000E+05) (-.1000E+09 0.1000E+= 00) (-.1000E+10 0.1000E+00) (0.1581E-05 0.3162E+05) (-.1000E+10 0.1000E+= 00) Compile-time (-.1000E+02 0.1000E+01) (0.1579E+00 0.3166E+01) (-.1000E+02 0.1000E+= 01) (-.1000E+03 0.1000E+01) (0.5000E-01 0.1000E+02) (-.1000E+03 0.1000E+= 01) (-.1000E+04 0.1000E+01) (0.1581E-01 0.3162E+02) (-.1000E+04 0.1000E+= 01) (-.1000E+05 0.1000E+01) (0.5000E-02 0.1000E+03) (-.1000E+05 0.1000E+= 01) (-.1000E+06 0.1000E+01) (0.1581E-02 0.3162E+03) (-.1000E+06 0.1000E+= 01) (-.1000E+07 0.1000E+01) (0.5000E-03 0.1000E+04) (-.1000E+07 0.1000E+= 01) (-.1000E+08 0.1000E+01) (0.1581E-03 0.3162E+04) (-.1000E+08 0.1000E+= 01) (-.1000E+09 0.1000E+01) (0.5000E-04 0.1000E+05) (-.1000E+09 0.1000E+= 01) (-.1000E+10 0.1000E+01) (0.1581E-04 0.3162E+05) (-.1000E+10 0.1000E+= 01) so there is a slight difference in one value, but nothing as completely wrong as what you show. What is the output of that program on your system? And what is the output of "gfortran -v" ?=