int has_non_primitive_fields = 0;
maybe_generate_clinit (){  tree mdecl, c;  int has_non_primitive_fields = 0;  if (!ctxp->static_initialized || java_error_count)    return;  mdecl = create_artificial_method (TREE_TYPE (ctxp->current_parsed_class),				    ACC_STATIC, void_type_node,				    clinit_identifier_node, end_params_node);  start_artificial_method_body (mdecl);  /* Keep initialization in order to enforce 8.5 */  ctxp->static_initialized = nreverse (ctxp->static_initialized);  /* We process the list of assignment we produced as the result of     the declaration of initialized static field and add them as     statement to the <clinit> method. */  for (c = ctxp->static_initialized; c; c = TREE_CHAIN (c))    {      /* We build the assignment expression that will initialize the	 field to its value. There are strict rules on static	 initializers (8.5). FIXME */      java_method_add_stmt (mdecl, 			    build_debugable_stmt (EXPR_WFL_LINECOL (c), c));    }  end_artificial_method_body (mdecl);  ctxp->static_initialized = NULL_TREE;}