don't access void* out of alignment in refc GC to avoid UB (#21560)

(cherry picked from commit e8a70ff179)
This commit is contained in:
tersec
2023-03-22 22:05:20 +01:00
committed by narimiran
parent 82e9ec3b5c
commit 772b62cdeb

View File

@@ -381,7 +381,6 @@ else:
let regEnd = sp +% sizeof(registers)
while sp <% regEnd:
gcMark(gch, cast[PPointer](sp)[])
gcMark(gch, cast[PPointer](sp +% sizeof(pointer) div 2)[])
sp = sp +% sizeof(pointer)
# Make sure sp is word-aligned
sp = sp and not (sizeof(pointer) - 1)