[Bug ada/81361] [8 regression] broken exception handling at -O2
ebotcazou at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 15 09:48:00 GMT 2017
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.
More information about the Gcc-bugs
mailing list