]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Add assertion for the implementation of storage models
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 22 Nov 2022 12:03:00 +0000 (13:03 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Thu, 24 Nov 2022 10:11:25 +0000 (11:11 +0100)
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) <N_Assignment_Statement>: Add
assertion that memset is not supposed to be used when the target has
a storage model with Copy_To routine.

gcc/ada/gcc-interface/trans.cc

index 1cd621a9377a33c28a38dfc6f7e4a7ebcb768a54..b9d7c015a73d58a192795e0e0048fbd3144e110f 100644 (file)
@@ -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