jcf->read_ptr = NULL;
jcf->read_end = NULL;
jcf->read_state = stream;
+ jcf->filename = filename;
jcf->filbuf = jcf_filbuf_from_stdio;
}
else
/* Check that all the cross-references in the constant pool are
valid. Returns 0 on success.
- Otherwise, returns the index of the (first) invalid entry. */
+ Otherwise, returns the index of the (first) invalid entry.
+ Only checks internal consistency, but does not check that
+ any classes, fields, or methods are valid.*/
int
DEFUN(verify_constant_pool, (jcf),
if (TREE_CODE_CLASS (TREE_CODE (node)) == 'd'
&& DECL_NAME (node) != NULL_TREE)
{
- /* We want to print the type the DECL belongs to. We don't do
- that when we handle constructors. */
- if (TREE_CODE (node) == FUNCTION_DECL
- && ! DECL_CONSTRUCTOR_P (node)
- && ! DECL_ARTIFICIAL (node) && DECL_CONTEXT (node))
+ if (TREE_CODE (node) == FUNCTION_DECL)
{
- put_decl_node (TYPE_NAME (DECL_CONTEXT (node)));
- put_decl_string (".", 1);
- }
- if (! DECL_CONSTRUCTOR_P (node))
- put_decl_node (DECL_NAME (node));
- if (TREE_CODE (node) == FUNCTION_DECL && TREE_TYPE (node) != NULL_TREE)
- {
- int i = 0;
- tree args = TYPE_ARG_TYPES (TREE_TYPE (node));
- if (TREE_CODE (TREE_TYPE (node)) == METHOD_TYPE)
- args = TREE_CHAIN (args);
- put_decl_string ("(", 1);
- for ( ; args != end_params_node; args = TREE_CHAIN (args), i++)
+ /* We want to print the type the DECL belongs to. We don't do
+ that when we handle constructors. */
+ if (! DECL_CONSTRUCTOR_P (node)
+ && ! DECL_ARTIFICIAL (node) && DECL_CONTEXT (node))
{
- if (i > 0)
- put_decl_string (",", 1);
- put_decl_node (TREE_VALUE (args));
+ put_decl_node (TYPE_NAME (DECL_CONTEXT (node)));
+ put_decl_string (".", 1);
+ }
+ if (! DECL_CONSTRUCTOR_P (node))
+ put_decl_node (DECL_NAME (node));
+ if (TREE_TYPE (node) != NULL_TREE)
+ {
+ int i = 0;
+ tree args = TYPE_ARG_TYPES (TREE_TYPE (node));
+ if (TREE_CODE (TREE_TYPE (node)) == METHOD_TYPE)
+ args = TREE_CHAIN (args);
+ put_decl_string ("(", 1);
+ for ( ; args != end_params_node; args = TREE_CHAIN (args), i++)
+ {
+ if (i > 0)
+ put_decl_string (",", 1);
+ put_decl_node (TREE_VALUE (args));
+ }
+ put_decl_string (")", 1);
}
- put_decl_string (")", 1);
}
+ else
+ put_decl_node (DECL_NAME (node));
}
else if (TREE_CODE_CLASS (TREE_CODE (node)) == 't'
&& TYPE_NAME (node) != NULL_TREE)
else
{
const char *name = lang_printable_name (current_function_decl, 2);
- fprintf (stderr, "In method `%s':\n", name);
+ fprintf (stderr, "In %s `%s':\n",
+ (DECL_CONSTRUCTOR_P (current_function_decl) ? "constructor"
+ : "method"),
+ name);
}
last_error_function = current_function_decl;