https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120440
--- Comment #15 from Sam James <sjames at gcc dot gnu.org> ---
(In reply to Sam James from comment #13)
> Created attachment 62016 [details]
> 120440.tar.xz
The diff between the objects is really small.
--- 120440/a-except.o-good
+++ 120440/a.except.o-bad
...
Disassembly of section .text:
@@ -1509,17 +1509,16 @@
Free (Copy);
c38: 48 85 f6 test %rsi,%rsi
- c3b: 74 11 je c4e
<ada__exceptions__exception_propagation__gnat_gcc_exception_cleanupXn+0x16>
+ c3b: 74 12 je c4f
<ada__exceptions__exception_propagation__gnat_gcc_exception_cleanupXn+0x17>
procedure GNAT_GCC_Exception_Cleanup
c3d: 48 83 ec 08 sub $0x8,%rsp
Free (Copy);
- c41: 48 89 f7 mov %rsi,%rdi
- c44: e8 00 00 00 00 call c49
<ada__exceptions__exception_propagation__gnat_gcc_exception_cleanupXn+0x11>
+ c41: 48 8b 7e f8 mov -0x8(%rsi),%rdi
+ c45: e8 00 00 00 00 call c4a
<ada__exceptions__exception_propagation__gnat_gcc_exception_cleanupXn+0x12>
end GNAT_GCC_Exception_Cleanup;
- c49: 48 83 c4 08 add $0x8,%rsp
- c4d: c3 ret
+ c4a: 48 83 c4 08 add $0x8,%rsp
c4e: c3 ret
- c4f: 90 nop
+ c4f: c3 ret
is where the mangled pointer comes from mentioned above?