From 4fec4e7aba00bc1be7fddc051687127000052c22 Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Tue, 5 Aug 2008 17:11:19 +0200 Subject: [PATCH] 2008-08-05 Ed Schonberg * freeze.adb: (Freeze_Entity): A deferred constant does not violate the restriction No_Default_Initialization, From-SVN: r138725 --- gcc/ada/freeze.adb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index dffcbaf3b403..5a8f98380a71 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -2664,8 +2664,15 @@ package body Freeze is -- The check doesn't apply to imported objects, which are not -- ever default initialized, and is why the check is deferred -- until freezing, at which point we know if Import applies. + -- Deferred constants are also exempted from this test because + -- their completion is explicit, or through an import pragma. - if Comes_From_Source (E) + if Ekind (E) = E_Constant + and then Present (Full_View (E)) + then + null; + + elsif Comes_From_Source (E) and then not Is_Imported (E) and then not Has_Init_Expression (Declaration_Node (E)) and then -- 2.47.2