aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_alfa.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/exp_alfa.adb')
-rw-r--r--gcc/ada/exp_alfa.adb23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ada/exp_alfa.adb b/gcc/ada/exp_alfa.adb
index 04c8484..988d16f 100644
--- a/gcc/ada/exp_alfa.adb
+++ b/gcc/ada/exp_alfa.adb
@@ -26,8 +26,10 @@
with Atree; use Atree;
with Einfo; use Einfo;
with Exp_Attr; use Exp_Attr;
+with Exp_Ch4; use Exp_Ch4;
with Exp_Ch6; use Exp_Ch6;
with Exp_Dbug; use Exp_Dbug;
+with Nlists; use Nlists;
with Rtsfind; use Rtsfind;
with Sem_Aux; use Sem_Aux;
with Sem_Res; use Sem_Res;
@@ -51,6 +53,9 @@ package body Exp_Alfa is
procedure Expand_Alfa_N_Attribute_Reference (N : Node_Id);
-- Expand attributes 'Old and 'Result only
+ procedure Expand_Alfa_N_In (N : Node_Id);
+ -- Expand set membership into individual ones
+
procedure Expand_Alfa_N_Simple_Return_Statement (N : Node_Id);
-- Insert conversion on function return if necessary
@@ -81,6 +86,12 @@ package body Exp_Alfa is
when N_Attribute_Reference =>
Expand_Alfa_N_Attribute_Reference (N);
+ when N_In =>
+ Expand_Alfa_N_In (N);
+
+ when N_Not_In =>
+ Expand_N_Not_In (N);
+
when others =>
null;
end case;
@@ -167,6 +178,18 @@ package body Exp_Alfa is
end case;
end Expand_Alfa_N_Attribute_Reference;
+ ----------------------
+ -- Expand_Alfa_N_In --
+ ----------------------
+
+ procedure Expand_Alfa_N_In (N : Node_Id) is
+ begin
+ if Present (Alternatives (N)) then
+ Expand_Set_Membership (N);
+ return;
+ end if;
+ end Expand_Alfa_N_In;
+
-------------------------------------------
-- Expand_Alfa_N_Simple_Return_Statement --
-------------------------------------------