aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-sem.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-sem.adb')
-rw-r--r--src/vhdl/vhdl-sem.adb59
1 files changed, 1 insertions, 58 deletions
diff --git a/src/vhdl/vhdl-sem.adb b/src/vhdl/vhdl-sem.adb
index d223935d3..494d0bd1f 100644
--- a/src/vhdl/vhdl-sem.adb
+++ b/src/vhdl/vhdl-sem.adb
@@ -478,57 +478,6 @@ package body Vhdl.Sem is
Res := Sem_Generic_Association_Chain (Inter_Parent, Assoc_Parent);
end Sem_Generic_Association_Chain;
- -- LRM08 6.5.6.3 Port clauses
- function Sem_Insert_Anonymous_Signal (Formal : Iir; Actual : Iir)
- return Iir
- is
- Sig : Iir;
- Res : Iir;
- begin
- -- LRM08 6.5.6.3 Port clauses
- -- If a formal port of mode IN is associated with an expression that is
- -- not globally static (see 9.4.1) and the formal is of an unconstrained
- -- or partially constrained composite type requiring determination of
- -- index ranges from the actual according to the rules of 5.3.2.2, then
- -- the expression shall be one of the following:
- -- - The name of an object whose subtype is globally static
- -- - An indexed name whose prefix is one of the members of this list
- -- - A slice name whose prefix is one of the members of this list and
- -- whose discrete range is a globally static discrete range
- -- - An aggregate, provided all choices are locally static and all
- -- expressions in element associations are expressions described in
- -- this list
- -- - A function call whose return type mark denotes a globally static
- -- subtype
- -- - A qualified expression or type conversion whose type mark denotes
- -- a globally static subtype
- -- - An expression described in this list and enclosed in parentheses
-
- -- GHDL: FIXME: could this be simplified simply by `subtype is globally
- -- static` ?
- -- FIXME: what about conversions ?
-
- -- Create the anonymous signal.
- Sig := Create_Iir (Iir_Kind_Anonymous_Signal_Declaration);
- Location_Copy (Sig, Actual);
- Set_Expression (Sig, Actual);
- Set_Type (Sig, Get_Type (Formal));
- Set_Expr_Staticness (Sig, None);
-
- -- Declare it.
- Add_Implicit_Declaration (Sig);
-
- -- Return a reference to it.
- -- FIXME: The referenced name is not a name.
- Res := Create_Iir (Iir_Kind_Reference_Name);
- Location_Copy (Res, Actual);
- Set_Referenced_Name (Res, Sig);
- Set_Named_Entity (Res, Sig);
- Set_Type (Res, Get_Type (Sig));
- Set_Expr_Staticness (Res, None);
- return Res;
- end Sem_Insert_Anonymous_Signal;
-
function Sem_Signal_Port_Association
(Assoc : Iir; Formal : Iir; Formal_Base : Iir) return Iir
is
@@ -616,14 +565,8 @@ package body Vhdl.Sem is
-- The actual, if an expression, must be a globally
-- static expression.
if Get_Expr_Staticness (Actual) < Globally then
- if Flags.Vhdl_Std >= Vhdl_08 then
+ if Flags.Vhdl_Std < Vhdl_08 then
-- LRM08 6.5.6.3 Port clauses
- if False then
- Actual := Sem_Insert_Anonymous_Signal (Formal, Actual);
- Set_Actual (Assoc, Actual);
- Set_Collapse_Signal_Flag (Assoc, True);
- end if;
- else
Error_Msg_Sem
(+Actual, "actual expression must be globally static");
end if;