From e405a16febc74a99bd5be2c4d56cd4fd31d93790 Mon Sep 17 00:00:00 2001 From: charlet Date: Thu, 17 Jun 2010 15:35:09 +0000 Subject: [PATCH] 2010-06-17 Robert Dewar * sem_util.adb: Minor reformatting 2010-06-17 Ed Schonberg * sem.adb (Do_Withed_Unit): if the unit in the with_clause is a generic instance, the clause now denotes the instance body. Traverse the corresponding spec because there may be no other dependence that will force the traversal of its own context. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160925 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 11 +++++++++++ gcc/ada/sem.adb | 12 ++++++++++++ gcc/ada/sem_util.adb | 4 ++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 278b183..1054620 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2010-06-17 Robert Dewar + + * sem_util.adb: Minor reformatting + +2010-06-17 Ed Schonberg + + * sem.adb (Do_Withed_Unit): if the unit in the with_clause is a generic + instance, the clause now denotes the instance body. Traverse the + corresponding spec because there may be no other dependence that will + force the traversal of its own context. + 2010-06-17 Ed Schonberg * sem_ch10.adb (Is_Ancestor_Unit): Subsidiary to diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb index 8d3ca2a..1eeffcc 100644 --- a/gcc/ada/sem.adb +++ b/gcc/ada/sem.adb @@ -1701,6 +1701,18 @@ package body Sem is procedure Do_Withed_Unit (Withed_Unit : Node_Id) is begin Do_Unit_And_Dependents (Withed_Unit, Unit (Withed_Unit)); + + -- If the unit in the with_clause is a generic instance, the clause + -- now denotes the instance body. Traverse the corresponding spec + -- because there may be no other dependence that will force the + -- traversal of its own context. + + if Nkind (Unit (Withed_Unit)) = N_Package_Body + and then Is_Generic_Instance + (Defining_Entity (Unit (Library_Unit (Withed_Unit)))) + then + Do_Withed_Unit (Library_Unit (Withed_Unit)); + end if; end Do_Withed_Unit; ---------------------------- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 06676ea..29ddee9 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -1699,8 +1699,8 @@ package body Sem_Util is Next_Entity (Id); - -- For a type declared in System, some of its operations - -- may appear in the target-specific extension to System. + -- For a type declared in System, some of its operations may + -- appear in the target-specific extension to System. if No (Id) and then Chars (B_Scope) = Name_System -- 2.7.4