Duke3D: crash at pushmove
Steps to reproduce:
- Load attached save file.
- Drop into the water and shoot at Octabrains. It's important to use Devastator, I don't think it works with other weapons.
- 80-90% of the time the crash happens once either (or both) of Octabrains is blown into pieces.
Log and stack trace:
0,3589s INFO| EDuke32 r10363-dd98c3ec5
0,3590s INFO| Built Aug 26 2023 10:19:31, clang 14.0.0 , 64-bit
...
==719986==WARNING: ASan is ignoring requested __asan_handle_no_return: stack type: default top: 0x7fffb5cb0600; bottom 0x7fffffffc000; size: 0xffffffffb5cb4600 (-1244969472)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
Thread 1 "eduke32" received signal SIGILL, Illegal instruction.
0x000055555656a6c1 in pushmove (vect=0x555558a65e50 <sprite_s+16720>, sectnum=0x7fffffffd6c0, walldist=128, ceildist=1024, flordist=1024, cliptype=65537, clear=<optimized out>) at source/build/src/clip.cpp:1839
1839 }
(gdb) bt
#0 0x000055555656a6c1 in pushmove(vec3_t*, int16_t*, int32_t, int32_t, int32_t, uint32_t, bool)
(vect=0x555558a65e50 <sprite_s+16720>, sectnum=0x7fffffffd6c0, walldist=128, ceildist=1024, flordist=1024, cliptype=65537, clear=<optimized out>)
at source/build/src/clip.cpp:1839
#1 0x000055555640738d in A_DamageObject_Duke3D(int, int)
(spriteNum=380, dmgSrc=<optimized out>) at source/duke3d/src/sector.cpp:2431
#2 0x00005555564149ee in A_DamageObject(int, int) (spriteNum=0, dmgSrc=0)
at source/duke3d/src/sector.cpp:2573
#3 0x0000555555f9afa9 in G_MoveWeapons() () at source/duke3d/src/actors.cpp:3584
#4 0x0000555555f8df8c in G_MoveWorld() () at source/duke3d/src/actors.cpp:9292
#5 0x0000555556144e72 in G_DoMoveThings() () at source/duke3d/src/game.cpp:7343
#6 0x000055555613eec6 in app_main(int, char const* const*)
(argc=<optimized out>, argv=<optimized out>) at source/duke3d/src/game.cpp:7128
#7 0x00005555569a9bf2 in main(int, char**) (argc=0, argv=0x0)
at source/build/src/sdlayer.cpp:568