On Tue, May 05, 2026 at 05:48:15PM -0400, Patrick Palka wrote:
> +struct consteval_only_p_walker
> +{
> + /* The stack of class types we're recursively inside. */
> + auto_vec<tree> class_stack;
Why is this auto_vec<tree> rather than just int?
I mean, it is used as:
> + class_stack.safe_push (t);
and
> + && (class_stack.length () == 1 || !optimistic_p))
and
> + class_stack.pop ();
and nowhere else. So, if it is int and the first one does
++class_stack_cnt;
the second
&& (class_stack_cnt == 1 || !optimistic_p)
and the last one
--class_stack_cnt;
I think it should behave identically except for (tiny bit)
smaller compile time memory + compile time due to no need to allocate/free
it.
Jakub