diff options
author | Harald Anlauf <anlauf@gmx.de> | 2023-04-13 22:42:23 +0200 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2023-04-13 22:42:23 +0200 |
commit | 43816633afd275a9057232a6ebfdc19e441f09ec (patch) | |
tree | 1be51eac455bf3e9632e991c9196fca644d2c50b /gcc | |
parent | 50dc52e853ff267ad1f4c98571c262017b0536f8 (diff) | |
download | gcc-43816633afd275a9057232a6ebfdc19e441f09ec.zip gcc-43816633afd275a9057232a6ebfdc19e441f09ec.tar.gz gcc-43816633afd275a9057232a6ebfdc19e441f09ec.tar.bz2 |
Fortran: call of overloaded ‘abs(long long int&)’ is ambiguous [PR109492]
gcc/fortran/ChangeLog:
PR fortran/109492
* trans-expr.cc (gfc_conv_power_op): Use absu_hwi and
unsigned HOST_WIDE_INT for portability.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/trans-expr.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc index 79367fa..09cdd92 100644 --- a/gcc/fortran/trans-expr.cc +++ b/gcc/fortran/trans-expr.cc @@ -3400,11 +3400,12 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) && TREE_CODE (TREE_TYPE (rse.expr)) == INTEGER_TYPE) { wi::tree_to_wide_ref wlhs = wi::to_wide (lse.expr); - HOST_WIDE_INT v, w; + HOST_WIDE_INT v; + unsigned HOST_WIDE_INT w; int kind, ikind, bit_size; v = wlhs.to_shwi (); - w = abs (v); + w = absu_hwi (v); kind = expr->value.op.op1->ts.kind; ikind = gfc_validate_kind (BT_INTEGER, kind, false); |