diff options
author | Hristian Kirtchev <kirtchev@adacore.com> | 2019-07-10 09:02:31 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-07-10 09:02:31 +0000 |
commit | d036b2b8c29f8d53787417a1c0b0ddf814ab8b6b (patch) | |
tree | 87ae56b2250db88d653229ef552fee9af1050112 /gcc/ada | |
parent | 6056bc735d81633bdefe3b696c917d3e4ea20049 (diff) | |
download | gcc-d036b2b8c29f8d53787417a1c0b0ddf814ab8b6b.zip gcc-d036b2b8c29f8d53787417a1c0b0ddf814ab8b6b.tar.gz gcc-d036b2b8c29f8d53787417a1c0b0ddf814ab8b6b.tar.bz2 |
[Ada] Spurious error on discriminant of incomplete type
This patch corrects the conformance verification of discriminants to
provide symmetry between the analysis of incomplete and full view
discriminants. As a result, types of discriminants always resolve to the
proper view.
2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
gcc/ada/
* sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
discover the type of a full view discriminant.
gcc/testsuite/
* gnat.dg/incomplete7.adb, gnat.dg/incomplete7.ads: New testcase.
From-SVN: r273347
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/sem_ch6.adb | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 246134c..86e3508 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2019-07-10 Hristian Kirtchev <kirtchev@adacore.com> + + * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to + discover the type of a full view discriminant. + 2019-07-10 Arnaud Charlet <charlet@adacore.com> * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index e00cd57..25ee705 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -5960,7 +5960,7 @@ package body Sem_Ch6 is Access_Definition (N, Discriminant_Type (New_Discr)); else - Analyze (Discriminant_Type (New_Discr)); + Find_Type (Discriminant_Type (New_Discr)); New_Discr_Type := Etype (Discriminant_Type (New_Discr)); -- Ada 2005: if the discriminant definition carries a null |