Closed Bug 1054568 Opened 10 years ago Closed 10 years ago

Differential Testing: Different output message involving right-shift zero

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
macOS
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: gkw, Assigned: sunfish)

Details

(Keywords: testcase)

Attachments

(1 file)

function f(y) {
    return (y | 0) - (y >>> 0) / 15 ^ 0
}
f(1 / 0)
print(f(1))

$ ./js-dbg-opt-64-dm-nsprBuild-darwin-174e75a23eaf --fuzzing-safe --ion-offthread-compile=off 237264.js
0

$ ./js-dbg-opt-64-dm-nsprBuild-darwin-174e75a23eaf --fuzzing-safe --ion-offthread-compile=off --ion-eager 237264.js
1

Tested this on m-c rev 174e75a23eaf.

My configure flags are:

CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin12.5.0 --enable-debug --enable-optimize --enable-gczeal --enable-debug-symbols --disable-tests --enable-more-deterministic --with-ccache --enable-nspr-build

Jan/Hannes, any idea what's going on here?
Flags: needinfo?(jdemooij)
Flags: needinfo?(hv1989)
This looks like a truncation fault.

=> (1 - 0.1) | 0 
=> 0.9 | 0
=> 0

IonMonkey compiles as:
=> 1 | 0 - 0.1 | 0 
=> 1 - 0
=> 1

Needinfo to sunfish, nbp
Flags: needinfo?(sunfish)
Flags: needinfo?(nicolas.b.pierron)
Flags: needinfo?(jdemooij)
Flags: needinfo?(hv1989)
This patch makes unsigned division more consistent with signed division, and fixes this bug.
Assignee: nobody → sunfish
Attachment #8474124 - Flags: review?(nicolas.b.pierron)
Flags: needinfo?(sunfish)
Flags: needinfo?(nicolas.b.pierron)
Attachment #8474124 - Flags: review?(nicolas.b.pierron) → review+
https://hg.mozilla.org/mozilla-central/rev/b2d42dbdbfc8
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Flags: qe-verify-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: