diff options
author | Samuel Tardieu <sam@rfc1149.net> | 2008-08-18 08:58:58 +0000 |
---|---|---|
committer | Samuel Tardieu <sam@gcc.gnu.org> | 2008-08-18 08:58:58 +0000 |
commit | 51c16e2998aa74045dffe63e3c561b08d2e7c477 (patch) | |
tree | 54c5399623b2c762b2b2cc9fa37c7de90d914847 | |
parent | 11b08ee9118d107d2222a47f1994b43ddbd29ab8 (diff) | |
download | gcc-51c16e2998aa74045dffe63e3c561b08d2e7c477.zip gcc-51c16e2998aa74045dffe63e3c561b08d2e7c477.tar.gz gcc-51c16e2998aa74045dffe63e3c561b08d2e7c477.tar.bz2 |
re PR ada/15808 (Illegal program not detected, RM 3.9.3(10))
gcc/ada/
PR ada/15808
* sem_ch6.adb (Check_Private_Overriding): Check for generic packages
as well.
gcc/testsuite/
PR ada/15808
* gnat.dg/specs/abstract_private.ads: New.
From-SVN: r139190
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/sem_ch6.adb | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/abstract_private.ads | 17 |
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 8aa238f..3ffa651 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2008-08-18 Samuel Tardieu <sam@rfc1149.net> + + PR ada/15808 + * sem_ch6.adb (Check_Private_Overriding): Check for generic packages + as well. + 2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement. diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 1e84b26..d3faa0e 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -6481,7 +6481,7 @@ package body Sem_Ch6 is procedure Check_Private_Overriding (T : Entity_Id) is begin - if Ekind (Current_Scope) = E_Package + if Is_Package_Or_Generic_Package (Current_Scope) and then In_Private_Part (Current_Scope) and then Visible_Part_Type (T) and then not In_Instance diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bd294ad..9eca6a0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-08-18 Samuel Tardieu <sam@rfc1149.net> + + PR ada/15808 + * gnat.dg/specs/abstract_private.ads: New. + 2008-08-18 Richard Guenther <rguenther@suse.de> * gcc.dg/fold-alloca-1.c: Scan cfg dump instead of cleanup_cfg1. diff --git a/gcc/testsuite/gnat.dg/specs/abstract_private.ads b/gcc/testsuite/gnat.dg/specs/abstract_private.ads new file mode 100644 index 0000000..7420a98 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/abstract_private.ads @@ -0,0 +1,17 @@ +generic +package Abstract_Private is + + type T1 is abstract tagged private; + procedure P1 (X : T1) is abstract; + + type T2 is abstract tagged private; + +private + + type T1 is abstract tagged null record; + procedure P2 (X : T1) is abstract; -- { dg-error "must be visible" } + + type T2 is abstract new T1 with null record; + procedure P1 (X : T2) is abstract; + +end Abstract_Private; |