看了一下同事的 code,左看右看都看不出個所以然,連那個 f: 的路徑都不知從哪來的?
後來實在沒辦法,把 inf 裡的最佳化從 "/Oi-" 改成 "/Od" 便暫時解決了此問題。
一整個下午的心情都被搞成很阿雜!
2020/03/13 更新
那個提示訊息是有意義的,是同事的 code 出問題無誤,非那個奇怪的 f: 路徑。
原本有加上 /FAcs 想看錯誤行數的 assembly code,是否能看出最佳化後的組語長怎樣?不過因為是到那邊出錯,故整個函數的 assembly code 都未產出到檔案。
後來再仔細研究了同事 commit 的函數,居然是錯在函數的參數被拿來計算,導致最佳化出錯,真是個奇特的經驗。
unsigned int XXXX(void* buffer, unsigned int len, unsigned int ans)
{
unsigned char* buf = (unsigned int*)buffer;
unsigned int i;
for (i = 0; i < len; ++i) {
if (i == 8) ans = 0;
ans += (unsigned int)(*buf++);
}
return ans;
}
沒有留言:
張貼留言