ir_node *new_rd_SymConst_addr_ent(dbg_info *db, ir_graph *irg, entity *symbol, ir_type *tp)
{
- symconst_symbol sym = {(ir_type *)symbol};
+ symconst_symbol sym;
+ sym.entity_p = symbol;
return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), sym, symconst_addr_ent, tp);
} /* new_rd_SymConst_addr_ent */
+ir_node *new_rd_SymConst_ofs_ent(dbg_info *db, ir_graph *irg, entity *symbol, ir_type *tp)
+{
+ symconst_symbol sym;
+ sym.entity_p = symbol;
+ return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), sym, symconst_ofs_ent, tp);
+} /* new_rd_SymConst_ofs_ent */
+
ir_node *new_rd_SymConst_addr_name(dbg_info *db, ir_graph *irg, ident *symbol, ir_type *tp) {
- symconst_symbol sym = {(ir_type *)symbol};
+ symconst_symbol sym;
+ sym.ident_p = symbol;
return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), sym, symconst_addr_name, tp);
} /* new_rd_SymConst_addr_name */
ir_node *new_rd_SymConst_type_tag(dbg_info *db, ir_graph *irg, ir_type *symbol, ir_type *tp) {
- symconst_symbol sym = {symbol};
+ symconst_symbol sym;
+ sym.type_p = symbol;
return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), sym, symconst_type_tag, tp);
} /* new_rd_SymConst_type_tag */
ir_node *new_rd_SymConst_size(dbg_info *db, ir_graph *irg, ir_type *symbol, ir_type *tp) {
- symconst_symbol sym = {symbol};
+ symconst_symbol sym;
+ sym.type_p = symbol;
return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), sym, symconst_type_size, tp);
} /* new_rd_SymConst_size */
ir_node *new_rd_SymConst_align(dbg_info *db, ir_graph *irg, ir_type *symbol, ir_type *tp) {
- symconst_symbol sym = {symbol};
+ symconst_symbol sym;
+ sym.type_p = symbol;
return new_rd_SymConst_type(db, irg, get_irg_start_block(irg), sym, symconst_type_align, tp);
} /* new_rd_SymConst_align */
* Adds the SymConst to the start block of irg. */
ir_node *new_rd_SymConst_addr_ent (dbg_info *db, ir_graph *irg, entity *symbol, ir_type *tp);
+/** Constructor for a SymConst ofs_ent node.
+ *
+ * Same as new_rd_SymConst_type, except that the constructor is tailored for
+ * symconst_ofs_ent.
+ * Adds the SymConst to the start block of irg. */
+ir_node *new_rd_SymConst_ofs_ent (dbg_info *db, ir_graph *irg, entity *symbol, ir_type *tp);
+
/** Constructor for a SymConst addr_name node.
*
* Same as new_rd_SymConst_type, except that the constructor is tailored for
fprintf(F, " entity: ");
dump_entity_to_file(F, get_SymConst_entity(n), dump_verbosity_onlynames);
break;
+ case symconst_ofs_ent:
+ fprintf(F, " kind: offset\n");
+ fprintf(F, " entity: ");
+ dump_entity_to_file(F, get_SymConst_entity(n), dump_verbosity_onlynames);
+ break;
case symconst_type_tag:
fprintf(F, " kind: type_tag\n");
fprintf(F, " type: ");
fprintf(F, (cc & cc_last_on_top) ? "last param on top, " : "first param on top, ");
fprintf(F, (cc & cc_callee_clear_stk) ? "callee clear stack" : "caller clear stack");
}
+ fprintf(F, "\n%s vtable number: %u", prefix, get_entity_vtable_number(ent));
}
fprintf(F, "\n");