https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117038
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Eric Botcazou <ebotca...@gcc.gnu.org>: https://gcc.gnu.org/g:7ac96b05cfa7478706dce175e7c7b09cbf559451 commit r15-4221-g7ac96b05cfa7478706dce175e7c7b09cbf559451 Author: Eric Botcazou <ebotca...@adacore.com> Date: Wed Oct 9 21:31:13 2024 +0200 Fix LTO bootstrap failure with -Werror=lto-type-mismatch In GNAT's implementation model, using convention C (or C_Pass_By_Copy) has no effect on the internal representation of types since the representation is identical to that of C by default. It's even counter-productive given the implementation advice listed in B.3(63-71) so the interface between the front-end and gigi does not use it and instead uses structurally identical types on both sides. gcc/ada PR ada/117038 * fe.h (struct c_array): Add 'const' to declaration of pointer. (C_Source_Buffer): Use consistent formatting. * par-ch3.adb (P_Component_Items): Properly set Aliased_Present on access definition. * sinput.ads: Remove clause for Interfaces.C. (C_Array): Change type of Length to Integer and make both components aliased. Remove Convention aspect. (C_Source_Buffer): Remove all aspects. * sinput.adb (C_Source_Buffer): Adjust to above change.