Paul, I'm stumped. Something is broken on i386-*-freebsd. :-(
Running /mnt/kargl/gcc/gcc/testsuite/gfortran.dg/dg.exp ... FAIL: gfortran.dg/submodule_10.f08 -O (internal compiler error) FAIL: gfortran.dg/submodule_10.f08 -O (test for excess errors) FAIL: gfortran.dg/submodule_11.f08 -O0 (internal compiler error) FAIL: gfortran.dg/submodule_11.f08 -O0 (test for excess errors) FAIL: gfortran.dg/submodule_11.f08 -O1 (internal compiler error) FAIL: gfortran.dg/submodule_11.f08 -O1 (test for excess errors) FAIL: gfortran.dg/submodule_11.f08 -O2 (internal compiler error) FAIL: gfortran.dg/submodule_11.f08 -O2 (test for excess errors) FAIL: gfortran.dg/submodule_11.f08 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (internal compiler error) FAIL: gfortran.dg/submodule_11.f08 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/submodule_11.f08 -O3 -g (internal compiler error) FAIL: gfortran.dg/submodule_11.f08 -O3 -g (test for excess errors) FAIL: gfortran.dg/submodule_11.f08 -Os (internal compiler error) FAIL: gfortran.dg/submodule_11.f08 -Os (test for excess errors) FAIL: gfortran.dg/submodule_13.f08 -O (internal compiler error) FAIL: gfortran.dg/submodule_13.f08 -O (test for errors, line 29) FAIL: gfortran.dg/submodule_13.f08 -O (test for excess errors) Using valgrind on 'f951 submodule_10.f08' yields laptop-kargl:kargl[324] valgrind ~/work/libexec/gcc/i386-unknown-freebsd11.0/6.0.0/f951 submodule_10.f08 ==74201== Memcheck, a memory error detector ==74201== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==74201== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==74201== Command: /home/kargl/work/libexec/gcc/i386-unknown-freebsd11.0/6.0.0/f951 submodule_10.f08 ==74201== ==74201== Use of uninitialised value of size 4 ==74201== at 0x81DC20C: gfc_match_formal_arglist(gfc_symbol*, int, int) (decl.c:4829) ==74201== by 0x81DE6F7: gfc_match_subroutine() (decl.c:6016) ==74201== by 0x8248FC0: decode_statement() (parse.c:378) ==74201== by 0x8247844: next_free (parse.c:1076) ==74201== by 0x8247844: next_statement() (parse.c:1310) ==74201== by 0x8258ACC: parse_contained(int) (parse.c:5038) ==74201== by 0x824870F: parse_module() (parse.c:5431) ==74201== by 0x82467D4: gfc_parse_file() (parse.c:5729) ==74201== by 0x82972E7: gfc_be_parse_file() (f95-lang.c:201) ==74201== by 0x87E4787: compile_file() (toplev.c:464) ==74201== by 0x87E43E4: do_compile (toplev.c:1951) ==74201== by 0x87E43E4: toplev::main(int, char**) (toplev.c:2058) ==74201== by 0x8FCC00D: main (main.c:39) ==74201== ==74201== Invalid read of size 1 ==74201== at 0x81DC20C: gfc_match_formal_arglist(gfc_symbol*, int, int) (decl.==74201== at 0x81DC20C: gfc_match_formal_arglist(gfc_symbol*, int, int) (decl.c:4829) ==74201== by 0x81DE6F7: gfc_match_subroutine() (decl.c:6016) ==74201== by 0x8248FC0: decode_statement() (parse.c:378) ==74201== by 0x8247844: next_free (parse.c:1076) ==74201== by 0x8247844: next_statement() (parse.c:1310) ==74201== by 0x8258ACC: parse_contained(int) (parse.c:5038) ==74201== by 0x824870F: parse_module() (parse.c:5431) ==74201== by 0x82467D4: gfc_parse_file() (parse.c:5729) ==74201== by 0x82972E7: gfc_be_parse_file() (f95-lang.c:201) ==74201== by 0x87E4787: compile_file() (toplev.c:464) ==74201== by 0x87E43E4: do_compile (toplev.c:1951) ==74201== by 0x87E43E4: toplev::main(int, char**) (toplev.c:2058) ==74201== by 0x8FCC00D: main (main.c:39) ==74201== Address 0x8094 is not stack'd, malloc'd or (recently) free'd ==74201== I suspect that we have a sym=NULL dereferenc someplace. -- steve On Mon, Nov 30, 2015 at 02:35:35PM +0100, Paul Richard Thomas wrote: > Committed as revision 231072. > > Thanks for the review > > Paul > > On 28 November 2015 at 17:19, Steve Kargl > <s...@troutmask.apl.washington.edu> wrote: > > On Sat, Nov 28, 2015 at 11:35:54AM +0100, Paul Richard Thomas wrote: > >> + > >> + /* Abreviated module procedure declaration is not meant to have any > > > > s/Abreviated/Abbreviated > > > >> + formal arguments! */ > >> + if (!sym->abr_modproc_decl && formal && !head) > >> + arg_count_mismatch = true; > >> + > > > > OK to commit. > > > > -- > > Steve > > > > -- > Outside of a dog, a book is a man's best friend. Inside of a dog it's > too dark to read. > > Groucho Marx -- Steve