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
This commit is contained in:
parent
67acacee0e
commit
40242256f1
2 changed files with 18 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
* sem_util.adb (Contains_Refined_State): Remove.
|
||||
|
|
|
@ -450,6 +450,18 @@ package body Bindgen is
|
|||
begin
|
||||
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
|
||||
-- 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,
|
||||
|
|
Loading…
Add table
Reference in a new issue