]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.4] cmd/5g: make sure we normalize after unary ops on small types
authorKeith Randall <khr@golang.org>
Thu, 15 Jan 2015 22:39:58 +0000 (14:39 -0800)
committerAndrew Gerrand <adg@golang.org>
Tue, 17 Feb 2015 06:48:55 +0000 (06:48 +0000)
commit2b7d0b4c0d784d57ffc29cec2bdd167728d46f3c
treee8d7e0ad193f67cb88296852cb79b669e29ad03b
parent5caa9d15f26a088d3c75a183d70d4bf3a355200e
[release-branch.go1.4] cmd/5g: make sure we normalize after unary ops on small types

We were failing ^uint16(0xffff) == 0, as we computed 0xffff0000 instead.

I could only trigger a failure for the above case, the other two tests
^uint16(0xfffe) == 1 and -uint16(0xffff) == 1 didn't seem to fail
previously.  Somehow they get MOVHUs inserted for other reasons (used
by CMP instead of TST?).  I fixed OMINUS anyway, better safe than
sorry.

Fixes #9604

Change-Id: I4c2d5bdc667742873ac029fdbe3db0cf12893c27
Reviewed-on: https://go-review.googlesource.com/2940
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
(cherry picked from commit daa64ddfe64dda368e80cf224dc485fa63386f81)
Reviewed-on: https://go-review.googlesource.com/5002
src/cmd/5g/cgen.c
test/fixedbugs/issue9604.go [new file with mode: 0644]