https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120440
--- Comment #20 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > Looking at the dumps: > > --- a/a-except.adb.006t.original > +++ b/a-except.adb.006t.original > @@ -782,7 +782,7 @@ void > ada.exceptions.exception_propagation.gnat_gcc_exception_cleanup (system__ex > struct system__exceptions__machine__gnat_gcc_exception * {ref-all} copy > = excep; > if (copy != 0B) > { > - .gnat_free (copy); > + .gnat_free (*((void * *) copy + 18446744073709551608)); > copy = 0B; > } > else > > ?! I agree that this looks frightening at first sight. ;-) This comes from the realignment business in ada/gcc-interface/utils2.cc:maybe_wrap_{malloc,free}. What happens is that -march=x86-64-v3 bumps the BIGGEST_ALIGNMENT setting of the i386 back-end wrt -march=x86-64-v2; now the malloc side is still compiled with -march=x86-64-v2 whereas the free side is compiled with -march=x86-64-v3, hence the discrepancy. So this is a latent Ada build issue exposed by the change. Thanks for the detailed investigation!