From: Daniel King Date: Fri, 1 Nov 2024 21:27:00 +0000 (+0000) Subject: ada: Export CHERI exception IDs X-Git-Tag: basepoints/gcc-16~3423 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d69cdb1202f307796f6e34a827b02c1d048e213;p=thirdparty%2Fgcc.git ada: Export CHERI exception IDs This allows CHERI exceptions to be raised from C code in the runtime. gcc/ada/ChangeLog: * libgnat/i-cheri-exceptions.ads: Export CHERI exception IDs. --- diff --git a/gcc/ada/libgnat/i-cheri-exceptions.ads b/gcc/ada/libgnat/i-cheri-exceptions.ads index 88ecb1325c4d..2a3acd2e9187 100644 --- a/gcc/ada/libgnat/i-cheri-exceptions.ads +++ b/gcc/ada/libgnat/i-cheri-exceptions.ads @@ -28,6 +28,7 @@ -- Extensive contributions were provided by Ada Core Technologies Inc. -- -- -- ------------------------------------------------------------------------------ +with Ada.Exceptions; -- This package defines exception types for CHERI-related errors @@ -47,4 +48,33 @@ is Capability_Tag_Error : exception; -- An invalid capability was dereferenced +private + + -- Expose C names for exception identifiers to allow raising from signal + -- handlers in init.c. + + Capability_Bound_Error_Id : constant Ada.Exceptions.Exception_Id := + Capability_Bound_Error'Identity; + pragma Export (C, + Capability_Bound_Error_Id, + "capability_bound_error_id"); + + Capability_Permission_Error_Id : constant Ada.Exceptions.Exception_Id := + Capability_Permission_Error'Identity; + pragma Export (C, + Capability_Permission_Error_Id, + "capability_permission_error_id"); + + Capability_Sealed_Error_Id : constant Ada.Exceptions.Exception_Id := + Capability_Sealed_Error'Identity; + pragma Export (C, + Capability_Sealed_Error_Id, + "capability_sealed_error_id"); + + Capability_Tag_Error_Id : constant Ada.Exceptions.Exception_Id := + Capability_Tag_Error'Identity; + pragma Export (C, + Capability_Tag_Error_Id, + "capability_tag_error_id"); + end Interfaces.CHERI.Exceptions;