From 1c383b4cd4cdf0183b9f9004a987b614cc169892 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Thu, 9 Apr 2009 14:10:15 +0200 Subject: [multiple changes] 2009-04-09 Robert Dewar * g-comver.adb: Minor reformatting. 2009-04-09 Thomas Quinot * lib-load.ads (Load_Unit): Update documentation. 2009-04-09 Ed Schonberg * lib-load.adb (Load_Unit): When loading the parent of a child unit named in a with_clause, retain the with_clause to preserve a limited_with indication. From-SVN: r145829 --- gcc/ada/ChangeLog | 14 ++++++++++++++ gcc/ada/g-comver.adb | 3 ++- gcc/ada/lib-load.adb | 5 ++++- gcc/ada/lib-load.ads | 8 ++++---- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 7db0fd4..3f908f7 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,19 @@ 2009-04-09 Robert Dewar + * g-comver.adb: Minor reformatting. + +2009-04-09 Thomas Quinot + + * lib-load.ads (Load_Unit): Update documentation. + +2009-04-09 Ed Schonberg + + * lib-load.adb (Load_Unit): When loading the parent of a child unit + named in a with_clause, retain the with_clause to preserve a + limited_with indication. + +2009-04-09 Robert Dewar + * sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb, exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb, sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where diff --git a/gcc/ada/g-comver.adb b/gcc/ada/g-comver.adb index 2d7b909..7a6baa1 100644 --- a/gcc/ada/g-comver.adb +++ b/gcc/ada/g-comver.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2005,2008 AdaCore -- +-- Copyright (C) 2002-2008, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -59,6 +59,7 @@ package body GNAT.Compiler_Version is if GNAT_Version (J) = ')' then return GNAT_Version (Ver_Prefix'Length + 1 .. J); end if; + if GNAT_Version (J) = Character'Val (0) then return GNAT_Version (Ver_Prefix'Length + 1 .. J - 1); end if; diff --git a/gcc/ada/lib-load.adb b/gcc/ada/lib-load.adb index 29a9090..1ceb389 100644 --- a/gcc/ada/lib-load.adb +++ b/gcc/ada/lib-load.adb @@ -358,6 +358,8 @@ package body Lib.Load is begin -- If renamings are allowed and we have a child unit name, then we -- must first load the parent to deal with finding the real name. + -- Retain the with_clause that names the child, so that if it is + -- limited, the parent is loaded under the same condition. if Renamings and then Is_Child_Name (Load_Name) then Unump := @@ -366,7 +368,8 @@ package body Lib.Load is Required => Required, Subunit => False, Renamings => True, - Error_Node => Error_Node); + Error_Node => Error_Node, + With_Node => With_Node); if Unump = No_Unit then return No_Unit; diff --git a/gcc/ada/lib-load.ads b/gcc/ada/lib-load.ads index ef191e1..cc2be76 100644 --- a/gcc/ada/lib-load.ads +++ b/gcc/ada/lib-load.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -148,9 +148,9 @@ package Lib.Load is -- set to True, then Load_Name may not be the real unit name and it -- is necessary to load parents to find the real name. -- - -- From_Limited_With is True if we are loading a unit X found in a - -- limited-with clause, or some unit in the context of X. It is used to - -- avoid the check on circular dependency (Ada 2005, AI-50217) + -- With_Node is set to the with_clause or limited_with_clause causing + -- the unit to be loaded, and is used to bypass the circular dependency + -- check in the case of a limited_with_clause (Ada 2005, AI-50217). procedure Change_Main_Unit_To_Spec; -- This procedure is called if the main unit file contains a No_Body pragma -- cgit v1.1