void runtime_check(void) { __go_register_gc_roots(&runtime_roots); TestAtomic64(); }
void runtime·check(void) { int8 a; uint8 b; int16 c; uint16 d; int32 e; uint32 f; int64 g; uint64 h; float32 i, i1; float64 j, j1; void* k; uint16* l; struct x1 { byte x; }; struct y1 { struct x1 x1; byte y; }; if(sizeof(a) != 1) runtime·throw("bad a"); if(sizeof(b) != 1) runtime·throw("bad b"); if(sizeof(c) != 2) runtime·throw("bad c"); if(sizeof(d) != 2) runtime·throw("bad d"); if(sizeof(e) != 4) runtime·throw("bad e"); if(sizeof(f) != 4) runtime·throw("bad f"); if(sizeof(g) != 8) runtime·throw("bad g"); if(sizeof(h) != 8) runtime·throw("bad h"); if(sizeof(i) != 4) runtime·throw("bad i"); if(sizeof(j) != 8) runtime·throw("bad j"); if(sizeof(k) != sizeof(uintptr)) runtime·throw("bad k"); if(sizeof(l) != sizeof(uintptr)) runtime·throw("bad l"); if(sizeof(struct x1) != 1) runtime·throw("bad sizeof x1"); if(offsetof(struct y1, y) != 1) runtime·throw("bad offsetof y1.y"); if(sizeof(struct y1) != 2) runtime·throw("bad sizeof y1"); uint32 z; z = 1; if(!runtime·cas(&z, 1, 2)) runtime·throw("cas1"); if(z != 2) runtime·throw("cas2"); z = 4; if(runtime·cas(&z, 5, 6)) runtime·throw("cas3"); if(z != 4) runtime·throw("cas4"); *(uint64*)&j = ~0ULL; if(j == j) runtime·throw("float64nan"); if(!(j != j)) runtime·throw("float64nan1"); *(uint64*)&j1 = ~1ULL; if(j == j1) runtime·throw("float64nan2"); if(!(j != j1)) runtime·throw("float64nan3"); *(uint32*)&i = ~0UL; if(i == i) runtime·throw("float32nan"); if(!(i != i)) runtime·throw("float32nan1"); *(uint32*)&i1 = ~1UL; if(i == i1) runtime·throw("float32nan2"); if(!(i != i1)) runtime·throw("float32nan3"); TestAtomic64(); }