Open 2e1c2d01-a631-41c2-93fe-8d40b95d8607 opened 3 years ago
mentioned in issue llvm/llvm-project#51489
Thanks for the investigation, Dimitry.
Now I am pretty much sure that the switch of the default pass manager just manifests a long-standing bug in __builtin_setjmp.
Should this be resolved as a duplicate of llvm/llvm-project#49578 ?
I would keep this one as it seems more general (bug 50234 appears to refer specifically to PowerPC, at first), and more people are CC'd on it.
Thanks for the investigation, Dimitry.
Now I am pretty much sure that the switch of the default pass manager just manifests a long-standing bug in __builtin_setjmp
.
Should this be resolved as a duplicate of llvm/llvm-project#49578 ?
Note this appears to have regressed with https://github.com/llvm/llvm-project/commit/669ddd1e9b12 ("Turn on the new pass manager by default"), at least that is what I see when doing a bisection.
However, this commit only turned on the new pass manager. If I compile the example with -flegacy-pass-manager
, it does not segfault.
And vice versa, if I use any clang before 669ddd1e9b12 with -fno-legacy-pass-manager
or -fexperimental-new-pass-manager
, it does segfault. I went back to the llvmorg-10-init branch point, but even that makes it crash.
Ergo, there is something about the new pass manager that influences this particular crash scenario.
The deadline for requesting fixes for the release has passed. This bug is being removed from the LLVM 13.0.1 release milestone. If you have a fix or think this bug is important enough to block the release, please explain why in a comment and add the bug back to the LLVM 13.0.1 release milestone.
Extended Description
Tested with 13.0.0-rc2 and 12.0.1. The repro could be made shorter.
Note that this issue is not necessarily specific to X86_64. A segfault is also observed for ARM.