]> Cypherpunks repositories - gostls13.git/commit
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)
committerKeith Randall <khr@golang.org>
Thu, 15 Jan 2015 23:50:01 +0000 (23:50 +0000)
commitdaa64ddfe64dda368e80cf224dc485fa63386f81
tree63eb28ed8d74e3599cd2e3180bb8a86043b6c513
parentfdb855420b5d8690d9ad0f5d4833375f085637c1
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>
src/cmd/5g/cgen.c
test/fixedbugs/issue9604.go [new file with mode: 0644]