From bb9be5eb9c3c40851cf8db6d00ebe1ac4f04944b Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Mon, 20 Sep 2004 12:07:47 +0000 Subject: [PATCH] re PR ada/17540 (Duplicate symbols while building Ada) 2004-09-20 Robert Dewar 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 --- gcc/ada/ChangeLog | 8 ++++++++ gcc/ada/freeze.adb | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 5f99b36d408..8c1632d23f9 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,11 @@ +2004-09-20 Robert Dewar + + 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 * 5tsystem.ads: Removed, no longer used. diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index cee69c47762..e58a987d899 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; -- 2.30.2