https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61927
Bug ID: 61927 Summary: Optimization bug (regression): Array comparison yields unassigned result at -O3 Product: gcc Version: 4.9.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: krefson at gmail dot com The attached code, which tests an allocatable array for nonzero values, works correctly when compiled at -O1 and -O3, but malfunctions at -O3. $ gfortran -O2 arrayop2.f90 $ ./a.out Symm_Nonzero T F F F T F F F T 3 T F F F T F F F T 3 T F F F F T F T F 3 T F F F F T F T F 3 T F F F T F F F T 3 T F F F T F F F T 3 T F F F F T F T F 3 T F F F F T F T F 3 $ ./a.out Symm_Nonzero T F F F T F F F T 3 F F F T T F F T T 4 T T T F T T F F T**** T F F T F T T F F**** F F T T F F T T T 5 T T T T T F F T T**** T T T T F F T T T**** T T F T T T T T T**** Running under valgrind reveals that some elements of the result array "symm_nonzero" contain uninitialized data in the -O3 case. This is a regression in 4.9.1. The code works correctly at -O3 under 4.8,2 uname -a Linux gibbs 3.12.21-desktop-2.mga4 #1 SMP Thu Jun 5 21:33:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ gfortran --version GNU Fortran (GCC) 4.9.1 20140709 (prerelease) Copyright (C) 2014 Free Software Foundation, Inc.