Почему фейлится - в принципе понятно. Компилятор vc120 ( студия 2013 ) сделал такой пролог:
00007ff7`b84634a0 f30f114c2410 movss dword ptr [rsp+10h],xmm1
00007ff7`b84634a6 894c2408 mov dword ptr [rsp+8],ecx
00007ff7`b84634aa 57 push rdi
00007ff7`b84634ab 4883ec30 sub rsp,30h
00007ff7`b84634af 488bfc mov rdi,rsp
т.е. переменная по факту передается через xmm1 но потом возвращается на стек. В отладочных символах указано, что переменная лежит rsp + 48, что после инструкции sub rsp, 30h верно.
Надо поправить тесты ( ставить бряк со смещением на пролог функции ) и заодно подумать, что делать в релизной сборке - там на стек параметры не будут восстанавливать.
00007ff7`b84634a0 f30f114c2410 movss dword ptr [rsp+10h],xmm1
00007ff7`b84634a6 894c2408 mov dword ptr [rsp+8],ecx
00007ff7`b84634aa 57 push rdi
00007ff7`b84634ab 4883ec30 sub rsp,30h
00007ff7`b84634af 488bfc mov rdi,rsp
т.е. переменная по факту передается через xmm1 но потом возвращается на стек. В отладочных символах указано, что переменная лежит rsp + 48, что после инструкции sub rsp, 30h верно.
Надо поправить тесты ( ставить бряк со смещением на пролог функции ) и заодно подумать, что делать в релизной сборке - там на стек параметры не будут восстанавливать.