[multiple changes]
authorTobias Burnus <burnus@gcc.gnu.org>
Tue, 28 May 2013 15:18:14 +0000 (17:18 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Tue, 28 May 2013 15:18:14 +0000 (17:18 +0200)
2013-05-28  Dominique d'Humieres  <dominiq@lps.ens.fr>

        PR fortran/57435
        * module.c (check_for_ambiguous): Avoid null pointer deref.

2013-05-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57435

From-SVN: r199382

gcc/fortran/ChangeLog
gcc/fortran/module.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/use_29.f90 [new file with mode: 0644]

index 4ebdf3c..a8116b0 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
+
+       PR fortran/57435
+       * module.c (check_for_ambiguous): Avoid null pointer deref.
+
 2013-05-28  Janus Weil  <janus@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>
 
index e6a4cd7..bc31671 100644 (file)
@@ -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);
index be8eb9e..d89b5be 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/57435
+       * testsuite/gfortran.dg/use_29.f90: New.
+
 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
 
        * 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 (file)
index 0000000..89dfe50
--- /dev/null
@@ -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 }