Hi, until most other machine attributes, this one does not work in Ada because, while it applies to pointer-to-function types, it is explicitly marked as requiring declarations in the implementation. Now, in Ada, machine attributes are specified like this: type Non_Secure is access procedure; pragma Machine_Attribute (Non_Secure, "cmse_nonsecure_call"); i.e. not attached to the declaration of Non_Secure (testcase attached). So the attached patch extends the support to Ada by also accepting pointer-to-function types in the handler. Tested on arm-eabi, OK for the mainline? 2022-10-24 Eric Botcazou * config/arm/arm.cc (arm_attribute_table) : Change decl_required field to false. (arm_handle_cmse_nonsecure_call): Deal with a TYPE node. -- Eric Botcazou