re PR fortran/50405 (allocation LOOP or SIGSEGV)
authorBud Davis <jmdavis@link.com>
Mon, 27 May 2013 14:16:36 +0000 (14:16 +0000)
committerTobias Burnus <burnus@gcc.gnu.org>
Mon, 27 May 2013 14:16:36 +0000 (16:16 +0200)
2013-05-27  Bud Davis  <jmdavis@link.com>

        PR fortran/50405
        * resolve.c (resolve_formal_arglist): Detect error when an
        * argument
        has the same name as the function.

2013-05-27  Bud Davis  <jmdavis@link.com>

        PR fortran/50405
        * gfortran.dg/stfunc_8.f90: New.

From-SVN: r199358

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

index 4d5088eb7c146b566e0c06b17ac1094119e1c108..e13a46b5f5dac0586ff678abcff5dfe127d4c516 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-27  Bud Davis  <jmdavis@link.com>
+
+       PR fortran/50405
+       * resolve.c (resolve_formal_arglist): Detect error when an argument
+       has the same name as the function.
+
 2013-05-27  Tobias Burnus  <burnus@net-b.de>
 
        * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
index a63ee938544e90d672bedbe1b255c1c1c3132d50..78a1038009b5157863c742e55d14f55f05653932 100644 (file)
@@ -306,6 +306,14 @@ resolve_formal_arglist (gfc_symbol *proc)
               && !resolve_procedure_interface (sym))
        return;
 
+      if (strcmp (proc->name, sym->name) == 0)
+        {
+          gfc_error ("Self-referential argument "
+                     "'%s' at %L is not allowed", sym->name,
+                     &proc->declared_at);
+          return;
+        }
+
       if (sym->attr.if_source != IFSRC_UNKNOWN)
        resolve_formal_arglist (sym);
 
index 40c213fc2515b7d39d5be4ad4dd56bfd45339132..95330b7af9d7c6e764fbca99138d91a864272f27 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-27  Bud Davis  <jmdavis@link.com>
+
+       PR fortran/50405
+       * gfortran.dg/stfunc_8.f90: New.
+
 2013-05-27  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/57343
diff --git a/gcc/testsuite/gfortran.dg/stfunc_8.f90 b/gcc/testsuite/gfortran.dg/stfunc_8.f90
new file mode 100644 (file)
index 0000000..f13caca
--- /dev/null
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! { dg-options "" }
+!
+! PR fortran/50405
+!
+! Submitted by zeccav@gmail.com
+!
+       f(f) = 0 ! { dg-error "Self-referential argument" }
+       end