summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_util.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-22 09:28:08 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-22 09:28:08 +0000
commit3650407089bb99b17186ab7dabc4e0a4ad72306c (patch)
tree3382b1929ce73dcbba9d81c17a6d7dac301b444b /gcc/ada/sem_util.adb
parent3f6ff945054e6d846f182b8f56d4ad1fe9605fd5 (diff)
downloadgcc-3650407089bb99b17186ab7dabc4e0a4ad72306c.tar.gz
2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
* gnat_wrapper.adb: New file. 2003/10/22 Jerome Roussel <roussel@act-europe.fr> * g-regpat.ads, g-regpat.adb (Match): new function, to know if a string match a pre compiled regular expression (the corresponding version of the function working on a raw regular expression) Fix typos in various comments Update copyright notice in spec 2003/10/21 Gary Dismukes <dismukes@gnat.com> * exp_ch3.adb: (Component_Needs_Simple_Initialization): Return False when the type is a packed bit array. Revise spec comments to document this case. * exp_prag.adb: (Expand_Pragma_Import): Set any expression on the imported object to empty to avoid initializing imported objects (in particular this covers the case of zero-initialization of bit arrays). Update copyright notice. 2003/10/21 Ed Schonberg <schonberg@gnat.com> * sem_ch12.adb: (Load_Parent_Of_Generic): If parent is compilation unit, stop search, a subunit is missing. (Instantiate_Subprogram_Body): If body of function is missing, set type of return expression explicitly in dummy body, to prevent cascaded errors when a subunit is missing. Fixes PR 5677. * sem_ch3.adb: (Access_Subprogram_Declaration): Verify that return type is valid. Fixes PR 8693. * sem_elab.adb: (Check_Elab_Calls): Do not apply elaboration checks if the main unit is generic. Fixes PR 12318. * sem_util.adb: (Corresponding_Discriminant): If the scope of the discriminant is a private type without discriminant, use its full view. Fixes PR 8247. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72792 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_util.adb')
-rw-r--r--gcc/ada/sem_util.adb13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index e5cb289288b..dc67b50db51 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -1967,7 +1967,18 @@ package body Sem_Util is
begin
Par_Disc := Original_Record_Component (Original_Discriminant (Id));
- Old_Disc := First_Discriminant (Scope (Par_Disc));
+
+ -- The original type may currently be private, and the discriminant
+ -- only appear on its full view.
+
+ if Is_Private_Type (Scope (Par_Disc))
+ and then not Has_Discriminants (Scope (Par_Disc))
+ and then Present (Full_View (Scope (Par_Disc)))
+ then
+ Old_Disc := First_Discriminant (Full_View (Scope (Par_Disc)));
+ else
+ Old_Disc := First_Discriminant (Scope (Par_Disc));
+ end if;
if Is_Class_Wide_Type (Typ) then
New_Disc := First_Discriminant (Root_Type (Typ));