Sign in or sign up before continuing. Don't have an account yet? Register now to get started.
Register now

TestStrtod failing on windows/{386,arm64} after merging !26

@zhenghaoz

Could you please take a look? I don't know much about Windows, less so about the architecture-specific peculiarities. In essence we need to factor out the func Xstrtod implementation from libc_windows.go to different implementations in libc_windows_amd64.go, libc_windows_arm64.go and libc_windows_386.go. Can you please help with it? Thanks.

Particularly the current implementation cannot work on 386, making a float64 from a 32 bit uintptr only. My fault for not realizing that in the review and my fault for testing on windows/amd64 before merging. I have mistakenly assumed the win API/ABI is uniform accross architectures, but that's clearly not the case. My apologies.

Builders: https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2flibc

go1.26.0 windows/386
2026-02-14T08:44:17+01:00 commit b70fb7ce24a7dd71057906ba7fe0731a2ce451d0, GOMAXPROCS 2, GOGC "", GOMEMLIMIT "", CC ""
--- FAIL: TestStrtod (0.00s)
    all_non_musl_test.go:116: 1: "+1": 0 1
    all_non_musl_test.go:116: 2: "+2": 0 2
    all_non_musl_test.go:116: 4: "-1": 0 -1
    all_non_musl_test.go:116: 5: "-2": 0 -2
    all_non_musl_test.go:116: 6: ".5": 0 0.5
    all_non_musl_test.go:116: 8: "1": 0 1
    all_non_musl_test.go:116: 9: "1.": 0 1
    all_non_musl_test.go:116: 10: "1.024e3": 0 1024
    all_non_musl_test.go:116: 11: "16": 0 16
    all_non_musl_test.go:116: 12: "2": 0 2
    all_non_musl_test.go:116: 13: "32": 0 32
FAIL
exit status 1
FAIL	modernc.org/libc	0.044s

FAIL err=exit status 1

and

go1.26.0 windows/arm64
2026-02-13T22:42:13+01:00 commit b70fb7ce24a7dd71057906ba7fe0731a2ce451d0, GOMAXPROCS 4, GOGC "", GOMEMLIMIT "", CC ""
--- FAIL: TestStrtod (0.00s)
    all_non_musl_test.go:116: 1: "+1": 0 1
    all_non_musl_test.go:116: 2: "+2": 0 2
    all_non_musl_test.go:116: 4: "-1": 0 -1
    all_non_musl_test.go:116: 5: "-2": 0 -2
    all_non_musl_test.go:116: 6: ".5": 0 0.5
    all_non_musl_test.go:116: 8: "1": 0 1
    all_non_musl_test.go:116: 9: "1.": 0 1
    all_non_musl_test.go:116: 10: "1.024e3": 0 1024
    all_non_musl_test.go:116: 11: "16": 0 16
    all_non_musl_test.go:116: 12: "2": 0 2
    all_non_musl_test.go:116: 13: "32": 0 32
FAIL
exit status 1
FAIL	modernc.org/libc	0.098s

FAIL err=exit status 1
Assignee Loading
Time tracking Loading