While messing around with Swift, I noticed that when the 64 bit integer overflows, I get the following error:
file:///Users/user/Documents/playground/MyPlayground.playground/: error: Playground execution aborted: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
func fibonacci(which: Int) -> (fibOf: Int, isEqualTo: Int) {
var i = 1, j = 1
for var k = 2; k < which; k += 1 {
let tmp = i + j // this line is highlighted when error occurs
j = i
i = tmp
}
return (which, i)
}
print (fibonacci(92))
print (fibonacci(93)) // this triggers an error
The first call, i.e. with 92 as argument, will run fine. When supplying the 93 value however, I get the irrelevant EXC_BAD_INSTRUCTION error. Is this a bug or what? Normally I'd expect it to overflow.
It is expected behaviour. If you want to overflow, you need to use overflow operators.
&+
) &-
) &*
)If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With