summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/fe/idl.yy
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/fe/idl.yy')
-rw-r--r--TAO/TAO_IDL/fe/idl.yy12
1 files changed, 8 insertions, 4 deletions
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index e9bc2128318..94bddc33d33 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -1678,20 +1678,24 @@ case_branch :
AST_UnionBranch *b = NULL;
AST_Field *f = $3;
- ACE_UNUSED_ARG (l);
- ACE_UNUSED_ARG (d);
-
idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemCompleted);
/*
* Create several nodes representing branches of a union.
* Add them to the enclosing scope (the union scope)
*/
if (s != NULL && $1 != NULL && $3 != NULL) {
- b = idl_global->gen()->create_union_branch($1,
+ l = new UTL_LabellistActiveIterator($1);
+ for (;!(l->is_done()); l->next()) {
+ d = l->item();
+ if (d == NULL)
+ continue;
+ b = idl_global->gen()->create_union_branch(d,
f->field_type(),
f->name(),
f->pragmas());
(void) s->fe_add_union_branch(b);
+ }
+ delete l;
}
}
| error