From de125c89facb70964e7a55a984f7cf44ab6829d6 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 28 Dec 2013 07:07:53 +0100 Subject: Check that parameter of signal attributes is static (ticket #1) --- sem_names.adb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sem_names.adb b/sem_names.adb index ef68aa16c..c6ccf68e6 100644 --- a/sem_names.adb +++ b/sem_names.adb @@ -873,7 +873,16 @@ package body Sem_Names is Error_Msg_Sem ("'transaction does not allow a parameter", Attr); else Param := Sem_Expression (Parameter, Time_Subtype_Definition); - Set_Parameter (Attr, Param); + if Param /= Null_Iir then + -- LRM93 14.1 + -- Parameter: A static expression of type TIME [that evaluate + -- to a nonnegative value.] + if Get_Expr_Staticness (Param) = None then + Error_Msg_Sem + ("parameter of signal attribute must be static", Param); + end if; + Set_Parameter (Attr, Param); + end if; end if; end Finish_Sem_Signal_Attribute; -- cgit v1.2.3