2024-03-17
| ||
12:07 | • Ticket [ced9d8df0b] Exceptions during init in ARC code crash on Windows status still Closed with 3 other changes artifact: 8a79259eed user: js | |
2023-01-14
| ||
02:41 | • Closed ticket [ced9d8df0b]. artifact: 1c5538fed2 user: js | |
2020-11-28
| ||
20:49 | • Ticket [ced9d8df0b]: 3 changes artifact: daa1aac7b9 user: js | |
20:13 | • Ticket [ced9d8df0b]: 3 changes artifact: 315b585ae3 user: js | |
19:57 | • Ticket [ced9d8df0b]: 3 changes artifact: 0ff63f7924 user: js | |
19:54 | • Ticket [ced9d8df0b]: 3 changes artifact: 4e1fcbfa9e user: js | |
19:44 | • Ticket [ced9d8df0b]: 3 changes artifact: 6ef0f0fb5b user: js | |
19:42 | • Ticket [ced9d8df0b]: 3 changes artifact: 8fc9fa11d6 user: js | |
19:38 | • Ticket [ced9d8df0b]: 3 changes artifact: 0c684bea09 user: js | |
19:37 | • Ticket [ced9d8df0b]: 4 changes artifact: 6fb3724737 user: js | |
2020-06-07
| ||
14:37 | • New ticket [ced9d8df0b]. artifact: 1b093eda3f user: js | |
Ticket UUID: | ced9d8df0bc81123a789cc52723832d5009cfcec | |||
Title: | Exceptions during init in ARC code crash on Windows | |||
Status: | Closed | Type: | Code_Defect | |
Severity: | Critical | Priority: | Immediate | |
Subsystem: | runtime | Resolution: | External_Bug | |
Last Modified: | 2024-03-17 12:07:24 | |||
Version Found In: | Milestone: | 1.0 | ||
User Comments: | ||||
js added on 2020-06-07 14:37:19:
The following pattern crashes in ARC code on Windows, both i686 and x64:
This is most likely due to a compiler bug.
js added on 2020-11-28 19:37:32: Interestingly, the tests in js added on 2020-11-28 19:38:38: Correction: The test in js added on 2020-11-28 19:42:53: This seems to be a red herring. When I keep the js added on 2020-11-28 19:54:50: Truncating the string was also a red herring. The same executable sometimes works and sometimes doesn't. There's some randomness involved which makes debugging this harder. One weird observation is that it prints "Deallocated!" before "Caught!" when it does work - that seems like the wrong order. js added on 2020-11-28 19:57:42: Actually, I was confused and "Deallocted" before "Caught!" is expected, since it first deallocates self and then throws the exception. js added on 2020-11-28 20:13:41: Removing the js added on 2020-11-28 20:49:49: All calls into the personality and their return when it works (first parameter of personality is ex, second is actions):
and on a crash:
With removed
I have no idea why there are extra ones when it crashes - that is just odd. I would expect this to behave deterministically. Time to dig into libgcc code, I suppose. js added on 2023-01-14 02:41:04: This works with the latest MSYS2 with both the CLANG32 and CLANG64 environment, but not with the MINGW32 environment. However, using the last MSYS2 that still supported Windows XP, it works in the MINGW32 environment as well. Additionally, it works when I use Clang to cross-compile from Linux. This means it's a bug in current MSYS2's MINGW32 environment and there are plenty of other solutions that work. Closing. |