-
-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Describe the bug
64-bit builds using Import Library with statically linked .obj files crash at runtime with an access violation (0xC0000005). This is a regression — the same project (identical source code and identical .obj files) works correctly on 64-bit in version 430.
32-bit builds continue to work correctly on the current version.
To Reproduce
- Open Sample 17 (SQLite static library) in the current twinBASIC IDE (v973)
- Set the build target to x64
- Build and run (F5)
- The process exits immediately with code
-1073741819(0xC0000005)
The same project builds and runs successfully when the target is set to x86.
Expected behavior
The 64-bit executable should run without crashing, matching the behavior of version 430 where the same Sample 17 project works correctly on both x86 and x64.
Screenshots
N/A — the process crashes immediately with no UI. Shell output:
[SHELL] process 7864 started.
[SHELL] process 7864 exited with code -1073741819
Desktop (please complete the following information):
- OS: Windows 10 Pro 10.0.19045
- twinBASIC compiler version: 973 (regression from version 430)
Additional context
To confirm this is a compiler/linker regression and not a source or .obj issue, I exported Sample 17 from both version 430 and the current version and compared:
| Component | v430 | Current (v973) |
|---|---|---|
MainModule.twin |
Identical | Identical |
sqlite3_32.obj |
1,410,251 bytes | 1,410,251 bytes |
sqlite3_64.obj |
2,337,188 bytes | 2,337,188 bytes |
| 32-bit runtime | Works | Works |
| 64-bit runtime | Works | Crashes |
The source code, .obj files, and Import Library / Link directives are byte-for-byte identical between versions. The only variable is the compiler version.