コード例 #1
0
ファイル: gcj_interface.c プロジェクト: MatzeB/bytecode2firm
void gcji_create_array_type(void)
{
	ident *id = new_id_from_str("array");
	type_jarray = new_type_class(id);
	assert(type_java_lang_object != NULL);
	add_class_supertype(type_jarray, type_java_lang_object);
	add_compound_member(type_jarray, superobject_ident, type_java_lang_object);
	ident *length_id = new_id_from_str("length");
	gcj_array_length = add_compound_member(type_jarray, length_id, type_int);

	default_layout_compound_type(type_jarray);
	array_header_size      = get_type_size(type_jarray);
	array_header_end_align = get_type_alignment(type_int);
}
コード例 #2
0
ファイル: globalmap.c プロジェクト: TehMillhouse/libfirm
int main(void)
{
	ir_init();

	ir_type   *type   = new_type_primitive(get_modeIs());
	ident     *id1    = new_id_from_str("foo");
	ir_type   *glob   = get_glob_type();
	ir_entity *x      = new_global_entity(glob, id1, type, ir_visibility_external, IR_LINKAGE_DEFAULT);
	assert(get_entity_owner(x) == glob);

	ident     *id2    = new_id_from_str("bar");
	ir_type   *cls    = new_type_class(id2);
	set_entity_owner(x, cls);
	assert(get_entity_owner(x) == cls);

	ir_entity *gx = ir_get_global(id1);
	assert (NULL == gx);

	set_entity_owner(x, glob);
	assert(get_entity_owner(x) == glob);

	return 0;
}