+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
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);
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.
+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.
--- /dev/null
+-- { 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;