You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolve stack overflow in tree visitation when having a reduced stack size
To determine the correct specific visitation function for a syntax node,
we need to switch through a huge switch statement that covers all syntax
types. In debug builds, the cases of this switch statement do not share
stack space (rdar://55929175). Because of this, the switch statement
requires allocates about 15KB of stack space. In scenarios with reduced
stack size (in particular dispatch queues), this often results in a
stack overflow during syntax tree visitation.
To circumvent this problem, this commit moves the retrieval of the
specific visitation function to its own function. This way, the stack
frame that determines the correct visitiation function will be popped of
the stack before the function is being called, making the switch's stack
space transient instead of having it linger in the call stack.
0 commit comments