This patch modifies the behavior of anonymous allocator warnings so that
they no longer get triggered in the case of an object declaration at
library-level.
2019-08-13 Justin Squirek <squirek@adacore.com>
gcc/ada/
* exp_ch4.adb (Expand_N_Allocator): Add condition to detect
library-level object declarations
gcc/testsuite/
* gnat.dg/anon3.adb, gnat.dg/anon3.ads: New testcase.
From-SVN: r274338
+2019-08-13 Justin Squirek <squirek@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Allocator): Add condition to detect
+ library-level object declarations
+
2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
* doc/gnat_ugn/building_executable_programs_with_gnat.rst
begin
-- Warn on the presence of an allocator of an anonymous access type when
- -- enabled.
+ -- enabled except when its an object declaration at library level.
if Warn_On_Anonymous_Allocators
and then Ekind (PtrT) = E_Anonymous_Access_Type
+ and then not (Is_Library_Level_Entity (PtrT)
+ and then Nkind (Associated_Node_For_Itype (PtrT)) =
+ N_Object_Declaration)
then
Error_Msg_N ("?use of an anonymous access type allocator", N);
end if;
+2019-08-13 Justin Squirek <squirek@adacore.com>
+
+ * gnat.dg/anon3.adb, gnat.dg/anon3.ads: New testcase.
+
2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/generic_inst8.adb, gnat.dg/generic_inst8.ads,
--- /dev/null
+-- { dg-do compile }
+-- { dg-options "-gnatwa" }
+
+package body Anon3 is
+ procedure Dummy is null;
+end Anon3;
--- /dev/null
+package Anon3 is
+ X : access Integer := new Integer;
+ procedure Dummy;
+end Anon3;