--- rtscall.c.orig Tue Nov 19 12:24:45 2002 +++ rtscall.c Wed Nov 20 23:01:09 2002 @@ -1717,7 +1715,13 @@ if (!errstr) switch (rts_id) { case p_CARD: - if (TREE_CODE (val) != CONSTRUCTOR && TREE_CODE (TREE_TYPE (type)) == VOID_TYPE) + if (TREE_CODE (val) == CONSTRUCTOR) + { + val = construct_set (val, NULL_TREE, 1); + if (val == error_mark_node) + return error_mark_node; + } + if (TREE_CODE (TREE_TYPE (TREE_TYPE (val))) == VOID_TYPE) retval = integer_zero_node; else retval = rts_call (set_card, integer_type_node, ptype_set (1, NULL_TREE), actual_set_parameters (val));