https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115315
Bug ID: 115315 Summary: valgrind error in gfc_simplify_expr Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- For this Fortran source code: ! RUN: %python %S/test_errors.py %s %flang_fc1 ! Test section subscript subroutine p1 real :: a(10,10) real :: b(5,5) real :: c integer :: n n = 2 b = a(1:10:n,1:n+3) end ! Test substring subroutine p2 type t1(n1,n2) integer,kind :: n1,n2 integer :: c2(iachar('ABCDEFGHIJ'(n1:n1))) end type character :: a(10) character :: b(5) character :: c(0) integer :: n n = 3 b = a(n:7) b = a(n+3:) b = a(:n+2) a(n:7) = b a(n+3:) = b a(:n+2) = b n = iachar(1_'ABCDEFGHIJ'(1:1)) c = 'ABCDEFGHIJ'(1:0) end ! Test pointer assignment with bounds subroutine p3 integer, pointer :: a(:,:) integer, target :: b(2,2) integer :: n n = 2 a(n:,n:) => b a(1:n,1:n) => b end ! Test pointer assignment to array element subroutine p4 type :: t real, pointer :: a end type type(t) :: x(10) integer :: i real, target :: y x(i)%a => y end subroutine A recent valgrind version of gfortran does this: test $ ~/gcc/results.20240530.valgrind/bin/gfortran -c -w ./Semantics/resolve49.f90 ==1331074== Invalid read of size 2 ==1331074== at 0x48513A0: memmove (vg_replace_strmem.c:1414) ==1331074== by 0x74F69F: gfc_simplify_expr(gfc_expr*, int) (expr.cc:2305) ==1331074== by 0x74F4FB: gfc_simplify_expr(gfc_expr*, int) (expr.cc:2265) The source code file is from the flang testsuite at https://github.com/llvm/llvm-project/tree/main/flang/test