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

            Bug ID: 112966
           Summary: Valgrind errors on gfortran.dg/finalize_*.f90
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

With --enable-checking=release,valgrind --disable-bootstrap
--enable-valgrind-annotations build I'm seeing:
/home/jakub/src/gcc/obj88/gcc/testsuite/gfortran8/../../gfortran
-B/home/jakub/src/gcc/obj88/gcc/testsuite/gfortran8/../../
-B/home/jakub/src/gcc/obj88/x86_64-pc
-linux-gnu/./libgfortran/
/home/jakub/src/gcc/gcc/testsuite/gfortran.dg/finalize_46.f90
-fdiagnostics-plain-output -fdiagnostics-plain-output -O0 -pedantic-errors
-B/home/jakub/src/g
cc/obj88/x86_64-pc-linux-gnu/./libatomic/
-B/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libatomic/.libs
-B/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libgfortran/.libs -L/hom
e/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libgfortran/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libgfortran/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./li
batomic/.libs
-B/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libquadmath/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libquadmath/.libs
-L/home/jakub/src/gcc/obj88/x86_
64-pc-linux-gnu/./libquadmath/.libs -lm -o ./finalize_46.exe
==2680311== Invalid read of size 1
==2680311==    at 0x7F0654: generate_component_assignments(gfc_code**,
gfc_namespace*) (resolve.cc:11873)
==2680311==    by 0x7EFB68: gfc_resolve_code(gfc_code*, gfc_namespace*)
(resolve.cc:12525)
==2680311==    by 0x7F142B: resolve_codes(gfc_namespace*) (resolve.cc:18102)
==2680311==    by 0x7F14FE: gfc_resolve(gfc_namespace*) [clone .part.0]
(resolve.cc:18137)
==2680311==    by 0x7D0250: resolve_all_program_units (parse.cc:6973)
==2680311==    by 0x7D0250: gfc_parse_file() (parse.cc:7229)
==2680311==    by 0x82924F: gfc_be_parse_file() (f95-lang.cc:239)
==2680311==    by 0xDA8B2D: compile_file() (toplev.cc:446)
==2680311==    by 0x71D233: do_compile (toplev.cc:2150)
==2680311==    by 0x71D233: toplev::main(int, char**) (toplev.cc:2306)
==2680311==    by 0x71E9FA: main (main.cc:39)
==2680311==  Address 0x5527292 is in a rw- anonymous segment
Similarly with different optimization levels:
+FAIL: gfortran.dg/finalize_46.f90   -O0  (test for excess errors)
+FAIL: gfortran.dg/finalize_46.f90   -O1  (test for excess errors)
+FAIL: gfortran.dg/finalize_46.f90   -O2  (test for excess errors)
+FAIL: gfortran.dg/finalize_46.f90   -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions  (test for excess errors)
+FAIL: gfortran.dg/finalize_46.f90   -O3 -g  (test for excess errors)
+FAIL: gfortran.dg/finalize_46.f90   -Os  (test for excess errors)

