https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81361
--- Comment #11 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > Darwin's linker (ld64) needs code/data to be separable into "atoms" => > non-zero-length chunks of code/data starting with a linker-visible label. My initial assumption, but I don't think so in the end. > I'm starting to look at the Darwin hot/cold partitioning issues (which have > produced these problems in the past, e.g. 81033, I suspect), but a lot of > state to re-load since I've not been able to put many cycles into Darwin > recently. You can reproduce the failure without hot/cold partitioning: compile the reduced testcase at -O2 and manually edit the assembly file, remove the partioning and you get the same outcome; the key is the presence of the 2nd FDE. > Anything that's common with Linux is definitely useful, but it's possible > that Darwin will have additional fallout from changes that affect the > splitting of code into such "atom" chunks. I think it's a bug in the CFI machinery, either assembler or unwinder.