Clang 3.0 assumes that `int r = ri * ai; return r/ai == ri` is always true
Clang 3.0 assumes that `int r = ri * ai; return r/ai == ri` is always true

- the current solution uses a `long long r` and makes sure that the potential overflow is not ignored

Signed-off-by: Stefan Marr <46f1a0bd5592a2f9244ca321b129902a06b53e03@stefan-marr.de>

smarr/OmniVM,smarr/OmniVM,smarr/OmniVM,smarr/OmniVM,smarr/OmniVM,smarr/OmniVM,smarr/OmniVM,smarr/OmniVM