Another one is on finalize_38a.f90:
/home/jakub/src/gcc/obj88/gcc/testsuite/gfortran6/../../gfortran
-B/home/jakub/src/gcc/obj88/gcc/testsuite/gfortran6/../../
-B/home/jakub/src/gcc/obj88/x86_64-pc
-linux-gnu/./libgfortran/
/home/jakub/src/gcc/gcc/testsuite/gfortran.dg/finalize_38a.f90
-fdiagnostics-plain-output -fdiagnostics-plain-output -O0 -std=f2008
-B/home/jakub/src/gcc/ob
j88/x86_64-pc-linux-gnu/./libgfortran/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libgfortran/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libgfortran/.libs -L
/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libatomic/.libs
-B/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libquadmath/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./
libquadmath/.libs
-L/home/jakub/src/gcc/obj88/x86_64-pc-linux-gnu/./libquadmath/.libs -lm -o
./finalize_38a.exe
/home/jakub/src/gcc/gcc/testsuite/gfortran.dg/finalize_38a.f90:76:96: Warning:
The structure constructor at (1) has been finalized. This feature was removed
by f08/0011. Use -std=f20
18 or -std=gnu to eliminate the finalization.
/home/jakub/src/gcc/gcc/testsuite/gfortran.dg/finalize_38a.f90:151:73: Warning:
The structure constructor at (1) has been finalized. This feature was removed
by f08/0011. Use -std=f2
018 or -std=gnu to eliminate the finalization.
/home/jakub/src/gcc/gcc/testsuite/gfortran.dg/finalize_38a.f90:156:61: Warning:
The structure constructor at (1) has been finalized. This feature was removed
by f08/0011. Use -std=f2
018 or -std=gnu to eliminate the finalization.
==2678885== Use of uninitialised value of size 8
==2678885==    at 0x8BF9C6: gfc_get_array_descriptor_base(int, int, bool)
(trans-types.cc:1877)
==2678885==    by 0x8C086F: gfc_get_array_type_bounds(tree_node*, int, int,
tree_node**, tree_node**, int, gfc_array_kind, bool) (trans-types.cc:1959)
==2678885==    by 0x85E9AB: gfc_conv_scalar_to_descriptor(gfc_se*, tree_node*,
symbol_attribute) (trans-expr.cc:111)
==2678885==    by 0x82E685: gfc_finalize_tree_expr(gfc_se*, gfc_symbol*,
symbol_attribute, int) (trans.cc:1683)
==2678885==    by 0x86AF5E: gfc_conv_expr(gfc_se*, gfc_expr*)
(trans-expr.cc:9775)
==2678885==    by 0x8776C5: gfc_trans_assignment_1(gfc_expr*, gfc_expr*, bool,
bool, bool, bool) (trans-expr.cc:12205)
==2678885==    by 0x82C167: trans_code(gfc_code*, tree_node*) (trans.cc:2363)
==2678885==    by 0x85C1A9: gfc_generate_function_code(gfc_namespace*)
(trans-decl.cc:7875)
==2678885==    by 0x7D0566: translate_all_program_units (parse.cc:7038)
==2678885==    by 0x7D0566: gfc_parse_file() (parse.cc:7344)
==2678885==    by 0x82924F: gfc_be_parse_file() (f95-lang.cc:239)
==2678885==    by 0xDA8B2D: compile_file() (toplev.cc:446)
==2678885==    by 0x71D233: do_compile (toplev.cc:2150)
==2678885==    by 0x71D233: toplev::main(int, char**) (toplev.cc:2306)
==2678885== 
==2678885== Conditional jump or move depends on uninitialised value(s)
==2678885==    at 0x8C0C7F: gfc_get_array_type_bounds(tree_node*, int, int,
tree_node**, tree_node**, int, gfc_array_kind, bool) (trans-types.cc:2064)
==2678885==    by 0x85E9AB: gfc_conv_scalar_to_descriptor(gfc_se*, tree_node*,
symbol_attribute) (trans-expr.cc:111)
==2678885==    by 0x82E685: gfc_finalize_tree_expr(gfc_se*, gfc_symbol*,
symbol_attribute, int) (trans.cc:1683)
==2678885==    by 0x86AF5E: gfc_conv_expr(gfc_se*, gfc_expr*)
(trans-expr.cc:9775)
==2678885==    by 0x8776C5: gfc_trans_assignment_1(gfc_expr*, gfc_expr*, bool,
bool, bool, bool) (trans-expr.cc:12205)
==2678885==    by 0x82C167: trans_code(gfc_code*, tree_node*) (trans.cc:2363)
==2678885==    by 0x85C1A9: gfc_generate_function_code(gfc_namespace*)
(trans-decl.cc:7875)
==2678885==    by 0x7D0566: translate_all_program_units (parse.cc:7038)
==2678885==    by 0x7D0566: gfc_parse_file() (parse.cc:7344)
==2678885==    by 0x82924F: gfc_be_parse_file() (f95-lang.cc:239)
==2678885==    by 0xDA8B2D: compile_file() (toplev.cc:446)
==2678885==    by 0x71D233: do_compile (toplev.cc:2150)
==2678885==    by 0x71D233: toplev::main(int, char**) (toplev.cc:2306)
==2678885==    by 0x71E9FA: main (main.cc:39)
+FAIL: gfortran.dg/finalize_38a.f90   -O0  (test for excess errors)
+FAIL: gfortran.dg/finalize_38a.f90   -O1  (test for excess errors)
+FAIL: gfortran.dg/finalize_38a.f90   -O2  (test for excess errors)
+FAIL: gfortran.dg/finalize_38a.f90   -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions  (test for excess errors)
+FAIL: gfortran.dg/finalize_38a.f90   -O3 -g  (test for excess errors)
+FAIL: gfortran.dg/finalize_38a.f90   -Os  (test for excess errors)

Reply via email to