aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_scopes.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2015-05-19 06:35:54 +0200
committerTristan Gingold <tgingold@free.fr>2015-05-19 06:35:54 +0200
commite6155f916a818b1cad10f206e874f4857d871ce0 (patch)
tree030a175f31ce9aa5e69065e65604ee86e266a085 /src/vhdl/sem_scopes.adb
parentba52970ab95b84f5495f5c6e389f7bd503eec392 (diff)
downloadghdl-e6155f916a818b1cad10f206e874f4857d871ce0.tar.gz
ghdl-e6155f916a818b1cad10f206e874f4857d871ce0.tar.bz2
ghdl-e6155f916a818b1cad10f206e874f4857d871ce0.zip
Do not consider overriden implicit declaration is reference by selection.
Fix ticket 69.
Diffstat (limited to 'src/vhdl/sem_scopes.adb')
-rw-r--r--src/vhdl/sem_scopes.adb16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/vhdl/sem_scopes.adb b/src/vhdl/sem_scopes.adb
index 2922ea928..442da3837 100644
--- a/src/vhdl/sem_scopes.adb
+++ b/src/vhdl/sem_scopes.adb
@@ -749,6 +749,22 @@ package body Sem_Scopes is
Decl);
return;
end if;
+
+ if not Is_Decl_Implicit and Is_Current_Decl_Implicit
+ then
+ -- DECL 'overrides' the predefined current
+ -- declaration.
+
+ -- LRM93 10.3 Visibility
+ -- In such cases, a predefined operation is always
+ -- hidden by the other homograph. Where hidden in
+ -- this manner, an implicit declaration is hidden
+ -- within the entire scope of the other declaration
+ -- (regardless of which declaration occurs first);
+ -- the implicit declaration is visible neither by
+ -- selected nor directly.
+ Set_Visible_Flag (Current_Decl, False);
+ end if;
end;
else
-- GHDL: hide directly visible declaration declared in