aboutsummaryrefslogtreecommitdiffstats
path: root/sem_decls.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2014-06-29 16:38:56 +0200
committerTristan Gingold <tgingold@free.fr>2014-06-29 16:38:56 +0200
commit13f260fca9cd8531b4a2af1d43a78c249197f931 (patch)
treee7120982652c795cdc37972da7f181d1a3765f3f /sem_decls.adb
parentcde6aede1c8851fa0b64e548c5b9a391c1d6af8a (diff)
downloadghdl-13f260fca9cd8531b4a2af1d43a78c249197f931.tar.gz
ghdl-13f260fca9cd8531b4a2af1d43a78c249197f931.tar.bz2
ghdl-13f260fca9cd8531b4a2af1d43a78c249197f931.zip
vhdl 2008: handle all-sensitized processes, handle visibility for alias.
Diffstat (limited to 'sem_decls.adb')
-rw-r--r--sem_decls.adb9
1 files changed, 8 insertions, 1 deletions
diff --git a/sem_decls.adb b/sem_decls.adb
index 4ad015c2e..899a851e3 100644
--- a/sem_decls.adb
+++ b/sem_decls.adb
@@ -1237,9 +1237,15 @@ package body Sem_Decls is
if not Valid_Interpretation (Interp) then
return Null_Iir;
end if;
- if not Is_In_Current_Declarative_Region (Interp) then
+
+ if not Is_In_Current_Declarative_Region (Interp)
+ or else Is_Potentially_Visible (Interp)
+ then
+ -- Deferred and full declarations must be declared in the same
+ -- declarative region.
return Null_Iir;
end if;
+
Deferred_Const := Get_Declaration (Interp);
if Get_Kind (Deferred_Const) /= Iir_Kind_Constant_Declaration then
return Null_Iir;
@@ -1920,6 +1926,7 @@ package body Sem_Decls is
Set_Identifier (N_Alias, Get_Identifier (Decl));
Set_Name (N_Alias, Decl);
Set_Parent (N_Alias, Get_Parent (Alias));
+ Set_Implicit_Alias_Flag (N_Alias, True);
Sem_Scopes.Add_Name (N_Alias);
Set_Visible_Flag (N_Alias, True);