-
- Downloads
Add modular exponentiation for UNSIGNED.
gcc/fortran/ChangeLog: * arith.cc (arith_power): Handle modular arithmetic for BT_UNSIGNED. (eval_intrinsic): Error for unsigned exponentiation with -pedantic. * expr.cc (gfc_type_convert_binary): Use type of first argument for unsigned exponentiation. * gfortran.texi: Mention arithmetic exponentiation. * resolve.cc (resolve_operator): Allow unsigned exponentiation. * trans-decl.cc (gfc_build_intrinsic_function_decls): Build declarations for unsigned exponentiation. * trans-expr.cc (gfc_conv_cst_uint_power): New function. (gfc_conv_power_op): Call it. Handle unsigned exponentiation. * trans.h (gfor_fndecl_unsigned_pow_list): Add declaration. libgfortran/ChangeLog: * Makefile.am: Add files for unsigned exponentiation. * Makefile.in: Regenerate. * gfortran.map: Add functions for unsigned exponentiation. * generated/pow_m16_m1.c: New file. * generated/pow_m16_m16.c: New file. * generated/pow_m16_m2.c: New file. * generated/pow_m16_m4.c: New file. * generated/pow_m16_m8.c: New file. * generated/pow_m1_m1.c: New file. * generated/pow_m1_m16.c: New file. * generated/pow_m1_m2.c: New file. * generated/pow_m1_m4.c: New file. * generated/pow_m1_m8.c: New file. * generated/pow_m2_m1.c: New file. * generated/pow_m2_m16.c: New file. * generated/pow_m2_m2.c: New file. * generated/pow_m2_m4.c: New file. * generated/pow_m2_m8.c: New file. * generated/pow_m4_m1.c: New file. * generated/pow_m4_m16.c: New file. * generated/pow_m4_m2.c: New file. * generated/pow_m4_m4.c: New file. * generated/pow_m4_m8.c: New file. * generated/pow_m8_m1.c: New file. * generated/pow_m8_m16.c: New file. * generated/pow_m8_m2.c: New file. * generated/pow_m8_m4.c: New file. * generated/pow_m8_m8.c: New file. * m4/powu.m4: New file. gcc/testsuite/ChangeLog: * gfortran.dg/unsigned_15.f90: Adjust error messages. * gfortran.dg/unsigned_43.f90: New test. * gfortran.dg/unsigned_44.f90: New test.
Showing
- gcc/fortran/arith.cc 18 additions, 4 deletionsgcc/fortran/arith.cc
- gcc/fortran/expr.cc 8 additions, 0 deletionsgcc/fortran/expr.cc
- gcc/fortran/gfortran.texi 4 additions, 3 deletionsgcc/fortran/gfortran.texi
- gcc/fortran/resolve.cc 0 additions, 13 deletionsgcc/fortran/resolve.cc
- gcc/fortran/trans-decl.cc 26 additions, 2 deletionsgcc/fortran/trans-decl.cc
- gcc/fortran/trans-expr.cc 157 additions, 3 deletionsgcc/fortran/trans-expr.cc
- gcc/fortran/trans.h 2 additions, 0 deletionsgcc/fortran/trans.h
- gcc/testsuite/gfortran.dg/unsigned_15.f90 2 additions, 2 deletionsgcc/testsuite/gfortran.dg/unsigned_15.f90
- gcc/testsuite/gfortran.dg/unsigned_43.f90 11862 additions, 0 deletionsgcc/testsuite/gfortran.dg/unsigned_43.f90
- gcc/testsuite/gfortran.dg/unsigned_44.f90 8436 additions, 0 deletionsgcc/testsuite/gfortran.dg/unsigned_44.f90
- libgfortran/Makefile.am 31 additions, 1 deletionlibgfortran/Makefile.am
- libgfortran/Makefile.in 136 additions, 18 deletionslibgfortran/Makefile.in
- libgfortran/generated/pow_m16_m1.c 79 additions, 0 deletionslibgfortran/generated/pow_m16_m1.c
- libgfortran/generated/pow_m16_m16.c 79 additions, 0 deletionslibgfortran/generated/pow_m16_m16.c
- libgfortran/generated/pow_m16_m2.c 79 additions, 0 deletionslibgfortran/generated/pow_m16_m2.c
- libgfortran/generated/pow_m16_m4.c 79 additions, 0 deletionslibgfortran/generated/pow_m16_m4.c
- libgfortran/generated/pow_m16_m8.c 79 additions, 0 deletionslibgfortran/generated/pow_m16_m8.c
- libgfortran/generated/pow_m1_m1.c 79 additions, 0 deletionslibgfortran/generated/pow_m1_m1.c
- libgfortran/generated/pow_m1_m16.c 79 additions, 0 deletionslibgfortran/generated/pow_m1_m16.c
- libgfortran/generated/pow_m1_m2.c 79 additions, 0 deletionslibgfortran/generated/pow_m1_m2.c
Loading
Please register or sign in to comment