{
/* We don't know how many args we have yet, just use the
unconverted (and still packed) ones for now. */
+ ggc_free (new_inner_args);
new_inner_args = orig_inner_args;
arg_idx = nargs;
break;
= make_pack_expansion (conv, complain);
/* We don't know how many args we have yet, just
- use the unconverted ones for now. */
+ use the unconverted (but unpacked) ones for now. */
+ ggc_free (new_inner_args);
new_inner_args = inner_args;
arg_idx = nargs;
break;
SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT (new_inner_args,
TREE_VEC_LENGTH (new_inner_args));
+ /* If we expanded packs in inner_args and aren't returning it now, the
+ expanded vec is garbage. */
+ if (inner_args != new_inner_args
+ && inner_args != orig_inner_args)
+ ggc_free (inner_args);
+
return return_full_args ? new_args : new_inner_args;
}