diff options
author | Richard Kenner <kenner@adacore.com> | 2023-12-17 07:47:44 -0500 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-05-06 11:11:26 +0200 |
commit | dd548dc587d16ac9d272899739d384e67789e862 (patch) | |
tree | 3016083ba49eb2df93b2823178ee495c4800820b /gcc/ada/fe.h | |
parent | 4629cd34506416d05cd9ab56879f69b44fe65d2b (diff) | |
download | gcc-dd548dc587d16ac9d272899739d384e67789e862.zip gcc-dd548dc587d16ac9d272899739d384e67789e862.tar.gz gcc-dd548dc587d16ac9d272899739d384e67789e862.tar.bz2 |
ada: Don't propagate convention to internal subprograms
AI95-117 requires that all new primitives of a tagged type must
inherit the convention of the full view of the type. However, we need
not do this for primitives that are internally-generated, such as for
finalization. There are issues with GNAT LLVM when primitives have
convention C since the UC from that subprogram type to the type used
in the dispatch table will generate a warning. We're not doing
anything here about the case where the convention C is explicit or
there are user-specified primitives on a type with convention C, but
let's not make the problem worse by putting convention C on internal
subprograms.
gcc/ada/
* freeze.adb (Freeze_Entity): When changing the convention of
primitive to match that of the type, only do this for user-specified
primitives.
Diffstat (limited to 'gcc/ada/fe.h')
0 files changed, 0 insertions, 0 deletions