|
| 1 | +--TEST-- |
| 2 | +Bug GH-16870 (Overly restrictive gmp_pow overflow checks) |
| 3 | +--EXTENSIONS-- |
| 4 | +gmp |
| 5 | +--FILE-- |
| 6 | +<?php |
| 7 | +echo '64^11 = 0x', gmp_strval(gmp_pow(64, 11), 16), "\n"; |
| 8 | +echo '2^31 = 0x', gmp_strval(gmp_pow(2, 31), 16), "\n"; |
| 9 | +echo '2^32 = 0x', gmp_strval(gmp_pow(2, 32), 16), "\n"; |
| 10 | +echo '2^64 = 0x', gmp_strval(gmp_pow(2, 64), 16), "\n"; |
| 11 | +echo '2^128 = 0x', gmp_strval(gmp_pow(2, 128), 16), "\n"; |
| 12 | +echo '2^512 = 0x', gmp_strval(gmp_pow(2, 512), 16), "\n"; |
| 13 | +echo '2^1024 = 0x', gmp_strval(gmp_pow(2, 1024), 16), "\n"; |
| 14 | +echo '2^16384 = 0x', gmp_strval(gmp_pow(2, 16384), 16), "\n"; |
| 15 | +?> |
| 16 | +--EXPECT-- |
| 17 | +64^11 = 0x40000000000000000 |
| 18 | +2^31 = 0x80000000 |
| 19 | +2^32 = 0x100000000 |
| 20 | +2^64 = 0x10000000000000000 |
| 21 | +2^128 = 0x100000000000000000000000000000000 |
| 22 | +2^512 = 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
| 23 | +2^1024 = 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
| 24 | +2^16384 = 0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
0 commit comments