Сегодня случайно обнаружил следующую фишку студии, что при оптимизациях она сама вставляет в некоторых случаях функцию _memset.
Проект самый обычный, в котором выключен весь CRT, но оптимизатор студии из-за этого как раз и не дает скомпилировать нашу программку.
Причем для этого достаточно такого кода:
При /Od все впорядке, но при /O1 или /O2 линкер будет жаловаться, что не находит _memset, можно ли как-то это пофиксить, чтобы оставить уровень оптимизации на /O1 или /O2, но выключить конкретно эту оптимизацию через _memset.
Можно конечно статически слинковать, но хотелось бы без этого или все-таки студия сама окончательно погрязла в CRT?
Может кто знает, есть ли еще подобные подводные камни в студии?
Проект самый обычный, в котором выключен весь CRT, но оптимизатор студии из-за этого как раз и не дает скомпилировать нашу программку.
Причем для этого достаточно такого кода:
C++:
int SomeFunc()
{
char* some_chars = (char*)HeapAlloc(GetProcessHeap(), 0, 1024);
for (int i = 0; i < 1024; ++i)
some_chars[i] = 0;
return some_chars[10];
}
Можно конечно статически слинковать, но хотелось бы без этого или все-таки студия сама окончательно погрязла в CRT?
#pragma comment(lib, "libvcruntime.lib")Может кто знает, есть ли еще подобные подводные камни в студии?