aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/inline.adb
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-02-24 17:08:01 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-05-23 09:59:07 +0200
commite15ce6502c7b607f2ca0ee178a715d6fc13ac6b6 (patch)
tree7dc57090942cb4a1a62051908d247b384af8245b /gcc/ada/inline.adb
parent1dd52433d2d1c122c7338ddb350f8691f084e0cf (diff)
downloadgcc-e15ce6502c7b607f2ca0ee178a715d6fc13ac6b6.zip
gcc-e15ce6502c7b607f2ca0ee178a715d6fc13ac6b6.tar.gz
gcc-e15ce6502c7b607f2ca0ee178a715d6fc13ac6b6.tar.bz2
ada: Fix address manipulation issue in the tasking runtime
The implementation of task attributes in the runtime defines an atomic clone of System.Address, which is awkward for targets where addresses and pointers have a specific representation, so this change replaces that with a pragma Atomic_Components on the Attribute_Array type. gcc/ada/ * libgnarl/s-taskin.ads (Atomic_Address): Delete. (Attribute_Array): Add pragma Atomic_Components. (Ada_Task_Control_Block): Adjust default value of Attributes. * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local variable. * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter. (To_Attribute): Adjust source type. * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements. (New_Attribute): Adjust return type. (Deallocate): Adjust type of parameter. (To_Real_Attribute): Adjust source type. (To_Address): Add target type. (To_Attribute): Adjust source type. (Fast_Path): Adjust tested type. (Finalize): Compare with Null_Address. (Reference): Likewise. (Reinitialize): Likewise. (Set_Value): Likewise. Add conversion to Integer_Address. (Value): Likewise.
Diffstat (limited to 'gcc/ada/inline.adb')
0 files changed, 0 insertions, 0 deletions