Address Sanitizer
не сообщает о ложных срабатываниях, поэтому у вас наверняка есть проблема; «работать хорошо», вероятно, означает «стать счастливчиком».
Вы должны собрать отладочную сборку с неповрежденными символами, чтобы лучше видеть, что происходит, поскольку все эти имена искажены.
Ваш SSo6CGSizeV8FindloAR8Vector2DA2cDP1x9ValueTypeQzvgTW
(это должен быть что-то вроде CGSize Findlo(Vector2D, ValueType)
?) Метод получает доступ к памяти из стека вне пределов, вот и все, что я могу сказать о том, что здесь.
Вы должны опубликовать код для этого метода и параметры, с которыми вы его вызываете, для лучшего ответа. Вы также можете просто посмотреть, какие переменные размещены в стеке (возможно, массиве), и, возможно, посмотреть, как они выходят за пределы.
Причина, по которой это работает нормально, заключается в том, что вы либо не вызываете какие-либо функции после переполнения (добавление другого фрейма стека), либо никогда не обращаетесь к переполненной памяти после этого. если вы добавите новый фрейм стека, вы увидите, что переполненные данные будут повреждены новыми фреймами.