aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2019-07-23 08:13:41 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-07-23 08:13:41 +0000
commit4e2a165210c07078ad1226ca3f0712a457a73d0e (patch)
tree7bd48f2678d74cb494675a4342b1571ef72c2740 /gcc
parent67460d45757a79cdc91fdde1dc1b1a18e4aba6b2 (diff)
downloadgcc-4e2a165210c07078ad1226ca3f0712a457a73d0e.zip
gcc-4e2a165210c07078ad1226ca3f0712a457a73d0e.tar.gz
gcc-4e2a165210c07078ad1226ca3f0712a457a73d0e.tar.bz2
[Ada] Aspect CPU may depend on a discriminant of a task type
2019-07-23 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, Freeze_Entity_Checks): Include Aspect_CPU with other aspects whose expresssion may depend on a discriminant, and thus require that components of the type be made visible. gcc/testsuite/ * gnat.dg/task4.adb: New testcase. From-SVN: r273726
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/sem_ch13.adb2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/task4.adb19
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 86a5491..64ac98b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2019-07-23 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
+ Freeze_Entity_Checks): Include Aspect_CPU with other aspects
+ whose expresssion may depend on a discriminant, and thus require
+ that components of the type be made visible.
+
2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
* checks.adb (Convert_And_Check_Range): Add Suppress parameter
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index dc7f774..bf80200 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -9388,6 +9388,7 @@ package body Sem_Ch13 is
elsif A_Id = Aspect_Dynamic_Predicate
or else A_Id = Aspect_Predicate
or else A_Id = Aspect_Priority
+ or else A_Id = Aspect_CPU
then
Push_Type (Ent);
Preanalyze_Spec_Expression (End_Decl_Expr, T);
@@ -11279,6 +11280,7 @@ package body Sem_Ch13 is
if A_Id = Aspect_Dynamic_Predicate
or else A_Id = Aspect_Predicate
or else A_Id = Aspect_Priority
+ or else A_Id = Aspect_CPU
then
-- Retrieve the visibility to components and discriminants
-- in order to properly analyze the aspects.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 883befd..d5efd50 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-07-23 Ed Schonberg <schonberg@adacore.com>
+
+ * gnat.dg/task4.adb: New testcase.
+
2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/range_check5.adb: New testcase.
diff --git a/gcc/testsuite/gnat.dg/task4.adb b/gcc/testsuite/gnat.dg/task4.adb
new file mode 100644
index 0000000..9a97503
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/task4.adb
@@ -0,0 +1,19 @@
+-- { dg-do compile }
+
+with System.Multiprocessors;
+
+procedure Task4 is
+
+ task type Infinite_Loop (C : System.Multiprocessors.CPU_Range)
+ with CPU => C;
+
+ task body Infinite_Loop is
+ begin
+ loop
+ null;
+ end loop;
+ end Infinite_Loop;
+
+begin
+ null;
+end Task4;