diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-02-24 17:08:01 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-05-23 09:59:07 +0200 |
commit | e15ce6502c7b607f2ca0ee178a715d6fc13ac6b6 (patch) | |
tree | 7dc57090942cb4a1a62051908d247b384af8245b /gcc/ada/inline.adb | |
parent | 1dd52433d2d1c122c7338ddb350f8691f084e0cf (diff) | |
download | gcc-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