When the SPARK restriction was set, GNAT was not issuing violations on generic.
Now corrected.
Tested on x86_64-pc-linux-gnu, committed on trunk
2011-08-04 Marc Sango <[email protected]>
* sem_ch12.adb (Analyze_Generic_Package_Declaration,
Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
mode.
Index: sem_ch12.adb
===================================================================
--- sem_ch12.adb (revision 177384)
+++ sem_ch12.adb (working copy)
@@ -2690,6 +2690,8 @@
Decl : Node_Id;
begin
+ Check_SPARK_Restriction ("generic is not allowed", N);
+
-- We introduce a renaming of the enclosing package, to have a usable
-- entity as the prefix of an expanded name for a local entity of the
-- form Par.P.Q, where P is the generic package. This is because a local
@@ -2811,6 +2813,8 @@
Typ : Entity_Id;
begin
+ Check_SPARK_Restriction ("generic is not allowed", N);
+
-- Create copy of generic unit, and save for instantiation. If the unit
-- is a child unit, do not copy the specifications for the parent, which
-- are not part of the generic tree.
@@ -3051,6 +3055,8 @@
-- Start of processing for Analyze_Package_Instantiation
begin
+ Check_SPARK_Restriction ("generic is not allowed", N);
+
-- Very first thing: apply the special kludge for Text_IO processing
-- in case we are instantiating one of the children of [Wide_]Text_IO.
@@ -4195,6 +4201,8 @@
-- Start of processing for Analyze_Subprogram_Instantiation
begin
+ Check_SPARK_Restriction ("generic is not allowed", N);
+
-- Very first thing: apply the special kludge for Text_IO processing
-- in case we are instantiating one of the children of [Wide_]Text_IO.
-- Of course such an instantiation is bogus (these are packages, not