diff options
author | Tristan Gingold <tgingold@free.fr> | 2014-06-29 16:38:56 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2014-06-29 16:38:56 +0200 |
commit | 13f260fca9cd8531b4a2af1d43a78c249197f931 (patch) | |
tree | e7120982652c795cdc37972da7f181d1a3765f3f /sem_decls.adb | |
parent | cde6aede1c8851fa0b64e548c5b9a391c1d6af8a (diff) | |
download | ghdl-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.adb | 9 |
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); |