summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_exceptions.c7
-rw-r--r--Zend/zend_exceptions.h1
-rw-r--r--Zend/zend_operators.c6
-rw-r--r--ext/standard/math.c2
-rw-r--r--tests/lang/operators/bitwiseShiftLeft_basiclong_64bit.phpt4
-rw-r--r--tests/lang/operators/bitwiseShiftLeft_variationStr_64bit.phpt788
-rw-r--r--tests/lang/operators/bitwiseShiftRight_basiclong_64bit.phpt4
-rw-r--r--tests/lang/operators/bitwiseShiftRight_variationStr.phpt2
8 files changed, 410 insertions, 404 deletions
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index 9f5b2448d1..8c44b31d8c 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -31,6 +31,7 @@
#include "zend_smart_str.h"
ZEND_API zend_class_entry *zend_ce_throwable;
+ZEND_API zend_class_entry *zend_ce_arithmetic_error;
ZEND_API zend_class_entry *zend_ce_division_by_zero_error;
static zend_class_entry *default_exception_ce;
@@ -855,8 +856,12 @@ void zend_register_default_exception(void) /* {{{ */
type_error_ce = zend_register_internal_class_ex(&ce, error_ce);
type_error_ce->create_object = zend_default_exception_new;
+ INIT_CLASS_ENTRY(ce, "ArithmeticError", NULL);
+ zend_ce_arithmetic_error = zend_register_internal_class_ex(&ce, error_ce);
+ zend_ce_arithmetic_error->create_object = zend_default_exception_new;
+
INIT_CLASS_ENTRY(ce, "DivisionByZeroError", NULL);
- zend_ce_division_by_zero_error = zend_register_internal_class_ex(&ce, error_ce);
+ zend_ce_division_by_zero_error = zend_register_internal_class_ex(&ce, zend_ce_arithmetic_error);
zend_ce_division_by_zero_error->create_object = zend_default_exception_new;
}
/* }}} */
diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h
index f07bc78b88..8b5deed15c 100644
--- a/Zend/zend_exceptions.h
+++ b/Zend/zend_exceptions.h
@@ -27,6 +27,7 @@
BEGIN_EXTERN_C()
extern ZEND_API zend_class_entry *zend_ce_throwable;
+extern ZEND_API zend_class_entry *zend_ce_arithmetic_error;
extern ZEND_API zend_class_entry *zend_ce_division_by_zero_error;
ZEND_API void zend_exception_set_previous(zend_object *exception, zend_object *add_previous);
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 5ad1a14791..5e7a2911a1 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1167,7 +1167,7 @@ ZEND_API int ZEND_FASTCALL mod_function(zval *result, zval *op1, zval *op2) /* {
if (EG(current_execute_data) && !CG(in_compilation)) {
zend_throw_exception_ex(zend_ce_division_by_zero_error, 0, "Modulo by zero");
} else {
- zend_error_noreturn(E_ERROR, "Division by zero");
+ zend_error_noreturn(E_ERROR, "Modulo by zero");
}
ZVAL_UNDEF(result);
return FAILURE;
@@ -1518,7 +1518,7 @@ ZEND_API int ZEND_FASTCALL shift_left_function(zval *result, zval *op1, zval *op
return SUCCESS;
} else {
if (EG(current_execute_data) && !CG(in_compilation)) {
- zend_throw_exception_ex(NULL, 0, "Bit shift by negative number");
+ zend_throw_exception_ex(zend_ce_arithmetic_error, 0, "Bit shift by negative number");
} else {
zend_error_noreturn(E_ERROR, "Bit shift by negative number");
}
@@ -1549,7 +1549,7 @@ ZEND_API int ZEND_FASTCALL shift_right_function(zval *result, zval *op1, zval *o
return SUCCESS;
} else {
if (EG(current_execute_data) && !CG(in_compilation)) {
- zend_throw_exception_ex(NULL, 0, "Bit shift by negative number");
+ zend_throw_exception_ex(zend_ce_arithmetic_error, 0, "Bit shift by negative number");
} else {
zend_error_noreturn(E_ERROR, "Bit shift by negative number");
}
diff --git a/ext/standard/math.c b/ext/standard/math.c
index cdfb486c4f..9ab457b41d 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -1472,7 +1472,7 @@ PHP_FUNCTION(intdiv)
} else if (divisor == -1 && numerator == ZEND_LONG_MIN) {
/* Prevent overflow error/crash ... really should not happen:
We don't return a float here as that violates function contract */
- zend_error(E_ERROR | E_EXCEPTION, "Division of PHP_INT_MIN by -1 is not an integer");
+ zend_throw_exception_ex(zend_ce_arithmetic_error, 0, "Division of PHP_INT_MIN by -1 is not an integer");
return;
}
diff --git a/tests/lang/operators/bitwiseShiftLeft_basiclong_64bit.phpt b/tests/lang/operators/bitwiseShiftLeft_basiclong_64bit.phpt
index 556d8e3444..380beca219 100644
--- a/tests/lang/operators/bitwiseShiftLeft_basiclong_64bit.phpt
+++ b/tests/lang/operators/bitwiseShiftLeft_basiclong_64bit.phpt
@@ -27,7 +27,7 @@ foreach ($longVals as $longVal) {
echo "--- testing: $longVal << $otherVal ---\n";
try {
var_dump($longVal<<$otherVal);
- } catch (Exception $e) {
+ } catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
}
@@ -38,7 +38,7 @@ foreach ($otherVals as $otherVal) {
echo "--- testing: $otherVal << $longVal ---\n";
try {
var_dump($otherVal<<$longVal);
- } catch (Exception $e) {
+ } catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
}
diff --git a/tests/lang/operators/bitwiseShiftLeft_variationStr_64bit.phpt b/tests/lang/operators/bitwiseShiftLeft_variationStr_64bit.phpt
index 1ae091461f..174d947445 100644
--- a/tests/lang/operators/bitwiseShiftLeft_variationStr_64bit.phpt
+++ b/tests/lang/operators/bitwiseShiftLeft_variationStr_64bit.phpt
@@ -19,7 +19,7 @@ foreach ($strVals as $strVal) {
echo "--- testing: '$strVal' << '$otherVal' ---\n";
try {
var_dump($strVal<<$otherVal);
- } catch (Exception $e) {
+ } catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
}
@@ -29,396 +29,396 @@ foreach ($strVals as $strVal) {
?>
===DONE===
--EXPECT--
---- testing: '0' << '0' ---
-int(0)
---- testing: '0' << '65' ---
-int(0)
---- testing: '0' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '0' << '1.2' ---
-int(0)
---- testing: '0' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '0' << 'abc' ---
-int(0)
---- testing: '0' << '123abc' ---
-int(0)
---- testing: '0' << '123e5' ---
-int(0)
---- testing: '0' << '123e5xyz' ---
-int(0)
---- testing: '0' << ' 123abc' ---
-int(0)
---- testing: '0' << '123 abc' ---
-int(0)
---- testing: '0' << '123abc ' ---
-int(0)
---- testing: '0' << '3.4a' ---
-int(0)
---- testing: '0' << 'a5.9' ---
-int(0)
---- testing: '65' << '0' ---
-int(65)
---- testing: '65' << '65' ---
-int(0)
---- testing: '65' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '65' << '1.2' ---
-int(130)
---- testing: '65' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '65' << 'abc' ---
-int(65)
---- testing: '65' << '123abc' ---
-int(0)
---- testing: '65' << '123e5' ---
-int(0)
---- testing: '65' << '123e5xyz' ---
-int(0)
---- testing: '65' << ' 123abc' ---
-int(0)
---- testing: '65' << '123 abc' ---
-int(0)
---- testing: '65' << '123abc ' ---
-int(0)
---- testing: '65' << '3.4a' ---
-int(520)
---- testing: '65' << 'a5.9' ---
-int(65)
---- testing: '-44' << '0' ---
-int(-44)
---- testing: '-44' << '65' ---
-int(0)
---- testing: '-44' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '-44' << '1.2' ---
-int(-88)
---- testing: '-44' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '-44' << 'abc' ---
-int(-44)
---- testing: '-44' << '123abc' ---
-int(0)
---- testing: '-44' << '123e5' ---
-int(0)
---- testing: '-44' << '123e5xyz' ---
-int(0)
---- testing: '-44' << ' 123abc' ---
-int(0)
---- testing: '-44' << '123 abc' ---
-int(0)
---- testing: '-44' << '123abc ' ---
-int(0)
---- testing: '-44' << '3.4a' ---
-int(-352)
---- testing: '-44' << 'a5.9' ---
-int(-44)
---- testing: '1.2' << '0' ---
-int(1)
---- testing: '1.2' << '65' ---
-int(0)
---- testing: '1.2' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '1.2' << '1.2' ---
-int(2)
---- testing: '1.2' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '1.2' << 'abc' ---
-int(1)
---- testing: '1.2' << '123abc' ---
-int(0)
---- testing: '1.2' << '123e5' ---
-int(0)
---- testing: '1.2' << '123e5xyz' ---
-int(0)
---- testing: '1.2' << ' 123abc' ---
-int(0)
---- testing: '1.2' << '123 abc' ---
-int(0)
---- testing: '1.2' << '123abc ' ---
-int(0)
---- testing: '1.2' << '3.4a' ---
-int(8)
---- testing: '1.2' << 'a5.9' ---
-int(1)
---- testing: '-7.7' << '0' ---
-int(-7)
---- testing: '-7.7' << '65' ---
-int(0)
---- testing: '-7.7' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '-7.7' << '1.2' ---
-int(-14)
---- testing: '-7.7' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '-7.7' << 'abc' ---
-int(-7)
---- testing: '-7.7' << '123abc' ---
-int(0)
---- testing: '-7.7' << '123e5' ---
-int(0)
---- testing: '-7.7' << '123e5xyz' ---
-int(0)
---- testing: '-7.7' << ' 123abc' ---
-int(0)
---- testing: '-7.7' << '123 abc' ---
-int(0)
---- testing: '-7.7' << '123abc ' ---
-int(0)
---- testing: '-7.7' << '3.4a' ---
-int(-56)
---- testing: '-7.7' << 'a5.9' ---
-int(-7)
---- testing: 'abc' << '0' ---
-int(0)
---- testing: 'abc' << '65' ---
-int(0)
---- testing: 'abc' << '-44' ---
-Exception: Bit shift by negative number
---- testing: 'abc' << '1.2' ---
-int(0)
---- testing: 'abc' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: 'abc' << 'abc' ---
-int(0)
---- testing: 'abc' << '123abc' ---
-int(0)
---- testing: 'abc' << '123e5' ---
-int(0)
---- testing: 'abc' << '123e5xyz' ---
-int(0)
---- testing: 'abc' << ' 123abc' ---
-int(0)
---- testing: 'abc' << '123 abc' ---
-int(0)
---- testing: 'abc' << '123abc ' ---
-int(0)
---- testing: 'abc' << '3.4a' ---
-int(0)
---- testing: 'abc' << 'a5.9' ---
-int(0)
---- testing: '123abc' << '0' ---
-int(123)
---- testing: '123abc' << '65' ---
-int(0)
---- testing: '123abc' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '123abc' << '1.2' ---
-int(246)
---- testing: '123abc' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '123abc' << 'abc' ---
-int(123)
---- testing: '123abc' << '123abc' ---
-int(0)
---- testing: '123abc' << '123e5' ---
-int(0)
---- testing: '123abc' << '123e5xyz' ---
-int(0)
---- testing: '123abc' << ' 123abc' ---
-int(0)
---- testing: '123abc' << '123 abc' ---
-int(0)
---- testing: '123abc' << '123abc ' ---
-int(0)
---- testing: '123abc' << '3.4a' ---
-int(984)
---- testing: '123abc' << 'a5.9' ---
-int(123)
---- testing: '123e5' << '0' ---
-int(123)
---- testing: '123e5' << '65' ---
-int(0)
---- testing: '123e5' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '123e5' << '1.2' ---
-int(246)
---- testing: '123e5' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '123e5' << 'abc' ---
-int(123)
---- testing: '123e5' << '123abc' ---
-int(0)
---- testing: '123e5' << '123e5' ---
-int(0)
---- testing: '123e5' << '123e5xyz' ---
-int(0)
---- testing: '123e5' << ' 123abc' ---
-int(0)
---- testing: '123e5' << '123 abc' ---
-int(0)
---- testing: '123e5' << '123abc ' ---
-int(0)
---- testing: '123e5' << '3.4a' ---
-int(984)
---- testing: '123e5' << 'a5.9' ---
-int(123)
---- testing: '123e5xyz' << '0' ---
-int(123)
---- testing: '123e5xyz' << '65' ---
-int(0)
---- testing: '123e5xyz' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '123e5xyz' << '1.2' ---
-int(246)
---- testing: '123e5xyz' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '123e5xyz' << 'abc' ---
-int(123)
---- testing: '123e5xyz' << '123abc' ---
-int(0)
---- testing: '123e5xyz' << '123e5' ---
-int(0)
---- testing: '123e5xyz' << '123e5xyz' ---
-int(0)
---- testing: '123e5xyz' << ' 123abc' ---
-int(0)
---- testing: '123e5xyz' << '123 abc' ---
-int(0)
---- testing: '123e5xyz' << '123abc ' ---
-int(0)
---- testing: '123e5xyz' << '3.4a' ---
-int(984)
---- testing: '123e5xyz' << 'a5.9' ---
-int(123)
---- testing: ' 123abc' << '0' ---
-int(123)
---- testing: ' 123abc' << '65' ---
-int(0)
---- testing: ' 123abc' << '-44' ---
-Exception: Bit shift by negative number
---- testing: ' 123abc' << '1.2' ---
-int(246)
---- testing: ' 123abc' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: ' 123abc' << 'abc' ---
-int(123)
---- testing: ' 123abc' << '123abc' ---
-int(0)
---- testing: ' 123abc' << '123e5' ---
-int(0)
---- testing: ' 123abc' << '123e5xyz' ---
-int(0)
---- testing: ' 123abc' << ' 123abc' ---
-int(0)
---- testing: ' 123abc' << '123 abc' ---
-int(0)
---- testing: ' 123abc' << '123abc ' ---
-int(0)
---- testing: ' 123abc' << '3.4a' ---
-int(984)
---- testing: ' 123abc' << 'a5.9' ---
-int(123)
---- testing: '123 abc' << '0' ---
-int(123)
---- testing: '123 abc' << '65' ---
-int(0)
---- testing: '123 abc' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '123 abc' << '1.2' ---
-int(246)
---- testing: '123 abc' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '123 abc' << 'abc' ---
-int(123)
---- testing: '123 abc' << '123abc' ---
-int(0)
---- testing: '123 abc' << '123e5' ---
-int(0)
---- testing: '123 abc' << '123e5xyz' ---
-int(0)
---- testing: '123 abc' << ' 123abc' ---
-int(0)
---- testing: '123 abc' << '123 abc' ---
-int(0)
---- testing: '123 abc' << '123abc ' ---
-int(0)
---- testing: '123 abc' << '3.4a' ---
-int(984)
---- testing: '123 abc' << 'a5.9' ---
-int(123)
---- testing: '123abc ' << '0' ---
-int(123)
---- testing: '123abc ' << '65' ---
-int(0)
---- testing: '123abc ' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '123abc ' << '1.2' ---
-int(246)
---- testing: '123abc ' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '123abc ' << 'abc' ---
-int(123)
---- testing: '123abc ' << '123abc' ---
-int(0)
---- testing: '123abc ' << '123e5' ---
-int(0)
---- testing: '123abc ' << '123e5xyz' ---
-int(0)
---- testing: '123abc ' << ' 123abc' ---
-int(0)
---- testing: '123abc ' << '123 abc' ---
-int(0)
---- testing: '123abc ' << '123abc ' ---
-int(0)
---- testing: '123abc ' << '3.4a' ---
-int(984)
---- testing: '123abc ' << 'a5.9' ---
-int(123)
---- testing: '3.4a' << '0' ---
-int(3)
---- testing: '3.4a' << '65' ---
-int(0)
---- testing: '3.4a' << '-44' ---
-Exception: Bit shift by negative number
---- testing: '3.4a' << '1.2' ---
-int(6)
---- testing: '3.4a' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: '3.4a' << 'abc' ---
-int(3)
---- testing: '3.4a' << '123abc' ---
-int(0)
---- testing: '3.4a' << '123e5' ---
-int(0)
---- testing: '3.4a' << '123e5xyz' ---
-int(0)
---- testing: '3.4a' << ' 123abc' ---
-int(0)
---- testing: '3.4a' << '123 abc' ---
-int(0)
---- testing: '3.4a' << '123abc ' ---
-int(0)
---- testing: '3.4a' << '3.4a' ---
-int(24)
---- testing: '3.4a' << 'a5.9' ---
-int(3)
---- testing: 'a5.9' << '0' ---
-int(0)
---- testing: 'a5.9' << '65' ---
-int(0)
---- testing: 'a5.9' << '-44' ---
-Exception: Bit shift by negative number
---- testing: 'a5.9' << '1.2' ---
-int(0)
---- testing: 'a5.9' << '-7.7' ---
-Exception: Bit shift by negative number
---- testing: 'a5.9' << 'abc' ---
-int(0)
---- testing: 'a5.9' << '123abc' ---
-int(0)
---- testing: 'a5.9' << '123e5' ---
-int(0)
---- testing: 'a5.9' << '123e5xyz' ---
-int(0)
---- testing: 'a5.9' << ' 123abc' ---
-int(0)
---- testing: 'a5.9' << '123 abc' ---
-int(0)
---- testing: 'a5.9' << '123abc ' ---
-int(0)
---- testing: 'a5.9' << '3.4a' ---
-int(0)
---- testing: 'a5.9' << 'a5.9' ---
-int(0)
-===DONE===
+--- testing: '0' << '0' ---
+int(0)
+--- testing: '0' << '65' ---
+int(0)
+--- testing: '0' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '0' << '1.2' ---
+int(0)
+--- testing: '0' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '0' << 'abc' ---
+int(0)
+--- testing: '0' << '123abc' ---
+int(0)
+--- testing: '0' << '123e5' ---
+int(0)
+--- testing: '0' << '123e5xyz' ---
+int(0)
+--- testing: '0' << ' 123abc' ---
+int(0)
+--- testing: '0' << '123 abc' ---
+int(0)
+--- testing: '0' << '123abc ' ---
+int(0)
+--- testing: '0' << '3.4a' ---
+int(0)
+--- testing: '0' << 'a5.9' ---
+int(0)
+--- testing: '65' << '0' ---
+int(65)
+--- testing: '65' << '65' ---
+int(0)
+--- testing: '65' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '65' << '1.2' ---
+int(130)
+--- testing: '65' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '65' << 'abc' ---
+int(65)
+--- testing: '65' << '123abc' ---
+int(0)
+--- testing: '65' << '123e5' ---
+int(0)
+--- testing: '65' << '123e5xyz' ---
+int(0)
+--- testing: '65' << ' 123abc' ---
+int(0)
+--- testing: '65' << '123 abc' ---
+int(0)
+--- testing: '65' << '123abc ' ---
+int(0)
+--- testing: '65' << '3.4a' ---
+int(520)
+--- testing: '65' << 'a5.9' ---
+int(65)
+--- testing: '-44' << '0' ---
+int(-44)
+--- testing: '-44' << '65' ---
+int(0)
+--- testing: '-44' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '-44' << '1.2' ---
+int(-88)
+--- testing: '-44' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '-44' << 'abc' ---
+int(-44)
+--- testing: '-44' << '123abc' ---
+int(0)
+--- testing: '-44' << '123e5' ---
+int(0)
+--- testing: '-44' << '123e5xyz' ---
+int(0)
+--- testing: '-44' << ' 123abc' ---
+int(0)
+--- testing: '-44' << '123 abc' ---
+int(0)
+--- testing: '-44' << '123abc ' ---
+int(0)
+--- testing: '-44' << '3.4a' ---
+int(-352)
+--- testing: '-44' << 'a5.9' ---
+int(-44)
+--- testing: '1.2' << '0' ---
+int(1)
+--- testing: '1.2' << '65' ---
+int(0)
+--- testing: '1.2' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '1.2' << '1.2' ---
+int(2)
+--- testing: '1.2' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '1.2' << 'abc' ---
+int(1)
+--- testing: '1.2' << '123abc' ---
+int(0)
+--- testing: '1.2' << '123e5' ---
+int(0)
+--- testing: '1.2' << '123e5xyz' ---
+int(0)
+--- testing: '1.2' << ' 123abc' ---
+int(0)
+--- testing: '1.2' << '123 abc' ---
+int(0)
+--- testing: '1.2' << '123abc ' ---
+int(0)
+--- testing: '1.2' << '3.4a' ---
+int(8)
+--- testing: '1.2' << 'a5.9' ---
+int(1)
+--- testing: '-7.7' << '0' ---
+int(-7)
+--- testing: '-7.7' << '65' ---
+int(0)
+--- testing: '-7.7' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '-7.7' << '1.2' ---
+int(-14)
+--- testing: '-7.7' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '-7.7' << 'abc' ---
+int(-7)
+--- testing: '-7.7' << '123abc' ---
+int(0)
+--- testing: '-7.7' << '123e5' ---
+int(0)
+--- testing: '-7.7' << '123e5xyz' ---
+int(0)
+--- testing: '-7.7' << ' 123abc' ---
+int(0)
+--- testing: '-7.7' << '123 abc' ---
+int(0)
+--- testing: '-7.7' << '123abc ' ---
+int(0)
+--- testing: '-7.7' << '3.4a' ---
+int(-56)
+--- testing: '-7.7' << 'a5.9' ---
+int(-7)
+--- testing: 'abc' << '0' ---
+int(0)
+--- testing: 'abc' << '65' ---
+int(0)
+--- testing: 'abc' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: 'abc' << '1.2' ---
+int(0)
+--- testing: 'abc' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: 'abc' << 'abc' ---
+int(0)
+--- testing: 'abc' << '123abc' ---
+int(0)
+--- testing: 'abc' << '123e5' ---
+int(0)
+--- testing: 'abc' << '123e5xyz' ---
+int(0)
+--- testing: 'abc' << ' 123abc' ---
+int(0)
+--- testing: 'abc' << '123 abc' ---
+int(0)
+--- testing: 'abc' << '123abc ' ---
+int(0)
+--- testing: 'abc' << '3.4a' ---
+int(0)
+--- testing: 'abc' << 'a5.9' ---
+int(0)
+--- testing: '123abc' << '0' ---
+int(123)
+--- testing: '123abc' << '65' ---
+int(0)
+--- testing: '123abc' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '123abc' << '1.2' ---
+int(246)
+--- testing: '123abc' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '123abc' << 'abc' ---
+int(123)
+--- testing: '123abc' << '123abc' ---
+int(0)
+--- testing: '123abc' << '123e5' ---
+int(0)
+--- testing: '123abc' << '123e5xyz' ---
+int(0)
+--- testing: '123abc' << ' 123abc' ---
+int(0)
+--- testing: '123abc' << '123 abc' ---
+int(0)
+--- testing: '123abc' << '123abc ' ---
+int(0)
+--- testing: '123abc' << '3.4a' ---
+int(984)
+--- testing: '123abc' << 'a5.9' ---
+int(123)
+--- testing: '123e5' << '0' ---
+int(123)
+--- testing: '123e5' << '65' ---
+int(0)
+--- testing: '123e5' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '123e5' << '1.2' ---
+int(246)
+--- testing: '123e5' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '123e5' << 'abc' ---
+int(123)
+--- testing: '123e5' << '123abc' ---
+int(0)
+--- testing: '123e5' << '123e5' ---
+int(0)
+--- testing: '123e5' << '123e5xyz' ---
+int(0)
+--- testing: '123e5' << ' 123abc' ---
+int(0)
+--- testing: '123e5' << '123 abc' ---
+int(0)
+--- testing: '123e5' << '123abc ' ---
+int(0)
+--- testing: '123e5' << '3.4a' ---
+int(984)
+--- testing: '123e5' << 'a5.9' ---
+int(123)
+--- testing: '123e5xyz' << '0' ---
+int(123)
+--- testing: '123e5xyz' << '65' ---
+int(0)
+--- testing: '123e5xyz' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '123e5xyz' << '1.2' ---
+int(246)
+--- testing: '123e5xyz' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '123e5xyz' << 'abc' ---
+int(123)
+--- testing: '123e5xyz' << '123abc' ---
+int(0)
+--- testing: '123e5xyz' << '123e5' ---
+int(0)
+--- testing: '123e5xyz' << '123e5xyz' ---
+int(0)
+--- testing: '123e5xyz' << ' 123abc' ---
+int(0)
+--- testing: '123e5xyz' << '123 abc' ---
+int(0)
+--- testing: '123e5xyz' << '123abc ' ---
+int(0)
+--- testing: '123e5xyz' << '3.4a' ---
+int(984)
+--- testing: '123e5xyz' << 'a5.9' ---
+int(123)
+--- testing: ' 123abc' << '0' ---
+int(123)
+--- testing: ' 123abc' << '65' ---
+int(0)
+--- testing: ' 123abc' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: ' 123abc' << '1.2' ---
+int(246)
+--- testing: ' 123abc' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: ' 123abc' << 'abc' ---
+int(123)
+--- testing: ' 123abc' << '123abc' ---
+int(0)
+--- testing: ' 123abc' << '123e5' ---
+int(0)
+--- testing: ' 123abc' << '123e5xyz' ---
+int(0)
+--- testing: ' 123abc' << ' 123abc' ---
+int(0)
+--- testing: ' 123abc' << '123 abc' ---
+int(0)
+--- testing: ' 123abc' << '123abc ' ---
+int(0)
+--- testing: ' 123abc' << '3.4a' ---
+int(984)
+--- testing: ' 123abc' << 'a5.9' ---
+int(123)
+--- testing: '123 abc' << '0' ---
+int(123)
+--- testing: '123 abc' << '65' ---
+int(0)
+--- testing: '123 abc' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '123 abc' << '1.2' ---
+int(246)
+--- testing: '123 abc' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '123 abc' << 'abc' ---
+int(123)
+--- testing: '123 abc' << '123abc' ---
+int(0)
+--- testing: '123 abc' << '123e5' ---
+int(0)
+--- testing: '123 abc' << '123e5xyz' ---
+int(0)
+--- testing: '123 abc' << ' 123abc' ---
+int(0)
+--- testing: '123 abc' << '123 abc' ---
+int(0)
+--- testing: '123 abc' << '123abc ' ---
+int(0)
+--- testing: '123 abc' << '3.4a' ---
+int(984)
+--- testing: '123 abc' << 'a5.9' ---
+int(123)
+--- testing: '123abc ' << '0' ---
+int(123)
+--- testing: '123abc ' << '65' ---
+int(0)
+--- testing: '123abc ' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '123abc ' << '1.2' ---
+int(246)
+--- testing: '123abc ' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '123abc ' << 'abc' ---
+int(123)
+--- testing: '123abc ' << '123abc' ---
+int(0)
+--- testing: '123abc ' << '123e5' ---
+int(0)
+--- testing: '123abc ' << '123e5xyz' ---
+int(0)
+--- testing: '123abc ' << ' 123abc' ---
+int(0)
+--- testing: '123abc ' << '123 abc' ---
+int(0)
+--- testing: '123abc ' << '123abc ' ---
+int(0)
+--- testing: '123abc ' << '3.4a' ---
+int(984)
+--- testing: '123abc ' << 'a5.9' ---
+int(123)
+--- testing: '3.4a' << '0' ---
+int(3)
+--- testing: '3.4a' << '65' ---
+int(0)
+--- testing: '3.4a' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: '3.4a' << '1.2' ---
+int(6)
+--- testing: '3.4a' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: '3.4a' << 'abc' ---
+int(3)
+--- testing: '3.4a' << '123abc' ---
+int(0)
+--- testing: '3.4a' << '123e5' ---
+int(0)
+--- testing: '3.4a' << '123e5xyz' ---
+int(0)
+--- testing: '3.4a' << ' 123abc' ---
+int(0)
+--- testing: '3.4a' << '123 abc' ---
+int(0)
+--- testing: '3.4a' << '123abc ' ---
+int(0)
+--- testing: '3.4a' << '3.4a' ---
+int(24)
+--- testing: '3.4a' << 'a5.9' ---
+int(3)
+--- testing: 'a5.9' << '0' ---
+int(0)
+--- testing: 'a5.9' << '65' ---
+int(0)
+--- testing: 'a5.9' << '-44' ---
+Exception: Bit shift by negative number
+--- testing: 'a5.9' << '1.2' ---
+int(0)
+--- testing: 'a5.9' << '-7.7' ---
+Exception: Bit shift by negative number
+--- testing: 'a5.9' << 'abc' ---
+int(0)
+--- testing: 'a5.9' << '123abc' ---
+int(0)
+--- testing: 'a5.9' << '123e5' ---
+int(0)
+--- testing: 'a5.9' << '123e5xyz' ---
+int(0)
+--- testing: 'a5.9' << ' 123abc' ---
+int(0)
+--- testing: 'a5.9' << '123 abc' ---
+int(0)
+--- testing: 'a5.9' << '123abc ' ---
+int(0)
+--- testing: 'a5.9' << '3.4a' ---
+int(0)
+--- testing: 'a5.9' << 'a5.9' ---
+int(0)
+===DONE===
diff --git a/tests/lang/operators/bitwiseShiftRight_basiclong_64bit.phpt b/tests/lang/operators/bitwiseShiftRight_basiclong_64bit.phpt
index 9083f47b03..c85c440312 100644
--- a/tests/lang/operators/bitwiseShiftRight_basiclong_64bit.phpt
+++ b/tests/lang/operators/bitwiseShiftRight_basiclong_64bit.phpt
@@ -27,7 +27,7 @@ foreach ($longVals as $longVal) {
echo "--- testing: $longVal >> $otherVal ---\n";
try {
var_dump($longVal>>$otherVal);
- } catch (Exception $e) {
+ } catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
}
@@ -38,7 +38,7 @@ foreach ($otherVals as $otherVal) {
echo "--- testing: $otherVal >> $longVal ---\n";
try {
var_dump($otherVal>>$longVal);
- } catch (Exception $e) {
+ } catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
}
diff --git a/tests/lang/operators/bitwiseShiftRight_variationStr.phpt b/tests/lang/operators/bitwiseShiftRight_variationStr.phpt
index 018e9b27e5..1c3277acc8 100644
--- a/tests/lang/operators/bitwiseShiftRight_variationStr.phpt
+++ b/tests/lang/operators/bitwiseShiftRight_variationStr.phpt
@@ -15,7 +15,7 @@ foreach ($strVals as $strVal) {
echo "--- testing: '$strVal' >> '$otherVal' ---\n";
try {
var_dump($strVal>>$otherVal);
- } catch (Exception $e) {
+ } catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
}