This is the mail archive of the
mailing list for the GCC project.
Error at division by constant zero
- From: "Unruh, Erwin" <Erwin dot Unruh at fujitsu-siemens dot com>
- To: gcc at gcc dot gnu dot org
- Cc: yasir999 at hotmail dot com
- Date: Fri, 23 Aug 2002 09:45:06 +0200
- Subject: Error at division by constant zero
When dividing an integer by constant zero, the GCC does emit a library call to
the corresponding routine. On Sparc this is .rem or .div, on Linux this might be
__modsi3 or __divsi3.
I think this is an error in expand_divmod. EXACT_POWER_OF_2_OR_ZERO_P gives
true. So we think we could use a shift optab. optab2 is a shift optab.
In case of zero we bypass the special code for dividing by a constant. We then
But the decision whether to use OPTAB_DIRECT or OPTAB_WIDEN is based on the
existence of a shift insn, which is a mistake.
Erwin Unruh, Fujitsu Siemens Computers, C/C++ compiler group