ir_print_visitor: Print out constant structure values.
In the form (constant type ((field1 value) (field2 value) ...))
This commit is contained in:
@@ -318,6 +318,15 @@ void ir_print_visitor::visit(ir_constant *ir)
|
|||||||
if (ir->type->is_array()) {
|
if (ir->type->is_array()) {
|
||||||
for (unsigned i = 0; i < ir->type->length; i++)
|
for (unsigned i = 0; i < ir->type->length; i++)
|
||||||
ir->get_array_element(i)->accept(this);
|
ir->get_array_element(i)->accept(this);
|
||||||
|
} else if (ir->type->is_record()) {
|
||||||
|
ir_constant *value = (ir_constant *) ir->components.get_head();
|
||||||
|
for (unsigned i = 0; i < ir->type->length; i++) {
|
||||||
|
printf("(%s ", ir->type->fields.structure->name);
|
||||||
|
value->accept(this);
|
||||||
|
printf(")");
|
||||||
|
|
||||||
|
value = (ir_constant *) value->next;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for (unsigned i = 0; i < ir->type->components(); i++) {
|
for (unsigned i = 0; i < ir->type->components(); i++) {
|
||||||
if (i != 0)
|
if (i != 0)
|
||||||
|
Reference in New Issue
Block a user