-
Notifications
You must be signed in to change notification settings - Fork 254
Closed
Labels
Description
| Previous ID | SR-12360 |
| Radar | rdar://problem/60832848 |
| Original Reporter | cukier (JIRA User) |
| Type | Bug |
| Status | Resolved |
| Resolution | Done |
Additional Detail from JIRA
| Votes | 0 |
| Component/s | swift-format |
| Labels | Bug |
| Assignee | @allevato |
| Priority | Medium |
md5: 4111fa0935f36cb69278ce6ab26c299c
Issue Description:
Stack overflow 2: revenge of the rdar://55929175
After implementing formatting in sourcekit-lsp I was investigating why it wasn't working for things that are nested four levels deep. After fighting with debugger, I had a hunch that it may be stack overflow. I found a comment in the function that was crashing:
// The implementation of every generated case goes into its own function. This
// circumvents an issue where the compiler allocates stack space for every
// case statement next to each other in debug builds, causing it to allocate
// ~50KB per call to this function. rdar://55929175It crashes only in debug mode, on macos
To reproduce:
-
clone https://github.com/Trzyipolkostkicukru/sourcekit-lsp/tree/format and checkout commit ed642036f4b9ce7696ad340523ed8e9b4bdb9761
-
get toolchain swift-DEVELOPMENT-SNAPSHOT-2020-01-29-a and set it as your compiler
-
compile and set up sourcekit-lsp
-
try to format a file with 4+ levels of nesting, for example:
do { do { do { do { print("Hello, world") } } } }