Regenerate Linux/amd64 using latest CCGO.

modified:   generator.go
	modified:   internal/bin/bin_linux_amd64.go
	modified:   internal/mptest/mptest_linux_amd64.go
	modified:   internal/threadtest1/threadtest1_linux_amd64.go
	modified:   internal/threadtest2/threadtest2_linux_amd64.go
	modified:   internal/threadtest3/threadtest3_linux_amd64.go
	modified:   internal/threadtest4/threadtest4_linux_amd64.go
This commit is contained in:
Jan Mercl
2017-07-15 14:51:15 +02:00
parent 4c91ab146a
commit d7e92b1258
7 changed files with 43005 additions and 47541 deletions

View File

@@ -409,7 +409,7 @@ func sqlite() {
{filepath.Join(pth, "sqlite3.h")},
{"main.c"},
},
[]ccgo.Option{ccgo.Library()},
[]ccgo.Option{ccgo.Library(), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{pth}),
)
@@ -420,7 +420,7 @@ func sqlite() {
{sqlite3},
{"main.c"},
},
[]ccgo.Option{ccgo.Library()},
[]ccgo.Option{ccgo.Library(), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{pth}),
)
@@ -468,7 +468,7 @@ func mpTest() {
{filepath.Join(sqlitePth, "sqlite3.c")},
{test},
},
[]ccgo.Option{ccgo.Packages([]string{"bin"})},
[]ccgo.Option{ccgo.Packages([]string{"bin"}), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{sqlitePth}),
)
@@ -514,7 +514,7 @@ func threadTest1() {
{filepath.Join(sqlitePth, "sqlite3.c")},
{test},
},
[]ccgo.Option{ccgo.Packages([]string{"bin"})},
[]ccgo.Option{ccgo.Packages([]string{"bin"}), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{".", sqlitePth, filepath.Join(repo, "sqlite-src-"+version, "src")}),
)
@@ -559,7 +559,7 @@ func threadTest2() {
{filepath.Join(sqlitePth, "sqlite3.c")},
{test},
},
[]ccgo.Option{ccgo.Packages([]string{"bin"})},
[]ccgo.Option{ccgo.Packages([]string{"bin"}), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{".", sqlitePth, filepath.Join(repo, "sqlite-src-"+version, "src")}),
)
@@ -606,7 +606,7 @@ func threadTest3() {
{filepath.Join(repo, "sqlite-src-"+version, "src", "test_multiplex.c")},
{test},
},
[]ccgo.Option{ccgo.Packages([]string{"bin"})},
[]ccgo.Option{ccgo.Packages([]string{"bin"}), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{".", sqlitePth, filepath.Join(repo, "sqlite-src-"+version, "src")}),
)
@@ -651,7 +651,7 @@ func threadTest4() {
{filepath.Join(sqlitePth, "sqlite3.c")},
{test},
},
[]ccgo.Option{ccgo.Packages([]string{"bin"})},
[]ccgo.Option{ccgo.Packages([]string{"bin"}), ccgo.LibcTypes()},
cc.EnableAnonymousStructFields(),
cc.IncludePaths([]string{".", sqlitePth, filepath.Join(repo, "sqlite-src-"+version, "src")}),
)

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -75,34 +75,34 @@ func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) {
var _id uint64
var _zFile, _4_zDb, _4_zJournal *int8
var _2_zBuf, _6_zBuf [200]int8
r0 = i32(0)
if (_argc > i32(2)) && (crt.Xstrcmp(tls, *(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + 8*uintptr(i32(1)))), str(0)) == i32(0)) {
_verbose = i32(1)
r0 = int32(0)
if (_argc > int32(2)) && (crt.Xstrcmp(tls, *elem0(_argv, uintptr(1)), str(0)) == int32(0)) {
_verbose = int32(1)
bug20530(_verbose)
_argc -= 1
*(*uintptr)(unsafe.Pointer(&_argv)) += uintptr(8)
}
if (_argc < i32(2)) || (store0(&_n, crt.Xatoi(tls, *(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + 8*uintptr(i32(1)))))) < i32(1)) {
_n = i32(10)
if (_argc < int32(2)) || (store1(&_n, crt.Xatoi(tls, *elem0(_argv, uintptr(1)))) < int32(1)) {
_n = int32(10)
}
_i = i32(0)
_i = int32(0)
_4:
if _i >= _n {
goto _7
}
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_2_zBuf)), str(3), (_i+i32(1))/i32(2))
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_2_zBuf)), str(3), (_i+int32(1))/int32(2))
crt.Xunlink(tls, (*int8)(unsafe.Pointer(&_2_zBuf)))
_i += 1
goto _4
_7:
_i = i32(0)
_i = int32(0)
_8:
if _i >= _n {
goto _11
}
_zFile = bin.Xsqlite3_mprintf(tls, str(13), (_i%i32(2))+i32(1), (_i+i32(2))/i32(2))
if (_i % i32(2)) == i32(0) {
_4_zDb = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zFile)) + 1*uintptr(i32(2))))
_zFile = bin.Xsqlite3_mprintf(tls, str(13), (_i%int32(2))+int32(1), (_i+int32(2))/int32(2))
if (_i % int32(2)) == int32(0) {
_4_zDb = elem2(_zFile, uintptr(2))
_4_zJournal = bin.Xsqlite3_mprintf(tls, str(26), unsafe.Pointer(_4_zDb))
crt.Xunlink(tls, _4_zDb)
crt.Xunlink(tls, _4_zJournal)
@@ -115,28 +115,32 @@ _8:
_11:
crt.Xpthread_mutex_lock(tls, &Xlock)
_13:
if Xthread_cnt > i32(0) {
if Xthread_cnt > int32(0) {
crt.Xpthread_cond_wait(tls, &Xsig, &Xlock)
goto _13
}
crt.Xpthread_mutex_unlock(tls, &Xlock)
_i = i32(0)
_i = int32(0)
_15:
if _i >= _n {
goto _18
}
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_6_zBuf)), str(3), (_i+i32(1))/i32(2))
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_6_zBuf)), str(3), (_i+int32(1))/int32(2))
crt.Xunlink(tls, (*int8)(unsafe.Pointer(&_6_zBuf)))
_i += 1
goto _15
_18:
return i32(0)
return int32(0)
_ = _2_zBuf
_ = _6_zBuf
panic(0)
}
// C comment
// /*
// ** Enable for tracing
// */
var _verbose int32
func _worker_bee(tls *crt.TLS, _pArg unsafe.Pointer) (r0 unsafe.Pointer) {
@@ -152,43 +156,43 @@ func _worker_bee(tls *crt.TLS, _pArg unsafe.Pointer) (r0 unsafe.Pointer) {
crt.Xpthread_mutex_unlock(tls, &Xlock)
crt.Xprintf(tls, str(37), unsafe.Pointer(_zFilename))
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
_cnt = i32(0)
_cnt = int32(0)
_0:
if _cnt >= i32(10) {
if _cnt >= int32(10) {
goto _3
}
bin.Xsqlite3_open(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zFilename))+1*uintptr(i32(2)))), (**bin.Xsqlite3)(unsafe.Pointer(&_db)))
bin.Xsqlite3_open(tls, elem2(_zFilename, uintptr(2)), (**bin.Xsqlite3)(unsafe.Pointer(&_db)))
if _db == nil {
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(48), unsafe.Pointer(_zFilename))
_Exit(tls, i32(1))
_Exit(tls, int32(1))
}
bin.Xsqlite3_busy_handler(tls, (*bin.Xsqlite3)(_db), _db_is_locked, unsafe.Pointer(_zFilename))
Xdb_execute(tls, _db, _zFilename, str(64), _t)
_i = i32(1)
_i = int32(1)
_5:
if _i > i32(100) {
if _i > int32(100) {
goto _8
}
Xdb_execute(tls, _db, _zFilename, str(89), _t, _i, _i*i32(2), _i*_i)
Xdb_execute(tls, _db, _zFilename, str(89), _t, _i, _i*int32(2), _i*_i)
_i += 1
goto _5
_8:
_az = Xdb_query(tls, _db, _zFilename, str(123), _t)
Xdb_check(tls, _zFilename, str(148), _az, unsafe.Pointer(str(156)), i32(0))
Xdb_check(tls, _zFilename, str(148), _az, unsafe.Pointer(str(156)), int32(0))
_az = Xdb_query(tls, _db, _zFilename, str(160), _t)
Xdb_check(tls, _zFilename, str(183), _az, unsafe.Pointer(str(190)), i32(0))
Xdb_check(tls, _zFilename, str(183), _az, unsafe.Pointer(str(190)), int32(0))
Xdb_execute(tls, _db, _zFilename, str(196), _t)
_az = Xdb_query(tls, _db, _zFilename, str(160), _t)
Xdb_check(tls, _zFilename, str(223), _az, unsafe.Pointer(str(231)), i32(0))
_i = i32(1)
Xdb_check(tls, _zFilename, str(223), _az, unsafe.Pointer(str(231)), int32(0))
_i = int32(1)
_9:
if _i > i32(50) {
if _i > int32(50) {
goto _12
}
_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_z1)), str(268), _i*int32(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))
Xdb_check(tls, _zFilename, str(271), _az, unsafe.Pointer(&_4_z1), unsafe.Pointer(&_4_z2), int32(0))
_i += 1
goto _9
_12:
@@ -201,7 +205,7 @@ _3:
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
crt.Xpthread_mutex_lock(tls, &Xlock)
Xthread_cnt -= 1
if Xthread_cnt <= i32(0) {
if Xthread_cnt <= int32(0) {
crt.Xpthread_cond_signal(tls, &Xsig)
}
crt.Xpthread_mutex_unlock(tls, &Xlock)
@@ -231,10 +235,10 @@ func _Exit(tls *crt.TLS, _rc int32) {
// */
func _db_is_locked(tls *crt.TLS, _NotUsed unsafe.Pointer, _iCount int32) (r0 int32) {
if _verbose != 0 {
crt.Xprintf(tls, str(305), unsafe.Pointer((*int8)(_NotUsed)), _iCount)
crt.Xprintf(tls, str(305), _NotUsed, _iCount)
}
crt.Xusleep(tls, uint32(i32(100)))
return bool2int(_iCount < i32(40000))
crt.Xusleep(tls, uint32(100))
return bool2int(_iCount < int32(40000))
}
// C comment
@@ -254,7 +258,7 @@ func Xdb_execute(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8,
}
_0:
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, nil, nil, &_zErrMsg)
if _rc == i32(5) {
if _rc == int32(5) {
goto _0
}
if _verbose != 0 {
@@ -264,7 +268,7 @@ _0:
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))
_Exit(tls, int32(1))
}
bin.Xsqlite3_free(tls, unsafe.Pointer(_zSql))
}
@@ -283,13 +287,13 @@ func Xdb_query(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8, a
_ap = args
_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
_ap = nil
crt.Xmemset(tls, unsafe.Pointer(&_sResult), i32(0), u64(24))
*(**int8)(unsafe.Pointer(&_sResult.X0)) = _zFile
crt.Xmemset(tls, unsafe.Pointer(&_sResult), int32(0), uint64(24))
_sResult.XzFile = _zFile
if _verbose != 0 {
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) {
if _rc != int32(17) {
goto _1
}
if _zErrMsg != nil {
@@ -304,17 +308,14 @@ _1:
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))
_Exit(tls, int32(1))
}
bin.Xsqlite3_free(tls, unsafe.Pointer(_zSql))
if _sResult.X3 == nil {
_db_query_callback(tls, unsafe.Pointer(&_sResult), i32(0), nil, nil)
if _sResult.XazElem == nil {
_db_query_callback(tls, unsafe.Pointer(&_sResult), int32(0), nil, nil)
}
*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_sResult.X3)) + 8*uintptr(_sResult.X1))) = nil
return _sResult.X3
_ = _sResult
panic(0)
*elem0(_sResult.XazElem, uintptr(_sResult.XnElem)) = nil
return _sResult.XazElem
}
// C comment
@@ -325,39 +326,39 @@ func _db_query_callback(tls *crt.TLS, _pUser unsafe.Pointer, _nArg int32, _azArg
var _i int32
var _pResult *TQueryResult
_pResult = (*TQueryResult)(_pUser)
if (_pResult.X1 + _nArg) < _pResult.X2 {
if (_pResult.XnElem + _nArg) < _pResult.XnAlloc {
goto _0
}
if _pResult.X2 == i32(0) {
*(*int32)(unsafe.Pointer(&_pResult.X2)) = _nArg + i32(1)
if _pResult.XnAlloc == int32(0) {
_pResult.XnAlloc = _nArg + int32(1)
goto _2
}
*(*int32)(unsafe.Pointer(&_pResult.X2)) = ((_pResult.X2 * i32(2)) + _nArg) + i32(1)
_pResult.XnAlloc = ((_pResult.XnAlloc * int32(2)) + _nArg) + int32(1)
_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(426), unsafe.Pointer(_pResult.X0))
return i32(1)
_pResult.XazElem = (**int8)(crt.Xrealloc(tls, unsafe.Pointer(_pResult.XazElem), uint64(_pResult.XnAlloc)*uint64(8)))
if _pResult.XazElem == nil {
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(426), unsafe.Pointer(_pResult.XzFile))
return int32(1)
}
_0:
if _azArg == nil {
return i32(0)
return int32(0)
}
_i = i32(0)
_i = int32(0)
_5:
if _i >= _nArg {
goto _8
}
*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_pResult.X3)) + 8*uintptr(postInc0((*int32)(unsafe.Pointer(&_pResult.X1)), 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))))
*elem0(_pResult.XazElem, uintptr(postInc1(&_pResult.XnElem, 1))) = bin.Xsqlite3_mprintf(tls, str(445), unsafe.Pointer(func() *int8 {
if (*elem0(_azArg, uintptr(_i))) != nil {
return (*elem0(_azArg, uintptr(_i)))
}
return str(448)
}()))
_i += 1
goto _5
_8:
return i32(0)
return int32(0)
}
// C comment
@@ -369,15 +370,15 @@ func Xdb_check(tls *crt.TLS, _zFile *int8, _zMsg *int8, _az **int8, args ...inte
var _z *int8
var _ap []interface{}
_ap = args
_i = i32(0)
_i = int32(0)
_0:
if store1(&_z, (*int8)(crt.VAPointer(&_ap))) == nil {
if store2(&_z, (*int8)(crt.VAPointer(&_ap))) == nil {
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(449), unsafe.Pointer(_zFile), unsafe.Pointer(_zMsg), _i+i32(1), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_az)) + 8*uintptr(_i)))))
if ((*elem0(_az, uintptr(_i))) == nil) || (crt.Xstrcmp(tls, *elem0(_az, uintptr(_i)), _z) != int32(0)) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(449), unsafe.Pointer(_zFile), unsafe.Pointer(_zMsg), _i+int32(1), unsafe.Pointer(*elem0(_az, uintptr(_i))))
Xdb_query_free(tls, _az)
_Exit(tls, i32(1))
_Exit(tls, int32(1))
}
_i += 1
goto _0
@@ -392,12 +393,12 @@ _3:
// */
func Xdb_query_free(tls *crt.TLS, _az **int8) {
var _i int32
_i = i32(0)
_i = int32(0)
_0:
if (*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_az)) + 8*uintptr(_i)))) == nil {
if (*elem0(_az, uintptr(_i))) == nil {
goto _3
}
bin.Xsqlite3_free(tls, unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_az)) + 8*uintptr(_i)))))
bin.Xsqlite3_free(tls, unsafe.Pointer(*elem0(_az, uintptr(_i))))
_i += 1
goto _0
_3:
@@ -413,29 +414,27 @@ func bool2int(b bool) int32 {
return 0
}
func bug20530(interface{}) {} //TODO remove when https://github.com/golang/go/issues/20530 is fixed.
func i16(n int16) int16 { return n }
func i32(n int32) int32 { return n }
func i64(n int64) int64 { return n }
func i8(n int8) int8 { return n }
func init() { nzf32 *= -1; nzf64 *= -1 }
func u16(n uint16) uint16 { return n }
func u32(n uint32) uint32 { return n }
func u64(n uint64) uint64 { return n }
func u8(n byte) byte { return n }
var inf = math.Inf(1)
var nzf32 float32 // -0.0
var nzf64 float64 // -0.0
func postInc0(p *int32, d int32) int32 { v := *p; *p += d; return v }
func store1(p **int8, v *int8) *int8 { *p = v; return v }
func store0(p *int32, v int32) int32 { *p = v; return v }
var nzf32 float32 // -0.0
var nzf64 float64 // -0.0
func elem0(a **int8, index uintptr) **int8 {
return (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 8*index))
}
func elem2(a *int8, index uintptr) *int8 {
return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 1*index))
}
func postInc1(p *int32, d int32) int32 { v := *p; *p += d; return v }
func store2(p **int8, v *int8) *int8 { *p = v; return v }
func store1(p *int32, v int32) int32 { *p = v; return v }
type TQueryResult struct {
X0 *int8
X1 int32
X2 int32
X3 **int8
} // t2 struct{*int8,int32,int32,**int8}
XzFile *int8
XnElem int32
XnAlloc int32
XazElem **int8
} // t3 struct{*int8,int32,int32,**int8}
func str(n int) *int8 { return (*int8)(unsafe.Pointer(&strTab[n])) }
func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) }

