Commit e6401b0
jit: use the large code model on COFF so vtable/type_info pointers aren't truncated
After the slab + double-run fixes the real add-on compiles, links and runs its
constructors, but crashes in score::registerPlugin -> __dynamic_cast jumping to a
half-truncated pointer (0xffffff16_25ffffff). The small (default) code model
emits 32-bit absolute relocations for data pointers (vtables, type_info); at the
high slab load address those truncate and corrupt RTTI. Set CodeModel::Large on
COFF (score plugin + jitmin) for 64-bit references throughout -- expected to fix
cross-module dynamic_cast and the c05 exception-typeinfo crash too.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RJk9KBVYSsZdLhNv2q3mfi1 parent 458947d commit e6401b0
2 files changed
Lines changed: 21 additions & 0 deletions
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
148 | 158 | | |
149 | 159 | | |
150 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
79 | 90 | | |
80 | 91 | | |
81 | 92 | | |
| |||
0 commit comments