From: Eric Botcazou Date: Tue, 22 Nov 2022 12:03:00 +0000 (+0100) Subject: ada: Add assertion for the implementation of storage models X-Git-Tag: basepoints/gcc-14~2919 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7f77aa6b2f04781faa78373add11538d276c8ae4;p=thirdparty%2Fgcc.git ada: Add assertion for the implementation of storage models We cannot generate a call to memset for an aggregate with an Others choice when the target of the assignment has a storage model with Copy_To routine. gcc/ada/ * gcc-interface/trans.cc (gnat_to_gnu) : Add assertion that memset is not supposed to be used when the target has a storage model with Copy_To routine. --- diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc index 1cd621a9377a..b9d7c015a73d 100644 --- a/gcc/ada/gcc-interface/trans.cc +++ b/gcc/ada/gcc-interface/trans.cc @@ -7450,6 +7450,9 @@ gnat_to_gnu (Node_Id gnat_node) else if (Present (gnat_smo) && Present (Storage_Model_Copy_To (gnat_smo))) { + /* We obviously cannot use memset in this case. */ + gcc_assert (!use_memset_p); + tree t = remove_conversions (gnu_rhs, false); /* If a storage model load is present on the RHS then instantiate