+2018-05-23 Javier Miranda <miranda@adacore.com>
+
+ * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report
+ the warning on occurrences of this attribute whose evaluation is always
+ true (since that subprogram aborts processing the attribute). In
+ addition, replace the node by its boolean result 'True' (required
+ because the backend has no knowledge of this attribute).
+
2018-05-23 Bob Duff <duff@adacore.com>
* libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The
else
if not Scalar_Part_Present (P_Type) then
- Error_Attr_P
- ("??attribute % always True, no scalars to check");
+ Error_Msg_Name_1 := Aname;
+ Error_Msg_F
+ ("??attribute % always True, no scalars to check", P);
+ Set_Boolean_Result (N, True);
end if;
-- Attribute 'Valid_Scalars is illegal on unchecked union types
+2018-05-23 Javier Miranda <miranda@adacore.com>
+
+ * gnat.dg/valid_scalars1.adb: New testcase.
+
2018-05-23 Ed Schonberg <schonberg@adacore.com>
* gnat.dg/iter1.adb, gnat.dg/iter1.ads: New testcase.
--- /dev/null
+-- { dg-do compile }
+-- { dg-options "-gnata -gnatws" }
+
+procedure Valid_Scalars1 is
+ type Ptr is access Integer;
+ V1 : Ptr;
+
+ Check : Boolean := V1'Valid_Scalars;
+begin
+ pragma Assert (Check);
+end;