This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ada/81361] [8 regression] broken exception handling at -O2


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]