1
0
mirror of https://github.com/golang/go synced 2024-10-01 09:38:36 -06:00

[dev.power64] runtime: test CAS on large unsigned 32-bit numbers

This adds a test to runtime·check to ensure CAS of large
unsigned 32-bit numbers does not accidentally sign-extend its
arguments.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/162490044
This commit is contained in:
Austin Clements 2014-10-30 11:17:26 -04:00
parent 097362fd2e
commit 36d417c0e3

View File

@ -226,6 +226,12 @@ runtime·check(void)
if(z != 4)
runtime·throw("cas4");
z = 0xffffffff;
if(!runtime·cas(&z, 0xffffffff, 0xfffffffe))
runtime·throw("cas5");
if(z != 0xfffffffe)
runtime·throw("cas6");
k = (byte*)0xfedcb123;
if(sizeof(void*) == 8)
k = (byte*)((uintptr)k<<10);