mirror of
https://github.com/golang/go
synced 2024-11-19 02:54:42 -07: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:
parent
097362fd2e
commit
36d417c0e3
@ -226,6 +226,12 @@ runtime·check(void)
|
|||||||
if(z != 4)
|
if(z != 4)
|
||||||
runtime·throw("cas4");
|
runtime·throw("cas4");
|
||||||
|
|
||||||
|
z = 0xffffffff;
|
||||||
|
if(!runtime·cas(&z, 0xffffffff, 0xfffffffe))
|
||||||
|
runtime·throw("cas5");
|
||||||
|
if(z != 0xfffffffe)
|
||||||
|
runtime·throw("cas6");
|
||||||
|
|
||||||
k = (byte*)0xfedcb123;
|
k = (byte*)0xfedcb123;
|
||||||
if(sizeof(void*) == 8)
|
if(sizeof(void*) == 8)
|
||||||
k = (byte*)((uintptr)k<<10);
|
k = (byte*)((uintptr)k<<10);
|
||||||
|
Loading…
Reference in New Issue
Block a user