https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65510

--- Comment #2 from Chen Gang <gang.chen.5i5j at gmail dot com> ---
For test.i:

int oxu_driver_init(void)
{
 *(volatile unsigned int *)(-1) = *(unsigned int *)(-1);
}

If test.i use a valid number (>= 0x10) or normal variable instead of "-1", it
will be OK (the insns are almost the same between using valid numbers and using
variable).

If test.i use 0 (NULL) instead of "-1", it will be OK, too, but it will
generate an abort() insn for it (unlike valid numbers' and variable's insn).

If test.i se invalid number (e.g. -2, -1, 0x1, 0x2 ... 0xf), it will generate a
different insn which can not be recognized by MD file.


So for me, we need process the left invalid numbers just as processing 0 (NULL)
-- generate an abort() insn for them.

Reply via email to