aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Baird <baird@adacore.com>2022-07-25 17:19:29 -0700
committerMarc Poulhiès <poulhies@adacore.com>2022-09-05 09:21:05 +0200
commit2237f94d32c1116d221b2818c04d1db4508665af (patch)
tree614e35b9bf5b2ee535786e3d380700718aaf997f
parent645d1208bf948aed1d6030ca2e9d1510e7459a95 (diff)
downloadgcc-2237f94d32c1116d221b2818c04d1db4508665af.zip
gcc-2237f94d32c1116d221b2818c04d1db4508665af.tar.gz
gcc-2237f94d32c1116d221b2818c04d1db4508665af.tar.bz2
[Ada] Bad Default_Initial_Condition check for a not-default-initialized object
No Default_Initial_Condition check should be generated for an object declaration that has an explicit initial value. Previously this was implemented by testing the Has_Init_Expression flag, but this only works if the object declaration was created by the parser (since only the parser sets that attribute, at least currently). gcc/ada/ * exp_ch3.adb (Expand_N_Object_Declaration): In deciding whether to emit a DIC check, we were previously testing the Has_Init_Expression flag. Continue to test that flag as before, but add a test for the syntactic presence of an initial value in the object declaration. This new test would not supersede the old test in the case where an explicit initial value has been eliminated as part of some tree transformation.
-rw-r--r--gcc/ada/exp_ch3.adb1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index eee5823..0d82691 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -7850,6 +7850,7 @@ package body Exp_Ch3 is
and then Present (DIC_Procedure (Typ))
and then not Has_Null_Body (DIC_Procedure (Typ))
and then not Has_Init_Expression (N)
+ and then No (Expr)
and then not Is_Imported (Def_Id)
then
declare