&extents));
&extents, is_ugly_assumed));
ffestc_R547_item_object (ffelexToken name, ffesttDimList dims){  ffesymbol s;  ffebld array_size;  ffebld extents;  ffesymbolAttrs sa;  ffesymbolAttrs na;  ffestpDimtype nd;  ffebld e;  ffeinfoRank rank;  if (ffestc_parent_ok_ && (ffestc_local_.common.symbol == NULL))    ffestc_R547_item_cblock (NULL);	/* As if "COMMON [//] ...". */  ffestc_check_item_ ();  assert (name != NULL);  if (!ffestc_ok_)    return;  if (dims != NULL)    ffesta_set_outpooldisp (FFESTA_pooldispPRESERVE);  s = ffesymbol_declare_local (name, FALSE);  sa = ffesymbol_attrs (s);  /* First figure out what kind of object this is based solely on the current     object situation (dimension list). */  nd = ffestt_dimlist_type (dims);  switch (nd)    {    case FFESTP_dimtypeNONE:      na = FFESYMBOL_attrsCOMMON;      break;    case FFESTP_dimtypeKNOWN:      na = FFESYMBOL_attrsCOMMON | FFESYMBOL_attrsARRAY;      break;    default:      na = FFESYMBOL_attrsetNONE;      break;    }  /* Figure out what kind of object we've got based on previous declarations     of or references to the object. */  if (na == FFESYMBOL_attrsetNONE)    ;  else if (!ffesymbol_is_specable (s))    na = FFESYMBOL_attrsetNONE;	/* Can't dcl sym ref'd in sfuncdef. */  else if (sa & FFESYMBOL_attrsANY)    na = FFESYMBOL_attrsANY;  else if ((sa & (FFESYMBOL_attrsADJUSTS		  | FFESYMBOL_attrsARRAY		  | FFESYMBOL_attrsINIT		  | FFESYMBOL_attrsSFARG))	   && (na & FFESYMBOL_attrsARRAY))    na = FFESYMBOL_attrsetNONE;  else if (!(sa & ~(FFESYMBOL_attrsADJUSTS		    | FFESYMBOL_attrsARRAY		    | FFESYMBOL_attrsEQUIV		    | FFESYMBOL_attrsINIT		    | FFESYMBOL_attrsNAMELIST		    | FFESYMBOL_attrsSFARG		    | FFESYMBOL_attrsTYPE)))    na |= sa;  else    na = FFESYMBOL_attrsetNONE;  /* Now see what we've got for a new object: NONE means a new error cropped     up; ANY means an old error to be ignored; otherwise, everything's ok,     update the object (symbol) and continue on. */  if (na == FFESYMBOL_attrsetNONE)    ffesymbol_error (s, name);  else if (!(na & FFESYMBOL_attrsANY))    {      ffesymbol_set_attrs (s, na);      ffesymbol_set_state (s, FFESYMBOL_stateSEEN);      ffesymbol_set_common (s, ffestc_local_.common.symbol);#if FFEGLOBAL_ENABLED      if (ffesymbol_is_init (s))	ffeglobal_init_common (ffestc_local_.common.symbol, name);#endif      if (ffesymbol_is_save (ffestc_local_.common.symbol))	ffesymbol_update_save (s);      if (ffesymbol_equiv (s) != NULL)	{			/* Is this newly COMMONed symbol involved in				   an equivalence? */	  if (ffeequiv_common (ffesymbol_equiv (s)) == NULL)	    ffeequiv_set_common (ffesymbol_equiv (s),	/* Yes, tell equiv obj. */				 ffestc_local_.common.symbol);	  else	    {			/* Oops, just COMMONed a symbol to a				   different area (via equiv). */	      ffebad_start (FFEBAD_EQUIV_COMMON);	      ffebad_here (0, ffelex_token_where_line (name),			   ffelex_token_where_column (name));	      ffebad_string (ffesymbol_text (ffestc_local_.common.symbol));	      ffebad_string (ffesymbol_text (ffeequiv_common (ffesymbol_equiv (s))));	      ffebad_finish ();	    }#if FFEGLOBAL_ENABLED	  if (ffeequiv_is_init (ffesymbol_equiv (s)))	    ffeglobal_init_common (ffestc_local_.common.symbol, name);#endif	  if (ffesymbol_is_save (ffestc_local_.common.symbol))	    ffeequiv_update_save (ffesymbol_equiv (s));	}      if (dims != NULL)	{	  ffesymbol_set_dims (s, ffestt_dimlist_as_expr (dims, &rank,							 &array_size,							 &extents));	  ffesymbol_set_arraysize (s, array_size);	  ffesymbol_set_extents (s, extents);	  if (!(0 && ffe_is_90 ())	      && (ffebld_op (array_size) == FFEBLD_opCONTER)	      && (ffebld_constant_integerdefault (ffebld_conter (array_size))		  == 0))	    {	      ffebad_start (FFEBAD_ZERO_ARRAY);	      ffebad_here (0, ffelex_token_where_line (name),			   ffelex_token_where_column (name));	      ffebad_finish ();	    }	  ffesymbol_set_info (s,			      ffeinfo_new (ffesymbol_basictype (s),					   ffesymbol_kindtype (s),					   rank,					   ffesymbol_kind (s),					   ffesymbol_where (s),					   ffesymbol_size (s)));	}      ffesymbol_signal_unreported (s);    }  if (ffestc_parent_ok_)    {      e = ffebld_new_symter (s, FFEINTRIN_genNONE, FFEINTRIN_specNONE,			     FFEINTRIN_impNONE);      ffebld_set_info (e,		       ffeinfo_new (FFEINFO_basictypeNONE,				    FFEINFO_kindtypeNONE,				    0,				    FFEINFO_kindNONE,				    FFEINFO_whereNONE,				    FFETARGET_charactersizeNONE));      ffebld_append_item	(ffesymbol_ptr_to_listbottom (ffestc_local_.common.symbol), e);    }  ffestd_R547_item_object (name, dims);}