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)