2019-12-16 Bob Duff <duff@adacore.com>
gcc/ada/
* sem_ch10.adb (Analyze_Subunit): Give an error if the subunit
is not a proper body. This hides the confusing "duplicate body"
message that was previously given.
From-SVN: r279424
+2019-12-16 Bob Duff <duff@adacore.com>
+
+ * sem_ch10.adb (Analyze_Subunit): Give an error if the subunit
+ is not a proper body. This hides the confusing "duplicate body"
+ message that was previously given.
+
2019-12-16 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Document
Install_Elaboration_Model (Par_Unit);
+ -- The syntax rules require a proper body for a subprogram subunit
+
+ if Nkind (Proper_Body (Sinfo.Unit (N))) = N_Subprogram_Declaration then
+ if Null_Present (Specification (Proper_Body (Sinfo.Unit (N)))) then
+ Error_Msg_N
+ ("null procedure not allowed as subunit",
+ Proper_Body (Unit (N)));
+ else
+ Error_Msg_N
+ ("subprogram declaration not allowed as subunit",
+ Defining_Unit_Name (Specification (Proper_Body (Unit (N)))));
+ end if;
+ end if;
+
Analyze (Proper_Body (Unit (N)));
Remove_Context (N);