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

Reply via email to