From 4fdf9c1ec0cc0be111e5d22d4da1cfa36a384c42 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Tue, 28 May 2013 17:18:14 +0200 Subject: [PATCH] [multiple changes] 2013-05-28 Dominique d'Humieres PR fortran/57435 * module.c (check_for_ambiguous): Avoid null pointer deref. 2013-05-28 Tobias Burnus PR fortran/57435 From-SVN: r199382 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/module.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/use_29.f90 | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/use_29.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4ebdf3c2aa5..a8116b03c2b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-05-28 Dominique d'Humieres + + PR fortran/57435 + * module.c (check_for_ambiguous): Avoid null pointer deref. + 2013-05-28 Janus Weil Tobias Burnus diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index e6a4cd7046a..bc31671cc0c 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -4532,7 +4532,7 @@ check_for_ambiguous (gfc_symbol *st_sym, pointer_info *info) module_locus locus; symbol_attribute attr; - if (st_sym->name == gfc_current_ns->proc_name->name) + if (gfc_current_ns->proc_name && st_sym->name == gfc_current_ns->proc_name->name) { gfc_error ("'%s' of module '%s', imported at %C, is also the name of the " "current program unit", st_sym->name, module_name); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index be8eb9ea473..d89b5be50be 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-05-28 Tobias Burnus + + PR fortran/57435 + * testsuite/gfortran.dg/use_29.f90: New. + 2013-05-28 Eric Botcazou * gnat.dg/fp_exception.adb: New test. diff --git a/gcc/testsuite/gfortran.dg/use_29.f90 b/gcc/testsuite/gfortran.dg/use_29.f90 new file mode 100644 index 00000000000..89dfe509314 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/use_29.f90 @@ -0,0 +1,15 @@ +! { dg-do compile } +! +! PR fortran/57435 +! +! Contributed by Lorenz Hüdepohl +! +module precision +end module precision + contains + use precision ! { dg-error "Unexpected USE statement in CONTAINS section" } +module stressten_rt ! { dg-error "Unexpected MODULE statement in CONTAINS section" } + use precision ! { dg-error "Unexpected USE statement in CONTAINS section" } + implicit none ! { dg-error "Unexpected IMPLICIT NONE statement in CONTAINS section" } + +! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 } -- 2.30.2