This project is closed and read-only.
Actions
Backport #6736
closedAvoid misoptimization due to division by zero
Backport #6736:
Avoid misoptimization due to division by zero
Status:
Closed
Assignee:
Description
In time.c (quo) we have:
This code pattern is dangerous. Some C compilers may move the division before the check because:
-
It appears to the compiler that the division a / b is always reachable even with b == 0 (though rb_num_zerodiv invokes rb_raise internally).
-
Division by zero is undefined behavior.
This happened to PostgreSQL before.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=616180
Attached patch marks rb_num_zerodiv as NORETURN to avoid this issue.
Files
Actions