------- Comment #8 from bdavis at gcc dot gnu dot org  2007-02-25 04:42 -------
the below patch looks like it fixes the problem.  any chance this could be
tryed on the reported problem ?

--bud


Index: gcc/gcc/fortran/module.c
===================================================================
--- gcc/gcc/fortran/module.c    (revision 122310)
+++ gcc/gcc/fortran/module.c    (working copy)
@@ -3598,6 +3598,7 @@
 write_common (gfc_symtree *st)
 {
   gfc_common_head *p;
+  pointer_info *pinfo;
   const char * name;
   int flags;

@@ -3607,6 +3608,14 @@
   write_common (st->left);
   write_common (st->right);

+  /* only need to write a given symtree entry once for 
+     common blocks */ 
+  p = st->n.common; 
+  pinfo = find_pointer(p);
+
+  if (pinfo != NULL && pinfo->u.wsym.state != UNREFERENCED)
+    return;
+
   mio_lparen ();

   /* Write the unmangled name.  */
@@ -3614,7 +3623,6 @@

   mio_pool_string (&name);

-  p = st->n.common;
   mio_symbol_ref (&p->head);
   flags = p->saved ? 1 : 0;
   if (p->threadprivate) flags |= 2;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30285

Reply via email to