public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/106546] New: Incorrect reuse of allocatable array temporaries under -O2 -fno-automatic
@ 2022-08-06 15:37 solomon.gibbs at gmail dot com
  2022-08-06 16:50 ` [Bug fortran/106546] " kargl at gcc dot gnu.org
  0 siblings, 1 reply; 2+ messages in thread
From: solomon.gibbs at gmail dot com @ 2022-08-06 15:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 106546
           Summary: Incorrect reuse of allocatable array temporaries under
                    -O2 -fno-automatic
           Product: gcc
           Version: 10.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: solomon.gibbs at gmail dot com
  Target Milestone: ---

Created attachment 53420
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53420&action=edit
Test program that produces the error when compiled and run as described

I get an array extent error when running code using allocatable array
temporaries compiled with with the flags -O2 -fcheck=bounds -fno-automatic. The
error does not occur with -fautomatic instead of -fno-automatic. 

I believe the generated code is trying to reuse the allocated array temporary,
but does not correctly manage resizing it before reuse. It appears that once
the temporary is allocated with the maximum possible size, it is never
reallocated with a smaller size. 

I have observed this behavior with GFortran 8.5, 9.4, and 10.3.

The attached code example shows the behavior. Compiled as
gfortran-10 -o bogus bogus.f90 -O2 -fcheck=bounds -fno-automatic -Wall -Wextra

The executable will eventually crash with an error like: 
Fortran runtime error: Incorrect extent in argument B in MATMUL intrinsic in
dimension 1: is 6, should be 2
Error termination. Backtrace:
#0  0x7f39f6af6d21 in ???
#1  0x7f39f6af7869 in ???
#2  0x7f39f6af7d99 in ???
#3  0x564889bb5e87 in ???
#4  0x564889bb5144 in ???
#5  0x7f39f6908082 in __libc_start_main
        at ../csu/libc-start.c:308
#6  0x564889bb517d in ???
#7  0xffffffffffffffff in ???


$ gfortran-10 -v
Using built-in specs.
COLLECT_GCC=gfortran-10
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
10.3.0-1ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr
--with-gcc-major-version-only --program-suffix=-10
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib
--enable-libphobos-checking=release --with-target-system-zlib=auto
--enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic
--enable-offload-targets=nvptx-none=/build/gcc-10-S4I5Pr/gcc-10-10.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-S4I5Pr/gcc-10-10.3.0/debian/tmp-gcn/usr,hsa
--without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
--with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.04)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug fortran/106546] Incorrect reuse of allocatable array temporaries under -O2 -fno-automatic
  2022-08-06 15:37 [Bug fortran/106546] New: Incorrect reuse of allocatable array temporaries under -O2 -fno-automatic solomon.gibbs at gmail dot com
@ 2022-08-06 16:50 ` kargl at gcc dot gnu.org
  0 siblings, 0 replies; 2+ messages in thread
From: kargl at gcc dot gnu.org @ 2022-08-06 16:50 UTC (permalink / raw)
  To: gcc-bugs

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

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu.org

--- Comment #1 from kargl at gcc dot gnu.org ---
Seems to be related to the frontend optimization.  Add -fno-frontend-optimize
to your options.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-08-06 16:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-06 15:37 [Bug fortran/106546] New: Incorrect reuse of allocatable array temporaries under -O2 -fno-automatic solomon.gibbs at gmail dot com
2022-08-06 16:50 ` [Bug fortran/106546] " kargl at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).