aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2020-12-24 10:20:13 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2021-05-03 05:28:24 -0400
commit5e546292235587230fc9aa11b131f60cb123f42b (patch)
tree848a837691d81981930dd55c729f3fdf21365288 /gcc
parent28dfe0cb0355695193af0a22ef6e499d589d8143 (diff)
downloadgcc-5e546292235587230fc9aa11b131f60cb123f42b.zip
gcc-5e546292235587230fc9aa11b131f60cb123f42b.tar.gz
gcc-5e546292235587230fc9aa11b131f60cb123f42b.tar.bz2
[Ada] Fix attributes Version and Body_Version for concurrent units
gcc/ada/ * sem_attr.adb (Check_Program_Unit): Fix references to Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to Entity.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_attr.adb17
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index a9d095d..98b0eca 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -2298,16 +2298,15 @@ package body Sem_Attr is
begin
if Is_Entity_Name (P) then
declare
- K : constant Entity_Kind := Ekind (Entity (P));
- T : constant Entity_Id := Etype (Entity (P));
-
+ E : constant Entity_Id := Entity (P);
begin
- if K in Concurrent_Kind
- | Entry_Kind
- | Generic_Unit_Kind
- | Subprogram_Kind
- | E_Package
- or else (K = E_Variable and then Is_Concurrent_Type (T))
+ if Ekind (E) in E_Protected_Type
+ | E_Task_Type
+ | Entry_Kind
+ | Generic_Unit_Kind
+ | Subprogram_Kind
+ | E_Package
+ or else Is_Single_Concurrent_Object (E)
then
return;
end if;