+typedef struct ir_initializer_base_t {
+ ir_initializer_kind_t kind;
+} ir_initializer_base_t;
+
+/**
+ * An compound initializer.
+ */
+typedef struct ir_initializer_compound_t {
+ ir_initializer_base_t base;
+ unsigned n_initializers;
+ ir_initializer_t *initializers[1];
+} ir_initializer_compound_t;
+
+/**
+ * An initializer containing an ir_node,
+ */
+typedef struct ir_initializer_const_t {
+ ir_initializer_base_t base;
+ ir_node *value;
+} ir_initializer_const_t ;
+
+/**
+ * An initializer containing a tarval.
+ */
+typedef struct ir_initializer_tarval_t {
+ ir_initializer_base_t base;
+ tarval *value;
+} ir_initializer_tarval_t ;
+
+union ir_initializer_t {
+ ir_initializer_kind_t kind;
+ ir_initializer_base_t base;
+ ir_initializer_compound_t compound;
+ ir_initializer_const_t consti;
+ ir_initializer_tarval_t tarval;
+};
+