https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86945

            Bug ID: 86945
           Summary: BUG with optimisation of select case statement in
                    gfortran v8.x
           Product: gcc
           Version: 8.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: daniel.price at monash dot edu
  Target Milestone: ---

Created attachment 44533
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44533&action=edit
test code to reproduce error

Dear gfortran folks,

 Users reported that gfortran-v8.x completely breaks my splash visualisation
tool (http://users.monash.edu.au/~splash). I tracked this down to a bug with
optimisation of the select case statement in gfortran v8.2.0.

 Test code with simple example attached. Enter "1" as the input, and output
should be zero (i.e. correct behaviour is to report error code if id is
negative). However, with various levels of optimisation the output I get is as
follows:

$ gfortran-mp-8 -O3 -o test test.f90 
$ ./test 
 enter id
1
 ierr =            1

$ gfortran-mp-8 -O1 -o test test.f90 
$ ./test 
 enter id
1
 ierr =            1

$ gfortran-mp-8 -o test test.f90 
$ ./test 
 enter id
1
 ierr =            0

Please fix this urgently! The outcome for users is that no plotting devices are
opened, because the program incorrectly returns an error code, and therefore
stops execution.

Compiler version as follows:

$ gfortran-mp-8 -v
Using built-in specs.
COLLECT_GCC=gfortran-mp-8
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin17/8.2.0/lto-wrapper
Target: x86_64-apple-darwin17
Configured with:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_gcc8/gcc8/work/gcc-8.2.0/configure
--prefix=/opt/local --build=x86_64-apple-darwin17
--enable-languages=c,c++,objc,obj-c++,lto,fortran --libdir=/opt/local/lib/gcc8
--includedir=/opt/local/include/gcc8 --infodir=/opt/local/share/info
--mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-8
--with-local-prefix=/opt/local --with-system-zlib --disable-nls
--program-suffix=-mp-8 --with-gxx-include-dir=/opt/local/include/gcc8/c++/
--with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local
--with-isl=/opt/local --enable-stage1-checking --disable-multilib --enable-lto
--enable-libstdcxx-time --with-build-config=bootstrap-debug
--with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld
--with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket
--disable-tls --with-pkgversion='MacPorts gcc8 8.2.0_0'
Thread model: posix
gcc version 8.2.0 (MacPorts gcc8 8.2.0_0)

Reply via email to