diff options
| -rw-r--r-- | generator.go | 46 | ||||
| -rw-r--r-- | internal/bin/bin_linux_amd64.go | 536 | ||||
| -rw-r--r-- | internal/mptest/mptest_linux_amd64.go | 80 | ||||
| -rw-r--r-- | internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c | 289 | ||||
| -rw-r--r-- | internal/threadtest1/threadtest1_linux_amd64.go | 42 | ||||
| -rw-r--r-- | internal/threadtest2/threadtest2_linux_amd64.go | 4 | ||||
| -rw-r--r-- | internal/threadtest3/threadtest3_linux_amd64.go | 24 | ||||
| -rw-r--r-- | z_linux_test.go | 44 | 
8 files changed, 693 insertions, 372 deletions
| diff --git a/generator.go b/generator.go index dc5baa3..106fe43 100644 --- a/generator.go +++ b/generator.go @@ -496,6 +496,50 @@ func mpTest() {  	cp(filepath.Join("testdata", tag), pth, "*.subtest")  } +func threadTest1() { +	repo := findRepo(sqliteRepo) +	if repo == "" { +		log.Fatalf("repository not found: %v", sqliteRepo) +		return +	} + +	sqlitePth := filepath.Join(repo, "sqlite-amalgamation-"+version) +	tag := "threadtest1" +	test := filepath.Join("internal", "sqlite.org", "sqlite-src-3190300", "test", "threadtest1.c") +	_, src := build( +		defines, +		[][]string{ +			{filepath.Join(sqlitePth, "sqlite3.c")}, +			{test}, +		}, +		[]string{"bin"}, +		cc.EnableAnonymousStructFields(), +		cc.IncludePaths([]string{".", sqlitePth, filepath.Join(repo, "sqlite-src-"+version, "src")}), +	) + +	var b bytes.Buffer +	fmt.Fprintf(&b, prologueTest, tidyComments(header(test))) +	b.Write(src) +	b2, err := format.Source(b.Bytes()) +	if err != nil { +		b2 = b.Bytes() +	} +	if err := os.MkdirAll(filepath.Join("internal", tag), 0775); err != nil { +		log.Fatal(err) +	} + +	if err := os.MkdirAll(filepath.Join("testdata", tag), 0775); err != nil { +		log.Fatal(err) +	} + +	dst := fmt.Sprintf(filepath.Join("internal", tag, tag+"_%s_%s.go"), runtime.GOOS, runtime.GOARCH) +	if err := ioutil.WriteFile(dst, b2, 0664); err != nil { +		log.Fatal(err) +	} + +	unconvert(dst) +} +  func threadTest(n int) {  	repo := findRepo(sqliteRepo)  	if repo == "" { @@ -600,7 +644,7 @@ func main() {  	sqlite()  	mpTest() -	threadTest(1) +	threadTest1()  	threadTest(2)  	threadTest3()  	threadTest(4) diff --git a/internal/bin/bin_linux_amd64.go b/internal/bin/bin_linux_amd64.go index 677302d..1b1e0cc 100644 --- a/internal/bin/bin_linux_amd64.go +++ b/internal/bin/bin_linux_amd64.go @@ -1415,7 +1415,7 @@ _144:  	if _exp > i32(350) {  		_bufpt = (*int8)(unsafe.Pointer(&_buf))  		*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_buf)) + 1*uintptr(i32(0)))) = _prefix -		crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(&_buf))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(bool2int(int32(_prefix) != i32(0)))))))))), (unsafe.Pointer)(str(245)), uint64(i32(4))) +		crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(&_buf))))+uintptr(bool2int(int32(_prefix) != i32(0)))))), (unsafe.Pointer)(str(245)), uint64(i32(4)))  		_length = i32(3) + bool2int(int32(_prefix) != i32(0))  		goto _119  	} @@ -1533,7 +1533,7 @@ _183:  		goto _183  	}  	func() { -		if uintptr(unsafe.Pointer(_bufpt)) <= uintptr(unsafe.Pointer(_zOut)) { +		if crt.P2U(unsafe.Pointer(_bufpt)) <= crt.P2U(unsafe.Pointer(_zOut)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(25626), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VXPrintfØ00__func__Ø000))), unsafe.Pointer(str(261)))  			crt.X__builtin_abort(tls)  		} @@ -2178,7 +2178,7 @@ func init() {  }  func _isLookaside(tls *crt.TLS, _db *Xsqlite3, _p unsafe.Pointer) (r0 int32) { -	return bool2int((uint64(uintptr(_p)) >= uint64(uintptr((*t7)(unsafe.Pointer(&(_db.X58))).X7))) && (uint64(uintptr(_p)) < uint64(uintptr((*t7)(unsafe.Pointer(&(_db.X58))).X8)))) +	return bool2int((uint64(crt.P2U(_p)) >= uint64(crt.P2U((*t7)(unsafe.Pointer(&(_db.X58))).X7))) && (uint64(crt.P2U(_p)) < uint64(crt.P2U((*t7)(unsafe.Pointer(&(_db.X58))).X8))))  }  // Free memory previously obtained from sqlite3Malloc(). @@ -3055,7 +3055,7 @@ func _sqlite3MisuseError(tls *crt.TLS, _lineno int32) (r0 int32) {  // 2.  Invoke sqlite3_log() to provide the source code location where  // a low-level error is first detected.  func _reportError(tls *crt.TLS, _iErr int32, _lineno int32, _zType *int8) (r0 int32) { -	Xsqlite3_log(tls, _iErr, str(1702), unsafe.Pointer(_zType), _lineno, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(20))))))+uintptr(unsafe.Pointer(Xsqlite3_sourceid(tls))))))) +	Xsqlite3_log(tls, _iErr, str(1702), unsafe.Pointer(_zType), _lineno, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(20))+uintptr(unsafe.Pointer(Xsqlite3_sourceid(tls)))))))  	return _iErr  } @@ -3449,7 +3449,7 @@ _4:  	if _2_i >= (_2_n - i32(1)) {  		goto _7  	} -	*(**Xsqlite3_file)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_2_pSlot.X0))))) = (*Xsqlite3_file)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_2_sz))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_2_pSlot)))))))) +	*(**Xsqlite3_file)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_2_pSlot.X0))))) = (*Xsqlite3_file)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_2_sz) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_2_pSlot))))))))  	_2_pSlot = (*Xsqlite3_file)(_2_pSlot.X0)  	_2_i += 1  	goto _4 @@ -4164,7 +4164,7 @@ func _pcache1Free(tls *crt.TLS, _p unsafe.Pointer) {  	if _p == nil {  		return  	} -	if (uint64(uintptr(_p)) >= uint64(uintptr(_pcache1_g.X7))) && (uint64(uintptr(_p)) < uint64(uintptr(_pcache1_g.X8))) { +	if (uint64(crt.P2U(_p)) >= uint64(crt.P2U(_pcache1_g.X7))) && (uint64(crt.P2U(_p)) < uint64(crt.P2U(_pcache1_g.X8))) {  		Xsqlite3_mutex_enter(tls, (*Xsqlite3_mutex)(_pcache1_g.X9))  		_sqlite3StatusDown(tls, i32(1), i32(1))  		_1_pSlot = (*Xsqlite3_file)(_p) @@ -5211,7 +5211,7 @@ _3:  	if (_token != i32(22)) && (_token != i32(125)) {  		goto _1  	} -	_zRet = _sqlite3MPrintf(tls, _db, str(4241), int32(int64((uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_tname.X0))))-uintptr(unsafe.Pointer(_zSql)))/1)), unsafe.Pointer(_zSql), unsafe.Pointer(_zTableName), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_tname.X0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_tname.X1))))))))) +	_zRet = _sqlite3MPrintf(tls, _db, str(4241), int32(int64((uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_tname.X0))))-uintptr(unsafe.Pointer(_zSql)))/1)), unsafe.Pointer(_zSql), unsafe.Pointer(_zTableName), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_tname.X0))+uintptr(_tname.X1)))))  	Xsqlite3_result_text(tls, _context, _zRet, i32(-1), *(*func(*crt.TLS, unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer) int32  	}{_sqlite3MallocSize}))) @@ -5322,7 +5322,7 @@ func _valueToText(tls *crt.TLS, _pVal *XMem, _enc uint8) (r0 unsafe.Pointer) {  	if int32(_pVal.X2) != (int32(_enc) & i32(-9)) {  		_sqlite3VdbeChangeEncoding(tls, _pVal, int32(_enc)&i32(-9))  	} -	if (int32(_enc)&i32(8)) == i32(0) || i32(1) != (i32(1)&int32(int64(uintptr(unsafe.Pointer(_pVal.X5))))) { +	if (int32(_enc)&i32(8)) == i32(0) || i32(1) != (i32(1)&int32(int64(crt.P2U(unsafe.Pointer(_pVal.X5))))) {  		goto _17  	}  	func() { @@ -5340,7 +5340,7 @@ _17:  _11:  	_sqlite3VdbeMemStringify(tls, _pVal, _enc, uint8(i32(0)))  	func() { -		if i32(0) != (i32(1) & int32(int64(uintptr(unsafe.Pointer(_pVal.X5))))) { +		if i32(0) != (i32(1) & int32(int64(crt.P2U(unsafe.Pointer(_pVal.X5))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(70736), unsafe.Pointer((*int8)(unsafe.Pointer(&_valueToTextØ00__func__Ø000))), unsafe.Pointer(str(4467)))  			crt.X__builtin_abort(tls)  		} @@ -5936,9 +5936,9 @@ func _sqlite3VdbeMemTranslate(tls *crt.TLS, _pMem *XMem, _desiredEnc uint8) (r0  	_zIn = (*uint8)(unsafe.Pointer(_pMem.X5))  	_zTerm = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zIn)) + 1*uintptr((_pMem.X4)&i32(-2))))  _16: -	if uintptr(unsafe.Pointer(_zIn)) < uintptr(unsafe.Pointer(_zTerm)) { +	if crt.P2U(unsafe.Pointer(_zIn)) < crt.P2U(unsafe.Pointer(_zTerm)) {  		_1_temp = *_zIn -		*_zIn = *(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zIn)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(1)))))))) +		*_zIn = *(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zIn)) + uintptr(i32(1))))  		*(*uintptr)(unsafe.Pointer(&_zIn)) += uintptr(1)  		*postInc13(&_zIn, 1) = _1_temp  		goto _16 @@ -5971,7 +5971,7 @@ _19:  		goto _22  	}  _23: -	if uintptr(unsafe.Pointer(_zIn)) >= uintptr(unsafe.Pointer(_zTerm)) { +	if crt.P2U(unsafe.Pointer(_zIn)) >= crt.P2U(unsafe.Pointer(_zTerm)) {  		goto _24  	}  	_c = uint32(*postInc13(&_zIn, 1)) @@ -6009,7 +6009,7 @@ _22:  		}  	}()  _37: -	if uintptr(unsafe.Pointer(_zIn)) >= uintptr(unsafe.Pointer(_zTerm)) { +	if crt.P2U(unsafe.Pointer(_zIn)) >= crt.P2U(unsafe.Pointer(_zTerm)) {  		goto _38  	}  	_c = uint32(*postInc13(&_zIn, 1)) @@ -6053,7 +6053,7 @@ _21:  		goto _51  	}  _52: -	if uintptr(unsafe.Pointer(_zIn)) >= uintptr(unsafe.Pointer(_zTerm)) { +	if crt.P2U(unsafe.Pointer(_zIn)) >= crt.P2U(unsafe.Pointer(_zTerm)) {  		goto _53  	}  	_c = uint32(*postInc13(&_zIn, 1)) @@ -6062,7 +6062,7 @@ _52:  		*p = (*p) + uint32(int32(*postInc13(&_zIn, 1))<<uint(i32(8)))  		sink5(*p)  	} -	if ((_c >= uint32(i32(55296))) && (_c < uint32(i32(57344)))) && (uintptr(unsafe.Pointer(_zIn)) < uintptr(unsafe.Pointer(_zTerm))) { +	if ((_c >= uint32(i32(55296))) && (_c < uint32(i32(57344)))) && (crt.P2U(unsafe.Pointer(_zIn)) < crt.P2U(unsafe.Pointer(_zTerm))) {  		_28_c2 = int32(*postInc13(&_zIn, 1))  		{  			p := &_28_c2 @@ -6096,7 +6096,7 @@ _53:  	goto _63  _51:  _64: -	if uintptr(unsafe.Pointer(_zIn)) >= uintptr(unsafe.Pointer(_zTerm)) { +	if crt.P2U(unsafe.Pointer(_zIn)) >= crt.P2U(unsafe.Pointer(_zTerm)) {  		goto _65  	}  	_c = uint32(int32(*postInc13(&_zIn, 1)) << uint(i32(8))) @@ -6105,7 +6105,7 @@ _64:  		*p = (*p) + uint32(*postInc13(&_zIn, 1))  		sink5(*p)  	} -	if ((_c >= uint32(i32(55296))) && (_c < uint32(i32(57344)))) && (uintptr(unsafe.Pointer(_zIn)) < uintptr(unsafe.Pointer(_zTerm))) { +	if ((_c >= uint32(i32(55296))) && (_c < uint32(i32(57344)))) && (crt.P2U(unsafe.Pointer(_zIn)) < crt.P2U(unsafe.Pointer(_zTerm))) {  		_37_c2 = int32(*postInc13(&_zIn, 1)) << uint(i32(8))  		{  			p := &_37_c2 @@ -7380,7 +7380,7 @@ func _sqlite3VdbeMemHandleBom(tls *crt.TLS, _pMem *XMem) (r0 int32) {  		goto _2  	}  	_1_b1 = *(*uint8)(unsafe.Pointer(_pMem.X5)) -	_1_b2 = *(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_pMem.X5)))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(1)))))))) +	_1_b2 = *(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_pMem.X5)))) + uintptr(i32(1))))  	if (int32(_1_b1) == i32(254)) && (int32(_1_b2) == i32(255)) {  		_bom = uint8(i32(3))  	} @@ -7488,7 +7488,7 @@ _3:  	if (_dist != i32(2)) || (((_token != i32(137)) && (_token != i32(45))) && (_token != i32(5))) {  		goto _1  	} -	_zRet = _sqlite3MPrintf(tls, _db, str(4241), int32(int64((uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_tname.X0))))-uintptr(unsafe.Pointer(_zSql)))/1)), unsafe.Pointer(_zSql), unsafe.Pointer(_zTableName), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_tname.X0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_tname.X1))))))))) +	_zRet = _sqlite3MPrintf(tls, _db, str(4241), int32(int64((uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_tname.X0))))-uintptr(unsafe.Pointer(_zSql)))/1)), unsafe.Pointer(_zSql), unsafe.Pointer(_zTableName), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_tname.X0))+uintptr(_tname.X1)))))  	Xsqlite3_result_text(tls, _context, _zRet, i32(-1), *(*func(*crt.TLS, unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer) int32  	}{_sqlite3MallocSize}))) @@ -7556,7 +7556,7 @@ _7:  	}  	_sqlite3DbFree(tls, _db, (unsafe.Pointer)(_2_zParent))  _6: -	_z = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_n))))))) +	_z = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(_n)))  	goto _2  _5:  	Xsqlite3_result_text(tls, func() *Xsqlite3_context { @@ -7912,7 +7912,7 @@ func _sqlite3AtoF(tls *crt.TLS, _z *int8, _pResult *float64, _length int32, _enc  	var _s int64  	var _zEnd *int8  	var _result, _22_scale float64 -	_zEnd = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_length))))))) +	_zEnd = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(_length)))  	_sign = i32(1)  	_s = i64(0)  	_d = i32(0) @@ -7954,7 +7954,7 @@ _10:  		sink0(*p)  	}  _5: -	if (uintptr(unsafe.Pointer(_z)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(1)) != 0 { +	if (crt.P2U(unsafe.Pointer(_z)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(1)) != 0 {  		{  			p := &_z  			*p = (*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(_incr))) @@ -7962,7 +7962,7 @@ _5:  		}  		goto _5  	} -	if uintptr(unsafe.Pointer(_z)) >= uintptr(unsafe.Pointer(_zEnd)) { +	if crt.P2U(unsafe.Pointer(_z)) >= crt.P2U(unsafe.Pointer(_zEnd)) {  		return i32(0)  	}  	if int32(*_z) == i32(45) { @@ -7982,7 +7982,7 @@ _5:  		}  	}  _17: -	if ((uintptr(unsafe.Pointer(_z)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) != 0) && (_s < i64(922337203685477579)) { +	if ((crt.P2U(unsafe.Pointer(_z)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) != 0) && (_s < i64(922337203685477579)) {  		_s = (_s * int64(i32(10))) + int64(int32(*_z)-i32(48))  		*func() *int32 {  			{ @@ -7995,7 +7995,7 @@ _17:  		goto _17  	}  _19: -	if (uintptr(unsafe.Pointer(_z)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) != 0 { +	if (crt.P2U(unsafe.Pointer(_z)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) != 0 {  		*func() *int32 {  			*func() *int32 {  				{ @@ -8009,7 +8009,7 @@ _19:  		}() += 1  		goto _19  	} -	if uintptr(unsafe.Pointer(_z)) >= uintptr(unsafe.Pointer(_zEnd)) { +	if crt.P2U(unsafe.Pointer(_z)) >= crt.P2U(unsafe.Pointer(_zEnd)) {  		goto _do_atof_calc  	}  	if int32(*_z) != i32(46) { @@ -8021,7 +8021,7 @@ _19:  		sink0(*p)  	}  _27: -	if uintptr(unsafe.Pointer(_z)) >= uintptr(unsafe.Pointer(_zEnd)) || (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) == 0 { +	if crt.P2U(unsafe.Pointer(_z)) >= crt.P2U(unsafe.Pointer(_zEnd)) || (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) == 0 {  		goto _28  	}  	if _s < i64(922337203685477579) { @@ -8039,7 +8039,7 @@ _27:  	goto _27  _28:  _26: -	if uintptr(unsafe.Pointer(_z)) >= uintptr(unsafe.Pointer(_zEnd)) { +	if crt.P2U(unsafe.Pointer(_z)) >= crt.P2U(unsafe.Pointer(_zEnd)) {  		goto _do_atof_calc  	}  	if int32(*_z) != i32(101) && int32(*_z) != i32(69) { @@ -8051,7 +8051,7 @@ _26:  		sink0(*p)  	}  	_eValid = i32(0) -	if uintptr(unsafe.Pointer(_z)) >= uintptr(unsafe.Pointer(_zEnd)) { +	if crt.P2U(unsafe.Pointer(_z)) >= crt.P2U(unsafe.Pointer(_zEnd)) {  		goto _do_atof_calc  	}  	if int32(*_z) == i32(45) { @@ -8071,7 +8071,7 @@ _26:  		}  	}  _37: -	if (uintptr(unsafe.Pointer(_z)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) != 0 { +	if (crt.P2U(unsafe.Pointer(_z)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(4)) != 0 {  		_e = func() int32 {  			if _e < i32(10000) {  				return ((_e * i32(10)) + (int32(*_z) - i32(48))) @@ -8087,7 +8087,7 @@ _37:  		goto _37  	}  _33: -	if (uintptr(unsafe.Pointer(_z)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(1)) != 0 { +	if (crt.P2U(unsafe.Pointer(_z)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_z)))))&i32(1)) != 0 {  		{  			p := &_z  			*p = (*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(_incr))) @@ -9400,7 +9400,7 @@ func _strftimeFunc(tls *crt.TLS, _context *Xsqlite3_context, _argc int32, _argv  		return  	}  	_zFmt = (*int8)(unsafe.Pointer(Xsqlite3_value_text(tls, *(**XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0))))))) -	if (_zFmt == nil) || _isDate(tls, _context, _argc-i32(1), (**XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(8))))))))))), &_x) != 0 { +	if (_zFmt == nil) || _isDate(tls, _context, _argc-i32(1), (**XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(8))))))))))), &_x) != 0 {  		return  	}  	_db = Xsqlite3_context_db_handle(tls, _context) @@ -9729,17 +9729,17 @@ func init() {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem)  	}{_versionFunc})), X5: nil, X6: str(7676), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(18433), X2: nil, X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_versionFunc})), X5: nil, X6: str(7683), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(2049), X2: (unsafe.Pointer)(uintptr(1)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_versionFunc})), X5: nil, X6: str(7683), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(2049), X2: crt.U2P(1), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_trimFunc})), X5: nil, X6: str(7692), X7: t12{}}, XFuncDef{X0: i8(2), X1: u16(2049), X2: (unsafe.Pointer)(uintptr(1)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_trimFunc})), X5: nil, X6: str(7692), X7: t12{}}, XFuncDef{X0: i8(2), X1: u16(2049), X2: crt.U2P(1), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_trimFunc})), X5: nil, X6: str(7692), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(2049), X2: (unsafe.Pointer)(uintptr(2)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_trimFunc})), X5: nil, X6: str(7692), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(2049), X2: crt.U2P(2), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_trimFunc})), X5: nil, X6: str(7698), X7: t12{}}, XFuncDef{X0: i8(2), X1: u16(2049), X2: (unsafe.Pointer)(uintptr(2)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_trimFunc})), X5: nil, X6: str(7698), X7: t12{}}, XFuncDef{X0: i8(2), X1: u16(2049), X2: crt.U2P(2), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_trimFunc})), X5: nil, X6: str(7698), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(2049), X2: (unsafe.Pointer)(uintptr(3)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_trimFunc})), X5: nil, X6: str(7698), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(2049), X2: crt.U2P(3), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_trimFunc})), X5: nil, X6: str(7704), X7: t12{}}, XFuncDef{X0: i8(2), X1: u16(2049), X2: (unsafe.Pointer)(uintptr(3)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_trimFunc})), X5: nil, X6: str(7704), X7: t12{}}, XFuncDef{X0: i8(2), X1: u16(2049), X2: crt.U2P(3), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem)  	}{_trimFunc})), X5: nil, X6: str(7704), X7: t12{}}, XFuncDef{X0: i8(-1), X1: u16(2081), X2: nil, X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) @@ -9747,9 +9747,9 @@ func init() {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem)  	}{_minmaxStep})), X5: *(*func(*crt.TLS, unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context) -	}{_minMaxFinalize})), X6: str(7709), X7: t12{}}, XFuncDef{X0: i8(-1), X1: u16(2081), X2: (unsafe.Pointer)(uintptr(1)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_minMaxFinalize})), X6: str(7709), X7: t12{}}, XFuncDef{X0: i8(-1), X1: u16(2081), X2: crt.U2P(1), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem) -	}{_minmaxFunc})), X5: nil, X6: str(7713), X7: t12{}}, XFuncDef{X0: i8(0), X1: u16(2081), X2: (unsafe.Pointer)(uintptr(1)), X3: nil, X4: nil, X5: nil, X6: str(7713), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(4129), X2: (unsafe.Pointer)(uintptr(1)), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct { +	}{_minmaxFunc})), X5: nil, X6: str(7713), X7: t12{}}, XFuncDef{X0: i8(0), X1: u16(2081), X2: crt.U2P(1), X3: nil, X4: nil, X5: nil, X6: str(7713), X7: t12{}}, XFuncDef{X0: i8(1), X1: u16(4129), X2: crt.U2P(1), X3: nil, X4: *(*func(*crt.TLS, unsafe.Pointer, int32, *unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context, int32, **XMem)  	}{_minmaxStep})), X5: *(*func(*crt.TLS, unsafe.Pointer))(unsafe.Pointer(&struct {  		f func(*crt.TLS, *Xsqlite3_context) @@ -9972,7 +9972,7 @@ _17:  	goto _17  _21:  	_7_iFile += 1 -	if Xsqlite3_strnicmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zFile))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_7_iFile))))))), str(8068), i32(3)) == i32(0) { +	if Xsqlite3_strnicmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zFile))+uintptr(_7_iFile))), str(8068), i32(3)) == i32(0) {  		{  			p := &_7_iFile  			*p = (*p) + i32(3) @@ -9990,7 +9990,7 @@ _23:  	_7_iFile += 1  	goto _23  _27: -	crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zAltEntry))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_7_iEntry)))))))), (unsafe.Pointer)(str(8072)), uint64(i32(6))) +	crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zAltEntry))+uintptr(_7_iEntry)))), (unsafe.Pointer)(str(8072)), uint64(i32(6)))  	_zEntry = _zAltEntry  	_xInit = *(*func(*crt.TLS, *Xsqlite3, **int8, *Xsqlite3_api_routines) int32)(unsafe.Pointer(&struct{ f func(*crt.TLS) }{_sqlite3OsDlSym(tls, _pVfs, _handle, _zEntry)}))  _15: @@ -11179,13 +11179,13 @@ func init() {  // subsequent Btrees that desire a lock.  func _sqlite3BtreeEnter(tls *crt.TLS, _p *XBtree) {  	func() { -		if (*XBtree)(_p.X9) != nil && uintptr(unsafe.Pointer((*XBtShared)((*XBtree)(_p.X9).X1))) <= uintptr(unsafe.Pointer((*XBtShared)(_p.X1))) { +		if (*XBtree)(_p.X9) != nil && crt.P2U(unsafe.Pointer((*XBtShared)((*XBtree)(_p.X9).X1))) <= crt.P2U(unsafe.Pointer((*XBtShared)(_p.X1))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(58799), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3BtreeEnterØ00__func__Ø000))), unsafe.Pointer(str(8736)))  			crt.X__builtin_abort(tls)  		}  	}()  	func() { -		if (*XBtree)(_p.X10) != nil && uintptr(unsafe.Pointer((*XBtShared)((*XBtree)(_p.X10).X1))) >= uintptr(unsafe.Pointer((*XBtShared)(_p.X1))) { +		if (*XBtree)(_p.X10) != nil && crt.P2U(unsafe.Pointer((*XBtShared)((*XBtree)(_p.X10).X1))) >= crt.P2U(unsafe.Pointer((*XBtShared)(_p.X1))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(58800), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3BtreeEnterØ00__func__Ø000))), unsafe.Pointer(str(8772)))  			crt.X__builtin_abort(tls)  		} @@ -11272,7 +11272,7 @@ _1:  		}  	}()  	func() { -		if (*XBtree)(_pLater.X9) != nil && uintptr(unsafe.Pointer((*XBtShared)((*XBtree)(_pLater.X9).X1))) <= uintptr(unsafe.Pointer((*XBtShared)(_pLater.X1))) { +		if (*XBtree)(_pLater.X9) != nil && crt.P2U(unsafe.Pointer((*XBtShared)((*XBtree)(_pLater.X9).X1))) <= crt.P2U(unsafe.Pointer((*XBtShared)(_pLater.X1))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(58848), unsafe.Pointer((*int8)(unsafe.Pointer(&_btreeLockCarefullyØ00__func__Ø000))), unsafe.Pointer(str(9103)))  			crt.X__builtin_abort(tls)  		} @@ -11700,7 +11700,7 @@ _1:  	if _2_p == nil {  		goto _5  	} -	_3_x = *(*func(*crt.TLS, *Xsqlite3_vtab) int32)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer((*Xsqlite3_module)(_2_p.X0))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_offset))))))))) +	_3_x = *(*func(*crt.TLS, *Xsqlite3_vtab) int32)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer((*Xsqlite3_module)(_2_p.X0))))) + uintptr(_offset)))))  	if _3_x != nil {  		_3_x(tls, _2_p)  	} @@ -12138,7 +12138,7 @@ _9:  	if _btreeGetPage(tls, _pBt, uint32(i32(1)), &_pPage1, i32(0)) != i32(0) {  		goto _24  	} -	_6_nPage = int32(_sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(28))))))+uintptr(unsafe.Pointer(_pPage1.X19)))))) +	_6_nPage = int32(_sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(i32(28))+uintptr(unsafe.Pointer(_pPage1.X19))))))  	if _6_nPage == i32(0) {  		_sqlite3PagerPagecount(tls, (*XPager)(_pBt.X0), &_6_nPage)  	} @@ -12432,7 +12432,7 @@ _1:  func _btreeParseCell(tls *crt.TLS, _pPage *XMemPage, _iCell int32, _pInfo *XCellInfo) {  	(*(*func(*crt.TLS, *XMemPage, *uint8, *XCellInfo))(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *uint8, unsafe.Pointer) -	}{(_pPage.X25)})))(tls, _pPage, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(1))))))))))))), _pInfo) +	}{(_pPage.X25)})))(tls, _pPage, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(1))))))))), _pInfo)  }  func _assertCellInfo(tls *crt.TLS, _pCur *XBtCursor) { @@ -12613,7 +12613,7 @@ func _accessPayload(tls *crt.TLS, _pCur *XBtCursor, _offset uint32, _amt uint32,  		}  	}()  	func() { -		if uintptr(unsafe.Pointer(_aPayload)) <= uintptr(unsafe.Pointer(_pPage.X19)) { +		if crt.P2U(unsafe.Pointer(_aPayload)) <= crt.P2U(unsafe.Pointer(_pPage.X19)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(63578), unsafe.Pointer((*int8)(unsafe.Pointer(&_accessPayloadØ00__func__Ø000))), unsafe.Pointer(str(10738)))  			crt.X__builtin_abort(tls)  		} @@ -13561,7 +13561,7 @@ _17:  		}  		return ((_p.X1) - _iChunkOffset)  	}() -	crt.Xmemcpy(tls, (unsafe.Pointer)(_zOut), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[8]uint8)(unsafe.Pointer(&(_pChunk.X1)))))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_iChunkOffset)))))))), uint64(_4_nCopy)) +	crt.Xmemcpy(tls, (unsafe.Pointer)(_zOut), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[8]uint8)(unsafe.Pointer(&(_pChunk.X1)))))))+uintptr(_iChunkOffset)))), uint64(_4_nCopy))  	{  		p := &_zOut  		*p = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(_4_nCopy))) @@ -13663,7 +13663,7 @@ _10:  _19:  	*(**XFileChunk)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&((*t23)(unsafe.Pointer(&(_p.X5))).X1))))) = _6_pNew  _14: -	crt.Xmemcpy(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[8]uint8)(unsafe.Pointer(&((*XFileChunk)((*t23)(unsafe.Pointer(&(_p.X5))).X1).X1)))))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_5_iChunkOffset)))))))), (unsafe.Pointer)(_zWrite), uint64(_5_iSpace)) +	crt.Xmemcpy(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[8]uint8)(unsafe.Pointer(&((*XFileChunk)((*t23)(unsafe.Pointer(&(_p.X5))).X1).X1)))))))+uintptr(_5_iChunkOffset)))), (unsafe.Pointer)(_zWrite), uint64(_5_iSpace))  	{  		p := &_zWrite  		*p = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(_5_iSpace))) @@ -19082,7 +19082,7 @@ func _pager_delmaster(tls *crt.TLS, _pPager *XPager, _zMaster *int8) (r0 int32)  	_pVfs = (*Xsqlite3_vfs)(_pPager.X0)  	_zMasterJournal = nil  	_pMaster = (*Xsqlite3_file)(_sqlite3MallocZero(tls, uint64((_pVfs.X1)*i32(2)))) -	_pJournal = (*Xsqlite3_file)(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_pMaster)))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_pVfs.X1))))))))) +	_pJournal = (*Xsqlite3_file)(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_pMaster)))) + uintptr(_pVfs.X1)))))  	if _pMaster == nil {  		_rc = _sqlite3NomemError(tls, i32(49453))  		goto _1 @@ -22033,7 +22033,7 @@ _7:  		*p = (*p) + ((*postInc31(&_aData, 4)) + _s1)  		sink5(*p)  	} -	if uintptr(unsafe.Pointer(_aData)) < uintptr(unsafe.Pointer(_aEnd)) { +	if crt.P2U(unsafe.Pointer(_aData)) < crt.P2U(unsafe.Pointer(_aEnd)) {  		goto _7  	}  	goto _8 @@ -22054,7 +22054,7 @@ _9:  		*p = (*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 4*uintptr(i32(2))))  		sink31(*p)  	} -	if uintptr(unsafe.Pointer(_aData)) < uintptr(unsafe.Pointer(_aEnd)) { +	if crt.P2U(unsafe.Pointer(_aData)) < crt.P2U(unsafe.Pointer(_aEnd)) {  		goto _9  	}  _8: @@ -23572,7 +23572,7 @@ func _sqlite3Atoi64(tls *crt.TLS, _zNum *int8, _pNum *int64, _length int32, _enc  	_neg = i32(0)  	_c = i32(0)  	_nonNum = i32(0) -	_zEnd = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zNum)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_length))))))) +	_zEnd = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zNum)) + uintptr(_length)))  	func() {  		if int32(_enc) != i32(1) && int32(_enc) != i32(2) && int32(_enc) != i32(3) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(28236), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3Atoi64Ø00__func__Ø000))), unsafe.Pointer(str(7088))) @@ -23605,7 +23605,7 @@ _10:  		sink0(*p)  	}  _5: -	if (uintptr(unsafe.Pointer(_zNum)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_zNum)))))&i32(1)) != 0 { +	if (crt.P2U(unsafe.Pointer(_zNum)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_zNum)))))&i32(1)) != 0 {  		{  			p := &_zNum  			*p = (*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(_incr))) @@ -23613,7 +23613,7 @@ _5:  		}  		goto _5  	} -	if uintptr(unsafe.Pointer(_zNum)) >= uintptr(unsafe.Pointer(_zEnd)) { +	if crt.P2U(unsafe.Pointer(_zNum)) >= crt.P2U(unsafe.Pointer(_zEnd)) {  		goto _14  	}  	if int32(*_zNum) == i32(45) { @@ -23636,7 +23636,7 @@ _17:  _14:  	_zStart = _zNum  _18: -	if (uintptr(unsafe.Pointer(_zNum)) < uintptr(unsafe.Pointer(_zEnd))) && (int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum)) + 1*uintptr(i32(0))))) == i32(48)) { +	if (crt.P2U(unsafe.Pointer(_zNum)) < crt.P2U(unsafe.Pointer(_zEnd))) && (int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum)) + 1*uintptr(i32(0))))) == i32(48)) {  		{  			p := &_zNum  			*p = (*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(_incr))) @@ -23646,7 +23646,7 @@ _18:  	}  	_i = i32(0)  _21: -	if uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum))+1*uintptr(_i))))) >= uintptr(unsafe.Pointer(_zEnd)) || store1(&_c, int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum)) + 1*uintptr(_i))))) < i32(48) || _c > i32(57) { +	if crt.P2U(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum))+1*uintptr(_i))))) >= crt.P2U(unsafe.Pointer(_zEnd)) || store1(&_c, int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum)) + 1*uintptr(_i))))) < i32(48) || _c > i32(57) {  		goto _26  	}  	_u = ((_u * uint64(i32(10))) + uint64(_c)) - uint64(i32(48)) @@ -23672,7 +23672,7 @@ _26:  	}  	*_pNum = int64(_u)  _32: -	if (((uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum))+1*uintptr(_i))))) < uintptr(unsafe.Pointer(_zEnd))) || ((_i == i32(0)) && (_zStart == _zNum))) || (_i > (i32(19) * _incr))) || _nonNum != 0 { +	if (((crt.P2U(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zNum))+1*uintptr(_i))))) < crt.P2U(unsafe.Pointer(_zEnd))) || ((_i == i32(0)) && (_zStart == _zNum))) || (_i > (i32(19) * _incr))) || _nonNum != 0 {  		return i32(1)  	}  	if _i < (i32(19) * _incr) { @@ -25242,7 +25242,7 @@ _2:  	_yy_destructor(tls, _yypParser, uint8(_yymajor), &_yyminorunion)  	_yymajor = i32(252)  _7: -	if (_yymajor != i32(252)) && (uintptr(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) > uintptr(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2)))))))) { +	if (_yymajor != i32(252)) && (crt.P2U(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) > crt.P2U(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2)))))))) {  		goto _2  	}  	if _yyTraceFILE == nil { @@ -25252,7 +25252,7 @@ _7:  	crt.Xfprintf(tls, _yyTraceFILE, str(24918), unsafe.Pointer(_yyTracePrompt))  	_7_i = (*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2))))) + 32*uintptr(i32(1))))  _13: -	if uintptr(unsafe.Pointer(_7_i)) > uintptr(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) { +	if crt.P2U(unsafe.Pointer(_7_i)) > crt.P2U(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) {  		goto _16  	}  	crt.Xfprintf(tls, _yyTraceFILE, str(24935), int32(_7_cDiv), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_yyTokenName)) + 8*uintptr(_7_i.X1))))) @@ -25383,7 +25383,7 @@ func init() {  func _yy_shift(tls *crt.TLS, _yypParser *XyyParser, _yyNewState int32, _yyMajor int32, _yyMinor XToken) {  	var _yytos *XyyStackEntry  	*(*uintptr)(unsafe.Pointer((**XyyStackEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_yypParser.X0))))))) += uintptr(32) -	if uintptr(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) >= uintptr(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2)))))+32*uintptr(i32(100)))))) { +	if crt.P2U(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) >= crt.P2U(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2)))))+32*uintptr(i32(100)))))) {  		*(*uintptr)(unsafe.Pointer((**XyyStackEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_yypParser.X0))))))) += uintptr(18446744073709551584)  		_yyStackOverflow(tls, _yypParser)  		return @@ -25410,7 +25410,7 @@ func _yyStackOverflow(tls *crt.TLS, _yypParser *XyyParser) {  		crt.Xfprintf(tls, _yyTraceFILE, str(27024), unsafe.Pointer(_yyTracePrompt))  	}  _0: -	if uintptr(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) > uintptr(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2))))))) { +	if crt.P2U(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) > crt.P2U(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2))))))) {  		_yy_pop_parser_stack(tls, _yypParser)  		goto _0  	} @@ -25431,7 +25431,7 @@ func _yy_pop_parser_stack(tls *crt.TLS, _pParser *XyyParser) {  		}  	}()  	func() { -		if uintptr(unsafe.Pointer((*XyyStackEntry)(_pParser.X0))) <= uintptr(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_pParser.X2))))))) { +		if crt.P2U(unsafe.Pointer((*XyyStackEntry)(_pParser.X0))) <= crt.P2U(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_pParser.X2))))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(137055), unsafe.Pointer((*int8)(unsafe.Pointer(&_yy_pop_parser_stackØ00__func__Ø000))), unsafe.Pointer(str(27083)))  			crt.X__builtin_abort(tls)  		} @@ -25608,7 +25608,7 @@ func _yy_reduce(tls *crt.TLS, _yypParser *XyyParser, _yyruleno uint32) {  	if int32((*t35)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_yyRuleInfo))+2*uintptr(_yyruleno))).X1) != i32(0) {  		goto _2  	} -	if uintptr(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) >= uintptr(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2)))))+32*uintptr(i32(99)))))) { +	if crt.P2U(unsafe.Pointer((*XyyStackEntry)(_yypParser.X0))) >= crt.P2U(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[100]XyyStackEntry)(unsafe.Pointer(&(_yypParser.X2)))))+32*uintptr(i32(99)))))) {  		_yyStackOverflow(tls, _yypParser)  		return  	} @@ -26446,7 +26446,7 @@ _98:  	if (*XSelect)(*(*unsafe.Pointer)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(-8)))).X2)))))) == nil {  		goto _295  	} -	_81_z = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_80_s.X0)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(6)))))))) +	_81_z = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_80_s.X0)) + uintptr(i32(6))))  	Xsqlite3_snprintf(tls, int32(u64(12)), (*int8)(unsafe.Pointer((*[12]int8)(unsafe.Pointer(&((*XSelect)(*(*unsafe.Pointer)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(-8)))).X2)))))).X6))))), str(27260), preInc1((*int32)(unsafe.Pointer(&(_pParse.X34))), 1))  _296:  	if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_81_z)) + 1*uintptr(i32(0))))) == i32(32) { @@ -26743,7 +26743,7 @@ _174:  _175:  	*(**XExpr)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&((*XExprSpan)(unsafe.Pointer(&_4_yylhsminor)).X0))))) = _sqlite3ExprAlloc(tls, (*Xsqlite3)(_pParse.X0), i32(134), (*XToken)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(0)))).X2))))), i32(1))  	*(**int8)(unsafe.Pointer(&((*XExprSpan)(unsafe.Pointer(&_4_yylhsminor)).X1))) = (*XToken)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(0)))).X2))))).X0 -	*(**int8)(unsafe.Pointer(&((*XExprSpan)(unsafe.Pointer(&_4_yylhsminor)).X2))) = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*XToken)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(0)))).X2))))).X0)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr((*XToken)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(0)))).X2))))).X1))))))) +	*(**int8)(unsafe.Pointer(&((*XExprSpan)(unsafe.Pointer(&_4_yylhsminor)).X2))) = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*XToken)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(0)))).X2))))).X0)) + uintptr((*XToken)(unsafe.Pointer((*XYYMINORTYPE)(unsafe.Pointer(&((*XyyStackEntry)(unsafe.Pointer(uintptr((unsafe.Pointer)(_yymsp)) + 32*uintptr(i32(0)))).X2))))).X1)))  	if (*XExpr)((*XExprSpan)(unsafe.Pointer(&_4_yylhsminor)).X0) != nil {  		{  			p := (*uint32)(unsafe.Pointer(&((*XExpr)((*XExprSpan)(unsafe.Pointer(&_4_yylhsminor)).X0).X2))) @@ -27631,7 +27631,7 @@ _7:  	if _2_jj >= int32(_2_pParse.X13) {  		goto _10  	} -	_3_x = (*TyColCache)(unsafe.Pointer(uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer((*[10]TyColCache)(unsafe.Pointer(&(_2_pParse.X48))))))) + uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer(uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer(uintptr(_2_jj)))))*uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer(uintptr(20))))))))))) +	_3_x = (*TyColCache)(unsafe.Pointer(uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer((*[10]TyColCache)(unsafe.Pointer(&(_2_pParse.X48))))))) + uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer(uintptr(_2_jj)*uintptr(unsafe.Pointer((*TyColCache)(unsafe.Pointer(uintptr(20)))))))))))  	crt.Xprintf(tls, str(37685), _3_x.X4, _3_x.X0, int32(_3_x.X1))  	_2_kk += 1  	_2_jj += 1 @@ -27990,10 +27990,10 @@ func _displayComment(tls *crt.TLS, _pOp *XVdbeOp, _zP4 *int8, _zTemp *int8, _nTe  		goto _1  	}  	if (int32(_pOp.X2) & i32(32)) != 0 { -		Xsqlite3_snprintf(tls, int32(u64(50)), (*int8)(unsafe.Pointer(&_zAlt)), str(37991), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(3)))))))))) +		Xsqlite3_snprintf(tls, int32(u64(50)), (*int8)(unsafe.Pointer(&_zAlt)), str(37991), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(i32(3))))))  		goto _3  	} -	Xsqlite3_snprintf(tls, int32(u64(50)), (*int8)(unsafe.Pointer(&_zAlt)), str(38004), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(3)))))))))) +	Xsqlite3_snprintf(tls, int32(u64(50)), (*int8)(unsafe.Pointer(&_zAlt)), str(38004), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(i32(3))))))  _3:  	_zSynopsis = (*int8)(unsafe.Pointer(&_zAlt))  _1: @@ -28007,17 +28007,17 @@ _4:  	}  	_1_c = *(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zSynopsis)) + 1*uintptr(preInc1(&_ii, 1))))  	if int32(_1_c) == i32(52) { -		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj))))))), str(24576), unsafe.Pointer(_zP4)) +		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))), str(24576), unsafe.Pointer(_zP4))  		goto _13  	}  	if int32(_1_c) == i32(88) { -		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj))))))), str(24576), unsafe.Pointer(_pOp.X7)) +		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))), str(24576), unsafe.Pointer(_pOp.X7))  		_1_seenCom = i32(1)  		goto _13  	}  	_9_v1 = _translateP(tls, _1_c, _pOp) -	Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj))))))), str(37915), _9_v1) -	if crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))), str(38018), uint64(i32(2))) != i32(0) { +	Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))), str(37915), _9_v1) +	if crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(_ii)))))+uintptr(i32(1)))), str(38018), uint64(i32(2))) != i32(0) {  		goto _14  	}  	{ @@ -28027,11 +28027,11 @@ _4:  	}  	{  		p := &_jj -		*p = (*p) + _sqlite3Strlen30(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj)))))))) +		*p = (*p) + _sqlite3Strlen30(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))))  		sink1(*p)  	}  	_9_v2 = _translateP(tls, *(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zSynopsis)) + 1*uintptr(_ii))), _pOp) -	if crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))), str(38021), uint64(i32(2))) == i32(0) { +	if crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(_ii)))))+uintptr(i32(1)))), str(38021), uint64(i32(2))) == i32(0) {  		{  			p := &_ii  			*p = (*p) + i32(2) @@ -28040,11 +28040,11 @@ _4:  		_9_v2 += 1  	}  	if _9_v2 > i32(1) { -		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj))))))), str(38024), (_9_v1+_9_v2)-i32(1)) +		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))), str(38024), (_9_v1+_9_v2)-i32(1))  	}  	goto _19  _14: -	if (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))), str(38029), uint64(i32(4))) == i32(0)) && ((_pOp.X5) == i32(0)) { +	if (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zSynopsis))+uintptr(_ii)))))+uintptr(i32(1)))), str(38029), uint64(i32(4))) == i32(0)) && ((_pOp.X5) == i32(0)) {  		{  			p := &_ii  			*p = (*p) + i32(4) @@ -28055,7 +28055,7 @@ _19:  _13:  	{  		p := &_jj -		*p = (*p) + _sqlite3Strlen30(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj)))))))) +		*p = (*p) + _sqlite3Strlen30(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))))  		sink1(*p)  	}  	goto _20 @@ -28066,10 +28066,10 @@ _20:  	goto _4  _8:  	if ((_1_seenCom == 0) && (_jj < (_nTemp - i32(5)))) && ((_pOp.X7) != nil) { -		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj))))))), str(38034), unsafe.Pointer(_pOp.X7)) +		Xsqlite3_snprintf(tls, _nTemp-_jj, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))), str(38034), unsafe.Pointer(_pOp.X7))  		{  			p := &_jj -			*p = (*p) + _sqlite3Strlen30(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_jj)))))))) +			*p = (*p) + _sqlite3Strlen30(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zTemp))+uintptr(_jj))))  			sink1(*p)  		}  	} @@ -28518,7 +28518,7 @@ _7:  		return  	}  	if _n == i32(-11) { -		*(*int32)(unsafe.Pointer((*t39)(unsafe.Pointer(&(_pOp.X6))))) = int32(int64(uintptr(unsafe.Pointer(_zP4)))) +		*(*int32)(unsafe.Pointer((*t39)(unsafe.Pointer(&(_pOp.X6))))) = int32(int64(crt.P2U(unsafe.Pointer(_zP4))))  		*(*int8)(unsafe.Pointer(&(_pOp.X1))) = int8(i32(-11))  		goto _18  	} @@ -37050,7 +37050,7 @@ func _sqlite3Prepare(tls *crt.TLS, _db *Xsqlite3, _zSql *int8, _nBytes int32, _s  	_zErrMsg = nil  	_rc = i32(0)  	crt.Xmemset(tls, (unsafe.Pointer)(&_sParse), i32(0), u64(204)) -	crt.Xmemset(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(&_sParse))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(456))))))))), i32(0), u64(144)) +	crt.Xmemset(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(&_sParse))))+uintptr(u64(456))))), i32(0), u64(144))  	*(**TVdbe)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_sParse.X61))))) = _pReprepare  	func() {  		if _ppStmt == nil || *_ppStmt != nil { @@ -37674,9 +37674,9 @@ func _lockBtree(tls *crt.TLS, _pBt *XBtShared) (r0 int32) {  	if _rc != i32(0) {  		return _rc  	} -	_nPage = store1(&_nPageHeader, int32(_sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(28))))))+uintptr(unsafe.Pointer(_pPage1.X19))))))) +	_nPage = store1(&_nPageHeader, int32(_sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(i32(28))+uintptr(unsafe.Pointer(_pPage1.X19)))))))  	_sqlite3PagerPagecount(tls, (*XPager)(_pBt.X0), &_nPageFile) -	if (_nPage == i32(0)) || (crt.Xmemcmp(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(24))))))+uintptr(unsafe.Pointer(_pPage1.X19))))), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(92))))))+uintptr(unsafe.Pointer(_pPage1.X19))))), uint64(i32(4))) != i32(0)) { +	if (_nPage == i32(0)) || (crt.Xmemcmp(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(i32(24))+uintptr(unsafe.Pointer(_pPage1.X19))))), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(i32(92))+uintptr(unsafe.Pointer(_pPage1.X19))))), uint64(i32(4))) != i32(0)) {  		_nPage = _nPageFile  	}  	if _nPage <= i32(0) { @@ -39344,7 +39344,7 @@ func _cellSizePtr(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8) (r0 uint16) {  	var _nSize uint32  	var _pIter, _pEnd *uint8  	var _debuginfo XCellInfo -	_pIter = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_pPage.X7))))))) +	_pIter = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell)) + uintptr(_pPage.X7)))  	(*(*func(*crt.TLS, *XMemPage, *uint8, *XCellInfo))(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *uint8, unsafe.Pointer)  	}{(_pPage.X25)})))(tls, _pPage, _pCell, &_debuginfo) @@ -39360,7 +39360,7 @@ func _cellSizePtr(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8) (r0 uint16) {  	}  _1:  	_nSize = (_nSize << uint(i32(7))) | uint32(int32(*preInc13(&_pIter, 1))&i32(127)) -	if (int32(*_pIter) >= i32(128)) && (uintptr(unsafe.Pointer(_pIter)) < uintptr(unsafe.Pointer(_pEnd))) { +	if (int32(*_pIter) >= i32(128)) && (crt.P2U(unsafe.Pointer(_pIter)) < crt.P2U(unsafe.Pointer(_pEnd))) {  		goto _1  	}  _0: @@ -39370,7 +39370,7 @@ _0:  	}  	_pEnd = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pIter)) + 1*uintptr(i32(9))))  _4: -	if (int32(*postInc13(&_pIter, 1))&i32(128)) != 0 && (uintptr(unsafe.Pointer(_pIter)) < uintptr(unsafe.Pointer(_pEnd))) { +	if (int32(*postInc13(&_pIter, 1))&i32(128)) != 0 && (crt.P2U(unsafe.Pointer(_pIter)) < crt.P2U(unsafe.Pointer(_pEnd))) {  		goto _4  	}  _3: @@ -39457,7 +39457,7 @@ func _btreeParseCellPtr(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8, _pInfo *X  	}  _10:  	_nPayload = (_nPayload << uint(i32(7))) | uint32(int32(*preInc13(&_pIter, 1))&i32(127)) -	if (int32(*_pIter) >= i32(128)) && (uintptr(unsafe.Pointer(_pIter)) < uintptr(unsafe.Pointer(_1_pEnd))) { +	if (int32(*_pIter) >= i32(128)) && (crt.P2U(unsafe.Pointer(_pIter)) < crt.P2U(unsafe.Pointer(_1_pEnd))) {  		goto _10  	}  _9: @@ -39477,7 +39477,7 @@ _13:  	if int32(*_pIter) < i32(128) {  		goto _14  	} -	if uintptr(unsafe.Pointer(_pIter)) >= uintptr(unsafe.Pointer(_3_pEnd)) { +	if crt.P2U(unsafe.Pointer(_pIter)) >= crt.P2U(unsafe.Pointer(_3_pEnd)) {  		_iKey = (_iKey << uint(i32(8))) | uint64(*preInc13(&_pIter, 1))  		goto _14  	} @@ -39529,7 +39529,7 @@ _1:  func _cellSizePtrNoPayload(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8) (r0 uint16) {  	var _pIter, _pEnd *uint8  	var _debuginfo XCellInfo -	_pIter = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))) +	_pIter = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell)) + uintptr(i32(4))))  	(*(*func(*crt.TLS, *XMemPage, *uint8, *XCellInfo))(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *uint8, unsafe.Pointer)  	}{(_pPage.X25)})))(tls, _pPage, _pCell, &_debuginfo) @@ -39539,9 +39539,9 @@ func _cellSizePtrNoPayload(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8) (r0 ui  			crt.X__builtin_abort(tls)  		}  	}() -	_pEnd = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pIter)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(9)))))))) +	_pEnd = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pIter)) + uintptr(i32(9))))  _2: -	if (int32(*postInc13(&_pIter, 1))&i32(128)) != 0 && (uintptr(unsafe.Pointer(_pIter)) < uintptr(unsafe.Pointer(_pEnd))) { +	if (int32(*postInc13(&_pIter, 1))&i32(128)) != 0 && (crt.P2U(unsafe.Pointer(_pIter)) < crt.P2U(unsafe.Pointer(_pEnd))) {  		goto _2  	}  	func() { @@ -39852,7 +39852,7 @@ func _btreeParseCellPtrIndex(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8, _pIn  			crt.X__builtin_abort(tls)  		}  	}() -	_pIter = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_pPage.X7))))))) +	_pIter = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell)) + uintptr(_pPage.X7)))  	_nPayload = uint32(*_pIter)  	if _nPayload < uint32(i32(128)) {  		goto _7 @@ -39865,7 +39865,7 @@ func _btreeParseCellPtrIndex(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8, _pIn  	}  _8:  	_nPayload = (_nPayload << uint(i32(7))) | uint32(int32(*preInc13(&_pIter, 1))&i32(127)) -	if (int32(*_pIter) >= i32(128)) && (uintptr(unsafe.Pointer(_pIter)) < uintptr(unsafe.Pointer(_1_pEnd))) { +	if (int32(*_pIter) >= i32(128)) && (crt.P2U(unsafe.Pointer(_pIter)) < crt.P2U(unsafe.Pointer(_1_pEnd))) {  		goto _8  	}  _7: @@ -40884,7 +40884,7 @@ _7:  		*(*uint32)(unsafe.Pointer(&(_pBt.X18))) += 1  	}  _89: -	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(28))))))+uintptr(unsafe.Pointer((*XMemPage)(_pBt.X3).X19)))), _pBt.X18) +	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(i32(28))+uintptr(unsafe.Pointer((*XMemPage)(_pBt.X3).X19)))), _pBt.X18)  	*_pPgno = _pBt.X18  	func() {  		if (*_pPgno) == ((uint32(_sqlite3PendingByte) / (_pBt.X15)) + uint32(i32(1))) { @@ -41364,7 +41364,7 @@ _3:  	if _i >= _nCell {  		goto _6  	} -	_1_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(1))))))))))))) +	_1_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(1)))))))))  	_ptrmapPutOvflPtr(tls, _pPage, _1_pCell, &_rc)  	if (_pPage.X5) == 0 {  		_2_childPgno = _sqlite3Get4byte(tls, _1_pCell) @@ -41694,7 +41694,7 @@ _8:  	if _3_i >= _3_nCell {  		goto _11  	} -	_4_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_3_i))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_3_i))))) + 1*uintptr(i32(1))))))))))))) +	_4_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_3_i))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_3_i))))) + 1*uintptr(i32(1)))))))))  	if int32(_eType) != i32(3) {  		goto _12  	} @@ -41704,11 +41704,11 @@ _8:  	if uint32(_5_info.X3) >= (_5_info.X2) {  		goto _13  	} -	if uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_pCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_5_info.X4))))))))) > uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((*XBtShared)(_pPage.X18).X16))))))))) { +	if crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_pCell))+uintptr(_5_info.X4))))) > crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr((*XBtShared)(_pPage.X18).X16))))) {  		return _sqlite3CorruptError(tls, i32(62459))  	} -	if _iFrom == _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_pCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_5_info.X4)))))))))-uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4))))))))) { -		_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_pCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_5_info.X4)))))))))-uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))), _iTo) +	if _iFrom == _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_pCell))+uintptr(_5_info.X4)))))-uintptr(i32(4))))) { +		_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_pCell))+uintptr(_5_info.X4)))))-uintptr(i32(4)))), _iTo)  		goto _11  	}  _13: @@ -42052,9 +42052,9 @@ func init() {  func _pager_write_changecounter(tls *crt.TLS, _pPg *XPgHdr) {  	var _change_counter uint32  	_change_counter = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer((*int8)(unsafe.Pointer((*[16]int8)(unsafe.Pointer(&((*XPager)(_pPg.X4).X40)))))))) + uint32(i32(1)) -	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*int8)(_pPg.X1)))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(24)))))))), _change_counter) -	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*int8)(_pPg.X1)))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(92)))))))), _change_counter) -	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*int8)(_pPg.X1)))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(96)))))))), uint32(i32(3019003))) +	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*int8)(_pPg.X1)))))+uintptr(i32(24)))), _change_counter) +	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*int8)(_pPg.X1)))))+uintptr(i32(92)))), _change_counter) +	_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*int8)(_pPg.X1)))))+uintptr(i32(96)))), uint32(i32(3019003)))  }  // Write a set of frames to the log. The caller must hold the write-lock @@ -42458,7 +42458,7 @@ func _walWriteToLog(tls *crt.TLS, _p *XWalWriter, _pContent unsafe.Pointer, _iAm  		*p = (*p) - _1_iFirstAmt  		sink1(*p)  	} -	_pContent = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_1_iFirstAmt))))) + uintptr(unsafe.Pointer((*int8)(_pContent)))))) +	_pContent = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(_1_iFirstAmt) + uintptr(unsafe.Pointer((*int8)(_pContent))))))  	func() {  		if ((_p.X3) & i32(3)) == 0 {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(57427), unsafe.Pointer((*int8)(unsafe.Pointer(&_walWriteToLogØ00__func__Ø000))), unsafe.Pointer(str(56280))) @@ -43288,7 +43288,7 @@ _3:  	if (_p.X7) != 0 {  		_sqlite3DbFree(tls, _1_db, (unsafe.Pointer)(_p.X6))  	} -	if uintptr(unsafe.Pointer(preInc20(&_p, 72))) < uintptr(unsafe.Pointer(_1_pEnd)) { +	if crt.P2U(unsafe.Pointer(preInc20(&_p, 72))) < crt.P2U(unsafe.Pointer(_1_pEnd)) {  		goto _3  	}  	return @@ -43315,7 +43315,7 @@ _2:  	}  _13:  	*(*uint16)(unsafe.Pointer(&(_p.X1))) = uint16(i32(128)) -	if uintptr(unsafe.Pointer(preInc20(&_p, 72))) < uintptr(unsafe.Pointer(_1_pEnd)) { +	if crt.P2U(unsafe.Pointer(preInc20(&_p, 72))) < crt.P2U(unsafe.Pointer(_1_pEnd)) {  		goto _2  	}  _1: @@ -43956,9 +43956,9 @@ func _vdbeSorterJoinThread(tls *crt.TLS, _pTask *XSortSubtask) (r0 int32) {  	var _1_pRet unsafe.Pointer  	_rc = i32(0)  	if (*XSQLiteThread)(_pTask.X0) != nil { -		_1_pRet = (unsafe.Pointer)(uintptr(1)) +		_1_pRet = crt.U2P(1)  		_sqlite3ThreadJoin(tls, (*XSQLiteThread)(_pTask.X0), &_1_pRet) -		_rc = int32(int64(uintptr(_1_pRet))) +		_rc = int32(int64(crt.P2U(_1_pRet)))  		func() {  			if (_pTask.X1) != i32(1) {  				crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(87133), unsafe.Pointer((*int8)(unsafe.Pointer(&_vdbeSorterJoinThreadØ00__func__Ø000))), unsafe.Pointer(str(57959))) @@ -44915,7 +44915,7 @@ func _sqlite3BtreeSavepoint(tls *crt.TLS, _p *XBtree, _op int32, _iSavepoint int  		*(*uint32)(unsafe.Pointer(&(_1_pBt.X18))) = uint32(i32(0))  	}  	_rc = _newDatabase(tls, _1_pBt) -	*(*uint32)(unsafe.Pointer(&(_1_pBt.X18))) = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(28))))))+uintptr(unsafe.Pointer((*XMemPage)(_1_pBt.X3).X19))))) +	*(*uint32)(unsafe.Pointer(&(_1_pBt.X18))) = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(i32(28))+uintptr(unsafe.Pointer((*XMemPage)(_1_pBt.X3).X19)))))  	func() {  		if (_1_pBt.X18) <= uint32(i32(0)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(63155), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3BtreeSavepointØ00__func__Ø000))), unsafe.Pointer(str(58695))) @@ -45232,7 +45232,7 @@ func _vdbeFreeOpArray(tls *crt.TLS, _db *Xsqlite3, _aOp *XVdbeOp, _nOp int32) {  	}  	_1_pOp = (*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp)) + 32*uintptr(_nOp-i32(1))))  _1: -	if uintptr(unsafe.Pointer(_1_pOp)) < uintptr(unsafe.Pointer(_aOp)) { +	if crt.P2U(unsafe.Pointer(_1_pOp)) < crt.P2U(unsafe.Pointer(_aOp)) {  		goto _4  	}  	if (_1_pOp.X1) != 0 { @@ -45907,7 +45907,7 @@ _17:  		goto _23  	}  	if Xsqlite3_strglob(tls, str(60279), _z) == i32(0) { -		*(*int16)(unsafe.Pointer(&(_pIndex.X12))) = _sqlite3LogEst(tls, uint64(_sqlite3Atoi(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(3))))))))))) +		*(*int16)(unsafe.Pointer(&(_pIndex.X12))) = _sqlite3LogEst(tls, uint64(_sqlite3Atoi(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(i32(3)))))))  		goto _23  	}  	if Xsqlite3_strglob(tls, str(60289), _z) == i32(0) { @@ -46348,7 +46348,7 @@ func _sqlite3PragmaVtabRegister(tls *crt.TLS, _db *Xsqlite3, _zName *int8) (r0 *  			crt.X__builtin_abort(tls)  		}  	}() -	_pName = _pragmaLocate(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zName))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(7))))))))) +	_pName = _pragmaLocate(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zName))+uintptr(i32(7)))))  	if _pName == nil {  		return nil  	} @@ -47427,7 +47427,7 @@ _30:  		}  	}()  	func() { -		if uintptr(unsafe.Pointer(_pOp)) < uintptr(unsafe.Pointer(_aOp)) || uintptr(unsafe.Pointer(_pOp)) >= uintptr(unsafe.Pointer((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp))+32*uintptr(_p.X27))))) { +		if crt.P2U(unsafe.Pointer(_pOp)) < crt.P2U(unsafe.Pointer(_aOp)) || crt.P2U(unsafe.Pointer(_pOp)) >= crt.P2U(unsafe.Pointer((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp))+32*uintptr(_p.X27))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(78932), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(62749)))  			crt.X__builtin_abort(tls)  		} @@ -48311,13 +48311,13 @@ _98:  	_pOut = (*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem)) + 72*uintptr(_51_p2)))  _362:  	func() { -		if uintptr(unsafe.Pointer(_pOut)) > uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem))+72*uintptr(((_p.X6)+i32(1))-(_p.X7)))))) { +		if crt.P2U(unsafe.Pointer(_pOut)) > crt.P2U(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem))+72*uintptr(((_p.X6)+i32(1))-(_p.X7)))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(79510), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(63996)))  			crt.X__builtin_abort(tls)  		}  	}()  	func() { -		if uintptr(unsafe.Pointer(_pIn1)) > uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem))+72*uintptr(((_p.X6)+i32(1))-(_p.X7)))))) { +		if crt.P2U(unsafe.Pointer(_pIn1)) > crt.P2U(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem))+72*uintptr(((_p.X6)+i32(1))-(_p.X7)))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(79511), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(64034)))  			crt.X__builtin_abort(tls)  		} @@ -48330,7 +48330,7 @@ _362:  	}()  	_sqlite3VdbeMemAboutToChange(tls, _p, _pOut)  	_sqlite3VdbeMemMove(tls, _pOut, _pIn1) -	if (uintptr(unsafe.Pointer((*XMem)(_pOut.X11))) >= uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem))+72*uintptr(_51_p1)))))) && (uintptr(unsafe.Pointer((*XMem)(_pOut.X11))) < uintptr(unsafe.Pointer(_pOut))) { +	if (crt.P2U(unsafe.Pointer((*XMem)(_pOut.X11))) >= crt.P2U(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem))+72*uintptr(_51_p1)))))) && (crt.P2U(unsafe.Pointer((*XMem)(_pOut.X11))) < crt.P2U(unsafe.Pointer(_pOut))) {  		{  			p := (**XMem)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_pOut.X11)))))  			*p = (*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 72*uintptr((_pOp.X4)-_51_p1))) @@ -49155,7 +49155,7 @@ _593:  	goto _250  _126:  	func() { -		if uintptr(unsafe.Pointer(_pOp)) <= uintptr(unsafe.Pointer(_aOp)) { +		if crt.P2U(unsafe.Pointer(_pOp)) <= crt.P2U(unsafe.Pointer(_aOp)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(80414), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(65035)))  			crt.X__builtin_abort(tls)  		} @@ -49208,7 +49208,7 @@ _128:  		goto _612  	}  	func() { -		if uintptr(unsafe.Pointer(_pOp)) <= uintptr(unsafe.Pointer(_aOp)) { +		if crt.P2U(unsafe.Pointer(_pOp)) <= crt.P2U(unsafe.Pointer(_aOp)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(80477), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(65035)))  			crt.X__builtin_abort(tls)  		} @@ -49225,7 +49225,7 @@ _128:  			crt.X__builtin_abort(tls)  		}  	}() -	_140_aPermute = (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(*(**int32)(unsafe.Pointer((*t39)(unsafe.Pointer(&((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pOp)) + 32*uintptr(i32(-1)))).X6))))))) + uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(4))))))))))) +	_140_aPermute = (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(*(**int32)(unsafe.Pointer((*t39)(unsafe.Pointer(&((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pOp)) + 32*uintptr(i32(-1)))).X6))))))) + uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(4)))))))))))  	func() {  		if _140_aPermute == nil {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(80481), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(65266))) @@ -49469,7 +49469,7 @@ _139:  		}  	}()  	if ((*(**XVdbeCursor)(unsafe.Pointer(uintptr((unsafe.Pointer)(_p.X23)) + 8*uintptr(_pOp.X3)))).X2) != 0 { -		_sqlite3VdbeMemSetNull(tls, (*XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_aMem))+uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(_pOp.X5)))))*uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(72)))))))))))) +		_sqlite3VdbeMemSetNull(tls, (*XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_aMem))+uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(_pOp.X5)*uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(72))))))))))))  		goto _jump_to_p2  	}  	goto _250 @@ -49650,8 +49650,8 @@ _744:  _op_column_read_header:  	_179_i = int32(_179_pC.X19)  	_179_offset64 = uint64(*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(_179_i)))) -	_179_zHdr = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_179_zData)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_179_pC.X16))))))) -	_179_zEndHdr = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_179_zData)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(i32(0))))))))))) +	_179_zHdr = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_179_zData)) + uintptr(_179_pC.X16))) +	_179_zEndHdr = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_179_zData)) + uintptr(*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(i32(0)))))))  _747:  	if store5(&_179_t, uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_zHdr)) + 1*uintptr(i32(0)))))) < uint32(i32(128)) {  		*(*uintptr)(unsafe.Pointer(&_179_zHdr)) += uintptr(1) @@ -49675,10 +49675,10 @@ _747:  _749:  	*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[1]uint32)(unsafe.Pointer(&(_179_pC.X25))))) + 4*uintptr(postInc1(&_179_i, int32(1))))) = _179_t  	*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(_179_i))) = uint32(_179_offset64 & uint64(u32(4294967295))) -	if (_179_i <= _179_p2) && (uintptr(unsafe.Pointer(_179_zHdr)) < uintptr(unsafe.Pointer(_179_zEndHdr))) { +	if (_179_i <= _179_p2) && (crt.P2U(unsafe.Pointer(_179_zHdr)) < crt.P2U(unsafe.Pointer(_179_zEndHdr))) {  		goto _747  	} -	if (uintptr(unsafe.Pointer(_179_zHdr)) < uintptr(unsafe.Pointer(_179_zEndHdr)) || uintptr(unsafe.Pointer(_179_zHdr)) <= uintptr(unsafe.Pointer(_179_zEndHdr)) && _179_offset64 == uint64(_179_pC.X23)) && _179_offset64 <= uint64(_179_pC.X23) { +	if (crt.P2U(unsafe.Pointer(_179_zHdr)) < crt.P2U(unsafe.Pointer(_179_zEndHdr)) || crt.P2U(unsafe.Pointer(_179_zHdr)) <= crt.P2U(unsafe.Pointer(_179_zEndHdr)) && _179_offset64 == uint64(_179_pC.X23)) && _179_offset64 <= uint64(_179_pC.X23) {  		goto _754  	}  	if (_179_pC.X22) == nil { @@ -49741,7 +49741,7 @@ _761:  	if (_179_pC.X24) < (*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(_179_p2+i32(1))))) {  		goto _771  	} -	_179_zData = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_179_pC.X22)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(_179_p2)))))))))) +	_179_zData = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_179_pC.X22)) + uintptr(*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_179_aOffset)) + 4*uintptr(_179_p2))))))  	if _179_t < uint32(i32(12)) {  		_sqlite3VdbeSerialGet(tls, _179_zData, _179_t, _179_pDest)  		goto _773 @@ -49810,7 +49810,7 @@ _141:  	_pIn1 = (*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem)) + 72*uintptr(_pOp.X3)))  _792:  	func() { -		if uintptr(unsafe.Pointer(_pIn1)) > uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(_p.X18)+72*uintptr(((_p.X6)+i32(1))-(_p.X7)))))) { +		if crt.P2U(unsafe.Pointer(_pIn1)) > crt.P2U(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(_p.X18)+72*uintptr(((_p.X6)+i32(1))-(_p.X7)))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(81030), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(65985)))  			crt.X__builtin_abort(tls)  		} @@ -49852,7 +49852,7 @@ _142:  	_pOut = (*XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aMem)) + 72*uintptr(_pOp.X5)))  	_sqlite3VdbeMemAboutToChange(tls, _p, _pOut)  	func() { -		if uintptr(unsafe.Pointer(_215_pData0)) > uintptr(unsafe.Pointer(_215_pLast)) { +		if crt.P2U(unsafe.Pointer(_215_pData0)) > crt.P2U(unsafe.Pointer(_215_pLast)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(81105), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(66140)))  			crt.X__builtin_abort(tls)  		} @@ -49864,7 +49864,7 @@ _142:  _807:  	_applyAffinity(tls, postInc20(&_215_pRec, 72), *postInc0(&_215_zAffinity, 1), _encoding)  	func() { -		if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_215_zAffinity)) + 1*uintptr(i32(0))))) != i32(0) && uintptr(unsafe.Pointer(_215_pRec)) > uintptr(unsafe.Pointer(_215_pLast)) { +		if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_215_zAffinity)) + 1*uintptr(i32(0))))) != i32(0) && crt.P2U(unsafe.Pointer(_215_pRec)) > crt.P2U(unsafe.Pointer(_215_pLast)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(81110), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(66154)))  			crt.X__builtin_abort(tls)  		} @@ -49960,7 +49960,7 @@ _823:  	}()))  	_215_j = _215_nHdr  	func() { -		if uintptr(unsafe.Pointer(_215_pData0)) > uintptr(unsafe.Pointer(_215_pLast)) { +		if crt.P2U(unsafe.Pointer(_215_pData0)) > crt.P2U(unsafe.Pointer(_215_pLast)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(81184), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(66140)))  			crt.X__builtin_abort(tls)  		} @@ -49986,7 +49986,7 @@ _831:  		*p = int32(uint32(*p) + _sqlite3VdbeSerialPut(tls, (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_215_zNewRecord))+1*uintptr(_215_j))), _215_pRec, _215_serial_type))  		sink1(*p)  	} -	if uintptr(unsafe.Pointer(preInc20(&_215_pRec, 72))) <= uintptr(unsafe.Pointer(_215_pLast)) { +	if crt.P2U(unsafe.Pointer(preInc20(&_215_pRec, 72))) <= crt.P2U(unsafe.Pointer(_215_pLast)) {  		goto _831  	}  	func() { @@ -52393,7 +52393,7 @@ _189:  	}  	*(*int64)(unsafe.Pointer(&(_403_x.X1))) = int64(_pIn2.X4)  	*(*unsafe.Pointer)(unsafe.Pointer(&(_403_x.X0))) = (unsafe.Pointer)(_pIn2.X5) -	*(**XMem)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_403_x.X3))))) = (*XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_aMem)) + uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(_pOp.X5)))))*uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(72))))))))))) +	*(**XMem)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_403_x.X3))))) = (*XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_aMem)) + uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(_pOp.X5)*uintptr(unsafe.Pointer((*XMem)(unsafe.Pointer(uintptr(72)))))))))))  	*(*uint16)(unsafe.Pointer(&(_403_x.X4))) = uint16(*(*int32)(unsafe.Pointer((*t39)(unsafe.Pointer(&(_pOp.X6))))))  	_rc = _sqlite3BtreeInsert(tls, (*XBtCursor)(*(*unsafe.Pointer)(unsafe.Pointer((*t46)(unsafe.Pointer(&(_403_pC.X14)))))), &_403_x, int32(_pOp.X2)&i32(10), func() int32 {  		if (int32(_pOp.X2) & i32(16)) != 0 { @@ -54256,7 +54256,7 @@ _243:  	goto _250  _250:  	func() { -		if uintptr(unsafe.Pointer(_pOp)) < uintptr(unsafe.Pointer((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp))+32*uintptr(i32(-1)))))) || uintptr(unsafe.Pointer(_pOp)) >= uintptr(unsafe.Pointer((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp))+32*uintptr((_p.X27)-i32(1)))))) { +		if crt.P2U(unsafe.Pointer(_pOp)) < crt.P2U(unsafe.Pointer((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp))+32*uintptr(i32(-1)))))) || crt.P2U(unsafe.Pointer(_pOp)) >= crt.P2U(unsafe.Pointer((*XVdbeOp)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aOp))+32*uintptr((_p.X27)-i32(1)))))) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(85423), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VdbeExecØ00__func__Ø000))), unsafe.Pointer(str(72490)))  			crt.X__builtin_abort(tls)  		} @@ -55515,7 +55515,7 @@ _47:  		goto _57  	}  _58: -	_12_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pPage.X22)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_12_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(1))))))))))))) +	_12_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pPage.X22)) + uintptr(int32(_12_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(1)))))))))  	if (_12_pPage.X3) == 0 {  		goto _61  	} @@ -55523,7 +55523,7 @@ _62:  	if i32(128) > int32(*postInc13(&_12_pCell, 1)) {  		goto _63  	} -	if uintptr(unsafe.Pointer(_12_pCell)) >= uintptr(unsafe.Pointer(_12_pPage.X20)) { +	if crt.P2U(unsafe.Pointer(_12_pCell)) >= crt.P2U(unsafe.Pointer(_12_pPage.X20)) {  		return _sqlite3CorruptError(tls, i32(64268))  	}  	goto _62 @@ -55584,7 +55584,7 @@ _60:  	goto _77  _57:  _78: -	_12_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pPage.X22)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_12_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(1))))))))))))) +	_12_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pPage.X22)) + uintptr(int32(_12_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_idx))))) + 1*uintptr(i32(1)))))))))  	_25_nCell = int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pCell)) + 1*uintptr(i32(0)))))  	if _25_nCell <= int32(_12_pPage.X8) {  		_12_c = _xRecordCompare(tls, _25_nCell, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pCell))+1*uintptr(i32(1))))), _pIdxKey) @@ -55594,7 +55594,7 @@ _78:  		_12_c = _xRecordCompare(tls, _25_nCell, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pCell))+1*uintptr(i32(2))))), _pIdxKey)  		goto _85  	} -	_28_pCellBody = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pCell)) - uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_12_pPage.X7))))))) +	_28_pCellBody = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pCell)) - uintptr(_12_pPage.X7)))  	(*(*func(*crt.TLS, *XMemPage, *uint8, *XCellInfo))(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *uint8, unsafe.Pointer)  	}{(_12_pPage.X25)})))(tls, _12_pPage, _28_pCellBody, (*XCellInfo)(unsafe.Pointer(&(_pCur.X4)))) @@ -55692,7 +55692,7 @@ _moveto_next_layer:  		_12_chldPg = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X19))+1*uintptr(int32(_12_pPage.X6)+i32(8)))))  		goto _114  	} -	_12_chldPg = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_12_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_lwr))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_lwr))))) + 1*uintptr(i32(1)))))))))))))) +	_12_chldPg = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_12_pPage.X19))+uintptr(int32(_12_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_lwr))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_pPage.X21))+1*uintptr(i32(2)*_12_lwr))))) + 1*uintptr(i32(1))))))))))  _114:  	*(*uint16)(unsafe.Pointer(&(_pCur.X16))) = uint16(_12_lwr)  	_rc = _moveToChild(tls, _pCur, _12_chldPg) @@ -56253,7 +56253,7 @@ _7:  	return uint32(i32(4))  _8: -	*(*int64)(unsafe.Pointer((*t15)(unsafe.Pointer(&(_pMem.X0))))) = int64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(3)))))) + (i64(4294967296) * int64((i32(256)*int32(int8(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(0)))))))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(1))))))) +	*(*int64)(unsafe.Pointer((*t15)(unsafe.Pointer(&(_pMem.X0))))) = int64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(2)))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(2)))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(2)))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(2)))))) + 1*uintptr(i32(3)))))) + (i64(4294967296) * int64((i32(256)*int32(int8(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(0)))))))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(1)))))))  	*(*uint16)(unsafe.Pointer(&(_pMem.X1))) = uint16(i32(4))  	return uint32(i32(6)) @@ -56279,7 +56279,7 @@ func _serialGet(tls *crt.TLS, _buf *uint8, _serial_type uint32, _pMem *XMem) (r0  	var _y uint32  	var _x, _2_t2 uint64  	_x = uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(0))))) << uint(i32(24))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(1)))))<<uint(i32(16)))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(2)))))<<uint(i32(8)))) | uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_buf)) + 1*uintptr(i32(3)))))) -	_y = (((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(0))))) << uint(i32(24))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(1)))))<<uint(i32(16)))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(2)))))<<uint(i32(8)))) | uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(3))))) +	_y = (((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(4)))))) + 1*uintptr(i32(0))))) << uint(i32(24))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(4)))))) + 1*uintptr(i32(1)))))<<uint(i32(16)))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(4)))))) + 1*uintptr(i32(2)))))<<uint(i32(8)))) | uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_buf))+uintptr(i32(4)))))) + 1*uintptr(i32(3)))))  	_x = (_x << uint(i32(32))) + uint64(_y)  	if _serial_type == uint32(i32(6)) {  		*(*int64)(unsafe.Pointer((*t15)(unsafe.Pointer(&(_pMem.X0))))) = *(*int64)(unsafe.Pointer(&_x)) @@ -56511,7 +56511,7 @@ _4:  				crt.X__builtin_abort(tls)  			}  		}() -		_pgno = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*int32(_pCur.X16)))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*int32(_pCur.X16)))))) + 1*uintptr(i32(1)))))))))))))) +		_pgno = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*int32(_pCur.X16)))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*int32(_pCur.X16)))))) + 1*uintptr(i32(1))))))))))  		_rc = _moveToChild(tls, _pCur, _pgno)  		goto _4  	} @@ -56597,7 +56597,7 @@ func _assertParentIndex(tls *crt.TLS, _pParent *XMemPage, _iIdx int32, _iChild u  		goto _6  	}  	func() { -		if _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pParent.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pParent.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*_iIdx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*_iIdx))))) + 1*uintptr(i32(1)))))))))))))) != _iChild { +		if _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pParent.X19))+uintptr(int32(_pParent.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*_iIdx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*_iIdx))))) + 1*uintptr(i32(1)))))))))) != _iChild {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(63892), unsafe.Pointer((*int8)(unsafe.Pointer(&_assertParentIndexØ00__func__Ø000))), unsafe.Pointer(str(75681)))  			crt.X__builtin_abort(tls)  		} @@ -56705,11 +56705,11 @@ _7:  	_lhs = int64(*(*int32)(unsafe.Pointer(&_y)))  	goto _15  _8: -	_lhs = int64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(3)))))) + (i64(4294967296) * int64((i32(256)*int32(int8(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(0)))))))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(1))))))) +	_lhs = int64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(3)))))) + (i64(4294967296) * int64((i32(256)*int32(int8(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(0)))))))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(1)))))))  	goto _15  _9:  	_x = uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(0))))) << uint(i32(24))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(1)))))<<uint(i32(16)))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(2)))))<<uint(i32(8)))) | uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(3)))))) -	_x = (_x << uint(i32(32))) | uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(3)))))) +	_x = (_x << uint(i32(32))) | uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(3))))))  	_lhs = *(*int64)(unsafe.Pointer(&_x))  	goto _15  _10: @@ -56794,13 +56794,13 @@ _7:  		{  			p := &_idx  			*p = (*p) + uint32(uint8(func() int32 { -				if int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_idx)))))))) < int32(u8(128)) { +				if int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey)) + uintptr(_idx)))) < int32(u8(128)) {  					return func() int32 { -						_notUsed = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_idx)))))))) +						_notUsed = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey)) + uintptr(_idx))))  						return i32(1)  					}()  				} -				return int32(_sqlite3GetVarint32(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_idx))))))), &_notUsed)) +				return int32(_sqlite3GetVarint32(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(_idx))), &_notUsed))  			}()))  			sink5(*p)  		} @@ -57215,11 +57215,11 @@ _10:  	return int64(*(*int32)(unsafe.Pointer(&_y)))  _11: -	return int64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)))))))))) + 1*uintptr(i32(3)))))) + (i64(4294967296) * int64((i32(256)*int32(int8(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(0)))))))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(1))))))) +	return int64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(2)))))) + 1*uintptr(i32(3)))))) + (i64(4294967296) * int64((i32(256)*int32(int8(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(0)))))))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(1)))))))  _12:  	_4_x = uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(0))))) << uint(i32(24))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(1)))))<<uint(i32(16)))) | uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(2)))))<<uint(i32(8)))) | uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aKey)) + 1*uintptr(i32(3)))))) -	_4_x = (_4_x << uint(i32(32))) | uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))))) + 1*uintptr(i32(3)))))) +	_4_x = (_4_x << uint(i32(32))) | uint64((((uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(0)))))<<uint(i32(24)))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(1)))))<<uint(i32(16))))|uint32(int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(2)))))<<uint(i32(8))))|uint32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey))+uintptr(i32(4)))))) + 1*uintptr(i32(3))))))  	return *(*int64)(unsafe.Pointer(&_4_x))  _13: @@ -57298,13 +57298,13 @@ _14:  	{  		p := &_idx1  		*p = (*p) + uint32(uint8(func() int32 { -			if int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey1)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_idx1)))))))) < int32(u8(128)) { +			if int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey1)) + uintptr(_idx1)))) < int32(u8(128)) {  				return func() int32 { -					_1_serial_type1 = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey1)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_idx1)))))))) +					_1_serial_type1 = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey1)) + uintptr(_idx1))))  					return i32(1)  				}()  			} -			return int32(_sqlite3GetVarint32(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey1))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_idx1))))))), &_1_serial_type1)) +			return int32(_sqlite3GetVarint32(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_aKey1))+uintptr(_idx1))), &_1_serial_type1))  		}()))  		sink5(*p)  	} @@ -57822,13 +57822,13 @@ func _fetchPayload(tls *crt.TLS, _pCur *XBtCursor, _pAmt *uint32) (r0 unsafe.Poi  		}  	}()  	func() { -		if uintptr(unsafe.Pointer((*XCellInfo)(unsafe.Pointer(&(_pCur.X4))).X1)) <= uintptr(unsafe.Pointer((*(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_pCur.X14)))).X19)) && (_sqlite3Config.X6) != i32(0) { +		if crt.P2U(unsafe.Pointer((*XCellInfo)(unsafe.Pointer(&(_pCur.X4))).X1)) <= crt.P2U(unsafe.Pointer((*(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_pCur.X14)))).X19)) && (_sqlite3Config.X6) != i32(0) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(63822), unsafe.Pointer((*int8)(unsafe.Pointer(&_fetchPayloadØ00__func__Ø000))), unsafe.Pointer(str(77258)))  			crt.X__builtin_abort(tls)  		}  	}()  	func() { -		if uintptr(unsafe.Pointer((*XCellInfo)(unsafe.Pointer(&(_pCur.X4))).X1)) >= uintptr(unsafe.Pointer((*(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_pCur.X14)))).X20)) && (_sqlite3Config.X6) != i32(0) { +		if crt.P2U(unsafe.Pointer((*XCellInfo)(unsafe.Pointer(&(_pCur.X4))).X1)) >= crt.P2U(unsafe.Pointer((*(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_pCur.X14)))).X20)) && (_sqlite3Config.X6) != i32(0) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(63823), unsafe.Pointer((*int8)(unsafe.Pointer(&_fetchPayloadØ00__func__Ø000))), unsafe.Pointer(str(77325)))  			crt.X__builtin_abort(tls)  		} @@ -58248,7 +58248,7 @@ _5:  		_rc = _moveToChild(tls, _pCur, _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_2_pPage.X19))+1*uintptr(int32(_2_pPage.X6)+i32(8))))))  		goto _9  	} -	_rc = _moveToChild(tls, _pCur, _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_2_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_2_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_2_pPage.X21))+1*uintptr(i32(2)*_2_iIdx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_2_pPage.X21))+1*uintptr(i32(2)*_2_iIdx))))) + 1*uintptr(i32(1))))))))))))))) +	_rc = _moveToChild(tls, _pCur, _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_2_pPage.X19))+uintptr(int32(_2_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_2_pPage.X21))+1*uintptr(i32(2)*_2_iIdx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_2_pPage.X21))+1*uintptr(i32(2)*_2_iIdx))))) + 1*uintptr(i32(1)))))))))))  _9:  	goto _1  _2: @@ -59077,14 +59077,14 @@ _78:  		_25_pSib = (*XBtree)(_25_pSib.X10)  		goto _78  	} -	if uint64(uintptr(unsafe.Pointer((*XBtShared)(_p.X1)))) < uint64(uintptr(unsafe.Pointer((*XBtShared)(_25_pSib.X1)))) { +	if uint64(crt.P2U(unsafe.Pointer((*XBtShared)(_p.X1)))) < uint64(crt.P2U(unsafe.Pointer((*XBtShared)(_25_pSib.X1)))) {  		*(**XBtree)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X9))))) = _25_pSib  		*(**XBtree)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X10))))) = nil  		*(**XBtree)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_25_pSib.X10))))) = _p  		goto _81  	}  _82: -	if ((*XBtree)(_25_pSib.X9) != nil) && (uint64(uintptr(unsafe.Pointer((*XBtShared)((*XBtree)(_25_pSib.X9).X1)))) < uint64(uintptr(unsafe.Pointer((*XBtShared)(_p.X1))))) { +	if ((*XBtree)(_25_pSib.X9) != nil) && (uint64(crt.P2U(unsafe.Pointer((*XBtShared)((*XBtree)(_25_pSib.X9).X1)))) < uint64(crt.P2U(unsafe.Pointer((*XBtShared)(_p.X1))))) {  		_25_pSib = (*XBtree)(_25_pSib.X9)  		goto _82  	} @@ -59269,7 +59269,7 @@ _7:  _5:  	_pPtr = (*uint8)(_sqlite3MallocZero(tls, (((((((((((u64(304)+uint64((_pcacheSize+i32(7))&i32(-8)))+uint64(((_pVfs.X1)+i32(7))&i32(-8)))+uint64(_journalFileSize*i32(2)))+uint64(_nPathname))+uint64(i32(1)))+uint64(_nUri))+uint64(_nPathname))+uint64(i32(8)))+uint64(i32(2)))+uint64(_nPathname))+uint64(i32(4)))+uint64(i32(2))))  	func() { -		if (int64((uintptr(unsafe.Pointer((*int8)((unsafe.Pointer)(uintptr(int64(_journalFileSize))))))-uintptr(unsafe.Pointer(nil)))/1) & int64(i32(7))) != int64(i32(0)) { +		if (int64((uintptr(unsafe.Pointer((*int8)((unsafe.Pointer)(crt.U2P(uintptr(int64(_journalFileSize)))))))-uintptr(unsafe.Pointer(nil)))/1) & int64(i32(7))) != int64(i32(0)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(51667), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3PagerOpenØ00__func__Ø000))), unsafe.Pointer(str(78772)))  			crt.X__builtin_abort(tls)  		} @@ -60172,7 +60172,7 @@ _2:  		_rc = _sqlite3NomemError(tls, i32(86983))  		goto _9  	} -	*(**XKeyInfo)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_pSorter.X7))))) = store50(&_pKeyInfo, (*XKeyInfo)(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_pSorter))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_sz)))))))))) +	*(**XKeyInfo)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_pSorter.X7))))) = store50(&_pKeyInfo, (*XKeyInfo)(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(_pSorter))))+uintptr(_sz))))))  	crt.Xmemcpy(tls, (unsafe.Pointer)(_pKeyInfo), _pCsr.X15, uint64(_szKeyInfo))  	*(**Xsqlite3)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_pKeyInfo.X4))))) = nil  	if _nField != 0 && (_nWorker == i32(0)) { @@ -60404,7 +60404,7 @@ _13:  		goto _25  	}  	_6_idx = int32(_pCur.X16) -	_rc = _moveToChild(tls, _pCur, _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_6_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_6_idx))))) + 1*uintptr(i32(1))))))))))))))) +	_rc = _moveToChild(tls, _pCur, _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_6_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_6_idx))))) + 1*uintptr(i32(1)))))))))))  	if _rc != 0 {  		return _rc  	} @@ -60821,7 +60821,7 @@ _31:  	if _rc != 0 {  		goto _end_insert  	} -	_oldCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_idx))))) + 1*uintptr(i32(1))))))))))))) +	_oldCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_idx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_idx))))) + 1*uintptr(i32(1)))))))))  	if (_pPage.X5) == 0 {  		crt.Xmemcpy(tls, (unsafe.Pointer)(_newCell), (unsafe.Pointer)(_oldCell), uint64(i32(4)))  	} @@ -60835,7 +60835,7 @@ _31:  			crt.X__builtin_abort(tls)  		}  	}() -	if uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_oldCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_szNew))))))))) > uintptr(unsafe.Pointer(_pPage.X20)) { +	if crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_oldCell))+uintptr(_szNew))))) > crt.P2U(unsafe.Pointer(_pPage.X20)) {  		return _sqlite3CorruptError(tls, i32(67224))  	}  	crt.Xmemcpy(tls, (unsafe.Pointer)(_oldCell), (unsafe.Pointer)(_newCell), uint64(_szNew)) @@ -61022,7 +61022,7 @@ func _fillInCell(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8, _pX *XBtreePaylo  		}  	}()  	func() { -		if uintptr(unsafe.Pointer(_pCell)) >= uintptr(unsafe.Pointer(_pPage.X19)) && uintptr(unsafe.Pointer(_pCell)) < uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X19))+1*uintptr(_pBt.X15))))) && _sqlite3PagerIswriteable(tls, (*XPgHdr)(_pPage.X23)) == 0 { +		if crt.P2U(unsafe.Pointer(_pCell)) >= crt.P2U(unsafe.Pointer(_pPage.X19)) && crt.P2U(unsafe.Pointer(_pCell)) < crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X19))+1*uintptr(_pBt.X15))))) && _sqlite3PagerIswriteable(tls, (*XPgHdr)(_pPage.X23)) == 0 {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65237), unsafe.Pointer((*int8)(unsafe.Pointer(&_fillInCellØ00__func__Ø000))), unsafe.Pointer(str(80959)))  			crt.X__builtin_abort(tls)  		} @@ -61172,7 +61172,7 @@ _36:  		}  	}()  	func() { -		if uintptr(unsafe.Pointer(_pPrior)) >= uintptr(unsafe.Pointer(_pPage.X19)) && uintptr(unsafe.Pointer(_pPrior)) < uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X19))+1*uintptr(_pBt.X15))))) && _sqlite3PagerIswriteable(tls, (*XPgHdr)(_pPage.X23)) == 0 { +		if crt.P2U(unsafe.Pointer(_pPrior)) >= crt.P2U(unsafe.Pointer(_pPage.X19)) && crt.P2U(unsafe.Pointer(_pPrior)) < crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X19))+1*uintptr(_pBt.X15))))) && _sqlite3PagerIswriteable(tls, (*XPgHdr)(_pPage.X23)) == 0 {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65344), unsafe.Pointer((*int8)(unsafe.Pointer(&_fillInCellØ00__func__Ø000))), unsafe.Pointer(str(81263)))  			crt.X__builtin_abort(tls)  		} @@ -61196,7 +61196,7 @@ _31:  		}  	}()  	func() { -		if uintptr(unsafe.Pointer(_pPayload)) >= uintptr(unsafe.Pointer(_pPage.X19)) && uintptr(unsafe.Pointer(_pPayload)) < uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X19))+1*uintptr(_pBt.X15))))) && _sqlite3PagerIswriteable(tls, (*XPgHdr)(_pPage.X23)) == 0 { +		if crt.P2U(unsafe.Pointer(_pPayload)) >= crt.P2U(unsafe.Pointer(_pPage.X19)) && crt.P2U(unsafe.Pointer(_pPayload)) < crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X19))+1*uintptr(_pBt.X15))))) && _sqlite3PagerIswriteable(tls, (*XPgHdr)(_pPage.X23)) == 0 {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65364), unsafe.Pointer((*int8)(unsafe.Pointer(&_fillInCellØ00__func__Ø000))), unsafe.Pointer(str(81366)))  			crt.X__builtin_abort(tls)  		} @@ -61279,10 +61279,10 @@ func _clearCell(tls *crt.TLS, _pPage *XMemPage, _pCell *uint8, _pInfo *XCellInfo  	if uint32(_pInfo.X3) == (_pInfo.X2) {  		return i32(0)  	} -	if uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_pInfo.X4)))))))))-uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(1)))))))))) > uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_pPage.X15))))))))) { +	if crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell))+uintptr(_pInfo.X4)))))-uintptr(i32(1)))))) > crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(_pPage.X15))))) {  		return _sqlite3CorruptError(tls, i32(65153))  	} -	_ovflPgno = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_pInfo.X4)))))))))-uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4))))))))) +	_ovflPgno = _sqlite3Get4byte(tls, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell))+uintptr(_pInfo.X4)))))-uintptr(i32(4)))))  	func() {  		if (_pBt.X16) <= uint32(i32(4)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65156), unsafe.Pointer((*int8)(unsafe.Pointer(&_clearCellØ00__func__Ø000))), unsafe.Pointer(str(81489))) @@ -61677,7 +61677,7 @@ func _dropCell(tls *crt.TLS, _pPage *XMemPage, _idx int32, _sz int32, _pRC *int3  		*(*uint16)(unsafe.Pointer(&(_pPage.X13))) = uint16(((((*XBtShared)(_pPage.X18).X16) - uint32(_pPage.X6)) - uint32(_pPage.X7)) - uint32(i32(8)))  		goto _15  	} -	crt.Xmemmove(tls, (unsafe.Pointer)(_ptr), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_ptr))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2))))))))), uint64(i32(2)*(int32(_pPage.X14)-_idx))) +	crt.Xmemmove(tls, (unsafe.Pointer)(_ptr), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_ptr))+uintptr(i32(2))))), uint64(i32(2)*(int32(_pPage.X14)-_idx)))  	*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(func() *uint8 {  		*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_data))+1*uintptr(_hdr+i32(3)))))) + 1*uintptr(i32(0)))) = uint8(int32(_pPage.X14) >> uint(i32(8)))  		return _data @@ -61701,7 +61701,7 @@ func init() {  func _cellSize(tls *crt.TLS, _pPage *XMemPage, _iCell int32) (r0 uint16) {  	return (*(*func(*crt.TLS, *XMemPage, *uint8) uint16)(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *uint8) uint16 -	}{(_pPage.X24)})))(tls, _pPage, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(1)))))))))))))) +	}{(_pPage.X24)})))(tls, _pPage, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19))+uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCell))))) + 1*uintptr(i32(1))))))))))  }  // Return a section of the pPage->aData to the freelist. @@ -62031,8 +62031,8 @@ _19:  	if _iChild != 0 {  		_sqlite3Put4byte(tls, (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_data))+1*uintptr(_idx))), _iChild)  	} -	_pIns = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X21)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_i*i32(2)))))))) -	crt.Xmemmove(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pIns))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2))))))))), (unsafe.Pointer)(_pIns), uint64(i32(2)*(int32(_pPage.X14)-_i))) +	_pIns = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X21)) + uintptr(_i*i32(2)))) +	crt.Xmemmove(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pIns))+uintptr(i32(2))))), (unsafe.Pointer)(_pIns), uint64(i32(2)*(int32(_pPage.X14)-_i)))  	*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(func() *uint8 {  		*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pIns)) + 1*uintptr(i32(0)))) = uint8(_idx >> uint(i32(8)))  		return _pIns @@ -62155,7 +62155,7 @@ _20:  	_4_pSpace = _pageFindSlot(tls, _pPage, _nByte, &_rc)  	if _4_pSpace != nil {  		func() { -			if uintptr(unsafe.Pointer(_4_pSpace)) < uintptr(unsafe.Pointer(_data)) || int64((uintptr(unsafe.Pointer(_4_pSpace))-uintptr(unsafe.Pointer(_data)))/1) >= int64(i32(65536)) { +			if crt.P2U(unsafe.Pointer(_4_pSpace)) < crt.P2U(unsafe.Pointer(_data)) || int64((uintptr(unsafe.Pointer(_4_pSpace))-uintptr(unsafe.Pointer(_data)))/1) >= int64(i32(65536)) {  				crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(60610), unsafe.Pointer((*int8)(unsafe.Pointer(&_allocateSpaceØ00__func__Ø000))), unsafe.Pointer(str(82705)))  				crt.X__builtin_abort(tls)  			} @@ -62412,7 +62412,7 @@ _25:  	crt.Xmemmove(tls, (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_data))+1*uintptr(_cbrk)))), (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_data))+1*uintptr(_3_top)))), uint64(_1_iFree-_3_top))  	_3_pAddr = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_data)) + 1*uintptr(_cellOffset)))  _31: -	if uintptr(unsafe.Pointer(_3_pAddr)) >= uintptr(unsafe.Pointer(_3_pEnd)) { +	if crt.P2U(unsafe.Pointer(_3_pAddr)) >= crt.P2U(unsafe.Pointer(_3_pEnd)) {  		goto _34  	}  	_pc = (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_3_pAddr)) + 1*uintptr(i32(0))))) << uint(i32(8))) | int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_3_pAddr)) + 1*uintptr(i32(1))))) @@ -62907,15 +62907,15 @@ func _balance_quick(tls *crt.TLS, _pParent *XMemPage, _pPage *XMemPage, _pSpace  		_ptrmapPutOvflPtr(tls, _pNew, _1_pCell, &_rc)  	}  _17: -	_1_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*(int32(_pPage.X14)-i32(1))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*(int32(_pPage.X14)-i32(1))))))) + 1*uintptr(i32(1))))))))))))) +	_1_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*(int32(_pPage.X14)-i32(1))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*(int32(_pPage.X14)-i32(1))))))) + 1*uintptr(i32(1)))))))))  	_1_pStop = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_1_pCell)) + 1*uintptr(i32(9))))  _19: -	if (int32(*postInc13(&_1_pCell, 1))&i32(128)) != 0 && (uintptr(unsafe.Pointer(_1_pCell)) < uintptr(unsafe.Pointer(_1_pStop))) { +	if (int32(*postInc13(&_1_pCell, 1))&i32(128)) != 0 && (crt.P2U(unsafe.Pointer(_1_pCell)) < crt.P2U(unsafe.Pointer(_1_pStop))) {  		goto _19  	}  	_1_pStop = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_1_pCell)) + 1*uintptr(i32(9))))  _22: -	if (int32(store2(postInc13(&_1_pOut, 1), *postInc13(&_1_pCell, 1)))&i32(128)) != 0 && (uintptr(unsafe.Pointer(_1_pCell)) < uintptr(unsafe.Pointer(_1_pStop))) { +	if (int32(store2(postInc13(&_1_pOut, 1), *postInc13(&_1_pCell, 1)))&i32(128)) != 0 && (crt.P2U(unsafe.Pointer(_1_pCell)) < crt.P2U(unsafe.Pointer(_1_pStop))) {  		goto _22  	}  	if _rc == i32(0) { @@ -62962,7 +62962,7 @@ _0:  		goto _3  	}  	_1_pCell = *(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_apCell)) + 8*uintptr(_i))) -	if (uint64(uintptr(unsafe.Pointer(_1_pCell))) >= uint64(uintptr(unsafe.Pointer(_aData)))) && (uint64(uintptr(unsafe.Pointer(_1_pCell))) < uint64(uintptr(unsafe.Pointer(_pEnd)))) { +	if (uint64(crt.P2U(unsafe.Pointer(_1_pCell))) >= uint64(crt.P2U(unsafe.Pointer(_aData)))) && (uint64(crt.P2U(unsafe.Pointer(_1_pCell))) < uint64(crt.P2U(unsafe.Pointer(_pEnd)))) {  		_1_pCell = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pTmp)) + 1*uintptr(int64((uintptr(unsafe.Pointer(_1_pCell))-uintptr(unsafe.Pointer(_aData)))/1))))  	}  	{ @@ -62979,7 +62979,7 @@ _0:  		*p = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(i32(2))))  		sink13(*p)  	} -	if uintptr(unsafe.Pointer(_pData)) < uintptr(unsafe.Pointer(_pCellptr)) { +	if crt.P2U(unsafe.Pointer(_pData)) < crt.P2U(unsafe.Pointer(_pCellptr)) {  		return _sqlite3CorruptError(tls, i32(65622))  	}  	crt.Xmemcpy(tls, (unsafe.Pointer)(_pData), (unsafe.Pointer)(_1_pCell), uint64(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(_szCell)) + 2*uintptr(_i))))) @@ -63136,7 +63136,7 @@ _12:  		_pRight = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X19)) + 1*uintptr(int32(_pParent.X6)+i32(8))))  		goto _21  	} -	_pRight = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pParent.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pParent.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(1))))))))))))) +	_pRight = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pParent.X19)) + uintptr(int32(_pParent.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(1)))))))))  _21:  	_pgno = _sqlite3Get4byte(tls, _pRight)  _22: @@ -63162,7 +63162,7 @@ _22:  		*(*uint8)(unsafe.Pointer(&(_pParent.X9))) = uint8(i32(0))  		goto _28  	} -	*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apDiv)) + 8*uintptr(_i))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pParent.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pParent.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(1))))))))))))) +	*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apDiv)) + 8*uintptr(_i))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pParent.X19)) + uintptr(int32(_pParent.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pParent.X21))+1*uintptr(i32(2)*((_i+_nxDiv)-int32(_pParent.X9))))))) + 1*uintptr(i32(1)))))))))  	_pgno = _sqlite3Get4byte(tls, *(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apDiv)) + 8*uintptr(_i))))  	*(*int32)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_szNew)) + 4*uintptr(_i))) = int32((*(*func(*crt.TLS, *XMemPage, *uint8) uint16)(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *uint8) uint16 @@ -63170,7 +63170,7 @@ _22:  	if (int32(_pBt.X10) & i32(4)) == 0 {  		goto _29  	} -	_13_iOff = int32(int64(uintptr(unsafe.Pointer(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apDiv)) + 8*uintptr(_i))))))) - int32(int64(uintptr(unsafe.Pointer(_pParent.X19)))) +	_13_iOff = int32(int64(crt.P2U(unsafe.Pointer(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apDiv)) + 8*uintptr(_i))))))) - int32(int64(crt.P2U(unsafe.Pointer(_pParent.X19))))  	if (_13_iOff + (*(*int32)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_szNew)) + 4*uintptr(_i))))) > int32(_pBt.X16) {  		_rc = _sqlite3CorruptError(tls, i32(66253))  		crt.Xmemset(tls, (unsafe.Pointer)(&_apOld), i32(0), uint64(_i+i32(1))*u64(8)) @@ -63216,7 +63216,7 @@ _37:  	_17_limit = int32(_17_pOld.X14)  	_17_aData = _17_pOld.X19  	_17_maskPage = _17_pOld.X15 -	_17_piCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_17_pOld.X12))))))) +	_17_piCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData)) + uintptr(_17_pOld.X12)))  	if int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_pOld.X19)) + 1*uintptr(i32(0))))) != int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apOld)) + 8*uintptr(i32(0))))).X19)) + 1*uintptr(i32(0))))) {  		_rc = _sqlite3CorruptError(tls, i32(66320))  		goto _balance_cleanup @@ -63231,7 +63231,7 @@ _43:  	if _j >= _17_limit {  		goto _46  	} -	*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_b.X2)) + 8*uintptr(_b.X0))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_17_maskPage)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(1))))))))))))) +	*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_b.X2)) + 8*uintptr(_b.X0))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData)) + uintptr(int32(_17_maskPage)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(1)))))))))  	{  		p := &_17_piCell  		*p = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(i32(2)))) @@ -63258,16 +63258,16 @@ _47:  	goto _47  _50:  _42: -	_17_piEnd = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_17_pOld.X12))))))))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(2)*int32(_17_pOld.X14)))))))) +	_17_piEnd = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData))+uintptr(_17_pOld.X12))))) + uintptr(i32(2)*int32(_17_pOld.X14))))  _54: -	if uintptr(unsafe.Pointer(_17_piCell)) < uintptr(unsafe.Pointer(_17_piEnd)) { +	if crt.P2U(unsafe.Pointer(_17_piCell)) < crt.P2U(unsafe.Pointer(_17_piEnd)) {  		func() {  			if (_b.X0) >= _nMaxCells {  				crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(66357), unsafe.Pointer((*int8)(unsafe.Pointer(&_balance_nonrootØ00__func__Ø000))), unsafe.Pointer(str(84005)))  				crt.X__builtin_abort(tls)  			}  		}() -		*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_b.X2)) + 8*uintptr(_b.X0))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_17_maskPage)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(1))))))))))))) +		*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_b.X2)) + 8*uintptr(_b.X0))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_17_aData)) + uintptr(int32(_17_maskPage)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_17_piCell)) + 1*uintptr(i32(1)))))))))  		{  			p := &_17_piCell  			*p = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(*p)) + 1*uintptr(i32(2)))) @@ -63307,7 +63307,7 @@ _54:  		}  	}()  	crt.Xmemcpy(tls, (unsafe.Pointer)(_23_pTemp), (unsafe.Pointer)(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_apDiv)) + 8*uintptr(_i)))), uint64(_23_sz)) -	*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_b.X2)) + 8*uintptr(_b.X0))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_23_pTemp)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_leafCorrection))))))) +	*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_b.X2)) + 8*uintptr(_b.X0))) = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_23_pTemp)) + uintptr(_leafCorrection)))  	func() {  		if int32(_leafCorrection) != i32(0) && int32(_leafCorrection) != i32(4) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(66375), unsafe.Pointer((*int8)(unsafe.Pointer(&_balance_nonrootØ00__func__Ø000))), unsafe.Pointer(str(84074))) @@ -63710,7 +63710,7 @@ _181:  		goto _182  	}  _188: -	if _59_iOld < _nNew && (_59_pNew.X4) == (*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aPgno)) + 4*uintptr(_59_iOld)))) && (uint64(uintptr(unsafe.Pointer(_60_pCell))) >= uint64(uintptr(unsafe.Pointer(_59_aOld))) && uint64(uintptr(unsafe.Pointer(_60_pCell))) < uint64(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_59_aOld))+1*uintptr(_59_usableSize))))))) { +	if _59_iOld < _nNew && (_59_pNew.X4) == (*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aPgno)) + 4*uintptr(_59_iOld)))) && (uint64(crt.P2U(unsafe.Pointer(_60_pCell))) >= uint64(crt.P2U(unsafe.Pointer(_59_aOld))) && uint64(crt.P2U(unsafe.Pointer(_60_pCell))) < uint64(crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_59_aOld))+1*uintptr(_59_usableSize))))))) {  		goto _193  	}  	if _leafCorrection == 0 { @@ -64141,7 +64141,7 @@ func _editPage(tls *crt.TLS, _pPg *XMemPage, _iOld int32, _iNew int32, _nNew int  		}  	}  	_pData = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aData)) + 1*uintptr(((((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aData))+1*uintptr(_hdr+i32(5)))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aData))+1*uintptr(_hdr+i32(5)))))) + 1*uintptr(i32(1))))))-i32(1))&i32(65535))+i32(1)))) -	if uintptr(unsafe.Pointer(_pData)) < uintptr(unsafe.Pointer(_pBegin)) { +	if crt.P2U(unsafe.Pointer(_pData)) < crt.P2U(unsafe.Pointer(_pBegin)) {  		goto _editpage_fail  	}  	if _iNew >= _iOld { @@ -64210,7 +64210,7 @@ _19:  	}  	_6_pCell = *(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X2)) + 8*uintptr(_i+_iNew)))  	_6_iOff = (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPg.X21))+1*uintptr(_i*i32(2)))))) + 1*uintptr(i32(0))))) << uint(i32(8))) | int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPg.X21))+1*uintptr(_i*i32(2)))))) + 1*uintptr(i32(1))))) -	if (uint64(uintptr(unsafe.Pointer(_6_pCell))) >= uint64(uintptr(unsafe.Pointer(_aData)))) && (uint64(uintptr(unsafe.Pointer(_6_pCell))) < uint64(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aData))+1*uintptr((*XBtShared)(_pPg.X18).X16))))))) { +	if (uint64(crt.P2U(unsafe.Pointer(_6_pCell))) >= uint64(crt.P2U(unsafe.Pointer(_aData)))) && (uint64(crt.P2U(unsafe.Pointer(_6_pCell))) < uint64(crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aData))+1*uintptr((*XBtShared)(_pPg.X18).X16))))))) {  		_6_pCell = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pTmp)) + 1*uintptr(int64((uintptr(unsafe.Pointer(_6_pCell))-uintptr(unsafe.Pointer(_aData)))/1))))  	}  	func() { @@ -64254,7 +64254,7 @@ _0:  		goto _3  	}  	_1_pCell = *(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X2)) + 8*uintptr(_i))) -	if uint64(uintptr(unsafe.Pointer(_1_pCell))) < uint64(uintptr(unsafe.Pointer(_pStart))) || uint64(uintptr(unsafe.Pointer(_1_pCell))) >= uint64(uintptr(unsafe.Pointer(_pEnd))) { +	if uint64(crt.P2U(unsafe.Pointer(_1_pCell))) < uint64(crt.P2U(unsafe.Pointer(_pStart))) || uint64(crt.P2U(unsafe.Pointer(_1_pCell))) >= uint64(crt.P2U(unsafe.Pointer(_pEnd))) {  		goto _5  	}  	_2_sz = int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X3)) + 2*uintptr(_i)))) @@ -64264,12 +64264,12 @@ _0:  			crt.X__builtin_abort(tls)  		}  	}() -	if _pFree == (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_pCell))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_2_sz))))))) { +	if _pFree == (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_pCell))+uintptr(_2_sz))) {  		goto _8  	}  	if _pFree != nil {  		func() { -			if uintptr(unsafe.Pointer(_pFree)) <= uintptr(unsafe.Pointer(_aData)) || int64((uintptr(unsafe.Pointer(_pFree))-uintptr(unsafe.Pointer(_aData)))/1) >= int64(i32(65536)) { +			if crt.P2U(unsafe.Pointer(_pFree)) <= crt.P2U(unsafe.Pointer(_aData)) || int64((uintptr(unsafe.Pointer(_pFree))-uintptr(unsafe.Pointer(_aData)))/1) >= int64(i32(65536)) {  				crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65735), unsafe.Pointer((*int8)(unsafe.Pointer(&_pageFreeArrayØ00__func__Ø000))), unsafe.Pointer(str(85114)))  				crt.X__builtin_abort(tls)  			} @@ -64278,7 +64278,7 @@ _0:  	}  	_pFree = _1_pCell  	_szFree = _2_sz -	if uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pFree))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_2_sz))))))))) > uintptr(unsafe.Pointer(_pEnd)) { +	if crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pFree))+uintptr(_2_sz))))) > crt.P2U(unsafe.Pointer(_pEnd)) {  		return i32(0)  	}  	goto _14 @@ -64297,7 +64297,7 @@ _5:  _3:  	if _pFree != nil {  		func() { -			if uintptr(unsafe.Pointer(_pFree)) <= uintptr(unsafe.Pointer(_aData)) || int64((uintptr(unsafe.Pointer(_pFree))-uintptr(unsafe.Pointer(_aData)))/1) >= int64(i32(65536)) { +			if crt.P2U(unsafe.Pointer(_pFree)) <= crt.P2U(unsafe.Pointer(_aData)) || int64((uintptr(unsafe.Pointer(_pFree))-uintptr(unsafe.Pointer(_aData)))/1) >= int64(i32(65536)) {  				crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65749), unsafe.Pointer((*int8)(unsafe.Pointer(&_pageFreeArrayØ00__func__Ø000))), unsafe.Pointer(str(85114)))  				crt.X__builtin_abort(tls)  			} @@ -64374,7 +64374,7 @@ _3:  	_1_pSlot = _pData  _9:  	func() { -		if uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_pSlot))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_1_sz))))))))) > uintptr(unsafe.Pointer(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X2)) + 8*uintptr(_i))))) && uintptr(unsafe.Pointer(_1_pSlot)) < uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X2)) + 8*uintptr(_i)))))+uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_1_sz))))))))) && (_sqlite3Config.X6) != i32(0) { +		if crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_pSlot))+uintptr(_1_sz))))) > crt.P2U(unsafe.Pointer(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X2)) + 8*uintptr(_i))))) && crt.P2U(unsafe.Pointer(_1_pSlot)) < crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(*(**uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pCArray.X2)) + 8*uintptr(_i)))))+uintptr(_1_sz))))) && (_sqlite3Config.X6) != i32(0) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(65690), unsafe.Pointer((*int8)(unsafe.Pointer(&_pageInsertArrayØ00__func__Ø000))), unsafe.Pointer(str(85206)))  			crt.X__builtin_abort(tls)  		} @@ -64463,7 +64463,7 @@ func _sqlite3ScratchFree(tls *crt.TLS, _p unsafe.Pointer) {  	if _p == nil {  		goto _0  	} -	if (uint64(uintptr(_p)) >= uint64(uintptr(_sqlite3Config.X19))) && (uint64(uintptr(_p)) < uint64(uintptr(_mem0.X2))) { +	if (uint64(crt.P2U(_p)) >= uint64(crt.P2U(_sqlite3Config.X19))) && (uint64(crt.P2U(_p)) < uint64(crt.P2U(_mem0.X2))) {  		_2_pSlot = (*Xsqlite3_file)(_p)  		Xsqlite3_mutex_enter(tls, (*Xsqlite3_mutex)(_mem0.X0))  		*(**Xsqlite3_file)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_2_pSlot.X0))))) = (*Xsqlite3_file)(_mem0.X3) @@ -64588,7 +64588,7 @@ func _sqlite3BtreeDelete(tls *crt.TLS, _pCur *XBtCursor, _flags uint8) (r0 int32  	_iCellDepth = int32(_pCur.X14)  	_iCellIdx = int32(_pCur.X16)  	_pPage = *(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_iCellDepth))) -	_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCellIdx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCellIdx))))) + 1*uintptr(i32(1))))))))))))) +	_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCellIdx))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_iCellIdx))))) + 1*uintptr(i32(1)))))))))  	if _bPreserve == 0 {  		goto _18  	} @@ -64638,8 +64638,8 @@ _25:  	}  	_7_pLeaf = *(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_pCur.X14)))  	_7_n = (*(**XMemPage)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[20]unsafe.Pointer)(unsafe.Pointer(&(_pCur.X19))))) + 8*uintptr(_iCellDepth+i32(1))))).X4 -	_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_7_pLeaf.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_7_pLeaf.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_7_pLeaf.X21))+1*uintptr(i32(2)*(int32(_7_pLeaf.X14)-i32(1))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_7_pLeaf.X21))+1*uintptr(i32(2)*(int32(_7_pLeaf.X14)-i32(1))))))) + 1*uintptr(i32(1))))))))))))) -	if uintptr(unsafe.Pointer(_pCell)) < uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_7_pLeaf.X19))+1*uintptr(i32(4)))))) { +	_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_7_pLeaf.X19)) + uintptr(int32(_7_pLeaf.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_7_pLeaf.X21))+1*uintptr(i32(2)*(int32(_7_pLeaf.X14)-i32(1))))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_7_pLeaf.X21))+1*uintptr(i32(2)*(int32(_7_pLeaf.X14)-i32(1))))))) + 1*uintptr(i32(1))))))))) +	if crt.P2U(unsafe.Pointer(_pCell)) < crt.P2U(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_7_pLeaf.X19))+1*uintptr(i32(4)))))) {  		return _sqlite3CorruptError(tls, i32(67407))  	}  	_7_nCell = int32((*(*func(*crt.TLS, *XMemPage, *uint8) uint16)(unsafe.Pointer(&struct { @@ -64660,7 +64660,7 @@ _25:  	}()  	_rc = _sqlite3PagerWrite(tls, (*XPgHdr)(_7_pLeaf.X23))  	if _rc == i32(0) { -		_insertCell(tls, _pPage, _iCellIdx, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell))-uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(i32(4)))))))), _7_nCell+i32(4), _7_pTmp, _7_n, &_rc) +		_insertCell(tls, _pPage, _iCellIdx, (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCell))-uintptr(i32(4)))), _7_nCell+i32(4), _7_pTmp, _7_n, &_rc)  	}  	_dropCell(tls, _7_pLeaf, int32(_7_pLeaf.X14)-i32(1), _7_nCell, &_rc)  	if _rc != 0 { @@ -64818,7 +64818,7 @@ _2:  	goto _3  _0:  	*_pnKey = (*XSorterRecord)((*t47)(unsafe.Pointer(&(_pSorter.X9))).X0).X0 -	_pKey = (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)((*t47)(unsafe.Pointer(&(_pSorter.X9))).X0))) + uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))) +	_pKey = (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)((*t47)(unsafe.Pointer(&(_pSorter.X9))).X0))) + uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16))))))))))))  _3:  	return _pKey  } @@ -65400,7 +65400,7 @@ func _vdbeSorterMerge(tls *crt.TLS, _pTask *XSortSubtask, _p1 *XSorterRecord, _p  _3:  	_1_res = (*(*func(*crt.TLS, *XSortSubtask, *int32, unsafe.Pointer, int32, unsafe.Pointer, int32) int32)(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, *int32, unsafe.Pointer, int32, unsafe.Pointer, int32) int32 -	}{(_pTask.X6)})))(tls, _pTask, &_bCached, (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_p1))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))), _p1.X0, (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_p2))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))), _p2.X0) +	}{(_pTask.X6)})))(tls, _pTask, &_bCached, (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_p1))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))), _p1.X0, (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_p2))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))), _p2.X0)  	if _1_res > i32(0) {  		goto _6  	} @@ -65582,7 +65582,7 @@ _13:  	}  	_4_pNext = (*XSorterRecord)(*(*unsafe.Pointer)(unsafe.Pointer((*t48)(unsafe.Pointer(&(_4_p.X1))))))  	_vdbePmaWriteVarint(tls, &_writer, uint64(_4_p.X0)) -	_vdbePmaWriteBlob(tls, &_writer, (*uint8)((unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_p))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16))))))))))))), _4_p.X0) +	_vdbePmaWriteBlob(tls, &_writer, (*uint8)((unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_4_p))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16))))))))))))), _4_p.X0)  	if (_pList.X1) == nil {  		Xsqlite3_free(tls, (unsafe.Pointer)(_4_p))  	} @@ -65860,7 +65860,7 @@ func _vdbeSorterFlushThread(tls *crt.TLS, _pCtx unsafe.Pointer) (r0 unsafe.Point  	}()  	_rc = _vdbeSorterListToPMA(tls, _pTask, (*t47)(unsafe.Pointer(&(_pTask.X4))))  	*(*int32)(unsafe.Pointer(&(_pTask.X1))) = i32(1) -	return (unsafe.Pointer)(uintptr(int64(_rc))) +	return crt.U2P(uintptr(int64(_rc)))  }  var _vdbeSorterFlushThreadØ00__func__Ø000 [22]int8 @@ -66632,7 +66632,7 @@ func _vdbeIncrPopulateThread(tls *crt.TLS, _pCtx unsafe.Pointer) (r0 unsafe.Poin  	var _pRet unsafe.Pointer  	var _pIncr *XIncrMerger  	_pIncr = (*XIncrMerger)(_pCtx) -	_pRet = (unsafe.Pointer)(uintptr(int64(_vdbeIncrPopulate(tls, _pIncr)))) +	_pRet = crt.U2P(uintptr(int64(_vdbeIncrPopulate(tls, _pIncr))))  	*(*int32)(unsafe.Pointer(&((*XSortSubtask)(_pIncr.X0).X1))) = i32(1)  	return _pRet  } @@ -66736,7 +66736,7 @@ _1:  		f func(*crt.TLS, unsafe.Pointer, *int32, unsafe.Pointer, int32, unsafe.Pointer, int32) int32  	}{(_pTask.X6)})))(tls, _pTask, &_1_bCached, (unsafe.Pointer)(_1_pReadr1.X6), _1_pReadr1.X3, (unsafe.Pointer)(_1_pReadr2.X6), _1_pReadr2.X3)  _8: -	if (_2_iRes < i32(0)) || ((_2_iRes == i32(0)) && (uintptr(unsafe.Pointer(_1_pReadr1)) < uintptr(unsafe.Pointer(_1_pReadr2)))) { +	if (_2_iRes < i32(0)) || ((_2_iRes == i32(0)) && (crt.P2U(unsafe.Pointer(_1_pReadr1)) < crt.P2U(unsafe.Pointer(_1_pReadr2)))) {  		*(*int32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pMerger.X2)) + 4*uintptr(_1_i))) = int32(int64((uintptr(unsafe.Pointer(_1_pReadr1)) - uintptr(unsafe.Pointer((*XPmaReader)(_pMerger.X3)))) / 80))  		_1_pReadr2 = (*XPmaReader)(unsafe.Pointer(uintptr(_pMerger.X3) + 80*uintptr(*(*int32)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pMerger.X2)) + 4*uintptr(_1_i^i32(1)))))))  		_1_bCached = i32(0) @@ -66921,7 +66921,7 @@ func _vdbePmaReaderBgIncrInit(tls *crt.TLS, _pCtx unsafe.Pointer) (r0 unsafe.Poi  	var _pRet unsafe.Pointer  	var _pReader *XPmaReader  	_pReader = (*XPmaReader)(_pCtx) -	_pRet = (unsafe.Pointer)(uintptr(int64(_vdbePmaReaderIncrMergeInit(tls, _pReader, i32(1))))) +	_pRet = crt.U2P(uintptr(int64(_vdbePmaReaderIncrMergeInit(tls, _pReader, i32(1)))))  	*(*int32)(unsafe.Pointer(&((*XSortSubtask)((*XIncrMerger)(_pReader.X10).X0).X1))) = i32(1)  	return _pRet  } @@ -67346,7 +67346,7 @@ _24:  	}  	*(**XSorterRecord)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer((*t48)(unsafe.Pointer(&(_pNew.X1))))))) = (*XSorterRecord)((*t47)(unsafe.Pointer(&(_pSorter.X9))).X0)  _32: -	crt.Xmemcpy(tls, (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_pNew))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))), (unsafe.Pointer)(_pVal.X5), uint64(_pVal.X4)) +	crt.Xmemcpy(tls, (unsafe.Pointer)((*XSorterRecord)(unsafe.Pointer(uintptr(unsafe.Pointer(_pNew))+uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((*XSorterRecord)(unsafe.Pointer(uintptr(16)))))))))))), (unsafe.Pointer)(_pVal.X5), uint64(_pVal.X4))  	*(*int32)(unsafe.Pointer(&(_pNew.X0))) = _pVal.X4  	*(**XSorterRecord)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&((*t47)(unsafe.Pointer(&(_pSorter.X9))).X0))))) = _pNew  	return _rc @@ -67674,7 +67674,7 @@ _5:  	if _i >= int32(_pPage.X14) {  		goto _8  	} -	_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(1))))))))))))) +	_pCell = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pPage.X19)) + uintptr(int32(_pPage.X15)&((int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(0)))))<<uint(i32(8)))|int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pPage.X21))+1*uintptr(i32(2)*_i))))) + 1*uintptr(i32(1)))))))))  	if (_pPage.X5) != 0 {  		goto _9  	} @@ -68699,7 +68699,7 @@ func _sqlite3RowSetInit(tls *crt.TLS, _db *Xsqlite3, _pSpace unsafe.Pointer, _N  	*(**TRowSetEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X2))))) = nil  	*(**TRowSetEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X3))))) = nil  	*(**TRowSetEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X5))))) = nil -	*(**TRowSetEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X4))))) = (*TRowSetEntry)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(56)))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_p)))))))) +	*(**TRowSetEntry)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_p.X4))))) = (*TRowSetEntry)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(56)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_p))))))))  	*(*uint16)(unsafe.Pointer(&(_p.X6))) = uint16((uint64(_N) - u64(56)) / u64(24))  	*(*uint16)(unsafe.Pointer(&(_p.X7))) = uint16(i32(1))  	*(*int32)(unsafe.Pointer(&(_p.X8))) = i32(0) @@ -71338,7 +71338,7 @@ func _sqlite3ColumnType(tls *crt.TLS, _pCol *XColumn, _zDflt *int8) (r0 *int8) {  	if (int32(_pCol.X6) & i32(4)) == i32(0) {  		return _zDflt  	} -	return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCol.X0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(crt.Xstrlen(tls, _pCol.X0)))))))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))) +	return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pCol.X0))+uintptr(crt.Xstrlen(tls, _pCol.X0)))))) + uintptr(i32(1))))  }  // This function is invoked by the vdbe to call the xDestroy method @@ -78668,7 +78668,7 @@ func _keyInfoFromExprList(tls *crt.TLS, _pParse *XParse, _pList *XExprList, _iSt  			crt.X__builtin_abort(tls)  		}  	}() -	*func() **TExprList_item { _i = _iStart; return &_pItem }() = (*TExprList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer((*[1]TExprList_item)(unsafe.Pointer(&(_pList.X2))))))) + uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(uintptr(_iStart)))))*uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(uintptr(32))))))))))) +	*func() **TExprList_item { _i = _iStart; return &_pItem }() = (*TExprList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer((*[1]TExprList_item)(unsafe.Pointer(&(_pList.X2))))))) + uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(uintptr(_iStart)*uintptr(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(uintptr(32)))))))))))  _3:  	if _i >= _nExpr {  		goto _6 @@ -79570,7 +79570,7 @@ func _isSelfJoinView(tls *crt.TLS, _pTabList *XSrcList, _pThis *TSrcList_item) (  	var _pItem *TSrcList_item  	_pItem = (*TSrcList_item)(unsafe.Pointer((*[1]TSrcList_item)(unsafe.Pointer(&(_pTabList.X2)))))  _0: -	if uintptr(unsafe.Pointer(_pItem)) >= uintptr(unsafe.Pointer(_pThis)) { +	if crt.P2U(unsafe.Pointer(_pItem)) >= crt.P2U(unsafe.Pointer(_pThis)) {  		goto _3  	}  	if (*XSelect)(_pItem.X5) == nil { @@ -79778,7 +79778,7 @@ func _sqlite3WhereBegin(tls *crt.TLS, _pParse *XParse, _pTabList *XSrcList, _pWh  	_pMaskSet = (*XWhereMaskSet)(unsafe.Pointer(&(_pWInfo.X23)))  	*(**XWhereInfo)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_sWLB.X0))))) = _pWInfo  	*(**XWhereClause)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_sWLB.X1))))) = (*XWhereClause)(unsafe.Pointer(&(_pWInfo.X22))) -	*(**XWhereLoop)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_sWLB.X3))))) = (*XWhereLoop)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pWInfo)))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_nByteWInfo))))))))) +	*(**XWhereLoop)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_sWLB.X3))))) = (*XWhereLoop)(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pWInfo)))) + uintptr(_nByteWInfo)))))  	func() {  		if (int64((uintptr(unsafe.Pointer((*int8)(unsafe.Pointer((*XWhereLoop)(_sWLB.X3)))))-uintptr(unsafe.Pointer(nil)))/1) & int64(i32(7))) != int64(i32(0)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(134858), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3WhereBeginØ00__func__Ø000))), unsafe.Pointer(str(101067))) @@ -79922,10 +79922,10 @@ _57:  	if (_17_tabUsed & (_pLoop.X1)) != uint64(i32(0)) {  		goto _59  	} -	_19_pEnd = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)((*XWhereClause)(_sWLB.X1).X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr((*XWhereClause)(_sWLB.X1).X3)))))*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64))))))))))) +	_19_pEnd = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)((*XWhereClause)(_sWLB.X1).X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr((*XWhereClause)(_sWLB.X1).X3)*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64)))))))))))  	_19_pTerm = (*XWhereTerm)((*XWhereClause)(_sWLB.X1).X5)  _64: -	if uintptr(unsafe.Pointer(_19_pTerm)) >= uintptr(unsafe.Pointer(_19_pEnd)) { +	if crt.P2U(unsafe.Pointer(_19_pTerm)) >= crt.P2U(unsafe.Pointer(_19_pEnd)) {  		goto _67  	}  	if (((_19_pTerm.X12) & (_pLoop.X1)) != uint64(i32(0))) && ((((*XExpr)(_19_pTerm.X0).X2) & uint32(i32(1))) == uint32(i32(0))) { @@ -79934,7 +79934,7 @@ _64:  	*(*uintptr)(unsafe.Pointer(&_19_pTerm)) += uintptr(64)  	goto _64  _67: -	if uintptr(unsafe.Pointer(_19_pTerm)) < uintptr(unsafe.Pointer(_19_pEnd)) { +	if crt.P2U(unsafe.Pointer(_19_pTerm)) < crt.P2U(unsafe.Pointer(_19_pEnd)) {  		goto _59  	}  	*(*uint8)(unsafe.Pointer(&(_pWInfo.X11))) -= 1 @@ -80025,7 +80025,7 @@ _102:  	*func() *int32 { _33_b = _33_b >> uint(i32(1)); return &_33_n }() += 1  	goto _102  _105: -	_sqlite3VdbeChangeP4(tls, _v, i32(-1), (*int8)((unsafe.Pointer)(uintptr(int64(_33_n)))), i32(-11)) +	_sqlite3VdbeChangeP4(tls, _v, i32(-1), (*int8)((unsafe.Pointer)(crt.U2P(uintptr(int64(_33_n))))), i32(-11))  	func() {  		if _33_n > int32(_27_pTab.X11) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(135098), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3WhereBeginØ00__func__Ø000))), unsafe.Pointer(str(101210))) @@ -83939,7 +83939,7 @@ _2:  		}  	}()  _6: -	_pTerm = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(_pWC.X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(_k)))))*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64))))))))))) +	_pTerm = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(_pWC.X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(_k)*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64)))))))))))  _7:  	if _k >= (_pWC.X3) {  		goto _10 @@ -84347,7 +84347,7 @@ func _whereLoopAddAll(tls *crt.TLS, _pBuilder *XWhereLoopBuilder) (r0 int32) {  	_whereLoopInit(tls, _pNew)  	*func() **TSrcList_item { _iTab = i32(0); return &_pItem }() = (*TSrcList_item)(unsafe.Pointer((*[1]TSrcList_item)(unsafe.Pointer(&(_pTabList.X2)))))  _0: -	if uintptr(unsafe.Pointer(_pItem)) >= uintptr(unsafe.Pointer(_pEnd)) { +	if crt.P2U(unsafe.Pointer(_pItem)) >= crt.P2U(unsafe.Pointer(_pEnd)) {  		goto _3  	}  	_1_mUnusable = uint64(i32(0)) @@ -84362,7 +84362,7 @@ _0:  	}  	_3_p = (*TSrcList_item)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pItem)) + 112*uintptr(i32(1))))  _6: -	if uintptr(unsafe.Pointer(_3_p)) >= uintptr(unsafe.Pointer(_pEnd)) { +	if crt.P2U(unsafe.Pointer(_3_p)) >= crt.P2U(unsafe.Pointer(_pEnd)) {  		goto _9  	}  	if (_1_mUnusable != 0) || (int32((*t28)(unsafe.Pointer(&(_3_p.X9))).X0)&i32(10)) != 0 { @@ -85123,7 +85123,7 @@ _10:  		goto _13  	}  	if int32(_p.X1) > int32((*XWhereOrCost)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[3]XWhereOrCost)(unsafe.Pointer(&(_pSet.X1)))))+16*uintptr(_i))).X1) { -		_p = (*XWhereOrCost)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer((*[3]XWhereOrCost)(unsafe.Pointer(&(_pSet.X1))))))) + uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer(uintptr(_i)))))*uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer(uintptr(16))))))))))) +		_p = (*XWhereOrCost)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer((*[3]XWhereOrCost)(unsafe.Pointer(&(_pSet.X1))))))) + uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer(uintptr(_i)*uintptr(unsafe.Pointer((*XWhereOrCost)(unsafe.Pointer(uintptr(16)))))))))))  	}  	_i += 1  	goto _10 @@ -85417,7 +85417,7 @@ func _whereLoopAddBtree(tls *crt.TLS, _pBuilder *XWhereLoopBuilder, _mPrereq uin  	_pNew = (*XWhereLoop)(_pBuilder.X3)  	_pWInfo = (*XWhereInfo)(_pBuilder.X0)  	_pTabList = (*XSrcList)(_pWInfo.X1) -	_pSrc = (*TSrcList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer((*[1]TSrcList_item)(unsafe.Pointer(&(_pTabList.X2))))))) + uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(_pNew.X3)))))*uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(112))))))))))) +	_pSrc = (*TSrcList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer((*[1]TSrcList_item)(unsafe.Pointer(&(_pTabList.X2))))))) + uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(_pNew.X3)*uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(112)))))))))))  	_pTab = (*XTable)(_pSrc.X4)  	_pWC = (*XWhereClause)(_pBuilder.X1)  	func() { @@ -85455,10 +85455,10 @@ _5:  	if (*XWhereOrSet)(_pBuilder.X4) != nil || (int32(_pWInfo.X10)&i32(32)) != i32(0) || (((*Xsqlite3)((*XParse)(_pWInfo.X0).X0).X6)&i32(1048576)) == i32(0) || (*XIndex)(_pSrc.X16) != nil || ((uint32((*t28)(unsafe.Pointer(&(_pSrc.X9))).X1)<<uint(i32(31)))>>uint(i32(31))) != 0 || ((_pTab.X9)&uint32(i32(32))) != uint32(i32(0)) || ((uint32(((*t28)(unsafe.Pointer(&(_pSrc.X9))).X1)>>uint(i32(3)))<<uint(i32(31)))>>uint(i32(31))) != 0 || ((uint32(((*t28)(unsafe.Pointer(&(_pSrc.X9))).X1)>>uint(i32(5)))<<uint(i32(31)))>>uint(i32(31))) != 0 {  		goto _14  	} -	_5_pWCEnd = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(_pWC.X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(_pWC.X3)))))*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64))))))))))) +	_5_pWCEnd = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(_pWC.X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(_pWC.X3)*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64)))))))))))  	_5_pTerm = (*XWhereTerm)(_pWC.X5)  _15: -	if _rc != i32(0) || uintptr(unsafe.Pointer(_5_pTerm)) >= uintptr(unsafe.Pointer(_5_pWCEnd)) { +	if _rc != i32(0) || crt.P2U(unsafe.Pointer(_5_pTerm)) >= crt.P2U(unsafe.Pointer(_5_pWCEnd)) {  		goto _19  	}  	if ((_5_pTerm.X11) & (_pNew.X1)) != 0 { @@ -86603,14 +86603,14 @@ func _whereLoopAddOr(tls *crt.TLS, _pBuilder *XWhereLoopBuilder, _mPrereq uint64  	_pWInfo = (*XWhereInfo)(_pBuilder.X0)  	_rc = i32(0)  	_pWC = (*XWhereClause)(_pBuilder.X1) -	_pWCEnd = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(_pWC.X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(_pWC.X3)))))*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64))))))))))) +	_pWCEnd = (*XWhereTerm)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereTerm)(_pWC.X5))) + uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(_pWC.X3)*uintptr(unsafe.Pointer((*XWhereTerm)(unsafe.Pointer(uintptr(64)))))))))))  	_pNew = (*XWhereLoop)(_pBuilder.X3)  	crt.Xmemset(tls, (unsafe.Pointer)(&_sSum), i32(0), u64(56)) -	_pItem = (*TSrcList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer((*[1]TSrcList_item)(unsafe.Pointer(&((*XSrcList)(_pWInfo.X1).X2))))))) + uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(_pNew.X3)))))*uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(112))))))))))) +	_pItem = (*TSrcList_item)(unsafe.Pointer(uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer((*[1]TSrcList_item)(unsafe.Pointer(&((*XSrcList)(_pWInfo.X1).X2))))))) + uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(_pNew.X3)*uintptr(unsafe.Pointer((*TSrcList_item)(unsafe.Pointer(uintptr(112)))))))))))  	_iCur = _pItem.X11  	_pTerm = (*XWhereTerm)(_pWC.X5)  _0: -	if uintptr(unsafe.Pointer(_pTerm)) >= uintptr(unsafe.Pointer(_pWCEnd)) || _rc != i32(0) { +	if crt.P2U(unsafe.Pointer(_pTerm)) >= crt.P2U(unsafe.Pointer(_pWCEnd)) || _rc != i32(0) {  		goto _4  	}  	if (int32(_pTerm.X4)&i32(512)) == i32(0) || (((*XWhereOrInfo)(*(*unsafe.Pointer)(unsafe.Pointer((*t63)(unsafe.Pointer(&(_pTerm.X10)))))).X1)&(_pNew.X1)) == uint64(i32(0)) { @@ -86624,7 +86624,7 @@ _0:  	*(**XWhereOrSet)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_sSubBuild.X4))))) = &_sCur  	_2_pOrTerm = (*XWhereTerm)(_2_pOrWC.X5)  _7: -	if uintptr(unsafe.Pointer(_2_pOrTerm)) >= uintptr(unsafe.Pointer(_2_pOrWCEnd)) { +	if crt.P2U(unsafe.Pointer(_2_pOrTerm)) >= crt.P2U(unsafe.Pointer(_2_pOrWCEnd)) {  		goto _10  	}  	if (int32(_2_pOrTerm.X4) & i32(1024)) != i32(0) { @@ -86800,9 +86800,9 @@ _8:  		return _sqlite3NomemError(tls, i32(134273))  	}  	_aTo = (*XWherePath)(unsafe.Pointer(_pSpace)) -	_aFrom = (*XWherePath)(unsafe.Pointer(uintptr(unsafe.Pointer(_aTo)) + uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(_mxChoice)))))*uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(32))))))))))) +	_aFrom = (*XWherePath)(unsafe.Pointer(uintptr(unsafe.Pointer(_aTo)) + uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(_mxChoice)*uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(32)))))))))))  	crt.Xmemset(tls, (unsafe.Pointer)(_aFrom), i32(0), u64(32)) -	_pX = (**XWhereLoop)(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(unsafe.Pointer(_aFrom)) + uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(_mxChoice)))))*uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(32))))))))))))) +	_pX = (**XWhereLoop)(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(unsafe.Pointer(_aFrom)) + uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(_mxChoice)*uintptr(unsafe.Pointer((*XWherePath)(unsafe.Pointer(uintptr(32)))))))))))))  	*func() **XWherePath { _ii = _mxChoice * i32(2); return &_pFrom }() = _aTo  _10:  	if _ii <= i32(0) { @@ -87016,7 +87016,7 @@ _87:  	if _iLoop >= _nLoop {  		goto _90  	} -	_28_pLevel = (*XWhereLevel)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer((*[1]XWhereLevel)(unsafe.Pointer(&(_pWInfo.X24))))))) + uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer(uintptr(_iLoop)))))*uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer(uintptr(88))))))))))) +	_28_pLevel = (*XWhereLevel)(unsafe.Pointer(uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer((*[1]XWhereLevel)(unsafe.Pointer(&(_pWInfo.X24))))))) + uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer(uintptr(_iLoop)*uintptr(unsafe.Pointer((*XWhereLevel)(unsafe.Pointer(uintptr(88)))))))))))  	*(**XWhereLoop)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_28_pLevel.X18))))) = store67(&_pWLoop, *(**XWhereLoop)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pFrom.X6)) + 8*uintptr(_iLoop))))  	*(*uint8)(unsafe.Pointer(&(_28_pLevel.X11))) = _pWLoop.X3  	*(*int32)(unsafe.Pointer(&(_28_pLevel.X1))) = (*TSrcList_item)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[1]TSrcList_item)(unsafe.Pointer(&((*XSrcList)(_pWInfo.X1).X2))))) + 112*uintptr(_28_pLevel.X11))).X11 @@ -87582,7 +87582,7 @@ func _constructAutomaticIndex(tls *crt.TLS, _pParse *XParse, _pWC *XWhereClause,  	_idxCols = uint64(i32(0))  	_pTerm = (*XWhereTerm)(_pWC.X5)  _2: -	if uintptr(unsafe.Pointer(_pTerm)) >= uintptr(unsafe.Pointer(_pWCEnd)) { +	if crt.P2U(unsafe.Pointer(_pTerm)) >= crt.P2U(unsafe.Pointer(_pWCEnd)) {  		goto _5  	}  	_1_pExpr = (*XExpr)(_pTerm.X0) @@ -87670,7 +87670,7 @@ _27:  	_idxCols = uint64(i32(0))  	_pTerm = (*XWhereTerm)(_pWC.X5)  _31: -	if uintptr(unsafe.Pointer(_pTerm)) >= uintptr(unsafe.Pointer(_pWCEnd)) { +	if crt.P2U(unsafe.Pointer(_pTerm)) >= crt.P2U(unsafe.Pointer(_pWCEnd)) {  		goto _34  	}  	if _termCanDriveIndex(tls, _pTerm, _pSrc, _notReady) == 0 { @@ -87821,7 +87821,7 @@ func _sqlite3AllocateIndexObject(tls *crt.TLS, _db *Xsqlite3, _nCol int16, _nExt  	_nByte = int32((u64(104) + (((u64(8) * uint64(_nCol)) + uint64(i32(7))) & uint64(i32(-8)))) + (((((u64(2) * uint64(int32(_nCol)+i32(1))) + (u64(2) * uint64(_nCol))) + (u64(1) * uint64(_nCol))) + uint64(i32(7))) & uint64(i32(-8))))  	_p = (*XIndex)(_sqlite3DbMallocZero(tls, _db, uint64(_nByte+_nExtra)))  	if _p != nil { -		_1_pExtra = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_p)))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(104)))))))) +		_1_pExtra = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_p)))) + uintptr(u64(104))))  		*(***int8)(unsafe.Pointer(&(_p.X8))) = (**int8)(unsafe.Pointer(_1_pExtra))  		{  			p := &_1_pExtra @@ -87843,7 +87843,7 @@ func _sqlite3AllocateIndexObject(tls *crt.TLS, _db *Xsqlite3, _nCol int16, _nExt  		*(**uint8)(unsafe.Pointer(&(_p.X7))) = (*uint8)(unsafe.Pointer(_1_pExtra))  		*(*uint16)(unsafe.Pointer(&(_p.X14))) = uint16(_nCol)  		*(*uint16)(unsafe.Pointer(&(_p.X13))) = uint16(int32(_nCol) - i32(1)) -		*_ppExtra = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_p)))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_nByte))))))) +		*_ppExtra = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_p)))) + uintptr(_nByte)))  	}  	return _p  } @@ -94433,12 +94433,12 @@ func _sqlite3NestedParse(tls *crt.TLS, _pParse *XParse, _zFormat *int8, args ...  		return  	}  	*(*uint8)(unsafe.Pointer(&(_pParse.X6))) += 1 -	crt.Xmemcpy(tls, (unsafe.Pointer)(&_saveBuf), (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pParse))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(456))))))))), u64(144)) -	crt.Xmemset(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pParse))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(456))))))))), i32(0), u64(144)) +	crt.Xmemcpy(tls, (unsafe.Pointer)(&_saveBuf), (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pParse))))+uintptr(u64(456))))), u64(144)) +	crt.Xmemset(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pParse))))+uintptr(u64(456))))), i32(0), u64(144))  	_sqlite3RunParser(tls, _pParse, _zSql, &_zErrMsg)  	_sqlite3DbFree(tls, _db, (unsafe.Pointer)(_zErrMsg))  	_sqlite3DbFree(tls, _db, (unsafe.Pointer)(_zSql)) -	crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pParse))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(u64(456))))))))), (unsafe.Pointer)(&_saveBuf), u64(144)) +	crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(_pParse))))+uintptr(u64(456))))), (unsafe.Pointer)(&_saveBuf), u64(144))  	*(*uint8)(unsafe.Pointer(&(_pParse.X6))) -= 1  	_ = _saveBuf  } @@ -94992,16 +94992,16 @@ func _sqlite3Utf8CharLen(tls *crt.TLS, _zIn *int8, _nByte int32) (r0 int32) {  		_zTerm = (*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_nByte)))  		goto _1  	} -	_zTerm = (*uint8)(unsafe.Pointer(uintptr(u64(18446744073709551615)))) +	_zTerm = (*uint8)(crt.U2P(uintptr(u64(18446744073709551615))))  _1:  	func() { -		if uintptr(unsafe.Pointer(_z)) > uintptr(unsafe.Pointer(_zTerm)) { +		if crt.P2U(unsafe.Pointer(_z)) > crt.P2U(unsafe.Pointer(_zTerm)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(27515), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3Utf8CharLenØ00__func__Ø000))), unsafe.Pointer(str(114054)))  			crt.X__builtin_abort(tls)  		}  	}()  _4: -	if int32(*_z) == i32(0) || uintptr(unsafe.Pointer(_z)) >= uintptr(unsafe.Pointer(_zTerm)) { +	if int32(*_z) == i32(0) || crt.P2U(unsafe.Pointer(_z)) >= crt.P2U(unsafe.Pointer(_zTerm)) {  		goto _5  	}  	if int32(*postInc13(&_z, 1)) < i32(192) { @@ -95083,7 +95083,7 @@ _8:  		*(*uint8)(unsafe.Pointer(&(_pCol.X5))) = uint8(i32(1))  		goto _11  	} -	_zType = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_sqlite3Strlen30(tls, _z)))))))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))) +	_zType = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_sqlite3Strlen30(tls, _z)))))) + uintptr(i32(1))))  	crt.Xmemcpy(tls, (unsafe.Pointer)(_zType), (unsafe.Pointer)(_pType.X0), uint64(_pType.X1))  	*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zType)) + 1*uintptr(_pType.X1))) = int8(i32(0))  	_sqlite3Dequote(tls, _zType) @@ -97579,8 +97579,8 @@ _15:  	if _aXRef == nil {  		goto _update_cleanup  	} -	_aRegIdx = (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(_aXRef)) + uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(_pTab.X11)))))*uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(4))))))))))) -	_aToOpen = (*uint8)(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(_aRegIdx)) + uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(_nIdx)))))*uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(4))))))))))))) +	_aRegIdx = (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(_aXRef)) + uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(_pTab.X11)*uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(4))))))))))) +	_aToOpen = (*uint8)(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(_aRegIdx)) + uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(_nIdx)*uintptr(unsafe.Pointer((*int32)(unsafe.Pointer(uintptr(4)))))))))))))  	crt.Xmemset(tls, (unsafe.Pointer)(_aToOpen), i32(1), uint64(_nIdx+i32(1)))  	*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_aToOpen)) + 1*uintptr(_nIdx+i32(1)))) = uint8(i32(0))  	_i = i32(0) @@ -104589,7 +104589,7 @@ _53:  		}{(_db.X51)})))})) == *(*unsafe.Pointer)(unsafe.Pointer(&struct {  			f func(*crt.TLS, unsafe.Pointer, *Xsqlite3, *int8, int32) int32  		}{_sqlite3WalDefaultHook})) { -			return int32(int64(uintptr(_db.X52))) +			return int32(int64(crt.P2U(_db.X52)))  		}  		return i32(0)  	}())) @@ -105530,7 +105530,7 @@ func Xsqlite3_wal_autocheckpoint(tls *crt.TLS, _db *Xsqlite3, _nFrame int32) (r0  		return _sqlite3MisuseError(tls, i32(142507))  	}  	if _nFrame > i32(0) { -		Xsqlite3_wal_hook(tls, _db, _sqlite3WalDefaultHook, (unsafe.Pointer)(uintptr(int64(_nFrame)))) +		Xsqlite3_wal_hook(tls, _db, _sqlite3WalDefaultHook, crt.U2P(uintptr(int64(_nFrame))))  		goto _2  	}  	Xsqlite3_wal_hook(tls, _db, nil, nil) @@ -105555,7 +105555,7 @@ func Xsqlite3_wal_hook(tls *crt.TLS, _db *Xsqlite3, _xCallback func(*crt.TLS, un  }  func _sqlite3WalDefaultHook(tls *crt.TLS, _pClientData unsafe.Pointer, _db *Xsqlite3, _zDb *int8, _nFrame int32) (r0 int32) { -	if _nFrame >= int32(int64(uintptr(_pClientData))) { +	if _nFrame >= int32(int64(crt.P2U(_pClientData))) {  		_sqlite3BeginBenignMalloc(tls)  		Xsqlite3_wal_checkpoint(tls, _db, _zDb)  		_sqlite3EndBenignMalloc(tls) @@ -107960,7 +107960,7 @@ func _statGet(tls *crt.TLS, _context *Xsqlite3_context, _argc int32, _argv **XMe  		return  	}  	Xsqlite3_snprintf(tls, i32(24), _1_zRet, str(125376), uint64(_p.X0)) -	_1_z = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_zRet)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_sqlite3Strlen30(tls, _1_zRet)))))))) +	_1_z = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_zRet)) + uintptr(_sqlite3Strlen30(tls, _1_zRet))))  	_1_i = i32(0)  _3:  	if _1_i >= (_p.X3) { @@ -107984,7 +107984,7 @@ _3:  	goto _3  _6:  	func() { -		if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_1_z)) + 1*uintptr(i32(0))))) != i32(0) || uintptr(unsafe.Pointer(_1_z)) <= uintptr(unsafe.Pointer(_1_zRet)) { +		if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_1_z)) + 1*uintptr(i32(0))))) != i32(0) || crt.P2U(unsafe.Pointer(_1_z)) <= crt.P2U(unsafe.Pointer(_1_zRet)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(97807), unsafe.Pointer((*int8)(unsafe.Pointer(&_statGetØ00__func__Ø000))), unsafe.Pointer(str(125406)))  			crt.X__builtin_abort(tls)  		} @@ -108473,7 +108473,7 @@ _23:  	_10_zEnd = (*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zCol)) + 1*uintptr((_pColDef.X1)-uint32(i32(1)))))  	_10_savedDbFlags = _db.X6  _32: -	if (uintptr(unsafe.Pointer(_10_zEnd)) > uintptr(unsafe.Pointer(_zCol))) && ((int32(*_10_zEnd) == i32(59)) || (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_10_zEnd)))))&i32(1)) != 0) { +	if (crt.P2U(unsafe.Pointer(_10_zEnd)) > crt.P2U(unsafe.Pointer(_zCol))) && ((int32(*_10_zEnd) == i32(59)) || (int32(*(*uint8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_sqlite3CtypeMap)) + 1*uintptr(uint8(*_10_zEnd)))))&i32(1)) != 0) {  		*postInc0(&_10_zEnd, -1) = int8(i32(0))  		goto _32  	} @@ -108777,7 +108777,7 @@ func _sqlite3VtabArgExtend(tls *crt.TLS, _pParse *XParse, _p *XToken) {  		goto _1  	}  	func() { -		if uintptr(unsafe.Pointer(_pArg.X0)) > uintptr(unsafe.Pointer(_p.X0)) { +		if crt.P2U(unsafe.Pointer(_pArg.X0)) > crt.P2U(unsafe.Pointer(_p.X0)) {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(125471), unsafe.Pointer((*int8)(unsafe.Pointer(&_sqlite3VtabArgExtendØ00__func__Ø000))), unsafe.Pointer(str(127296)))  			crt.X__builtin_abort(tls)  		} @@ -108954,7 +108954,7 @@ func _sqlite3ParserFinalize(tls *crt.TLS, _p unsafe.Pointer) {  	var _pParser *XyyParser  	_pParser = (*XyyParser)(_p)  _0: -	if uintptr(unsafe.Pointer((*XyyStackEntry)(_pParser.X0))) > uintptr(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_pParser.X2))))))) { +	if crt.P2U(unsafe.Pointer((*XyyStackEntry)(_pParser.X0))) > crt.P2U(unsafe.Pointer((*XyyStackEntry)(unsafe.Pointer((*[100]XyyStackEntry)(unsafe.Pointer(&(_pParser.X2))))))) {  		_yy_pop_parser_stack(tls, _pParser)  		goto _0  	} @@ -109045,7 +109045,7 @@ func Xsqlite3_free_table(tls *crt.TLS, _azResult **int8) {  			crt.X__builtin_abort(tls)  		}  	}() -	_1_n = int32(int64(uintptr(unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azResult)) + 8*uintptr(i32(0)))))))) +	_1_n = int32(int64(crt.P2U(unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azResult)) + 8*uintptr(i32(0))))))))  	_1_i = i32(1)  _3:  	if _1_i >= _1_n { @@ -109160,7 +109160,7 @@ func Xsqlite3_get_table(tls *crt.TLS, _db *Xsqlite3, _zSql *int8, _pazResult ***  	*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_res.X0)) + 8*uintptr(i32(0)))) = nil  	_rc = Xsqlite3_exec(tls, _db, _zSql, _sqlite3_get_table_cb, (unsafe.Pointer)(&_res), _pzErrMsg)  	i32(0) -	*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_res.X0)) + 8*uintptr(i32(0)))) = (*int8)((unsafe.Pointer)(uintptr(int64(_res.X5)))) +	*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_res.X0)) + 8*uintptr(i32(0)))) = (*int8)((unsafe.Pointer)(crt.U2P(uintptr(int64(_res.X5)))))  	if (_rc & i32(255)) != i32(4) {  		goto _6  	} @@ -109427,7 +109427,7 @@ _13:  	_createCollation(tls, _db, (*int8)(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(i32(3)), nil, _binCollFunc, nil)  	_createCollation(tls, _db, (*int8)(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(i32(2)), nil, _binCollFunc, nil)  	_createCollation(tls, _db, str(103035), uint8(i32(1)), nil, _nocaseCollatingFunc, nil) -	_createCollation(tls, _db, str(127766), uint8(i32(1)), (unsafe.Pointer)(uintptr(u32(1))), _binCollFunc, nil) +	_createCollation(tls, _db, str(127766), uint8(i32(1)), crt.U2P(uintptr(u32(1))), _binCollFunc, nil)  	if (_db.X17) != 0 {  		goto _opendb_out  	} @@ -109545,7 +109545,7 @@ func _binCollFunc(tls *crt.TLS, _padFlag unsafe.Pointer, _nKey1 int32, _pKey1 un  	if _rc != i32(0) {  		goto _2  	} -	if ((_padFlag != nil) && _allSpaces(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pKey1)))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), _nKey1-_n) != 0) && _allSpaces(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pKey2)))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), _nKey2-_n) != 0 { +	if ((_padFlag != nil) && _allSpaces(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pKey1)))+uintptr(_n))), _nKey1-_n) != 0) && _allSpaces(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pKey2)))+uintptr(_n))), _nKey2-_n) != 0 {  		goto _6  	}  	_rc = _nKey1 - _nKey2 @@ -109893,7 +109893,7 @@ _3:  	}  	if (_zTail8 != nil) && (_pzTail != nil) {  		_5_chars_parsed = _sqlite3Utf8CharLen(tls, _zSql8, int32(int64((uintptr(unsafe.Pointer(_zTail8))-uintptr(unsafe.Pointer(_zSql8)))/1))) -		*_pzTail = (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(_zSql))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_sqlite3Utf16ByteLen(tls, _zSql, _5_chars_parsed))))))))) +		*_pzTail = (unsafe.Pointer)((*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(_zSql))) + uintptr(_sqlite3Utf16ByteLen(tls, _zSql, _5_chars_parsed)))))  	}  	_sqlite3DbFree(tls, _db, (unsafe.Pointer)(_zSql8))  	_rc = _sqlite3ApiExit(tls, _db, _rc) @@ -113115,7 +113115,7 @@ _7:  	if _nChar <= i32(0) {  		goto _24  	} -	_flags = int32(int64(uintptr(Xsqlite3_user_data(tls, _context)))) +	_flags = int32(int64(crt.P2U(Xsqlite3_user_data(tls, _context))))  	if (_flags & i32(1)) == 0 {  		goto _25  	} @@ -113554,7 +113554,7 @@ func _printfFunc(tls *crt.TLS, _context *Xsqlite3_context, _argc int32, _argv **  	if (_argc >= i32(1)) && (store0(&_zFormat, (*int8)(unsafe.Pointer(Xsqlite3_value_text(tls, *(**XMem)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))))))) != nil) {  		*(*int32)(unsafe.Pointer(&(_x.X0))) = _argc - i32(1)  		*(*int32)(unsafe.Pointer(&(_x.X1))) = i32(0) -		*(***XMem)(unsafe.Pointer((**unsafe.Pointer)(unsafe.Pointer(&(_x.X2))))) = (**XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(i32(1))))))*uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(8))))))))))) +		*(***XMem)(unsafe.Pointer((**unsafe.Pointer)(unsafe.Pointer(&(_x.X2))))) = (**XMem)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(i32(1))*uintptr(unsafe.Pointer((**XMem)(unsafe.Pointer(uintptr(8)))))))))))  		_sqlite3StrAccumInit(tls, &_str, _db, nil, i32(0), *(*int32)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[12]int32)(unsafe.Pointer(&(_db.X31))))) + 4*uintptr(i32(0)))))  		*(*uint8)(unsafe.Pointer(&(_str.X7))) = uint8(i32(2))  		_sqlite3XPrintf(tls, &_str, _zFormat, unsafe.Pointer(&_x)) @@ -115745,7 +115745,7 @@ _8:  			*p = (*p) + _got  			sink1(*p)  		} -		_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_got))))) + uintptr(unsafe.Pointer((*int8)(_pBuf)))))) +		_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(_got) + uintptr(unsafe.Pointer((*int8)(_pBuf))))))  	}  	if _got > i32(0) {  		goto _4 @@ -116698,7 +116698,7 @@ func _unixRemapfile(tls *crt.TLS, _pFd *XunixFile, _nNew int64) {  		}  	}()  	func() { -		if (unsafe.Pointer)(uintptr(u64(18446744073709551615))) == nil { +		if crt.U2P(uintptr(u64(18446744073709551615))) == nil {  			crt.X__builtin_fprintf(tls, Xstderr, str(1), unsafe.Pointer(str(37)), i32(34636), unsafe.Pointer((*int8)(unsafe.Pointer(&_unixRemapfileØ00__func__Ø000))), unsafe.Pointer(str(133265)))  			crt.X__builtin_abort(tls)  		} @@ -116713,7 +116713,7 @@ func _unixRemapfile(tls *crt.TLS, _pFd *XunixFile, _nNew int64) {  		(*(*func(*crt.TLS, unsafe.Pointer, uint64) unsafe.Pointer)(unsafe.Pointer(&struct{ f func(*crt.TLS) }{((*Tunix_syscall)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aSyscall)) + 24*uintptr(i32(23)))).X1)})))(tls, (unsafe.Pointer)(_1_pReq), uint64(_nOrig-_1_nReuse))  	}  	_pNew = (*uint8)((*(*func(*crt.TLS, unsafe.Pointer, uint64, int32, int32, int32, int64) unsafe.Pointer)(unsafe.Pointer(&struct{ f func(*crt.TLS) }{((*Tunix_syscall)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aSyscall)) + 24*uintptr(i32(22)))).X1)})))(tls, (unsafe.Pointer)(_1_pReq), uint64(_nNew-_1_nReuse), _flags, i32(1), _h, _1_nReuse)) -	if _pNew == (*uint8)(unsafe.Pointer(uintptr(u64(18446744073709551615)))) { +	if _pNew == (*uint8)(crt.U2P(uintptr(u64(18446744073709551615)))) {  		goto _14  	}  	if _pNew != _1_pReq { @@ -116724,14 +116724,14 @@ func _unixRemapfile(tls *crt.TLS, _pFd *XunixFile, _nNew int64) {  	_pNew = _pOrig  _16:  _14: -	if (_pNew == (*uint8)(unsafe.Pointer(uintptr(u64(18446744073709551615))))) || (_pNew == nil) { +	if (_pNew == (*uint8)(crt.U2P(uintptr(u64(18446744073709551615))))) || (_pNew == nil) {  		(*(*func(*crt.TLS, unsafe.Pointer, uint64) unsafe.Pointer)(unsafe.Pointer(&struct{ f func(*crt.TLS) }{((*Tunix_syscall)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aSyscall)) + 24*uintptr(i32(23)))).X1)})))(tls, (unsafe.Pointer)(_pOrig), uint64(_1_nReuse))  	}  _12:  	if _pNew == nil {  		_pNew = (*uint8)((*(*func(*crt.TLS, unsafe.Pointer, uint64, int32, int32, int32, int64) unsafe.Pointer)(unsafe.Pointer(&struct{ f func(*crt.TLS) }{((*Tunix_syscall)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aSyscall)) + 24*uintptr(i32(22)))).X1)})))(tls, nil, uint64(_nNew), _flags, i32(1), _h, int64(i32(0))))  	} -	if _pNew == (*uint8)(unsafe.Pointer(uintptr(u64(18446744073709551615)))) { +	if _pNew == (*uint8)(crt.U2P(uintptr(u64(18446744073709551615)))) {  		_pNew = nil  		_nNew = int64(i32(0))  		_unixLogErrorAtLine(tls, i32(0), _zErr, _pFd.X9, i32(34685)) @@ -117004,7 +117004,7 @@ _27:  		}  		return i32(3)  	}(), i32(1), _pShmNode.X3, int64(_szRegion)*int64(_pShmNode.X5)) -	if _11_pMem == (unsafe.Pointer)(uintptr(u64(18446744073709551615))) { +	if _11_pMem == crt.U2P(uintptr(u64(18446744073709551615))) {  		_rc = _unixLogErrorAtLine(tls, i32(5386), str(131655), _pShmNode.X2, i32(34373))  		goto _shmpage_out  	} diff --git a/internal/mptest/mptest_linux_amd64.go b/internal/mptest/mptest_linux_amd64.go index fbb1d59..21cc682 100644 --- a/internal/mptest/mptest_linux_amd64.go +++ b/internal/mptest/mptest_linux_amd64.go @@ -105,31 +105,31 @@ func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) {  	}  	_n = _argc - i32(2)  	bin.Xsqlite3_snprintf(tls, int32(u64(32)), (*int8)(unsafe.Pointer((*[32]int8)(unsafe.Pointer(&(_g.X8))))), str(152), crt.Xgetpid(tls)) -	_zJMode = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(164), i32(1)) -	_zNRep = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(176), i32(1)) +	_zJMode = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(164), i32(1)) +	_zNRep = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(176), i32(1))  	if _zNRep != nil {  		_nRep = crt.Xatoi(tls, _zNRep)  	}  	if _nRep < i32(1) {  		_nRep = i32(1)  	} -	*(**int8)(unsafe.Pointer(&(_g.X1))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(183), i32(1)) -	_zClient = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(187), i32(1)) -	*(**int8)(unsafe.Pointer(&(_g.X4))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(194), i32(1)) -	*(**int8)(unsafe.Pointer(&(_g.X6))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(201), i32(1)) -	_zTrace = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(205), i32(1)) +	*(**int8)(unsafe.Pointer(&(_g.X1))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(183), i32(1)) +	_zClient = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(187), i32(1)) +	*(**int8)(unsafe.Pointer(&(_g.X4))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(194), i32(1)) +	*(**int8)(unsafe.Pointer(&(_g.X6))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(201), i32(1)) +	_zTrace = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(205), i32(1))  	if _zTrace != nil {  		*(*int32)(unsafe.Pointer(&(_g.X10))) = crt.Xatoi(tls, _zTrace)  	} -	if _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(211), i32(0)) != nil { +	if _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(211), i32(0)) != nil {  		*(*int32)(unsafe.Pointer(&(_g.X10))) = i32(0)  	} -	_zTmout = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(217), i32(1)) +	_zTmout = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(217), i32(1))  	if _zTmout != nil {  		_iTmout = crt.Xatoi(tls, _zTmout)  	} -	*(*int32)(unsafe.Pointer(&(_g.X11))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(225), i32(0)) != nil) -	*(*int32)(unsafe.Pointer(&(_g.X16))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(234), i32(0)) != nil) +	*(*int32)(unsafe.Pointer(&(_g.X11))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(225), i32(0)) != nil) +	*(*int32)(unsafe.Pointer(&(_g.X16))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(234), i32(0)) != nil)  	if (_g.X4) != nil {  		*(**crt.XFILE)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_g.X5))))) = crt.Xfopen64(tls, _g.X4, str(239))  		goto _9 @@ -243,7 +243,7 @@ _14:  		goto _38  	}  	if _n > i32(0) { -		_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8)))))))))))) +		_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))))  	}  	if (_g.X10) != 0 {  		_logMessage(tls, str(573)) @@ -275,7 +275,7 @@ _38:  		_fatalError(tls, str(623))  	}  	if _n > i32(1) { -		_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8)))))))))))) +		_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))))  	}  	_runSql(tls, str(647))  	_zScript = _readFile(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(2))))) @@ -372,7 +372,7 @@ _0:  		goto _3  	}  	if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv0)) + 1*uintptr(_i)))) == i32(47) { -		_zTail = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_i))))))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))) +		_zTail = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv0))+uintptr(_i))))) + uintptr(i32(1))))  	}  	_i += 1  	goto _0 @@ -423,7 +423,7 @@ _4:  		goto _10  	}  _11: -	if ((*_z) != 0) && Xstrglob(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zGlob))-uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))), _z) != 0 { +	if ((*_z) != 0) && Xstrglob(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zGlob))-uintptr(i32(1)))), _z) != 0 {  		*(*uintptr)(unsafe.Pointer(&_z)) += uintptr(1)  		goto _11  	} @@ -677,7 +677,7 @@ _1:  // Close output stream pOut if it is not stdout or stderr  func _maybeClose(tls *crt.TLS, _pOut *crt.XFILE) { -	if (uintptr(unsafe.Pointer(_pOut)) != uintptr(Xstdout)) && (_pOut != (*crt.XFILE)(Xstderr)) { +	if (unsafe.Pointer(_pOut) != Xstdout) && (_pOut != (*crt.XFILE)(Xstderr)) {  		crt.Xfclose(tls, _pOut)  	}  } @@ -926,7 +926,7 @@ func _stringAppend(tls *crt.TLS, _p *XString, _z *int8, _n int32) {  	*(**int8)(unsafe.Pointer(&(_p.X0))) = _1_zNew  	*(*int32)(unsafe.Pointer(&(_p.X2))) = _1_nAlloc  _1: -	crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_p.X0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_p.X1)))))))), (unsafe.Pointer)(_z), uint64(_n)) +	crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_p.X0))+uintptr(_p.X1)))), (unsafe.Pointer)(_z), uint64(_n))  	{  		p := (*int32)(unsafe.Pointer(&(_p.X1)))  		*p = (*p) + _n @@ -1100,7 +1100,7 @@ _0:  		goto _1  	}  	_prevLine = _lineno -	_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii))))))), &_lineno) +	_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii))), &_lineno)  	if (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(_c))))))&int32(u16(8192))) != 0 || ((_c == i32(47)) && (int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zScript)) + 1*uintptr(_ii+i32(1))))) == i32(42))) {  		{  			p := &_ii @@ -1118,15 +1118,15 @@ _0:  		goto _0  	}  	if _ii > _iBegin { -		_4_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iBegin))))))))) +		_4_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_iBegin)))))  		_evalSql(tls, &_sResult, _4_zSql)  		bin.Xsqlite3_free(tls, (unsafe.Pointer)(_4_zSql))  		_iBegin = _ii + _len  	}  	if (_g.X10) >= i32(2) { -		_logMessage(tls, str(2708), _len, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii))))))))) +		_logMessage(tls, str(2708), _len, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))  	} -	_n = _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(2)))))))), _len-i32(2), (*int8)(unsafe.Pointer(&_zCmd)), int32(u64(30))) +	_n = _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(i32(2)))), _len-i32(2), (*int8)(unsafe.Pointer(&_zCmd)), int32(u64(30)))  	_nArg = i32(0)  _10:  	if _n >= (_len-i32(2)) || _nArg >= i32(2) { @@ -1142,7 +1142,7 @@ _15:  	}  	{  		p := &_n -		*p = (*p) + _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(2))))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), (_len-i32(2))-_n, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(_nArg))))), int32(u64(100))) +		*p = (*p) + _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(i32(2))))))+uintptr(_n))), (_len-i32(2))-_n, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(_nArg))))), int32(u64(100)))  		sink1(*p)  	}  	_nArg += 1 @@ -1176,7 +1176,7 @@ _25:  		goto _28  	}  	if (_g.X10) == i32(1) { -		_logMessage(tls, str(2708), _len-i32(1), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii))))))))) +		_logMessage(tls, str(2708), _len-i32(1), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))  	}  	_stringReset(tls, &_sResult)  	goto _108 @@ -1192,7 +1192,7 @@ _28:  	if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2746)) != i32(0) {  		goto _36  	} -	_12_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii))))))) +	_12_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(_ii)))  	_12_jj = i32(7)  _37:  	if _12_jj >= (_len-i32(1)) || (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_zAns)) + 1*uintptr(_12_jj)))))))))&int32(u16(8192))) == 0 { @@ -1216,7 +1216,7 @@ _36:  	if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2797)) != i32(0) && crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2802)) != i32(0) {  		goto _46  	} -	_15_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii))))))) +	_15_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(_ii)))  	_15_isGlob = bool2int(int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_zCmd)) + 1*uintptr(i32(0))))) == i32(103))  	_15_jj = i32(9) - (i32(3) * _15_isGlob)  _47: @@ -1287,7 +1287,7 @@ _68:  	_23_jj += 1  	goto _68  _72: -	_logMessage(tls, str(2708), _len-_23_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_23_jj))))))))) +	_logMessage(tls, str(2708), _len-_23_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_23_jj)))))  	goto _108  _67:  	if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2917)) != i32(0) { @@ -1301,12 +1301,12 @@ _75:  	_25_jj += 1  	goto _75  _79: -	_25_pStmt = _prepareSql(tls, str(2920), _len-_25_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_25_jj))))))))) +	_25_pStmt = _prepareSql(tls, str(2920), _len-_25_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_25_jj)))))  	_25_rc = bin.Xsqlite3_step(tls, _25_pStmt)  	if (_25_rc != i32(100)) || (bin.Xsqlite3_column_int(tls, _25_pStmt, i32(0)) == i32(0)) {  		{  			p := &_ii -			*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))), i32(1), &_lineno) +			*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len))), i32(1), &_lineno)  			sink1(*p)  		}  	} @@ -1316,7 +1316,7 @@ _74:  	if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2932)) == i32(0) {  		{  			p := &_ii -			*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))), i32(0), &_lineno) +			*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len))), i32(0), &_lineno)  			sink1(*p)  		}  		goto _108 @@ -1348,12 +1348,12 @@ _88:  		goto _97  	}  	_33_iTarget = crt.Xatoi(tls, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(i32(0))))))) -	_33_iEnd = _findEnd(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))), &_lineno) +	_33_iEnd = _findEnd(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len))), &_lineno)  	if _33_iTarget < i32(0) {  		_errorMessage(tls, str(2974), _prevLine, unsafe.Pointer(_zFilename), _33_iTarget)  		goto _99  	} -	_33_zTask = bin.Xsqlite3_mprintf(tls, str(2708), _33_iEnd, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))))) +	_33_zTask = bin.Xsqlite3_mprintf(tls, str(2708), _33_iEnd, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len)))))  	if _nArg > i32(1) {  		_33_zTName = bin.Xsqlite3_mprintf(tls, str(2526), unsafe.Pointer((*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(i32(1))))))))  		goto _101 @@ -1367,7 +1367,7 @@ _101:  _99:  	{  		p := &_33_iEnd -		*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_33_iEnd))))))), &_lineno) +		*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len)))))+uintptr(_33_iEnd))), &_lineno)  		sink1(*p)  	}  	{ @@ -1401,7 +1401,7 @@ _108:  	goto _0  _1:  	if _iBegin < _ii { -		_41_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iBegin))))))))) +		_41_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_iBegin)))))  		_runSql(tls, _41_zSql)  		bin.Xsqlite3_free(tls, (unsafe.Pointer)(_41_zSql))  	} @@ -1616,12 +1616,12 @@ _0:  	if (*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) == 0 {  		goto _1  	} -	_1_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), _pnLine) -	if ((crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3280), uint64(i32(7))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(7))))))))))&int32(u16(8192))) != 0) || ((_stopAtElse != 0 && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3288), uint64(i32(6))) == i32(0))) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(6))))))))))&int32(u16(8192))) != 0) { +	_1_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), _pnLine) +	if ((crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3280), uint64(i32(7))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(7))))))))))&int32(u16(8192))) != 0) || ((_stopAtElse != 0 && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3288), uint64(i32(6))) == i32(0))) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(6))))))))))&int32(u16(8192))) != 0) {  		return _n + _1_len  	} -	if (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3295), uint64(i32(4))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(4))))))))))&int32(u16(8192))) != 0 { -		_3_skip = _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_1_len))))))), i32(0), _pnLine) +	if (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3295), uint64(i32(4))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(4))))))))))&int32(u16(8192))) != 0 { +		_3_skip = _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n)))))+uintptr(_1_len))), i32(0), _pnLine)  		{  			p := &_n  			*p = (*p) + (_3_skip + _1_len) @@ -1716,10 +1716,10 @@ func _findEnd(tls *crt.TLS, _z *int8, _pnLine *int32) (r0 int32) {  	var _n int32  	_n = i32(0)  _0: -	if ((*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) != 0) && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3706), uint64(i32(5))) != 0 || ((int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(5)))))))))) & int32(u16(8192))) == 0)) { +	if ((*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) != 0) && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3706), uint64(i32(5))) != 0 || ((int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(5)))))))))) & int32(u16(8192))) == 0)) {  		{  			p := &_n -			*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), _pnLine) +			*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), _pnLine)  			sink1(*p)  		}  		goto _0 @@ -1741,7 +1741,7 @@ _0:  	_i += 1  	goto _0  _3: -	return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_j))))))) +	return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(_j)))  }  // This routine exists as a convenient place to set a debugger diff --git a/internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c b/internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c new file mode 100644 index 0000000..f7e90c5 --- /dev/null +++ b/internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c @@ -0,0 +1,289 @@ +/* +** 2002 January 15 +** +** The author disclaims copyright to this source code.  In place of +** a legal notice, here is a blessing: +** +**    May you do good and not evil. +**    May you find forgiveness for yourself and forgive others. +**    May you share freely, never taking more than you give. +** +************************************************************************* +** This file implements a simple standalone program used to test whether +** or not the SQLite library is threadsafe. +** +** Testing the thread safety of SQLite is difficult because there are very +** few places in the code that are even potentially unsafe, and those +** places execute for very short periods of time.  So even if the library +** is compiled with its mutexes disabled, it is likely to work correctly +** in a multi-threaded program most of the time.   +** +** This file is NOT part of the standard SQLite library.  It is used for +** testing only. +*/ +#include "sqlite.h" +#include <pthread.h> +#include <sched.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +/* +** Enable for tracing +*/ +static int verbose = 0; + +/* +** Come here to die. +*/ +static void Exit(int rc){ +  exit(rc); +} + +extern char *sqlite3_mprintf(const char *zFormat, ...); +extern char *sqlite3_vmprintf(const char *zFormat, va_list); + +/* +** When a lock occurs, yield. +*/ +static int db_is_locked(void *NotUsed, int iCount){ +  /* sched_yield(); */ +  if( verbose ) printf("BUSY %s #%d\n", (char*)NotUsed, iCount); +  usleep(100); +  return iCount<20000; +} + +/* +** Used to accumulate query results by db_query() +*/ +struct QueryResult { +  const char *zFile;  /* Filename - used for error reporting */ +  int nElem;          /* Number of used entries in azElem[] */ +  int nAlloc;         /* Number of slots allocated for azElem[] */ +  char **azElem;      /* The result of the query */ +}; + +/* +** The callback function for db_query +*/ +static int db_query_callback( +  void *pUser,     /* Pointer to the QueryResult structure */ +  int nArg,        /* Number of columns in this result row */ +  char **azArg,    /* Text of data in all columns */ +  char **NotUsed   /* Names of the columns */ +){ +  struct QueryResult *pResult = (struct QueryResult*)pUser; +  int i; +  if( pResult->nElem + nArg >= pResult->nAlloc ){ +    if( pResult->nAlloc==0 ){ +      pResult->nAlloc = nArg+1; +    }else{ +      pResult->nAlloc = pResult->nAlloc*2 + nArg + 1; +    } +    pResult->azElem = realloc( pResult->azElem, pResult->nAlloc*sizeof(char*)); +    if( pResult->azElem==0 ){ +      fprintf(stdout,"%s: malloc failed\n", pResult->zFile); +      return 1; +    } +  } +  if( azArg==0 ) return 0; +  for(i=0; i<nArg; i++){ +    pResult->azElem[pResult->nElem++] = +        sqlite3_mprintf("%s",azArg[i] ? azArg[i] : "");  +  } +  return 0; +} + +/* +** Execute a query against the database.  NULL values are returned +** as an empty string.  The list is terminated by a single NULL pointer. +*/ +char **db_query(sqlite *db, const char *zFile, const char *zFormat, ...){ +  char *zSql; +  int rc; +  char *zErrMsg = 0; +  va_list ap; +  struct QueryResult sResult; +  va_start(ap, zFormat); +  zSql = sqlite3_vmprintf(zFormat, ap); +  va_end(ap); +  memset(&sResult, 0, sizeof(sResult)); +  sResult.zFile = zFile; +  if( verbose ) printf("QUERY %s: %s\n", zFile, zSql); +  rc = sqlite3_exec(db, zSql, db_query_callback, &sResult, &zErrMsg); +  if( rc==SQLITE_SCHEMA ){ +    if( zErrMsg ) free(zErrMsg); +    rc = sqlite3_exec(db, zSql, db_query_callback, &sResult, &zErrMsg); +  } +  if( verbose ) printf("DONE %s %s\n", zFile, zSql); +  if( zErrMsg ){ +    fprintf(stdout,"%s: query failed: %s - %s\n", zFile, zSql, zErrMsg); +    free(zErrMsg); +    free(zSql); +    Exit(1); +  } +  sqlite3_free(zSql); +  if( sResult.azElem==0 ){ +    db_query_callback(&sResult, 0, 0, 0); +  } +  sResult.azElem[sResult.nElem] = 0; +  return sResult.azElem; +} + +/* +** Execute an SQL statement. +*/ +void db_execute(sqlite *db, const char *zFile, const char *zFormat, ...){ +  char *zSql; +  int rc; +  char *zErrMsg = 0; +  va_list ap; +  va_start(ap, zFormat); +  zSql = sqlite3_vmprintf(zFormat, ap); +  va_end(ap); +  if( verbose ) printf("EXEC %s: %s\n", zFile, zSql); +  do{ +    rc = sqlite3_exec(db, zSql, 0, 0, &zErrMsg); +  }while( rc==SQLITE_BUSY ); +  if( verbose ) printf("DONE %s: %s\n", zFile, zSql); +  if( zErrMsg ){ +    fprintf(stdout,"%s: command failed: %s - %s\n", zFile, zSql, zErrMsg); +    free(zErrMsg); +    sqlite3_free(zSql); +    Exit(1); +  } +  sqlite3_free(zSql); +} + +/* +** Free the results of a db_query() call. +*/ +void db_query_free(char **az){ +  int i; +  for(i=0; az[i]; i++){ +    sqlite3_free(az[i]); +  } +  free(az); +} + +/* +** Check results +*/ +void db_check(const char *zFile, const char *zMsg, char **az, ...){ +  va_list ap; +  int i; +  char *z; +  va_start(ap, az); +  for(i=0; (z = va_arg(ap, char*))!=0; i++){ +    if( az[i]==0 || strcmp(az[i],z)!=0 ){ +      fprintf(stdout,"%s: %s: bad result in column %d: %s\n", +        zFile, zMsg, i+1, az[i]); +      db_query_free(az); +      Exit(1); +    } +  } +  va_end(ap); +  db_query_free(az); +} + +pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; +pthread_cond_t sig = PTHREAD_COND_INITIALIZER; +int thread_cnt = 0; + +static void *worker_bee(void *pArg){ +  const char *zFilename = (char*)pArg; +  char *azErr; +  int i, cnt; +  int t = atoi(zFilename); +  char **az; +  sqlite *db; + +  pthread_mutex_lock(&lock); +  thread_cnt++; +  pthread_mutex_unlock(&lock); +  printf("%s: START\n", zFilename); +  fflush(stdout); +  for(cnt=0; cnt<10; cnt++){ +    sqlite3_open(&zFilename[2], &db); +    if( db==0 ){ +      fprintf(stdout,"%s: can't open\n", zFilename); +      Exit(1); +    } +    sqlite3_busy_handler(db, db_is_locked, zFilename); +    db_execute(db, zFilename, "CREATE TABLE t%d(a,b,c);", t); +    for(i=1; i<=100; i++){ +      db_execute(db, zFilename, "INSERT INTO t%d VALUES(%d,%d,%d);", +         t, i, i*2, i*i); +    } +    az = db_query(db, zFilename, "SELECT count(*) FROM t%d", t); +    db_check(zFilename, "tX size", az, "100", 0);   +    az = db_query(db, zFilename, "SELECT avg(b) FROM t%d", t); +    db_check(zFilename, "tX avg", az, "101.0", 0);   +    db_execute(db, zFilename, "DELETE FROM t%d WHERE a>50", t); +    az = db_query(db, zFilename, "SELECT avg(b) FROM t%d", t); +    db_check(zFilename, "tX avg2", az, "51.0", 0); +    for(i=1; i<=50; i++){ +      char z1[30], z2[30]; +      az = db_query(db, zFilename, "SELECT b, c FROM t%d WHERE a=%d", t, i); +      sprintf(z1, "%d", i*2); +      sprintf(z2, "%d", i*i); +      db_check(zFilename, "readback", az, z1, z2, 0); +    } +    db_execute(db, zFilename, "DROP TABLE t%d;", t); +    sqlite3_close(db); +  } +  printf("%s: END\n", zFilename); +  /* unlink(zFilename); */ +  fflush(stdout); +  pthread_mutex_lock(&lock); +  thread_cnt--; +  if( thread_cnt<=0 ){ +    pthread_cond_signal(&sig); +  } +  pthread_mutex_unlock(&lock); +  return 0; +} + +int main(int argc, char **argv){ +  char *zFile; +  int i, n; +  pthread_t id; +  if( argc>2 && strcmp(argv[1], "-v")==0 ){ +    verbose = 1; +    argc--; +    argv++; +  } +  if( argc<2 || (n=atoi(argv[1]))<1 ) n = 10; +  for(i=0; i<n; i++){ +    char zBuf[200]; +    sprintf(zBuf, "testdb-%d", (i+1)/2); +    unlink(zBuf); +  } +  for(i=0; i<n; i++){ +    zFile = sqlite3_mprintf("%d.testdb-%d", i%2+1, (i+2)/2); +    if( (i%2)==0 ){ +      /* Remove both the database file and any old journal for the file +      ** being used by this thread and the next one. */ +      char *zDb = &zFile[2]; +      char *zJournal = sqlite3_mprintf("%s-journal", zDb); +      unlink(zDb); +      unlink(zJournal); +      free(zJournal); +    } +       +    pthread_create(&id, 0, worker_bee, (void*)zFile); +    pthread_detach(id); +  } +  pthread_mutex_lock(&lock); +  while( thread_cnt>0 ){ +    pthread_cond_wait(&sig, &lock); +  } +  pthread_mutex_unlock(&lock); +  for(i=0; i<n; i++){ +    char zBuf[200]; +    sprintf(zBuf, "testdb-%d", (i+1)/2); +    unlink(zBuf); +  } +  return 0; +} diff --git a/internal/threadtest1/threadtest1_linux_amd64.go b/internal/threadtest1/threadtest1_linux_amd64.go index 1f67b74..c7b2d23 100644 --- a/internal/threadtest1/threadtest1_linux_amd64.go +++ b/internal/threadtest1/threadtest1_linux_amd64.go @@ -177,27 +177,27 @@ _8:  	Xdb_check(tls, _zFilename, str(148), _az, unsafe.Pointer(str(156)), i32(0))  	_az = Xdb_query(tls, _db, _zFilename, str(160), _t)  	Xdb_check(tls, _zFilename, str(183), _az, unsafe.Pointer(str(190)), i32(0)) -	Xdb_execute(tls, _db, _zFilename, str(194), _t) +	Xdb_execute(tls, _db, _zFilename, str(196), _t)  	_az = Xdb_query(tls, _db, _zFilename, str(160), _t) -	Xdb_check(tls, _zFilename, str(221), _az, unsafe.Pointer(str(229)), i32(0)) +	Xdb_check(tls, _zFilename, str(223), _az, unsafe.Pointer(str(231)), i32(0))  	_i = i32(1)  _9:  	if _i > i32(50) {  		goto _12  	} -	_az = Xdb_query(tls, _db, _zFilename, str(232), _t, _i) -	crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z1)), str(264), _i*i32(2)) -	crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z2)), str(264), _i*_i) -	Xdb_check(tls, _zFilename, str(267), _az, unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z1))), unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z2))), i32(0)) +	_az = Xdb_query(tls, _db, _zFilename, str(236), _t, _i) +	crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z1)), str(268), _i*i32(2)) +	crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z2)), str(268), _i*_i) +	Xdb_check(tls, _zFilename, str(271), _az, unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z1))), unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z2))), i32(0))  	_i += 1  	goto _9  _12: -	Xdb_execute(tls, _db, _zFilename, str(276), _t) +	Xdb_execute(tls, _db, _zFilename, str(280), _t)  	bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_db))  	_cnt += 1  	goto _0  _3: -	crt.Xprintf(tls, str(292), unsafe.Pointer(_zFilename)) +	crt.Xprintf(tls, str(296), unsafe.Pointer(_zFilename))  	crt.Xfflush(tls, (*crt.XFILE)(Xstdout))  	crt.Xpthread_mutex_lock(tls, &Xlock)  	Xthread_cnt -= 1 @@ -225,10 +225,10 @@ func _Exit(tls *crt.TLS, _rc int32) {  // When a lock occurs, yield.  func _db_is_locked(tls *crt.TLS, _NotUsed unsafe.Pointer, _iCount int32) (r0 int32) {  	if _verbose != 0 { -		crt.Xprintf(tls, str(301), unsafe.Pointer((*int8)(_NotUsed)), _iCount) +		crt.Xprintf(tls, str(305), unsafe.Pointer((*int8)(_NotUsed)), _iCount)  	}  	crt.Xusleep(tls, uint32(i32(100))) -	return bool2int(_iCount < i32(25)) +	return bool2int(_iCount < i32(20000))  }  // Execute an SQL statement. @@ -241,7 +241,7 @@ func Xdb_execute(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8,  	_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)  	_ap = nil  	if _verbose != 0 { -		crt.Xprintf(tls, str(314), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql)) +		crt.Xprintf(tls, str(318), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))  	}  _0:  	_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, nil, nil, &_zErrMsg) @@ -249,10 +249,10 @@ _0:  		goto _0  	}  	if _verbose != 0 { -		crt.Xprintf(tls, str(327), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql)) +		crt.Xprintf(tls, str(331), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))  	}  	if _zErrMsg != nil { -		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(340), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg)) +		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(344), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg))  		crt.Xfree(tls, (unsafe.Pointer)(_zErrMsg))  		bin.Xsqlite3_free(tls, (unsafe.Pointer)(_zSql))  		_Exit(tls, i32(1)) @@ -274,7 +274,7 @@ func Xdb_query(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8, a  	crt.Xmemset(tls, (unsafe.Pointer)(&_sResult), i32(0), u64(24))  	*(**int8)(unsafe.Pointer(&(_sResult.X0))) = _zFile  	if _verbose != 0 { -		crt.Xprintf(tls, str(369), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql)) +		crt.Xprintf(tls, str(373), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))  	}  	_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, _db_query_callback, (unsafe.Pointer)(&_sResult), &_zErrMsg)  	if _rc != i32(17) { @@ -286,10 +286,10 @@ func Xdb_query(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8, a  	_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, _db_query_callback, (unsafe.Pointer)(&_sResult), &_zErrMsg)  _1:  	if _verbose != 0 { -		crt.Xprintf(tls, str(383), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql)) +		crt.Xprintf(tls, str(387), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))  	}  	if _zErrMsg != nil { -		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(395), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg)) +		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(399), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg))  		crt.Xfree(tls, (unsafe.Pointer)(_zErrMsg))  		crt.Xfree(tls, (unsafe.Pointer)(_zSql))  		_Exit(tls, i32(1)) @@ -321,7 +321,7 @@ func _db_query_callback(tls *crt.TLS, _pUser unsafe.Pointer, _nArg int32, _azArg  _2:  	*(***int8)(unsafe.Pointer(&(_pResult.X3))) = (**int8)(crt.Xrealloc(tls, (unsafe.Pointer)(_pResult.X3), uint64(_pResult.X2)*u64(8)))  	if (_pResult.X3) == nil { -		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(422), unsafe.Pointer(_pResult.X0)) +		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(426), unsafe.Pointer(_pResult.X0))  		return i32(1)  	}  _0: @@ -333,11 +333,11 @@ _5:  	if _i >= _nArg {  		goto _8  	} -	*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pResult.X3)) + 8*uintptr(postInc0((*int32)(unsafe.Pointer(&(_pResult.X1))), int32(1))))) = bin.Xsqlite3_mprintf(tls, str(441), unsafe.Pointer(func() *int8 { +	*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pResult.X3)) + 8*uintptr(postInc0((*int32)(unsafe.Pointer(&(_pResult.X1))), int32(1))))) = bin.Xsqlite3_mprintf(tls, str(445), unsafe.Pointer(func() *int8 {  		if (*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azArg)) + 8*uintptr(_i)))) != nil {  			return (*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azArg)) + 8*uintptr(_i))))  		} -		return str(444) +		return str(448)  	}()))  	_i += 1  	goto _5 @@ -357,7 +357,7 @@ _0:  		goto _3  	}  	if ((*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i)))) == nil) || (crt.Xstrcmp(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i))), _z) != i32(0)) { -		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(445), unsafe.Pointer(_zFile), unsafe.Pointer(_zMsg), _i+i32(1), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i))))) +		crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(449), unsafe.Pointer(_zFile), unsafe.Pointer(_zMsg), _i+i32(1), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i)))))  		Xdb_query_free(tls, _az)  		_Exit(tls, i32(1))  	} @@ -418,4 +418,4 @@ type TQueryResult struct {  func str(n int) *int8   { return (*int8)(unsafe.Pointer(&strTab[n])) }  func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) } -var strTab = []byte("-v\x00testdb-%d\x00%d.testdb-%d\x00%s-journal\x00%s: START\x0a\x00%s: can't open\x0a\x00CREATE TABLE t%d(a,b,c);\x00INSERT INTO t%d VALUES(%d,%d,%d);\x00SELECT count(*) FROM t%d\x00tX size\x00100\x00SELECT avg(b) FROM t%d\x00tX avg\x00101\x00DELETE FROM t%d WHERE a>50\x00tX avg2\x0051\x00SELECT b, c FROM t%d WHERE a=%d\x00%d\x00readback\x00DROP TABLE t%d;\x00%s: END\x0a\x00BUSY %s #%d\x0a\x00EXEC %s: %s\x0a\x00DONE %s: %s\x0a\x00%s: command failed: %s - %s\x0a\x00QUERY %s: %s\x0a\x00DONE %s %s\x0a\x00%s: query failed: %s - %s\x0a\x00%s: malloc failed\x0a\x00%s\x00\x00%s: %s: bad result in column %d: %s\x0a\x00") +var strTab = []byte("-v\x00testdb-%d\x00%d.testdb-%d\x00%s-journal\x00%s: START\x0a\x00%s: can't open\x0a\x00CREATE TABLE t%d(a,b,c);\x00INSERT INTO t%d VALUES(%d,%d,%d);\x00SELECT count(*) FROM t%d\x00tX size\x00100\x00SELECT avg(b) FROM t%d\x00tX avg\x00101.0\x00DELETE FROM t%d WHERE a>50\x00tX avg2\x0051.0\x00SELECT b, c FROM t%d WHERE a=%d\x00%d\x00readback\x00DROP TABLE t%d;\x00%s: END\x0a\x00BUSY %s #%d\x0a\x00EXEC %s: %s\x0a\x00DONE %s: %s\x0a\x00%s: command failed: %s - %s\x0a\x00QUERY %s: %s\x0a\x00DONE %s %s\x0a\x00%s: query failed: %s - %s\x0a\x00%s: malloc failed\x0a\x00%s\x00\x00%s: %s: bad result in column %d: %s\x0a\x00") diff --git a/internal/threadtest2/threadtest2_linux_amd64.go b/internal/threadtest2/threadtest2_linux_amd64.go index 2240efe..bc866c3 100644 --- a/internal/threadtest2/threadtest2_linux_amd64.go +++ b/internal/threadtest2/threadtest2_linux_amd64.go @@ -93,7 +93,7 @@ _3:  	if uint64(_i) >= u64(5) {  		goto _6  	} -	crt.Xpthread_create(tls, (*uint64)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aThread))+8*uintptr(_i))), nil, Xworker, (unsafe.Pointer)(uintptr(_i))) +	crt.Xpthread_create(tls, (*uint64)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aThread))+8*uintptr(_i))), nil, Xworker, crt.U2P(uintptr(_i)))  	_i += 1  	goto _3  _6: @@ -121,7 +121,7 @@ _10:  func Xworker(tls *crt.TLS, _workerArg unsafe.Pointer) (r0 unsafe.Pointer) {  	var _id, _rc, _cnt int32  	var _db unsafe.Pointer -	_id = int32(uintptr(_workerArg)) +	_id = int32(crt.P2U(_workerArg))  	_cnt = i32(0)  	crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(147), _id)  _0: diff --git a/internal/threadtest3/threadtest3_linux_amd64.go b/internal/threadtest3/threadtest3_linux_amd64.go index 2a4d21a..c1569f5 100644 --- a/internal/threadtest3/threadtest3_linux_amd64.go +++ b/internal/threadtest3/threadtest3_linux_amd64.go @@ -412,7 +412,7 @@ func _MD5Update(tls *crt.TLS, _ctx *XMD5Context, _buf *uint8, _len uint32) {  	if _t == 0 {  		goto _1  	} -	_1_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_t))))))) +	_1_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(_t)))  	_t = uint32(i32(64)) - _t  	if _len < _t {  		crt.Xmemcpy(tls, (unsafe.Pointer)(_1_p), (unsafe.Pointer)(_buf), uint64(_len)) @@ -1476,7 +1476,7 @@ func _MD5Final(tls *crt.TLS, _digest *[16]uint8, _ctx *XMD5Context) {  	var _count uint32  	var _p *uint8  	_count = ((*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[2]uint32)(unsafe.Pointer(&(_ctx.X2))))) + 4*uintptr(i32(0))))) >> uint(i32(3))) & uint32(i32(63)) -	_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_count))))))) +	_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(_count)))  	*postInc2(&_p, 1) = uint8(i32(128))  	_count = uint32(i32(63)) - _count  	if _count < uint32(i32(8)) { @@ -2181,7 +2181,7 @@ func _walthread2(tls *crt.TLS, _nMs int32) {  			return i32(1057)  		}()  		return &_err -	}(), &_threads, _walthread2_thread, (unsafe.Pointer)(uintptr(u32(1)))) +	}(), &_threads, _walthread2_thread, crt.U2P(uintptr(u32(1))))  	_launch_thread_x(tls, func() *XError {  		*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {  			if (_err.X0) != 0 { @@ -2190,7 +2190,7 @@ func _walthread2(tls *crt.TLS, _nMs int32) {  			return i32(1058)  		}()  		return &_err -	}(), &_threads, _walthread2_thread, (unsafe.Pointer)(uintptr(u32(1)))) +	}(), &_threads, _walthread2_thread, crt.U2P(uintptr(u32(1))))  	_join_all_threads_x(tls, func() *XError {  		*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {  			if (_err.X0) != 0 { @@ -2215,7 +2215,7 @@ func _walthread2_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *in  	_err = XError{}  	_db = XSqlite{}  	_anTrans = [2]int32{} -	_iArg = int32(int64(uintptr(_pArg))) +	_iArg = int32(int64(crt.P2U(_pArg)))  	_zJournal = str(1346)  	if _iArg != 0 {  		_zJournal = str(1372) @@ -2408,7 +2408,7 @@ _8:  			return i32(1119)  		}()  		return &_err -	}(), &_threads, _walthread3_thread, (unsafe.Pointer)(uintptr(int64(_i)))) +	}(), &_threads, _walthread3_thread, crt.U2P(uintptr(int64(_i))))  	_i += 1  	goto _8  _11: @@ -2434,7 +2434,7 @@ func _walthread3_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *in  	var _db XSqlite  	_err = XError{}  	_db = XSqlite{} -	_iArg = int32(int64(uintptr(_pArg))) +	_iArg = int32(int64(crt.P2U(_pArg)))  	_opendb_x(tls, func() *XError {  		*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {  			if (_err.X0) != 0 { @@ -4453,7 +4453,7 @@ func _stress1(tls *crt.TLS, _nMs int32) {  			return i32(154)  		}()  		return &_err -	}(), &_threads, _stress_thread_5, (unsafe.Pointer)(uintptr(u32(1)))) +	}(), &_threads, _stress_thread_5, crt.U2P(uintptr(u32(1))))  	_join_all_threads_x(tls, func() *XError {  		*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {  			if (_err.X0) != 0 { @@ -4660,7 +4660,7 @@ func _stress_thread_4(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8  	_db = XSqlite{}  	_i1 = i32(0)  	_i2 = i32(0) -	_iArg = int32(int64(uintptr(_pArg))) +	_iArg = int32(int64(crt.P2U(_pArg)))  	_opendb_x(tls, func() *XError {  		*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {  			if (_err.X0) != 0 { @@ -4744,7 +4744,7 @@ func _stress_thread_5(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8  	var _db XSqlite  	_err = XError{}  	_db = XSqlite{} -	_iArg = int32(int64(uintptr(_pArg))) +	_iArg = int32(int64(crt.P2U(_pArg)))  	_i1 = i32(0)  	_i2 = i32(0)  	_opendb_x(tls, func() *XError { @@ -5956,7 +5956,7 @@ _4:  	if _rc != i32(0) {  		goto _5  	} -	_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iAmt)))))))) +	_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(_iAmt))))  	{  		p := &_iOfst  		*p = (*p) + int64(_iAmt) @@ -6020,7 +6020,7 @@ _4:  	_rc = (*(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&struct {  		f func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, int64) int32  	}{((*bin.Xsqlite3_io_methods)(_5_pSubOpen.X0).X3)})))(tls, _5_pSubOpen, _pBuf, _iAmt, _iOfst%int64(_pGroup.X5)) -	_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iAmt)))))))) +	_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(_iAmt))))  	{  		p := &_iOfst  		*p = (*p) + int64(_iAmt) diff --git a/z_linux_test.go b/z_linux_test.go index 9089fd8..73d157b 100644 --- a/z_linux_test.go +++ b/z_linux_test.go @@ -10,7 +10,6 @@ import (  	"os"  	"os/exec"  	"path/filepath" -	"strconv"  	"testing"  ) @@ -97,20 +96,14 @@ func TestThread1(t *testing.T) {  		t.Fatalf("go build mptest: %s\n%s", err, out)  	} -	for i := 0; i <= 20; i++ { -		out, err := exec.Command("./threadtest1", strconv.Itoa(i), "-v").CombinedOutput() -		t.Logf("%v:\n%s", i, out) -		if err != nil { -			t.Fatal(err) -		} +	out, err := exec.Command("./threadtest1", "10").CombinedOutput() +	t.Logf("%s", out) +	if err != nil { +		t.Fatal(err)  	}  }  func TestThread2(t *testing.T) { -	t.Log("TODO") -	return //TODO-  - -	//TODO sqlite3.c:143403: createCollation(db, "RTRIM", SQLITE_UTF8, (void*)1, binCollFunc, 0); -> fatal error: bad pointer in write barrier  	dir, err := ioutil.TempDir("", "sqlite-test-")  	if err != nil {  		t.Fatal(err) @@ -150,7 +143,7 @@ func TestThread2(t *testing.T) {  func TestThread3(t *testing.T) {  	t.Log("TODO") -	return //TODO-  +	return //TODO-  	//TODO sqlite3.c:142510: sqlite3_wal_hook(db, sqlite3WalDefaultHook, SQLITE_INT_TO_PTR(nFrame)); -> fatal error: bad pointer in write barrier  	dir, err := ioutil.TempDir("", "sqlite-test-") @@ -219,10 +212,6 @@ func TestThread3(t *testing.T) {  }  func TestThread4(t *testing.T) { -	t.Log("TODO") -	return //TODO-  - -	//TODO sqlite3.c:143403: createCollation(db, "RTRIM", SQLITE_UTF8, (void*)1, binCollFunc, 0); -> fatal error: bad pointer in write barrier  	cases := 0  	dir, err := ioutil.TempDir("", "sqlite-test-")  	if err != nil { @@ -268,20 +257,19 @@ func TestThread4(t *testing.T) {  		{"--multithread", "-serialized"},  		{"--multithread", "-serialized", "-wal"},  	} { -		for i := 2; i <= 20; i++ { -			out, err := exec.Command("./threadtest4", append(opts, strconv.Itoa(i))...).CombinedOutput() -			t.Logf("%v: %v\n%s", i, opts, out) -			if err != nil { -				t.Fatal(err) -			} +		out, err := exec.Command("./threadtest4", append(opts, "5")...).CombinedOutput() +		dbg("%v\n%s", opts, out) +		t.Logf("%v\n%s", opts, out) +		if err != nil { +			t.Fatal(err) +		} -			if bytes.Contains(out, []byte("fault address")) || -				bytes.Contains(out, []byte("data race")) || -				bytes.Contains(out, []byte("RACE")) { -				t.Fatalf("case %v: fault", cases) -			} -			cases++ +		if bytes.Contains(out, []byte("fault address")) || +			bytes.Contains(out, []byte("data race")) || +			bytes.Contains(out, []byte("RACE")) { +			t.Fatalf("case %v: fault", cases)  		} +		cases++  	}  	t.Logf("cases: %v", cases)  } | 
