diff options
author | Ed Schonberg <schonberg@adacore.com> | 2019-07-23 08:13:41 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-07-23 08:13:41 +0000 |
commit | 4e2a165210c07078ad1226ca3f0712a457a73d0e (patch) | |
tree | 7bd48f2678d74cb494675a4342b1571ef72c2740 /gcc | |
parent | 67460d45757a79cdc91fdde1dc1b1a18e4aba6b2 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/sem_ch13.adb | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/task4.adb | 19 |
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; |