Commit 40242256 by Simon Wright Committed by Eric Botcazou

re PR ada/66205 (gnatbind generates invalid code when finalization is enabled in…

re PR ada/66205 (gnatbind generates invalid code when finalization is enabled in restricted runtime)

	PR ada/66205
	* bindgen.adb (Gen_AdaFinal): If the restriction No_Task_Termination is
	set, generate a null body.

From-SVN: r255441
parent 67acacee
2017-12-06 Simon Wright <simon@pushface.org>
PR ada/66205
* bindgen.adb (Gen_AdaFinal): If the restriction No_Task_Termination is
set, generate a null body.
2017-12-05 Piotr Trojanek <trojanek@adacore.com> 2017-12-05 Piotr Trojanek <trojanek@adacore.com>
* sem_util.adb (Contains_Refined_State): Remove. * sem_util.adb (Contains_Refined_State): Remove.
......
...@@ -450,6 +450,18 @@ package body Bindgen is ...@@ -450,6 +450,18 @@ package body Bindgen is
begin begin
WBI (" procedure " & Ada_Final_Name.all & " is"); WBI (" procedure " & Ada_Final_Name.all & " is");
-- If task termination is not allowed, as is the case in restricted
-- runtimes, such as Ravenscar or ZFP, but may not be the case for all
-- configurable runtimes, we do not need program-level finalization.
if Cumulative_Restrictions.Set (No_Task_Termination) then
WBI (" begin");
WBI (" null;");
WBI (" end " & Ada_Final_Name.all & ";");
WBI ("");
return;
end if;
-- Call s_stalib_adafinal to await termination of tasks and so on. We -- Call s_stalib_adafinal to await termination of tasks and so on. We
-- want to do this if there is a main program, either in Ada or in some -- want to do this if there is a main program, either in Ada or in some
-- other language. (Note that Bind_Main_Program is True for Ada mains, -- other language. (Note that Bind_Main_Program is True for Ada mains,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment