void largestackallocation() {
double a[10000000];
}
int main() {
return 0;
}
C6262
发出的命令建议将分配移动到堆而不是堆栈。编译处于发布模式,具有以下选项:
/permissive- /ifcOutput "x64\Release\" /GS /GL /W3 /Gy /Zc:wchar_t /I"E:\local\boost_1_72_0" /Zi /Gm- /O2 /sdl /Fd"x64\Release\vc142.pdb" /Zc:inline /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /MD /FC /Fa"x64\Release\" /EHsc /nologo /Fo"x64\Release\" /FA /Fp"x64\Release\windows.pch" /diagnostics:column
在gcc上,发布模式构建甚至可以将警告转换为错误:
g++ Â Â -c -O2 -Werror -MMD -MP -MF "build/Release/GNU-Linux/_ext/511e4115/largestackallocation.o.d" -o build/Release/GNU-Linux/_ext/511e4115/largestackallocation.o ../src/largestackallocation.cpp
mkdir -p dist/Release/GNU-Linux
未发出任何警告/错误。使gcc/g++在潜在的大堆栈分配上发出警告的选项/设置是什么?