View File

@@ -73,7 +73,7 @@ func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) {
var _1_zJournal *int8
var _db unsafe.Pointer
var _aThread [5]uint64
r0 = i32(0)
r0 = int32(0)
if crt.Xstrcmp(tls, str(0), str(8)) != 0 {
_1_zJournal = bin.Xsqlite3_mprintf(tls, str(17), unsafe.Pointer(str(0)))
crt.Xunlink(tls, str(0))
@@ -83,38 +83,38 @@ func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) {
bin.Xsqlite3_open(tls, str(0), (**bin.Xsqlite3)(unsafe.Pointer(&_db)))
if _db == nil {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(28))
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), str(59), nil, nil, nil)
if _rc != 0 {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(79), _rc)
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_db))
_i = i32(0)
_i = int32(0)
_3:
if uint64(_i) >= u64(5) {
if uint64(_i) >= uint64(5) {
goto _6
}
crt.Xpthread_create(tls, (*uint64)(unsafe.Pointer(uintptr(unsafe.Pointer(&_aThread))+8*uintptr(_i))), nil, Xworker, crt.U2P(uintptr(_i)))
crt.Xpthread_create(tls, elem0((*uint64)(unsafe.Pointer(&_aThread)), uintptr(_i)), nil, Xworker, crt.U2P(uintptr(_i)))
_i += 1
goto _3
_6:
_i = i32(0)
_i = int32(0)
_7:
if uint64(_i) >= u64(5) {
if uint64(_i) >= uint64(5) {
goto _10
}
crt.Xpthread_join(tls, *(*uint64)(unsafe.Pointer(uintptr(unsafe.Pointer(&_aThread)) + 8*uintptr(_i))), nil)
crt.Xpthread_join(tls, *elem0((*uint64)(unsafe.Pointer(&_aThread)), uintptr(_i)), nil)
_i += 1
goto _7
_10:
if Xall_stop == 0 {
crt.Xprintf(tls, str(107))
return i32(0)
return int32(0)
}
crt.Xprintf(tls, str(129))
return i32(1)
return int32(1)
_ = _aThread
panic(0)
@@ -128,17 +128,17 @@ func Xworker(tls *crt.TLS, _workerArg unsafe.Pointer) (r0 unsafe.Pointer) {
var _id, _rc, _cnt int32
var _db unsafe.Pointer
_id = int32(crt.P2U(_workerArg))
_cnt = i32(0)
_cnt = int32(0)
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(147), _id)
_0:
if Xall_stop != 0 || postInc0(&_cnt, 1) >= i32(10000) {
if Xall_stop != 0 || postInc1(&_cnt, 1) >= int32(10000) {
goto _1
}
if (_cnt % i32(100)) == i32(0) {
if (_cnt % int32(100)) == int32(0) {
crt.Xprintf(tls, str(167), _id, _cnt)
}
_3:
if bin.Xsqlite3_open(tls, str(0), (**bin.Xsqlite3)(unsafe.Pointer(&_db))) != i32(0) {
if bin.Xsqlite3_open(tls, str(0), (**bin.Xsqlite3)(unsafe.Pointer(&_db))) != int32(0) {
crt.Xsched_yield(tls)
goto _3
}
@@ -158,6 +158,11 @@ _1:
panic(0)
}
// C comment
// /*
// ** When this variable becomes non-zero, all threads stop
// ** what they are doing.
// */
var Xall_stop int32
func bool2int(b bool) int32 {
@@ -167,20 +172,15 @@ func bool2int(b bool) int32 {
return 0
}
func bug20530(interface{}) {} //TODO remove when https://github.com/golang/go/issues/20530 is fixed.
func i16(n int16) int16 { return n }
func i32(n int32) int32 { return n }
func i64(n int64) int64 { return n }
func i8(n int8) int8 { return n }
func init() { nzf32 *= -1; nzf64 *= -1 }
func u16(n uint16) uint16 { return n }
func u32(n uint32) uint32 { return n }
func u64(n uint64) uint64 { return n }
func u8(n byte) byte { return n }
var inf = math.Inf(1)
var nzf32 float32 // -0.0
var nzf64 float64 // -0.0
func postInc0(p *int32, d int32) int32 { v := *p; *p += d; return v }
var nzf32 float32 // -0.0
var nzf64 float64 // -0.0
func elem0(a *uint64, index uintptr) *uint64 {
return (*uint64)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 8*index))
}
func postInc1(p *int32, d int32) int32 { v := *p; *p += d; return v }
func str(n int) *int8 { return (*int8)(unsafe.Pointer(&strTab[n])) }
func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) }

File diff suppressed because it is too large Load Diff

View File

@@ -85,104 +85,88 @@ func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) {
var _wrMutex crt.Xpthread_mutex_t
var _infoTop XWorkerInfo
var _aInfo, _p *XWorkerInfo
r0 = i32(0)
_nWorker = i32(0)
_wkrFlags = u32(0)
_nErr = i32(0)
_nTest = i32(0)
r0 = int32(0)
_nWorker = int32(0)
_wkrFlags = uint32(0)
_nErr = int32(0)
_nTest = int32(0)
_db = nil
bin.Xsqlite3_config(tls, i32(2))
_i = i32(1)
bin.Xsqlite3_config(tls, int32(2))
_i = int32(1)
_0:
if _i >= _argc {
goto _3
}
_1_z = *(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + 8*uintptr(_i)))
if int32(*(*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_z)) + 1*uintptr(i32(0))))) != i32(45) {
_1_z = *elem0(_argv, uintptr(_i))
if int32(*elem1(_1_z, 0)) != int32(45) {
goto _4
}
if (int32(*(*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_z)) + 1*uintptr(i32(1))))) == i32(45)) && (int32(*(*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_z)) + 1*uintptr(i32(2))))) != i32(0)) {
if (int32(*elem1(_1_z, uintptr(1))) == int32(45)) && (int32(*elem1(_1_z, uintptr(2))) != int32(0)) {
*(*uintptr)(unsafe.Pointer(&_1_z)) += uintptr(1)
}
if crt.Xstrcmp(tls, _1_z, str(0)) == i32(0) {
bin.Xsqlite3_config(tls, i32(2))
{
p := &_wkrFlags
*p = (*p) & uint32(i32(-2))
sink0(*p)
}
if crt.Xstrcmp(tls, _1_z, str(0)) == int32(0) {
bin.Xsqlite3_config(tls, int32(2))
_wkrFlags &= uint32(4294967294)
goto _14
}
if crt.Xstrcmp(tls, _1_z, str(13)) == i32(0) {
bin.Xsqlite3_config(tls, i32(3))
{
p := &_wkrFlags
*p = (*p) | uint32(i32(1))
sink0(*p)
}
if crt.Xstrcmp(tls, _1_z, str(13)) == int32(0) {
bin.Xsqlite3_config(tls, int32(3))
_wkrFlags |= uint32(1)
goto _14
}
if crt.Xstrcmp(tls, _1_z, str(25)) == i32(0) {
{
p := &_wkrFlags
*p = (*p) | uint32(i32(2))
sink0(*p)
}
if crt.Xstrcmp(tls, _1_z, str(25)) == int32(0) {
_wkrFlags |= uint32(2)
goto _14
}
if crt.Xstrcmp(tls, _1_z, str(30)) == i32(0) {
{
p := &_wkrFlags
*p = (*p) | uint32(i32(4))
sink0(*p)
}
if crt.Xstrcmp(tls, _1_z, str(30)) == int32(0) {
_wkrFlags |= uint32(4)
goto _14
}
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(37), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + 8*uintptr(_i)))))
crt.Xexit(tls, i32(1))
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(37), unsafe.Pointer(*elem0(_argv, uintptr(_i))))
crt.Xexit(tls, int32(1))
_14:
goto _20
_4:
if int32(*(*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_z)) + 1*uintptr(i32(0))))) < i32(49) || int32(*(*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_1_z)) + 1*uintptr(i32(0))))) > i32(57) || _nWorker != i32(0) {
if int32(*elem1(_1_z, 0)) < int32(49) || int32(*elem1(_1_z, 0)) > int32(57) || _nWorker != int32(0) {
goto _18
}
_nWorker = crt.Xatoi(tls, _1_z)
if _nWorker < i32(2) {
if _nWorker < int32(2) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(70))
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
goto _20
_18:
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(92), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + 8*uintptr(_i)))))
crt.Xexit(tls, i32(1))
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(92), unsafe.Pointer(*elem0(_argv, uintptr(_i))))
crt.Xexit(tls, int32(1))
_20:
_i += 1
goto _0
_3:
if _nWorker == i32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(127), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv)) + 8*uintptr(i32(0))))))
crt.Xexit(tls, i32(1))
if _nWorker == int32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(127), unsafe.Pointer(*elem0(_argv, 0)))
crt.Xexit(tls, int32(1))
}
if bin.Xsqlite3_threadsafe(tls) == 0 {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(260))
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
bin.Xsqlite3_initialize(tls)
bin.Xsqlite3_enable_shared_cache(tls, i32(1))
bin.Xsqlite3_enable_shared_cache(tls, int32(1))
crt.Xpthread_mutex_init(tls, &_wrMutex, nil)
crt.Xunlink(tls, str(299))
crt.Xunlink(tls, str(312))
crt.Xunlink(tls, str(325))
_rc = bin.Xsqlite3_open(tls, str(299), (**bin.Xsqlite3)(unsafe.Pointer(&_db)))
if _rc != i32(0) {
if _rc != int32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(338))
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
crt.Xmemset(tls, unsafe.Pointer(&_infoTop), i32(0), u64(64))
*(*unsafe.Pointer)(unsafe.Pointer(&_infoTop.X4)) = _db
*(*uint32)(unsafe.Pointer(&_infoTop.X2)) = _wkrFlags
crt.Xmemset(tls, unsafe.Pointer(&_infoTop), int32(0), uint64(64))
_infoTop.Xdb = _db
_infoTop.XwkrFlags = _wkrFlags
_p = &_infoTop
if (_wkrFlags & uint32(i32(2))) != 0 {
if (_wkrFlags & uint32(2)) != 0 {
_run_sql(tls, _p, str(382))
}
_run_sql(tls, _p, str(406))
@@ -197,50 +181,42 @@ _3:
_run_sql(tls, _p, str(743))
_run_sql(tls, _p, str(805))
_run_sql(tls, _p, str(841))
_aInfo = (*XWorkerInfo)(_safe_malloc(tls, int32(u64(64)*uint64(_nWorker))))
crt.Xmemset(tls, unsafe.Pointer(_aInfo), i32(0), u64(64)*uint64(_nWorker))
_i = i32(0)
_aInfo = (*XWorkerInfo)(_safe_malloc(tls, int32(uint64(64)*uint64(_nWorker))))
crt.Xmemset(tls, unsafe.Pointer(_aInfo), int32(0), uint64(64)*uint64(_nWorker))
_i = int32(0)
_25:
if _i >= _nWorker {
goto _28
}
*(*int32)(unsafe.Pointer(&((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X0))) = _i + i32(1)
*(*int32)(unsafe.Pointer(&((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X1))) = _nWorker
*(*uint32)(unsafe.Pointer(&((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X2))) = _wkrFlags
*(*unsafe.Pointer)(unsafe.Pointer(&((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X3))) = _db
*(**crt.Xpthread_mutex_t)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X9))))) = &_wrMutex
_rc = crt.Xpthread_create(tls, (*uint64)(unsafe.Pointer(&((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X8))), nil, _worker_thread, unsafe.Pointer((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo))+64*uintptr(_i)))))
if _rc != i32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(876), _i+i32(1))
crt.Xexit(tls, i32(1))
elem2(_aInfo, uintptr(_i)).Xtid = _i + int32(1)
elem2(_aInfo, uintptr(_i)).XnWorker = _nWorker
elem2(_aInfo, uintptr(_i)).XwkrFlags = _wkrFlags
elem2(_aInfo, uintptr(_i)).XmainDb = _db
*(**crt.Xpthread_mutex_t)(unsafe.Pointer(&(elem2(_aInfo, uintptr(_i)).XpWrMutex))) = &_wrMutex
_rc = crt.Xpthread_create(tls, &(elem2(_aInfo, uintptr(_i)).Xid), nil, _worker_thread, unsafe.Pointer(elem2(_aInfo, uintptr(_i))))
if _rc != int32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(876), _i+int32(1))
crt.Xexit(tls, int32(1))
}
crt.Xsched_yield(tls)
_i += 1
goto _25
_28:
_i = i32(0)
_i = int32(0)
_30:
if _i >= _nWorker {
goto _33
}
crt.Xpthread_join(tls, (*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo))+64*uintptr(_i))).X8, nil)
crt.Xprintf(tls, str(914), (*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo))+64*uintptr(_i))).X0, (*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo))+64*uintptr(_i))).X5, (*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo))+64*uintptr(_i))).X6)
if ((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X7) != nil {
crt.Xprintf(tls, str(954), unsafe.Pointer((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo))+64*uintptr(_i))).X7))
crt.Xpthread_join(tls, elem2(_aInfo, uintptr(_i)).Xid, nil)
crt.Xprintf(tls, str(914), elem2(_aInfo, uintptr(_i)).Xtid, elem2(_aInfo, uintptr(_i)).XnErr, elem2(_aInfo, uintptr(_i)).XnTest)
if (elem2(_aInfo, uintptr(_i)).XzMsg) != nil {
crt.Xprintf(tls, str(954), unsafe.Pointer(elem2(_aInfo, uintptr(_i)).XzMsg))
goto _35
}
crt.Xprintf(tls, str(960))
_35:
{
p := &_nErr
*p = (*p) + ((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X5)
sink1(*p)
}
{
p := &_nTest
*p = (*p) + ((*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(_aInfo)) + 64*uintptr(_i))).X6)
sink1(*p)
}
_nErr += elem2(_aInfo, uintptr(_i)).XnErr
_nTest += elem2(_aInfo, uintptr(_i)).XnTest
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
_i += 1
goto _30
@@ -249,10 +225,6 @@ _33:
bin.Xsqlite3_free(tls, unsafe.Pointer(_aInfo))
crt.Xprintf(tls, str(962), _nErr, _nTest)
return _nErr
_ = _wrMutex
_ = _infoTop
panic(0)
}
// C comment
@@ -265,48 +237,48 @@ func _run_sql(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interface{}
var _pStmt unsafe.Pointer
var _ap []interface{}
_pStmt = nil
_nRetry = i32(0)
_nRetry = int32(0)
_ap = args
_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
_ap = nil
_check_oom(tls, unsafe.Pointer(_zSql))
_i = i32(0)
_i = int32(0)
_0:
if _i >= i32(1000) {
if _i >= int32(1000) {
goto _3
}
_rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_p.X4), _zSql, i32(-1), &_pStmt, nil)
if _rc == i32(0) {
_rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_p.Xdb), _zSql, int32(-1), &_pStmt, nil)
if _rc == int32(0) {
goto _3
}
_i += 1
goto _0
_3:
if _rc != i32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(991), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_p.X4)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_p.X4))), unsafe.Pointer(_zSql))
crt.Xexit(tls, i32(1))
if _rc != int32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(991), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_p.Xdb)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_p.Xdb))), unsafe.Pointer(_zSql))
crt.Xexit(tls, int32(1))
}
_worker_trace(tls, _p, str(1036), unsafe.Pointer(_zSql))
_6:
if store1(&_rc, bin.Xsqlite3_step(tls, _pStmt)) == i32(101) {
if store3(&_rc, bin.Xsqlite3_step(tls, _pStmt)) == int32(101) {
goto _7
}
if (_rc&i32(255)) != i32(5) && (_rc&i32(255)) != i32(6) {
if (_rc&int32(255)) != int32(5) && (_rc&int32(255)) != int32(6) {
goto _9
}
bin.Xsqlite3_reset(tls, _pStmt)
_nRetry += 1
if _nRetry < i32(10) {
if _nRetry < int32(10) {
_worker_trace(tls, _p, str(1049), _nRetry, unsafe.Pointer(_zSql))
crt.Xsched_yield(tls)
goto _6
}
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1067), _p.X0, unsafe.Pointer(_zSql))
crt.Xexit(tls, i32(1))
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1067), _p.Xtid, unsafe.Pointer(_zSql))
crt.Xexit(tls, int32(1))
_9:
if _rc != i32(100) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1109), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_p.X4)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_p.X4))), unsafe.Pointer(_zSql))
crt.Xexit(tls, i32(1))
if _rc != int32(100) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1109), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_p.Xdb)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_p.Xdb))), unsafe.Pointer(_zSql))
crt.Xexit(tls, int32(1))
}
goto _6
_7:
@@ -321,7 +293,7 @@ _7:
func _check_oom(tls *crt.TLS, _x unsafe.Pointer) {
if _x == nil {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1151))
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
}
@@ -332,14 +304,14 @@ func _check_oom(tls *crt.TLS, _x unsafe.Pointer) {
func _worker_trace(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interface{}) {
var _zMsg *int8
var _ap []interface{}
if (_p.X2 & uint32(i32(4))) == uint32(i32(0)) {
if (_p.XwkrFlags & uint32(4)) == (0) {
return
}
_ap = args
_zMsg = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
_check_oom(tls, unsafe.Pointer(_zMsg))
_ap = nil
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1166), _p.X0, unsafe.Pointer(_zMsg))
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1166), _p.Xtid, unsafe.Pointer(_zMsg))
bin.Xsqlite3_free(tls, unsafe.Pointer(_zMsg))
}
@@ -351,10 +323,10 @@ func _worker_trace(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interf
func _safe_malloc(tls *crt.TLS, _sz int32) (r0 unsafe.Pointer) {
var _x unsafe.Pointer
_x = bin.Xsqlite3_malloc(tls, func() int32 {
if _sz > i32(0) {
if _sz > int32(0) {
return _sz
}
return i32(1)
return int32(1)
}())
_check_oom(tls, _x)
return _x
@@ -369,66 +341,66 @@ func _worker_thread(tls *crt.TLS, _pArg unsafe.Pointer) (r0 unsafe.Pointer) {
var _pStmt unsafe.Pointer
var _p *XWorkerInfo
_p = (*XWorkerInfo)(_pArg)
crt.Xprintf(tls, str(1183), _p.X0)
crt.Xprintf(tls, str(1183), _p.Xtid)
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
_iOuter = i32(1)
_iOuter = int32(1)
_0:
if _iOuter > _p.X1 {
if _iOuter > _p.XnWorker {
goto _3
}
_worker_open_connection(tls, _p, _iOuter)
_i = i32(0)
_i = int32(0)
_4:
if _i >= i32(4) {
if _i >= int32(4) {
goto _7
}
_worker_add_content(tls, _p, (_i*i32(100))+i32(1), (_i+i32(1))*i32(100), ((_p.X0+_iOuter)%i32(3))+i32(1))
_worker_add_content(tls, _p, (_i*i32(100))+i32(1), (_i+i32(1))*i32(100), (((_p.X0+_iOuter)+i32(1))%i32(3))+i32(1))
_worker_add_content(tls, _p, (_i*i32(100))+i32(1), (_i+i32(1))*i32(100), (((_p.X0+_iOuter)+i32(2))%i32(3))+i32(1))
_worker_add_content(tls, _p, (_i*int32(100))+int32(1), (_i+int32(1))*int32(100), ((_p.Xtid+_iOuter)%int32(3))+int32(1))
_worker_add_content(tls, _p, (_i*int32(100))+int32(1), (_i+int32(1))*int32(100), (((_p.Xtid+_iOuter)+int32(1))%int32(3))+int32(1))
_worker_add_content(tls, _p, (_i*int32(100))+int32(1), (_i+int32(1))*int32(100), (((_p.Xtid+_iOuter)+int32(2))%int32(3))+int32(1))
_i += 1
goto _4
_7:
_pStmt = _prep_sql(tls, _p.X4, str(1202), _p.X0)
_pStmt = _prep_sql(tls, _p.Xdb, str(1202), _p.Xtid)
_worker_trace(tls, _p, str(1239), unsafe.Pointer(bin.Xsqlite3_sql(tls, _pStmt)))
_rc = bin.Xsqlite3_step(tls, _pStmt)
if _rc != i32(100) {
if _rc != int32(100) {
_worker_error(tls, _p, str(1250), unsafe.Pointer(bin.Xsqlite3_sql(tls, _pStmt)))
goto _10
}
if bin.Xsqlite3_column_int(tls, _pStmt, i32(0)) != i32(400) {
_worker_error(tls, _p, str(1269), bin.Xsqlite3_column_int(tls, _pStmt, i32(0)))
if bin.Xsqlite3_column_int(tls, _pStmt, int32(0)) != int32(400) {
_worker_error(tls, _p, str(1269), bin.Xsqlite3_column_int(tls, _pStmt, int32(0)))
}
_10:
bin.Xsqlite3_finalize(tls, _pStmt)
if _p.X5 != 0 {
if _p.XnErr != 0 {
goto _3
}
if ((_iOuter + _p.X0) % i32(3)) == i32(0) {
bin.Xsqlite3_db_release_memory(tls, (*bin.Xsqlite3)(_p.X4))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
if ((_iOuter + _p.Xtid) % int32(3)) == int32(0) {
bin.Xsqlite3_db_release_memory(tls, (*bin.Xsqlite3)(_p.Xdb))
_p.XnTest += 1
}
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(1286))
_run_sql(tls, _p, str(1293))
_run_sql(tls, _p, str(1325))
_run_sql(tls, _p, str(1357))
_run_sql(tls, _p, str(1389))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
if _iOuter == _p.X0 {
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
_p.XnTest += 1
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
if _iOuter == _p.Xtid {
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(1399))
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
}
_pStmt = _prep_sql(tls, _p.X4, str(1406), _p.X0, _p.X0, _p.X0)
_pStmt = _prep_sql(tls, _p.Xdb, str(1406), _p.Xtid, _p.Xtid, _p.Xtid)
_worker_trace(tls, _p, str(1239), unsafe.Pointer(bin.Xsqlite3_sql(tls, _pStmt)))
_i = i32(0)
_i = int32(0)
_14:
if _i >= _p.X1 {
if _i >= _p.XnWorker {
goto _17
}
_rc = bin.Xsqlite3_step(tls, _pStmt)
if _rc != i32(100) {
if _rc != int32(100) {
_worker_error(tls, _p, str(1250), unsafe.Pointer(bin.Xsqlite3_sql(tls, _pStmt)))
goto _17
}
@@ -437,17 +409,17 @@ _14:
goto _14
_17:
bin.Xsqlite3_finalize(tls, _pStmt)
if _p.X5 != 0 {
if _p.XnErr != 0 {
goto _3
}
_worker_delete_all_content(tls, _p, (_p.X0+_iOuter)%i32(2))
_worker_delete_all_content(tls, _p, (_p.Xtid+_iOuter)%int32(2))
_worker_close_connection(tls, _p)
*(*unsafe.Pointer)(unsafe.Pointer(&_p.X4)) = nil
_p.Xdb = nil
_iOuter += 1
goto _0
_3:
_worker_close_connection(tls, _p)
crt.Xprintf(tls, str(1552), _p.X0)
crt.Xprintf(tls, str(1552), _p.Xtid)
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
return nil
}
@@ -460,27 +432,27 @@ _3:
func _worker_open_connection(tls *crt.TLS, _p *XWorkerInfo, _iCnt int32) {
var _x, _rc int32
var _zFile *int8
_x = (_p.X0 + _iCnt) % i32(6)
_zFile = bin.Xsqlite3_mprintf(tls, str(1572), int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*[3]uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_worker_open_connectionØ00aOrderØ001))+3*uintptr(_x))))) + 1*uintptr(i32(0))))))
_x = (_p.Xtid + _iCnt) % int32(6)
_zFile = bin.Xsqlite3_mprintf(tls, str(1572), int32(*elem4((*uint8)(unsafe.Pointer(elem5((*[3]uint8)(unsafe.Pointer(&_worker_open_connectionØ00aOrderØ001)), uintptr(_x)))), 0)))
_check_oom(tls, unsafe.Pointer(_zFile))
_worker_trace(tls, _p, str(1586), unsafe.Pointer(_zFile))
_rc = bin.Xsqlite3_open_v2(tls, _zFile, (**bin.Xsqlite3)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&_p.X4)))), i32(131074), nil)
if _rc != i32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1594), unsafe.Pointer(_zFile), _p.X0)
crt.Xexit(tls, i32(1))
_rc = bin.Xsqlite3_open_v2(tls, _zFile, (**bin.Xsqlite3)(unsafe.Pointer(&_p.Xdb)), int32(131074), nil)
if _rc != int32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1594), unsafe.Pointer(_zFile), _p.Xtid)
crt.Xexit(tls, int32(1))
}
bin.Xsqlite3_free(tls, unsafe.Pointer(_zFile))
_run_sql(tls, _p, str(1634))
bin.Xsqlite3_busy_timeout(tls, (*bin.Xsqlite3)(_p.X4), i32(10000))
bin.Xsqlite3_busy_timeout(tls, (*bin.Xsqlite3)(_p.Xdb), int32(10000))
_run_sql(tls, _p, str(1662))
_run_sql(tls, _p, str(1686), int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*[3]uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_worker_open_connectionØ00aOrderØ001))+3*uintptr(_x))))) + 1*uintptr(i32(1))))))
_run_sql(tls, _p, str(1717), int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*[3]uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_worker_open_connectionØ00aOrderØ001))+3*uintptr(_x))))) + 1*uintptr(i32(2))))))
_run_sql(tls, _p, str(1686), int32(*elem4((*uint8)(unsafe.Pointer(elem5((*[3]uint8)(unsafe.Pointer(&_worker_open_connectionØ00aOrderØ001)), uintptr(_x)))), uintptr(1))))
_run_sql(tls, _p, str(1717), int32(*elem4((*uint8)(unsafe.Pointer(elem5((*[3]uint8)(unsafe.Pointer(&_worker_open_connectionØ00aOrderØ001)), uintptr(_x)))), uintptr(2))))
}
var _worker_open_connectionØ00aOrderØ001 [6][3]uint8
func init() {
_worker_open_connectionØ00aOrderØ001 = [6][3]uint8{[3]uint8{u8(1), u8(2), u8(3)}, [3]uint8{u8(1), u8(3), u8(2)}, [3]uint8{u8(2), u8(1), u8(3)}, [3]uint8{u8(2), u8(3), u8(1)}, [3]uint8{u8(3), u8(1), u8(2)}, [3]uint8{u8(3), u8(2), u8(1)}}
_worker_open_connectionØ00aOrderØ001 = [6][3]uint8{[3]uint8{uint8(1), uint8(2), uint8(3)}, [3]uint8{uint8(1), uint8(3), uint8(2)}, [3]uint8{uint8(2), uint8(1), uint8(3)}, [3]uint8{uint8(2), uint8(3), uint8(1)}, [3]uint8{uint8(3), uint8(1), uint8(2)}, [3]uint8{uint8(3), uint8(2), uint8(1)}}
}
// C comment
@@ -490,11 +462,11 @@ func init() {
func _worker_add_content(tls *crt.TLS, _p *XWorkerInfo, _mn int32, _mx int32, _iTab int32) {
var _zTabDef *int8
switch _iTab {
case i32(1):
case int32(1):
goto _1
case i32(2):
case int32(2):
goto _2
case i32(3):
case int32(3):
goto _3
default:
goto _4
@@ -510,10 +482,10 @@ _3:
_zTabDef = str(1782)
goto _4
_4:
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
_run_sql(tls, _p, str(1799), _mn, _mx, unsafe.Pointer(_zTabDef), _p.X0)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(1799), _mn, _mx, unsafe.Pointer(_zTabDef), _p.Xtid)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_p.XnTest += 1
}
// C comment
@@ -530,21 +502,21 @@ func _prep_sql(tls *crt.TLS, _db unsafe.Pointer, _zFormat *int8, args ...interfa
_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
_ap = nil
_check_oom(tls, unsafe.Pointer(_zSql))
_i = i32(0)
_i = int32(0)
_0:
if _i >= i32(1000) {
if _i >= int32(1000) {
goto _3
}
_rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_db), _zSql, i32(-1), &_pStmt, nil)
if _rc == i32(0) {
_rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_db), _zSql, int32(-1), &_pStmt, nil)
if _rc == int32(0) {
goto _3
}
_i += 1
goto _0
_3:
if _rc != i32(0) {
if _rc != int32(0) {
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(991), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_db)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_db))), unsafe.Pointer(_zSql))
crt.Xexit(tls, i32(1))
crt.Xexit(tls, int32(1))
}
bin.Xsqlite3_free(tls, unsafe.Pointer(_zSql))
return _pStmt
@@ -556,10 +528,10 @@ _3:
// */
func _worker_error(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interface{}) {
var _ap []interface{}
*(*int32)(unsafe.Pointer(&_p.X5)) += 1
bin.Xsqlite3_free(tls, unsafe.Pointer(_p.X7))
_p.XnErr += 1
bin.Xsqlite3_free(tls, unsafe.Pointer(_p.XzMsg))
_ap = args
*(**int8)(unsafe.Pointer(&_p.X7)) = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
_p.XzMsg = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
_ap = nil
}
@@ -572,28 +544,28 @@ func _worker_error(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interf
// */
func _worker_delete_all_content(tls *crt.TLS, _p *XWorkerInfo, _inTrans int32) {
if _inTrans != 0 {
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(1947))
_run_sql(tls, _p, str(1953), _p.X0)
_run_sql(tls, _p, str(1981), _p.X0)
_run_sql(tls, _p, str(2009), _p.X0)
_run_sql(tls, _p, str(1953), _p.Xtid)
_run_sql(tls, _p, str(1981), _p.Xtid)
_run_sql(tls, _p, str(2009), _p.Xtid)
_run_sql(tls, _p, str(2037))
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_p.XnTest += 1
goto _1
}
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
_run_sql(tls, _p, str(1953), _p.X0)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
_run_sql(tls, _p, str(1981), _p.X0)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
_run_sql(tls, _p, str(2009), _p.X0)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.X9))
*(*int32)(unsafe.Pointer(&_p.X6)) += 1
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(1953), _p.Xtid)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_p.XnTest += 1
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(1981), _p.Xtid)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_p.XnTest += 1
crt.Xpthread_mutex_lock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_run_sql(tls, _p, str(2009), _p.Xtid)
crt.Xpthread_mutex_unlock(tls, (*crt.Xpthread_mutex_t)(_p.XpWrMutex))
_p.XnTest += 1
_1:
}
@@ -602,10 +574,10 @@ _1:
// ** Close the worker database connection
// */
func _worker_close_connection(tls *crt.TLS, _p *XWorkerInfo) {
if _p.X4 != nil {
if _p.Xdb != nil {
_worker_trace(tls, _p, str(2044))
bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_p.X4))
*(*unsafe.Pointer)(unsafe.Pointer(&_p.X4)) = nil
bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_p.Xdb))
_p.Xdb = nil
}
}
@@ -616,35 +588,40 @@ func bool2int(b bool) int32 {
return 0
}
func bug20530(interface{}) {} //TODO remove when https://github.com/golang/go/issues/20530 is fixed.
func i16(n int16) int16 { return n }
func i32(n int32) int32 { return n }
func i64(n int64) int64 { return n }
func i8(n int8) int8 { return n }
func init() { nzf32 *= -1; nzf64 *= -1 }
func u16(n uint16) uint16 { return n }
func u32(n uint32) uint32 { return n }
func u64(n uint64) uint64 { return n }
func u8(n byte) byte { return n }
var inf = math.Inf(1)
var nzf32 float32 // -0.0
var nzf64 float64 // -0.0
func sink1(int32) {} //TODO report GC bug
func sink0(uint32) {} //TODO report GC bug
func store1(p *int32, v int32) int32 { *p = v; return v }
var nzf32 float32 // -0.0
var nzf64 float64 // -0.0
func elem0(a **int8, index uintptr) **int8 {
return (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 8*index))
}
func elem5(a *[3]uint8, index uintptr) *[3]uint8 {
return (*[3]uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 3*index))
}
func elem1(a *int8, index uintptr) *int8 {
return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 1*index))
}
func elem2(a *XWorkerInfo, index uintptr) *XWorkerInfo {
return (*XWorkerInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 64*index))
}
func elem4(a *uint8, index uintptr) *uint8 {
return (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(a)) + 1*index))
}
func store3(p *int32, v int32) int32 { *p = v; return v }
type XWorkerInfo struct {
X0 int32
X1 int32
X2 uint32
X3 unsafe.Pointer
X4 unsafe.Pointer
X5 int32
X6 int32
X7 *int8
X8 uint64
X9 unsafe.Pointer
} // t2 struct{int32,int32,uint32,*struct{},*struct{},int32,int32,*int8,uint64,*struct{}}
Xtid int32
XnWorker int32
XwkrFlags uint32
XmainDb unsafe.Pointer
Xdb unsafe.Pointer
XnErr int32
XnTest int32
XzMsg *int8
Xid uint64
XpWrMutex unsafe.Pointer
} // t6 struct{int32,int32,uint32,*struct{},*struct{},int32,int32,*int8,uint64,*struct{}}
func str(n int) *int8 { return (*int8)(unsafe.Pointer(&strTab[n])) }
func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) }