Commit ddcd8199 by Per Bothner

expr.c (pop_type_0): New function.

�
	* expr.c (pop_type_0):  New function.
	(pop_type):  Use pop_type_0.
	* java-tree.h (pop_type_0):  New declaration.
	* verify.c (verify_jvm_instructions):  Check return instructions.

From-SVN: r26217
parent b399dcd2
...@@ -273,8 +273,12 @@ push_value (value) ...@@ -273,8 +273,12 @@ push_value (value)
} }
} }
/* Pop a type from the type stack.
TYPE is the expected type. Return the actual type, which must be
convertible to TYPE, otherwise NULL_TREE is returned. */
tree tree
pop_type (type) pop_type_0 (type)
tree type; tree type;
{ {
int n_words; int n_words;
...@@ -310,8 +314,22 @@ pop_type (type) ...@@ -310,8 +314,22 @@ pop_type (type)
&& t == object_ptr_type_node) && t == object_ptr_type_node)
return t; return t;
} }
return NULL_TREE;
}
/* Pop a type from the type stack.
TYPE is the expected type. Return the actual type, which must be
convertible to TYPE, otherwise call error. */
tree
pop_type (type)
tree type;
{
tree t = pop_type_0 (type);
if (t != NULL_TREE)
return t;
error ("unexpected type on stack"); error ("unexpected type on stack");
return t; return type;
} }
/* Return 1f if SOURCE_TYPE can be safely widened to TARGET_TYPE. /* Return 1f if SOURCE_TYPE can be safely widened to TARGET_TYPE.
......
...@@ -518,6 +518,7 @@ extern tree build_java_array_type PROTO ((tree, HOST_WIDE_INT)); ...@@ -518,6 +518,7 @@ extern tree build_java_array_type PROTO ((tree, HOST_WIDE_INT));
extern int is_compiled_class PROTO ((tree)); extern int is_compiled_class PROTO ((tree));
extern tree mangled_classname PROTO ((const char*, tree)); extern tree mangled_classname PROTO ((const char*, tree));
extern tree lookup_label PROTO ((int)); extern tree lookup_label PROTO ((int));
extern tree pop_type_0 PROTO ((tree));
extern tree pop_type PROTO ((tree)); extern tree pop_type PROTO ((tree));
extern void pop_argument_types PROTO ((tree)); extern void pop_argument_types PROTO ((tree));
extern tree decode_newarray_type PROTO ((int)); extern tree decode_newarray_type PROTO ((int));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment