tree method, method_type, self_type, method_signature, arg_list;
tree method, method_type ATTRIBUTE_UNUSED, self_type, method_signature ATTRIBUTE_UNUSED, arg_list ATTRIBUTE_UNUSED;
build_known_method_ref (method, method_type, self_type, method_signature, arg_list)     tree method, method_type, self_type, method_signature, arg_list;{  tree func;  if (is_compiled_class (self_type))    {      make_decl_rtl (method, NULL, 1);      func = build1 (ADDR_EXPR, method_ptr_type_node, method);    }  else    {      /* We don't know whether the method has been (statically) compiled.	 Compile this code to get a reference to the method's code:	 	 SELF_TYPE->methods[METHOD_INDEX].ncode	 	 This is guaranteed to work (assuming SELF_TYPE has	 been initialized), since if the method is not compiled yet,	 its ncode points to a trampoline that forces compilation. */            int method_index = 0;      tree meth;      tree ref = build_class_ref (self_type);      ref = build1 (INDIRECT_REF, class_type_node, ref);      if (ncode_ident == NULL_TREE)	ncode_ident = get_identifier ("ncode");      if (methods_ident == NULL_TREE)	methods_ident = get_identifier ("methods");      ref = build (COMPONENT_REF, method_ptr_type_node, ref,		   lookup_field (&class_type_node, methods_ident));      for (meth = TYPE_METHODS (CLASS_TO_HANDLE_TYPE (self_type));	   ; meth = TREE_CHAIN (meth))	{	  if (method == meth)	    break;	  if (meth == NULL_TREE)	    fatal ("method '%s' not found in class",		   IDENTIFIER_POINTER (DECL_NAME (method)));	  method_index++;	}      method_index *= int_size_in_bytes (method_type_node);      ref = fold (build (PLUS_EXPR, method_ptr_type_node,			 ref, build_int_2 (method_index, 0)));      ref = build1 (INDIRECT_REF, method_type_node, ref);      func = build (COMPONENT_REF, nativecode_ptr_type_node,		    ref,		    lookup_field (&method_type_node, ncode_ident));    }  return func;}