aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2019-07-10 09:02:31 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-07-10 09:02:31 +0000
commitd036b2b8c29f8d53787417a1c0b0ddf814ab8b6b (patch)
tree87ae56b2250db88d653229ef552fee9af1050112 /gcc/ada
parent6056bc735d81633bdefe3b696c917d3e4ea20049 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/ada/sem_ch6.adb2
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