diff options
author | Ed Schonberg <schonber@gnat.com> | 2001-10-26 01:29:47 +0000 |
---|---|---|
committer | Geert Bosch <bosch@gcc.gnu.org> | 2001-10-26 03:29:47 +0200 |
commit | dfc69d80c186f77231296c99cdf86bd520370a85 (patch) | |
tree | 7c49dc73bf9196e70d52f54eee566867d69c4be2 /gcc | |
parent | 5a15af6295629fe3ad95a3d93aa7ffca7fc65a00 (diff) | |
download | gcc-dfc69d80c186f77231296c99cdf86bd520370a85.zip gcc-dfc69d80c186f77231296c99cdf86bd520370a85.tar.gz gcc-dfc69d80c186f77231296c99cdf86bd520370a85.tar.bz2 |
sem_util.adb (Enter_Name): better handling of cascaded error messages when a unit appears in its own context.
* sem_util.adb (Enter_Name): better handling of cascaded error
messages when a unit appears in its own context.
From-SVN: r46516
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/sem_util.adb | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ecb970a..2a96c89 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2001-10-25 Ed Schonberg <schonber@gnat.com> + * sem_util.adb (Enter_Name): better handling of cascaded error + messages when a unit appears in its own context. + +2001-10-25 Ed Schonberg <schonber@gnat.com> + * sem_util.adb (Defining_Entity): in case of error, attach created entity to specification, so that semantic analysis can proceed. diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 7bc2b92..e53f871 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -1602,6 +1602,18 @@ package body Sem_Util is Error_Msg_N ("& conflicts with declaration#", E); return; + -- If the name of the unit appears in its own context clause, + -- a dummy package with the name has already been created, and + -- the error emitted. Try to continue quietly. + + elsif Error_Posted (E) + and then Sloc (E) = No_Location + and then Nkind (Parent (E)) = N_Package_Specification + and then Current_Scope = Standard_Standard + then + Set_Scope (Def_Id, Current_Scope); + return; + else Error_Msg_N ("& conflicts with declaration#", Def_Id); |