--- p/statements.c.orig Wed Jun 23 01:31:50 2004 +++ p/statements.c Wed Jun 23 01:32:04 2004 @@ -1198,9 +1198,12 @@ } domain = TYPE_DOMAIN (TREE_TYPE (target)); if (co->range_checking) - build_predef_call (p_Set_RangeCheck, tree_cons (NULL_TREE, source, - tree_cons (NULL_TREE, convert (integer_type_node, TYPE_MIN_VALUE (domain)), - build_tree_list (NULL_TREE, convert (integer_type_node, TYPE_MAX_VALUE (domain)))))); + { + source = save_expr (source); + build_predef_call (p_Set_RangeCheck, tree_cons (NULL_TREE, source, + tree_cons (NULL_TREE, convert (integer_type_node, TYPE_MIN_VALUE (domain)), + build_tree_list (NULL_TREE, convert (integer_type_node, TYPE_MAX_VALUE (domain)))))); + } return build_predef_call (p_Set_Copy, tree_cons (NULL_TREE, target, build_tree_list (NULL_TREE, source))); }