From: Ed Schonberg Date: Tue, 5 Aug 2008 15:11:19 +0000 (+0200) Subject: 2008-08-05 Ed Schonberg X-Git-Tag: releases/gcc-4.4.0~3336 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fec4e7aba00bc1be7fddc051687127000052c22;p=thirdparty%2Fgcc.git 2008-08-05 Ed Schonberg * freeze.adb: (Freeze_Entity): A deferred constant does not violate the restriction No_Default_Initialization, From-SVN: r138725 --- 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