]> git.ipfire.org Git - thirdparty/gcc.git/commit
[Ada] Robust detection of access-to-subprogram and access-to-object types
authorPiotr Trojanek <trojanek@adacore.com>
Tue, 23 Feb 2021 22:37:50 +0000 (23:37 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 7 May 2021 09:29:26 +0000 (05:29 -0400)
commita4613d9ada54c334650d93edbb4c08069550099e
tree92b8fbb42ca8bf469ff25dff8465fa3a41a7afa3
parent104f58db5f9cf759e9a223d5a3415d3a71849d79
[Ada] Robust detection of access-to-subprogram and access-to-object types

gcc/ada/

* einfo-utils.adb (Is_Access_Object_Type): Use
Directly_Designated_Type.
(Is_Access_Subprogram_Type): Use Directly_Designated_Type.
(Set_Convention): Use plain Ekind.
* gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind.
* sem_ch3.adb (Access_Type_Declaration): When seeing an illegal
completion with an access type don't attempt to decorate the
completion entity; previously the entity had its Ekind set to
E_General_Access_Type or E_Access_Type, but its Designated_Type
was empty, which caused a crash in freezing. (Actually, the
error recovery in the surrounding context is still incomplete,
e.g. we will crash when the illegal completion is an access to
an unknown identifier).
gcc/ada/einfo-utils.adb
gcc/ada/gen_il-gen-gen_entities.adb
gcc/ada/sem_ch3.adb