aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@gnat.com>2004-09-20 12:07:47 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2004-09-20 14:07:47 +0200
commitbb9be5eb9c3c40851cf8db6d00ebe1ac4f04944b (patch)
tree8ffac8bd587139a138acb67f0a618033856f2587 /gcc
parentd4a9b3a336b30a8315315768f91b73680afb35f7 (diff)
downloadgcc-bb9be5eb9c3c40851cf8db6d00ebe1ac4f04944b.zip
gcc-bb9be5eb9c3c40851cf8db6d00ebe1ac4f04944b.tar.gz
gcc-bb9be5eb9c3c40851cf8db6d00ebe1ac4f04944b.tar.bz2
re PR ada/17540 (Duplicate symbols while building Ada)
2004-09-20 Robert Dewar <dewar@gnat.com> PR ada/17540 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public if an address clause is present, since that means that the Import should be ignored. From-SVN: r87755
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog8
-rw-r--r--gcc/ada/freeze.adb9
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 5f99b36..8c1632d 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-20 Robert Dewar <dewar@gnat.com>
+
+ PR ada/17540
+
+ * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
+ if an address clause is present, since that means that the Import
+ should be ignored.
+
2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
* 5tsystem.ads: Removed, no longer used.
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index cee69c4..e58a987 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -82,7 +82,9 @@ package body Freeze is
procedure Check_Address_Clause (E : Entity_Id);
-- Apply legality checks to address clauses for object declarations,
- -- at the point the object is frozen.
+ -- at the point the object is frozen. Also deals with cancelling effect
+ -- of Import pragma which has no effect (other than to eliminate any
+ -- implicit initialization) if an address clause is present.
procedure Check_Strict_Alignment (E : Entity_Id);
-- E is a base type. If E is tagged or has a component that is aliased
@@ -497,6 +499,11 @@ package body Freeze is
then
Warn_Overlay (Expr, Typ, Name (Addr));
end if;
+
+ -- Cancel effect of any Import pragma
+
+ Set_Is_Imported (E, False);
+ Set_Is_Public (E, False);
end if;
end Check_Address_Clause;