diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2022-11-22 13:03:00 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-11-24 11:11:25 +0100 |
commit | 7f77aa6b2f04781faa78373add11538d276c8ae4 (patch) | |
tree | fe824393ac1804a4887a0b88c60ba8a38412e7d7 /gcc/ada/gcc-interface | |
parent | af94026524eafbe1270e28e5142e5958a4dadf07 (diff) | |
download | gcc-7f77aa6b2f04781faa78373add11538d276c8ae4.zip gcc-7f77aa6b2f04781faa78373add11538d276c8ae4.tar.gz gcc-7f77aa6b2f04781faa78373add11538d276c8ae4.tar.bz2 |
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) <N_Assignment_Statement>: Add
assertion that memset is not supposed to be used when the target has
a storage model with Copy_To routine.
Diffstat (limited to 'gcc/ada/gcc-interface')
-rw-r--r-- | gcc/ada/gcc-interface/trans.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc index 1cd621a..b9d7c01 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 |