2007-07-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Jul 2007 21:17:20 +0000 (21:17 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Jul 2007 21:17:20 +0000 (21:17 +0000)
PR fortran/31609
* resolve.c (generic_sym): Check for a same symbol and if so, return to
avoid infinite recursion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127026 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/resolve.c

index 6f03717..9a345b3 100644 (file)
@@ -1,3 +1,9 @@
+2007-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/31609
+       * resolve.c (generic_sym): Check for a same symbol and if so, return to
+       avoid infinite recursion.
+
 2007-07-28  Daniel Franke  <franke.daniel@gmail.com>
 
        PR fortran/31818
index a7edd16..8898009 100644 (file)
@@ -789,8 +789,16 @@ generic_sym (gfc_symbol *sym)
     return 0;
 
   gfc_find_symbol (sym->name, sym->ns->parent, 1, &s);
+  
+  if (s != NULL)
+    {
+      if (s == sym)
+       return 0;
+      else
+       return generic_sym (s);
+    }
 
-  return (s == NULL) ? 0 : generic_sym (s);
+  return 0;
 }