diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-22 09:28:08 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-22 09:28:08 +0000 |
commit | 3650407089bb99b17186ab7dabc4e0a4ad72306c (patch) | |
tree | 3382b1929ce73dcbba9d81c17a6d7dac301b444b /gcc/ada/sem_util.adb | |
parent | 3f6ff945054e6d846f182b8f56d4ad1fe9605fd5 (diff) | |
download | gcc-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.adb | 13 |
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)); |