diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-02-23 19:13:36 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-05-23 09:59:06 +0200 |
commit | ad16b816d56a2b49adcc9662275a14bf9e4cf6e9 (patch) | |
tree | c930d4b9b9df1b6718abd691c0dc02a516d5a168 /libbacktrace/alloc.c | |
parent | 9826f1e019f6abc5f4960dcfd8f7fcf83dc820dc (diff) | |
download | gcc-ad16b816d56a2b49adcc9662275a14bf9e4cf6e9.zip gcc-ad16b816d56a2b49adcc9662275a14bf9e4cf6e9.tar.gz gcc-ad16b816d56a2b49adcc9662275a14bf9e4cf6e9.tar.bz2 |
ada: Fix resolution of mod operator of System.Storage_Elements
This operator is special because the left operand is of Address type while
the right operand and the result are of Storage_Offset type (but we raise
Constraint_Error if the right operand is not positive) and it needs to be
resolved to the type of the left operand to implement the correct semantics.
gcc/ada/
* exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
operator of System.Storage_Elements. Do not rewrite it into a rem.
* sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
left operand for the special mod operator of System.Storage_Elements
Diffstat (limited to 'libbacktrace/alloc.c')
0 files changed, 0 insertions, 0 deletions